diff --git a/.github/pull_request_assignment.yml b/.github/pull_request_assignment.yml
index 7a788d9e44fc..b6481d867be4 100644
--- a/.github/pull_request_assignment.yml
+++ b/.github/pull_request_assignment.yml
@@ -12,6 +12,12 @@
- "specification/confidentialledger/data-plane/**"
reviewers:
- christothes
+
+- rule:
+ paths:
+ - "specification/@(applicationinsights|operationalinsights)/**"
+ reviewers:
+ - akning-ms
- rule:
# eventgrid data-plane PR
@@ -27,6 +33,13 @@
reviewers:
- lmazuel
+- rule:
+ # data-plane PR
+ paths:
+ - "specification/**/data-plane/iot**"
+ reviewers:
+ - drwill-ms
+
- rule:
# data-plane PR
paths:
@@ -35,20 +48,13 @@
- anuchandy
- jhendrixMSFT
- tjprescott
-
- rule:
paths:
- "specification/network/**"
reviewers:
- - kairu-ms
- lirenhe
-- rule:
- paths:
- - "specification/@(applicationinsights|operationalinsights)/**"
- reviewers:
- - kairu-ms
- rule:
paths: "specification/@(resources|powerplatform|appplatform|deviceupdate)/**"
@@ -63,7 +69,7 @@
- rule:
paths: "specification/sql/**"
reviewers:
- - akning-ms
+ - zhenglaizhang
- rule:
paths: "specification/signalr/**"
@@ -86,42 +92,36 @@
reviewers:
- ArcturusZhang
-- rule:
- paths:
- - "specification/azureactivedirectory/**"
- reviewers:
- - njuCZ
-
- rule:
paths:
- "specification/authorization/**"
reviewers:
- - qianwens
+ - ruowan
- rule:
paths:
- "specification/datafactory/**"
reviewers:
- - qianwens
+ - leni-msft
- rule:
paths:
- "specification/monitor/**"
reviewers:
- weidongxu-microsoft
- - kairu-ms
- rule:
paths:
- "specification/storage/**"
reviewers:
- - Juliehzl
+ - jianyexi
- rule:
paths: "specification/mediaservices/**"
reviewers:
- allenjzhang
+
- rule:
paths:
- "specification/containerregistry/**"
@@ -171,13 +171,6 @@
reviewers:
- zhenglaizhang
-- rule:
- paths:
- - "specification/azurestack/**"
- - "specification/automation/**"
- reviewers:
- - xiaoxuqi-ms
-
- rule:
paths:
- "documentation/**"
@@ -204,17 +197,13 @@
paths:
- "**"
reviewers:
- - erich-wang
- PhoenixHe-msft
- lirenhe
- weidongxu-microsoft
- ArcturusZhang
- raych1
- - ChenTanyi
- - njuCZ
- akning-ms
- leni-msft
- - qianwens
- ruowan
- jianyexi
- zhenglaizhang
diff --git a/CODEOWNERS b/CODEOWNERS
index ca52231589a5..6c01da6ca27e 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -2,7 +2,8 @@
/specification/analysisservices/ @taiwu
/specification/alertsmanagement/ @ofirmanor @olalavi @erangon @orieldar @ilaizi @shakednai1 @khaboasb @orenhor
/specification/apimanagement/ @promoisha @solankisamir
-/specification/applicationinsights/ @alexeldeib @ramthi @markwolff @trask @hectorhdzg @lzchen
+/specification/applicationinsights/ @alexeldeib
+/specification/applicationinsights/data-plane/Monitor.Exporters/ @ramthi @trask @hectorhdzg @lzchen
/specification/asazure/ @athipp
/specification/authorization/ @darshanhs90 @stankovski
/specification/automation/ @vrdmr
@@ -75,6 +76,7 @@
/specification/storsimple8000series/ @manaas-microsoft
/specification/streamanalytics/ @atpham256
/specification/subscriptions/ @navysingla
+/specification/synapse/ @idear1203
/specification/timeseriesinsights/ @sandshadow
/specification/trafficmanager/ @allencal @hrkulkarmsft
/specification/web/ @naveedaz @Azure/azure-app-service-control-plane
diff --git a/cSpell.json b/cSpell.json
index 351f274f5a49..8c55c0f311b5 100644
--- a/cSpell.json
+++ b/cSpell.json
@@ -230,6 +230,12 @@
"Exprired"
]
},
+ {
+ "filename": "**/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/integrationRuntime.json",
+ "words": [
+ "Exprired"
+ ]
+ },
{
"filename": "**/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/TasksCommon.json",
"words": [
@@ -286,6 +292,12 @@
"Regenerte"
]
},
+ {
+ "filename": "**/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.2/storage.json",
+ "words": [
+ "Regenerte"
+ ]
+ },
{
"filename": "**/specification/adhybridhealthservice/resource-manager/Microsoft.ADHybridHealthService/stable/2014-01-01/ADHybridHealthService.json",
"words": [
@@ -751,23 +763,11 @@
]
},
{
- "filename": "**/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/communicationserviceschat.json",
+ "filename": "**/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/communicationserviceschat.json",
"words": [
"readreceipts"
]
},
- {
- "filename": "**/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/communicationservicesadministration.json",
- "words": [
- "areacodes",
- "locationoptions",
- "phonenumbers",
- "phoneplangroups",
- "phoneplans",
- "pstn",
- "unconfiguring"
- ]
- },
{
"filename": "**/specification/saas/resource-manager/Microsoft.SaaS/preview/2018-03-01-beta/saas.json",
"words": [
@@ -812,6 +812,19 @@
"words": [
"Guage"
]
+ },
+ {
+ "filename": "**/specification/confluent/resource-manager/Microsoft.Confluent/preview/2021-03-01-preview/confluent.json",
+ "words": [
+ "orgvalidate"
+ ]
+ },
+ {
+ "filename": "**/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2021-02-10/service.json",
+ "words": [
+ "Orignal",
+ "Seleted"
+ ]
}
]
-}
\ No newline at end of file
+}
diff --git a/custom-words.txt b/custom-words.txt
index 0eb0f8abdb77..21d328170955 100644
--- a/custom-words.txt
+++ b/custom-words.txt
@@ -4,6 +4,7 @@ A256CBCPAD
AADDS
aadiam
AADP
+aapl
AATP
abcxyz
ABFS
@@ -55,6 +56,7 @@ alertrules
alertsmanagement
alertstate
Alexa
+Algo
allowlist
Alon
amazonservices
@@ -355,6 +357,7 @@ clustername
CMAF
Cmdkey
cmdlet
+cmdlets
CMEK
CMMI
CNAME
@@ -413,6 +416,7 @@ CRDs
creatable
createbsl
createconsumergroup
+createdtime
createorupdate
createpreview
credativ
@@ -445,6 +449,8 @@ CUTOVER
CVEs
CVSS
Cyrl
+dailyforecast
+dailyhistorical
darkgrey
databox
Databricks
@@ -464,7 +470,10 @@ datalakeanalytics
datalakestore
Datamasking
datamigration
+datamodel
+datapath
datapoint
+datapoints
dataschema
Dataset
datasetid
@@ -577,6 +586,8 @@ Dsms
DTDL
Dtus
duration'PT
+dwgzippackage
+dynamicpersongroups
EAPMSCHA
EAPMSCHAP
EAPTLS
@@ -637,6 +648,7 @@ exceptiontype
exfiltrate
Exfiltration
experimentids
+Explainability
explicitlist
exportconfiguration
exportdevices
@@ -655,12 +667,15 @@ failover
failovers
Fairplay
Fanout
+farmBeats
+FarmBeats
fatherable
faultable
fconfig
FDID
fearthecowboy
featurecapabilities
+featurestate
Featurization
featurized
Featurizer
@@ -709,6 +724,8 @@ generatevpnprofile
geobias
geocode
geocodes
+geodata
+Geodata
Geofence
geofences
Geofencing
@@ -753,6 +770,7 @@ GOARCH
GPUMIG
GPUP
GPUs
+Grafana
Grammarly
GRANTACE
granularities
@@ -763,6 +781,7 @@ groupedby
GRPC
GSMT
GTFS
+guage
guestconfiguration
GUID
GUIDs
@@ -886,6 +905,7 @@ Iscsi
iscsiservers
isdir
isdirectory
+isfolder
ishostingenvironmentnameavailable
ishostnameavailable
isnullable
@@ -957,6 +977,7 @@ Kubelet
kubenet
kubernetes
kusto
+kustooperations
kvset
l'avion
labaccounts
@@ -1075,6 +1096,7 @@ MCAS
MDATP
mebibytes
mediaservices
+Merkle
Meru
Mesos
messagingplan
@@ -1109,6 +1131,7 @@ ML's
mlapi
mnist
modelmanagement
+modifiedtime
MODIFYACLENTRIES
monitoringconfiguration
monitoringconfigurations
@@ -1180,6 +1203,8 @@ nbformat
Nccl
nchar
ndjson
+ndvi
+NDVI
Neighbourhood
netapp
netdev
@@ -1245,6 +1270,7 @@ octokit
Odata
odatatype
ODBC
+oeverify
offboard
offboards
officedocument
@@ -1257,6 +1283,7 @@ ondemandgc
onmachine
onmicrosoft
ONNX
+Onprem
onpremises
oobe
Oozie
@@ -1373,6 +1400,7 @@ preloading
prem
premieraddonoffers
premieraddons
+Preprovisioned
Prerelease
prerestore
pretrained
@@ -1390,6 +1418,8 @@ privatelinkservice
privatepreview
projectable
propogation
+Propagations
+propagations
Protectable
Providerhub
provisioner
@@ -1435,8 +1465,8 @@ racyscore
RAGRS
RAGZRS
randint
-randomnumbers
Rankable
+rasterize
ratelimit
ravbhatnagar
rawwebsockets
@@ -1660,6 +1690,7 @@ setvpnclientipsecparameters
sfhealthid
sfpkg
shamir_share
+shapefile
sharded
sharedkey
sharename
@@ -1843,6 +1874,7 @@ tagname
tagsandregions
tagvalue
TARGETDURATION
+targetv
taskcompletion
taskcounts
taskfailure
@@ -1853,6 +1885,7 @@ templated
templatelink
templeton
temporarydisk
+Tensorboard
tensorflow
TEPCO's
teradata
@@ -1861,6 +1894,7 @@ Termlist
termlists
testall
testallroutes
+testfailover
testnew
testnewroute
testpl
@@ -1938,6 +1972,7 @@ uniquestring
unitless
unixtime
UNKNOWON
+unleased
unlocalized
unmanaged
unmonitored
@@ -2041,6 +2076,7 @@ VMILR
vmimage
vmname
vmotion
+VMOS
VMQS
VMSS
VMSSVM
@@ -2090,6 +2126,8 @@ webhostingplans
webjob
webjobs
webproxy
+webpubsub
+WebPubSub
websearch
webservices
Webspace
@@ -2144,3 +2182,28 @@ ziplist
Zoho
zoneinfo
zset
+classificationdef
+entitydef
+termtemplatedef
+enumdef
+relationshipdef
+structdef
+typedefs
+testfailover
+Orignal
+Onprem
+targetv
+Seleted
+classificationrules
+Unparented
+scanrulesets
+Ruleset
+Rulesets
+XLSB
+Miti
+DOCM
+PPSX
+PPTM
+XLSM
+DOCM
+multislot
diff --git a/documentation/FAQ.md b/documentation/FAQ.md
index 82cd2276edec..2e05573323f8 100644
--- a/documentation/FAQ.md
+++ b/documentation/FAQ.md
@@ -6,7 +6,8 @@ This page is intended to answer questions frequently asked during Azure Swagger
2. [How to fix validation failure?](#validation)
3. [How to generate SDK from Swagger?](#SDK)
4. [How to generate document](#doc)
-5. [If need further help, who can we contact?](#contact)
+5. [How to generate swagger examples](#examplegen)
+6. [If need further help, who can we contact?](#contact)
## How to onboard PR review Process?
If you are new to Swagger/OpenAPI, you can refer to this [document](https://dev.azure.com/azure-sdk/internal/_wiki/wikis/internal.wiki/80/Getting-started-with-OpenAPI-specifications)
@@ -37,5 +38,8 @@ If you are working in the private repository, please refer to this [document](ht
## How to generate Document from Swagger?
Refer to [document](https://dev.azure.com/azure-sdk/internal/_wiki/wikis/internal.wiki/79/Generation-of-docs-on-docs.microsoft.com)
+## How to generate examples from Swagger?
+Refer to [Swagger-Example-Generation](https://dev.azure.com/azure-sdk/internal/_wiki/wikis/internal.wiki/393/Swagger-Example-Generation)
+
## If need further help, who can we contact?
If any other help need, Please send a mail to vscswagger@microsoft.com
\ No newline at end of file
diff --git a/documentation/ci-fix.md b/documentation/ci-fix.md
index 32901b31f3e4..5380826c32c4 100644
--- a/documentation/ci-fix.md
+++ b/documentation/ci-fix.md
@@ -34,8 +34,9 @@ npm install -g oav
oav validate-example
```
Please see [readme](https://github.com/Azure/oav/blob/master/README.md) for how to install or run tool in details.
-Or you can run it in [OpenAPI Hub](https://portal.azure-devex-tools.com/tools/static-validation/static/errors/default)
+Or you can run it in [OpenAPI Hub](https://portal.azure-devex-tools.com/tools/static-validation/static/errors/default).
Refer to [Semantic and Model Violations Reference](https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/Semantic-and-Model-Violations-Reference.md) for detailed description of validations and how-to-fix guidance.
+Refer to [Swagger-Example-Generation](https://dev.azure.com/azure-sdk/internal/_wiki/wikis/internal.wiki/393/Swagger-Example-Generation) for example automatic generation.
## Semantic Validation
Run Semantic Validation locally:
diff --git a/documentation/openapi-authoring-automated-guidelines.md b/documentation/openapi-authoring-automated-guidelines.md
index 039bfe8cc913..e5732dd5b9e9 100644
--- a/documentation/openapi-authoring-automated-guidelines.md
+++ b/documentation/openapi-authoring-automated-guidelines.md
@@ -46,8 +46,6 @@ We request OpenAPI(Swagger) spec authoring be assigned to engineers who have an
| [R3030](#R3030) | [PathResourceProviderMatchNamespace](#R3030) | ARM OpenAPI(swagger) specs |
| [R2016](#r2016) | [PatchBodyParametersSchema](#r2016) | ARM and Data plane OpenAPI(swagger) specs |
| [R2062](#r2062) | [XmsResourceInPutResponse](#r2062) | ARM OpenAPI(swagger) specs |
-| [R3027](#r3027) | [TrackedResourceListByResourceGroup](#r3027) | ARM OpenAPI(swagger) specs |
-| [R3028](#r3028) | [TrackedResourceListBySubscription](#r3028) | ARM OpenAPI(swagger) specs |
| [R3011](#r3011) | [DescriptionMustNotBeNodeName](#r3011) | ARM and Data plane OpenAPI(swagger) specs |
| [R2020](#r2020) | [RequiredPropertiesMissingInResourceModel](#r2020) | ARM OpenAPI(swagger) specs |
| [R3020](#r3020) | [PathResourceProviderNamePascalCase](#r3020) | ARM OpenAPI(swagger) specs |
@@ -71,6 +69,8 @@ We request OpenAPI(Swagger) spec authoring be assigned to engineers who have an
| [R3017](#r3017) | [GuidUsage](#r3017) | ARM and Data plane OpenAPI(swagger) specs |
| [R2057](#r2057) | [InvalidSkuModel](#r2057) | ARM OpenAPI(swagger) specs |
| [R3010](#r3010) | [TrackedResourceListByImmediateParent](#r3010) | ARM OpenAPI(swagger) specs |
+| [R3027](#r3027) | [TrackedResourceListByResourceGroup](#r3027) | ARM OpenAPI(swagger) specs |
+| [R3028](#r3028) | [TrackedResourceListBySubscription](#r3028) | ARM OpenAPI(swagger) specs |
| [R2004](#r2004) | [NonApplicationJsonType](#r2004) | ARM OpenAPI(swagger) specs |
| [R4014](#r4014) | [AllResourcesMustHaveGetOperation](#r4014) | ARM OpenAPI(swagger) specs |
### SDK Violations
@@ -116,7 +116,7 @@ We request OpenAPI(Swagger) spec authoring be assigned to engineers who have an
| [R4034](#r4034) | [AzureResourceTagsSchemaValidation](#r4034) | ARM OpenAPI(swagger) specs |
| [R4035](#r4035) | [PrivateEndpointResourceSchemaValidation](#r4035) | ARM OpenAPI(swagger) specs |
| [R4036](#r4036) | [ImplementPrivateEndpointAPIs](#r4036) | ARM OpenAPI(swagger) specs |
-
+| [R4037](#r4037) | [MissingTypeObject](#r4037) | ARM and Data plan OpenAPI(swagger) specs |
#### SDK Warnings
| Id | Rule Name | Applies to |
@@ -292,7 +292,7 @@ If the resource pointed by the rule is not a tracked resource, this warning may
Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rules](#automated-rules) | [ARM](#arm-violations): [Errors](#arm-errors) or [Warnings](#arm-warnings) | [SDK](#sdk-violations): [Errors](#sdk-errors) or [Warnings](#sdk-warnings)
### R3027 TrackedResourceListByResourceGroup
-**Category** : ARM Error
+**Category** : ARM Warning
**Applies to** : ARM OpenAPI(swagger) specs
@@ -313,7 +313,7 @@ If the resource pointed by the rule is not a tracked resource or the operation t
Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rules](#automated-rules) | [ARM](#arm-violations): [Errors](#arm-errors) or [Warnings](#arm-warnings) | [SDK](#sdk-violations): [Errors](#sdk-errors) or [Warnings](#sdk-warnings)
### R3028 TrackedResourceListBySubscription
-**Category** : ARM Error
+**Category** : ARM Warning
**Applies to** : ARM OpenAPI(swagger) specs
@@ -1595,7 +1595,8 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
**Output Message**: A '{0}' operation '{1}' with x-ms-long-running-operation extension must have a valid terminal success status code {2}.
-**Description**: The allowed response status codes for a long DELETE operation are "200", "204". The allowed response status codes for a POST operation are "200", "201" ,"202", & "204". The allowed response status codes for a PUT operation are "200" & "201".
+**Description**: For ARM spec, the allowed response status codes for a long DELETE operation are "200" & "204"; the allowed response status codes for a POST operation are "200", "201" ,"202", & "204"; the allowed response status codes for a PUT/PATCH operation are "200" & "201".
+ For Data plane spec, the allowed response status codes for a long DELETE operation are "200","202", & "204"; the allowed response status codes for a POST operation are "200", "201" ,"202", & "204"; the allowed response status codes for a PUT/PATCH operation are "200","201", & "202".
**Why the rule is important**: This will ensure that the DELETE/POST/PUT operations are designed correctly.Please refer [here](./swagger-extensions.md#x-ms-long-running-operation) for further details.
@@ -1907,7 +1908,7 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
In case of LRO Post operation with return schema, it MAY be ambiguous for the SDK to understand automatically what the return schema is modeling. To avoid any confusion that would lead SDK to incorrectly instantiate the return type, service team needs to explain if the return schema is modeling a result from a "Location" header, or from an "Azure-AsyncOperation" header.
-More details on LRO operation could be found [here](https://github.com/Azure/adx-documentation-pr/blob/master/sdks/LRO/LRO_AzureSDK.md)
+More details on LRO operation could be found [here](https://github.com/Azure/autorest/blob/master/docs/extensions/readme.md#x-ms-long-running-operation)
**How to fix the violation**: For a Post LRO operation, add "x-ms-long-running-operation-options" extension with "final-state-via" property.
``` json
@@ -3459,4 +3460,51 @@ GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{
**How to fix the violation**: Please add the missing private endpoint API path and operation to the swagger.
-Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rules](#automated-rules) | [ARM](#arm-violations): [Errors](#arm-errors) or [Warnings](#arm-warnings) | [SDK](#sdk-violations): [Errors](#sdk-errors) or [Warnings](#sdk-warnings)
\ No newline at end of file
+Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rules](#automated-rules) | [ARM](#arm-violations): [Errors](#arm-errors) or [Warnings](#arm-warnings) | [SDK](#sdk-violations): [Errors](#sdk-errors) or [Warnings](#sdk-warnings)
+
+
+### R4037 MissingTypeObject
+
+**Category** : SDK Error
+
+**Applies to** : ARM and Data plane OpenAPI(swagger) specs
+
+**Output Message** : The schema '{json path}' is considered an object but without a 'type:object', please add the missing 'type:object'.
+
+**Description**: The rule should apply to any schema with "properties" or "additionalProperties". It is to ensure a schema with "properties" or "additionalProperties" must have explicit "type:object" statement, which means a schema is an object.
+
+**CreatedAt**: May 24, 2021
+
+**LastModifiedAt**: May 24, 2021
+
+**Why this rule is important**: The semantics of with and without "type:object" are different. With “type:object” means “it has to be an object”. Without “type: object” means “it could be any type”. Azure SDK Track 2 generator will honor the difference, and generate different SDK codes.
+A free-form object would like:
+
+**How to fix the violation**:
+Just add the missing 'type:object'.
+
+The following would be valid:
+
+```json
+ "foo": {
+ "type":"object",
+ "properties": {
+ "a" : {
+ "type":"string"
+ }
+ ...
+ }
+ }
+```
+The following would be invalid by default (unless you do it on purpose , then a suppression is required):
+
+```json
+ "foo": {
+ "properties": {
+ "a" : {
+ "type":"string"
+ }
+ ...
+ }
+```
+Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rules](#automated-rules) | [ARM](#arm-violations): [Errors](#arm-errors) or [Warnings](#arm-warnings) | [SDK](#sdk-violations): [Errors](#sdk-errors) or [Warnings](#sdk-warnings)
diff --git a/documentation/samplefiles-dp/Microsoft.YourServiceName/stable/YYYY-MM-DD/YourServiceName.json b/documentation/samplefiles-dp/Microsoft.YourServiceName/stable/YYYY-MM-DD/YourServiceName.json
new file mode 100644
index 000000000000..e85f41fb8930
--- /dev/null
+++ b/documentation/samplefiles-dp/Microsoft.YourServiceName/stable/YYYY-MM-DD/YourServiceName.json
@@ -0,0 +1,126 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2019-12-01",
+ "title": "YourServiceName",
+ "description": "Description of the new service"
+ },
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{endpoint}",
+ "useSchemePrefix": true,
+ "positionInOperation": "first",
+ "parameters": [
+ {
+ "name": "endpoint",
+ "description": "The endpoint of the service",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ }
+ ]
+ },
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/service/{accountName}": {
+ "get": {
+ "tags": [
+ "Tag1"
+ ],
+ "operationId": "OperationGroup_Get",
+ "x-ms-examples": {
+ "BatchAccountDelete": {
+ "$ref": "./examples/OperationGroupGet.json"
+ }
+ },
+ "description": "This is a sample get operation, please see guidelines in azure-rest-api-specs repository for more info",
+ "parameters": [
+ {
+ "name": "accountName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the storage account."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Describe the result of a successful operation.",
+ "schema": {
+ "$ref": "#/definitions/Result"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Result": {
+ "description": "Sample result definition",
+ "properties": {
+ "sampleProperty": {
+ "type": "string",
+ "description": "Sample property of type string"
+ }
+ }
+ },
+ "ErrorResponse": {
+ "description": "Error response.",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/ErrorDefinition",
+ "description": "The error details."
+ }
+ }
+ },
+ "ErrorDefinition": {
+ "description": "Error definition.",
+ "properties": {
+ "code": {
+ "description": "Service specific error code which serves as the substatus for the HTTP error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Description of the error.",
+ "type": "string",
+ "readOnly": true
+ },
+ "details": {
+ "description": "Internal error details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDefinition"
+ },
+ "readOnly": true
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "The API version to be used with the HTTP request."
+ }
+ }
+}
diff --git a/documentation/samplefiles-dp/Microsoft.YourServiceName/stable/YYYY-MM-DD/examples/OperationGroupGet.json b/documentation/samplefiles-dp/Microsoft.YourServiceName/stable/YYYY-MM-DD/examples/OperationGroupGet.json
new file mode 100644
index 000000000000..32694aad128b
--- /dev/null
+++ b/documentation/samplefiles-dp/Microsoft.YourServiceName/stable/YYYY-MM-DD/examples/OperationGroupGet.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "api-version": "2019-12-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sampleacct",
+ "location": "uswest",
+ "id": "/service/sampleacct",
+ "type": "Microsoft.YourServiceName/YourServiceName"
+ }
+ }
+ }
+}
diff --git a/documentation/samplefiles-dp/samplereadme.md b/documentation/samplefiles-dp/samplereadme.md
new file mode 100644
index 000000000000..a420e16a77a3
--- /dev/null
+++ b/documentation/samplefiles-dp/samplereadme.md
@@ -0,0 +1,39 @@
+# [[ServiceName]]
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for [[ServiceName]].
+
+## Getting Started
+
+To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run:
+
+> `autorest readme.md`
+
+To see additional help and options, run:
+
+> `autorest --help`
+
+For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page.
+
+---
+
+## Configuration
+
+### Basic Information
+
+These are the global settings for the [[ServiceName]].
+
+```yaml
+openapi-type: [[OpenApiType]]
+tag: package-[[Version]]
+```
+
+### Tag: package-[[Version]]
+
+These settings apply only when `--tag=package-[[Version]]` is specified on the command line.
+
+```yaml $(tag) == 'package-[[Version]]'
+input-file:
+ - [[ResourceProviderName]]/[[ReleaseState]]/[[Version]]/[[ServiceName]].json
+```
diff --git a/documentation/samplefiles/readme.azureresourceschema.md b/documentation/samplefiles/readme.azureresourceschema.md
deleted file mode 100644
index 046d4f19febb..000000000000
--- a/documentation/samplefiles/readme.azureresourceschema.md
+++ /dev/null
@@ -1,23 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-[[ServiceName]]-[[Version]]
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-[[ServiceName]]-[[Version]] and azureresourceschema
-
-``` yaml $(tag) == 'schema-[[ServiceName]]-[[Version]]' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - [[ResourceProviderName]]/[[ReleaseState]]/[[Version]]/[[ServiceName]].json
-```
diff --git a/documentation/samplefiles/readme.python.md b/documentation/samplefiles/readme.python.md
index 9dd0b6674244..78ad9e67d936 100644
--- a/documentation/samplefiles/readme.python.md
+++ b/documentation/samplefiles/readme.python.md
@@ -9,6 +9,7 @@ license-header: MICROSOFT_MIT_NO_VERSION
package-name: azure-mgmt-[[ServiceName]]
no-namespace-folders: true
package-version: 1.0.0b1
+clear-output-folder: true
```
``` yaml $(python-mode) == 'update' && $(track2)
diff --git a/documentation/samplefiles/samplereadme.md b/documentation/samplefiles/samplereadme.md
index b26c8ef0b7fb..bce1228cf02e 100644
--- a/documentation/samplefiles/samplereadme.md
+++ b/documentation/samplefiles/samplereadme.md
@@ -54,8 +54,6 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js [[ServiceName]]/resource-manager
- repo: azure-cli-extensions
```
## Az
@@ -77,7 +75,3 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
## CSharp
See configuration in [readme.csharp.md](./readme.csharp.md)
-
-## AzureResourceSchema
-
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/package-lock.json b/package-lock.json
index 4097b8d804f1..c112b7c88c93 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2952,9 +2952,9 @@
"dev": true
},
"handlebars": {
- "version": "4.7.6",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz",
- "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==",
+ "version": "4.7.7",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
+ "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
"dev": true,
"requires": {
"minimist": "^1.2.5",
@@ -3764,7 +3764,7 @@
"requires": {
"esprima": "1.2.2",
"static-eval": "2.0.2",
- "underscore": "1.7.0"
+ "underscore": "^1.12.1"
},
"dependencies": {
"esprima": {
@@ -3850,9 +3850,9 @@
}
},
"lodash": {
- "version": "4.17.19",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
- "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
},
"lodash.flattendeep": {
@@ -5957,13 +5957,12 @@
"version": "3.12.1",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.1.tgz",
"integrity": "sha512-o8lHP20KjIiQe5b/67Rh68xEGRrc2SRsCuuoYclXXoC74AfSRGblU1HKzJWH3HxPZ+Ort85fWHpSX7KwBUC9CQ==",
- "dev": true,
"optional": true
},
"underscore": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
- "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
"dev": true
},
"union-value": {
@@ -6362,9 +6361,9 @@
"dev": true
},
"y18n": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
- "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
+ "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
"dev": true
},
"yargs": {
@@ -6667,12 +6666,6 @@
"requires": {
"ms": "2.1.2"
}
- },
- "lodash": {
- "version": "4.17.20",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
- "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
- "dev": true
}
}
},
diff --git a/specification/EnterpriseKnowledgeGraph/resource-manager/readme.azureresourceschema.md b/specification/EnterpriseKnowledgeGraph/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index b91b439d843d..000000000000
--- a/specification/EnterpriseKnowledgeGraph/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,24 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-enterpriseknowledgegraph-2018-12-03
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-enterpriseknowledgegraph-2018-12-03 and azureresourceschema
-
-``` yaml $(tag) == 'schema-enterpriseknowledgegraph-2018-12-03' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.EnterpriseKnowledgeGraph/preview/2018-12-03/EnterpriseKnowledgeGraphSwagger.json
-
-```
diff --git a/specification/EnterpriseKnowledgeGraph/resource-manager/readme.md b/specification/EnterpriseKnowledgeGraph/resource-manager/readme.md
index f829ac9dfbb7..4f18a8ac325f 100644
--- a/specification/EnterpriseKnowledgeGraph/resource-manager/readme.md
+++ b/specification/EnterpriseKnowledgeGraph/resource-manager/readme.md
@@ -76,8 +76,6 @@ swagger-to-sdk:
- repo: azure-sdk-for-python
- repo: azure-sdk-for-go
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js EnterpriseKnowledgeGraph/resource-manager
```
## C#
@@ -94,7 +92,5 @@ csharp:
clear-output-folder: true
```
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/addons/resource-manager/readme.azureresourceschema.md b/specification/addons/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index ae05babd8222..000000000000
--- a/specification/addons/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,36 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-addons-2018-03-01
- - tag: schema-addons-2017-05-15
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-addons-2018-03-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-addons-2018-03-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Addons/preview/2018-03-01/addons-swagger.json
-
-```
-
-### Tag: schema-addons-2017-05-15 and azureresourceschema
-
-``` yaml $(tag) == 'schema-addons-2017-05-15' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Addons/preview/2017-05-15/Addons.json
-
-```
diff --git a/specification/addons/resource-manager/readme.md b/specification/addons/resource-manager/readme.md
index 324507aa8113..2f93f9bd1cdb 100644
--- a/specification/addons/resource-manager/readme.md
+++ b/specification/addons/resource-manager/readme.md
@@ -58,8 +58,6 @@ This is not used by Autorest itself.
``` yaml $(swagger-to-sdk)
swagger-to-sdk:
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js addons/resource-manager
```
---
@@ -193,7 +191,5 @@ generate-interface: true
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/adhybridhealthservice/resource-manager/readme.azureresourceschema.md b/specification/adhybridhealthservice/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 7e60bb0023bb..000000000000
--- a/specification/adhybridhealthservice/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,24 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-adhybridhealthservice-2014-01-01
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-adhybridhealthservice-2014-01-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-adhybridhealthservice-2014-01-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.ADHybridHealthService/stable/2014-01-01/ADHybridHealthService.json
-
-```
diff --git a/specification/adhybridhealthservice/resource-manager/readme.md b/specification/adhybridhealthservice/resource-manager/readme.md
index 3fc780ac369b..99e1d0073cb3 100644
--- a/specification/adhybridhealthservice/resource-manager/readme.md
+++ b/specification/adhybridhealthservice/resource-manager/readme.md
@@ -55,8 +55,6 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-node
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js adhybridhealthservice/resource-manager
```
@@ -97,7 +95,5 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/adp/resource-manager/readme.azureresourceschema.md b/specification/adp/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index f707ad568d5e..000000000000
--- a/specification/adp/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,36 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-autonomousdevelopmentplatform-2021-02-01-preview
- - tag: schema-autonomousdevelopmentplatform-2020-07-01-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-autonomousdevelopmentplatform-2021-02-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-autonomousdevelopmentplatform-2021-02-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AutonomousDevelopmentPlatform/preview/2021-02-01-preview/adp.json
-
-```
-
-### Tag: schema-autonomousdevelopmentplatform-2020-07-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-autonomousdevelopmentplatform-2020-07-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/adp.json
-
-```
diff --git a/specification/adp/resource-manager/readme.md b/specification/adp/resource-manager/readme.md
index a0b4d1ae0bc7..533f76323c23 100644
--- a/specification/adp/resource-manager/readme.md
+++ b/specification/adp/resource-manager/readme.md
@@ -69,8 +69,6 @@ swagger-to-sdk:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_adp']
- repo: azure-cli-extensions
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js adp/resource-manager
```
## Go
@@ -93,6 +91,4 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
See configuration in [readme.csharp.md](./readme.csharp.md)
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/stable/2020-01-01/advisor.json b/specification/advisor/resource-manager/Microsoft.Advisor/stable/2020-01-01/advisor.json
index 79c4e4c96d42..789f65d262af 100644
--- a/specification/advisor/resource-manager/Microsoft.Advisor/stable/2020-01-01/advisor.json
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/stable/2020-01-01/advisor.json
@@ -46,7 +46,8 @@
"description": "Client sent unknown metadata name",
"schema": {
"$ref": "#/definitions/ARMErrorResponseBody"
- }
+ },
+ "x-ms-error-response": true
},
"default": {
"description": "Error response describing why the operation failed.",
@@ -589,7 +590,8 @@
"description": "Suppression name is not specified or Suppression Id not found.",
"schema": {
"$ref": "#/definitions/ArmErrorResponse"
- }
+ },
+ "x-ms-error-response": true
},
"default": {
"description": "Error response describing why the operation failed.",
@@ -657,7 +659,8 @@
"description": "Recommendation to be suppressed is not found.",
"schema": {
"$ref": "#/definitions/ArmErrorResponse"
- }
+ },
+ "x-ms-error-response": true
},
"default": {
"description": "Error response describing why the operation failed.",
diff --git a/specification/advisor/resource-manager/readme.azureresourceschema.md b/specification/advisor/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 8419f1c1778c..000000000000
--- a/specification/advisor/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,72 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-advisor-2020-07-01-preview
- - tag: schema-advisor-2020-01-01
- - tag: schema-advisor-2017-04-19
- - tag: schema-advisor-2017-03-31
- - tag: schema-advisor-2016-07-12-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-advisor-2020-07-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-advisor-2020-07-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Advisor/preview/2020-07-01-preview/advisor.json
-
-```
-
-### Tag: schema-advisor-2020-01-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-advisor-2020-01-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Advisor/stable/2020-01-01/advisor.json
-
-```
-
-### Tag: schema-advisor-2017-04-19 and azureresourceschema
-
-``` yaml $(tag) == 'schema-advisor-2017-04-19' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Advisor/stable/2017-04-19/advisor.json
-
-```
-
-### Tag: schema-advisor-2017-03-31 and azureresourceschema
-
-``` yaml $(tag) == 'schema-advisor-2017-03-31' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Advisor/stable/2017-03-31/advisor.json
-
-```
-
-### Tag: schema-advisor-2016-07-12-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-advisor-2016-07-12-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Advisor/preview/2016-07-12-preview/advisor.json
-
-```
diff --git a/specification/advisor/resource-manager/readme.md b/specification/advisor/resource-manager/readme.md
index 6f49edb7e77f..d631a4e49820 100644
--- a/specification/advisor/resource-manager/readme.md
+++ b/specification/advisor/resource-manager/readme.md
@@ -91,8 +91,6 @@ swagger-to-sdk:
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js advisor/resource-manager
```
## Python
@@ -162,7 +160,5 @@ csharp:
See configuration in [readme.java.md](./readme.java.md)
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/agfood.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/agfood.json
new file mode 100644
index 000000000000..945954613e93
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/agfood.json
@@ -0,0 +1,11826 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure AgFoodPlatform Data Plane Service",
+ "description": "APIs documentation for Azure AgPlatform DataPlane Service.",
+ "version": "2021-03-31-preview"
+ },
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{Endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ },
+ "paths": {
+ "/farmers/{farmerId}/application-data": {
+ "get": {
+ "tags": [
+ "ApplicationData"
+ ],
+ "description": "Returns a paginated list of application data resources under a particular farm.",
+ "operationId": "ApplicationData_ListByFarmerId",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "minAvgMaterial",
+ "description": "Minimum average amount of material applied during the application (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgMaterial",
+ "description": "Maximum average amount of material applied during the application (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minTotalMaterial",
+ "description": "Minimum total amount of material applied during the application (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxTotalMaterial",
+ "description": "Maximum total amount of material applied during the application (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "sources",
+ "description": "Sources of the operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "associatedBoundaryIds",
+ "description": "Boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "operationBoundaryIds",
+ "description": "Operation boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minOperationStartDateTime",
+ "description": "Minimum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationStartDateTime",
+ "description": "Maximum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationEndDateTime",
+ "description": "Minimum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationEndDateTime",
+ "description": "Maximum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationModifiedDateTime",
+ "description": "Minimum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationModifiedDateTime",
+ "description": "Maximum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minArea",
+ "description": "Minimum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxArea",
+ "description": "Maximum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ApplicationDataListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "ApplicationData_ListByFarmerId": {
+ "$ref": "./examples/ApplicationData_ListByFarmerId.json"
+ }
+ }
+ }
+ },
+ "/application-data": {
+ "get": {
+ "tags": [
+ "ApplicationData"
+ ],
+ "description": "Returns a paginated list of application data resources across all farmers.",
+ "operationId": "ApplicationData_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "minAvgMaterial",
+ "description": "Minimum average amount of material applied during the application (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgMaterial",
+ "description": "Maximum average amount of material applied during the application (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minTotalMaterial",
+ "description": "Minimum total amount of material applied during the application (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxTotalMaterial",
+ "description": "Maximum total amount of material applied during the application (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "sources",
+ "description": "Sources of the operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "associatedBoundaryIds",
+ "description": "Boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "operationBoundaryIds",
+ "description": "Operation boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minOperationStartDateTime",
+ "description": "Minimum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationStartDateTime",
+ "description": "Maximum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationEndDateTime",
+ "description": "Minimum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationEndDateTime",
+ "description": "Maximum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationModifiedDateTime",
+ "description": "Minimum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationModifiedDateTime",
+ "description": "Maximum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minArea",
+ "description": "Minimum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxArea",
+ "description": "Maximum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ApplicationDataListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "ApplicationData_List": {
+ "$ref": "./examples/ApplicationData_List.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/application-data/{applicationDataId}": {
+ "get": {
+ "tags": [
+ "ApplicationData"
+ ],
+ "description": "Get a specified application data resource under a particular farmer.",
+ "operationId": "ApplicationData_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "applicationDataId",
+ "description": "ID of the application data resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ApplicationData"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ApplicationData_Get": {
+ "$ref": "./examples/ApplicationData_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ApplicationData"
+ ],
+ "description": "Creates or updates an application data resource under a particular farmer.",
+ "operationId": "ApplicationData_CreateOrUpdate",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "applicationDataId",
+ "description": "ID of the application data resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "applicationData",
+ "description": "Application data resource payload to create or update.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationData"
+ }
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ApplicationData"
+ }
+ },
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ApplicationData"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ApplicationData_CreateOrUpdate": {
+ "$ref": "./examples/ApplicationData_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApplicationData"
+ ],
+ "description": "Deletes a specified application data resource under a particular farmer.",
+ "operationId": "ApplicationData_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "applicationDataId",
+ "description": "ID of the application data.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ApplicationData_Delete": {
+ "$ref": "./examples/ApplicationData_Delete.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/attachments": {
+ "get": {
+ "tags": [
+ "Attachments"
+ ],
+ "description": "Returns a paginated list of attachment resources under a particular farmer.",
+ "operationId": "Attachments_ListByFarmerId",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "resourceIds",
+ "description": "Resource Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "resourceTypes",
+ "description": "Resource Types of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AttachmentListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Attachments_ListByFarmerId": {
+ "$ref": "./examples/Attachments_ListByFarmerId.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/attachments/{attachmentId}": {
+ "get": {
+ "tags": [
+ "Attachments"
+ ],
+ "description": "Gets a specified attachment resource under a particular farmer.",
+ "operationId": "Attachments_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "attachmentId",
+ "description": "ID of the attachment.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Attachment"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Attachments_Get": {
+ "$ref": "./examples/Attachments_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Attachments"
+ ],
+ "description": "Creates or updates an attachment resource under a particular farmer.",
+ "operationId": "Attachments_CreateOrUpdate",
+ "consumes": [
+ "multipart/form-data"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "attachmentId",
+ "description": "ID of the attachment resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "formData",
+ "name": "file",
+ "description": "File to be uploaded.",
+ "type": "file",
+ "format": "binary"
+ },
+ {
+ "in": "formData",
+ "name": "FarmerId",
+ "description": "Farmer id for this attachment.",
+ "type": "string"
+ },
+ {
+ "in": "formData",
+ "name": "ResourceId",
+ "description": "Associated Resource id for this attachment.",
+ "type": "string"
+ },
+ {
+ "in": "formData",
+ "name": "ResourceType",
+ "description": "Associated Resource type for this attachment\r\ni.e. Farmer, Farm, Field, SeasonalField, Boundary, FarmOperationApplicationData, HarvestData, TillageData, PlantingData.",
+ "type": "string"
+ },
+ {
+ "in": "formData",
+ "name": "OriginalFileName",
+ "description": "Original File Name for this attachment.",
+ "type": "string"
+ },
+ {
+ "in": "formData",
+ "name": "Id",
+ "description": "Unique id.",
+ "type": "string"
+ },
+ {
+ "in": "formData",
+ "name": "Status",
+ "description": "Status of the resource.",
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 0
+ },
+ {
+ "in": "formData",
+ "name": "CreatedDateTime",
+ "description": "Date when resource was created.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "formData",
+ "name": "ModifiedDateTime",
+ "description": "Date when resource was last modified.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "formData",
+ "name": "Name",
+ "description": "Name to identify resource.",
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 0
+ },
+ {
+ "in": "formData",
+ "name": "Description",
+ "description": "Textual description of resource.",
+ "type": "string",
+ "maxLength": 500,
+ "minLength": 0
+ },
+ {
+ "in": "formData",
+ "name": "ETag",
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Attachment"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Attachment"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Attachments_CreateOrUpdate": {
+ "$ref": "./examples/Attachments_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Attachments"
+ ],
+ "description": "Deletes a specified attachment resource under a particular farmer.",
+ "operationId": "Attachments_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "attachmentId",
+ "description": "ID of the attachment.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Attachments_Delete": {
+ "$ref": "./examples/Attachments_Delete.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/attachments/{attachmentId}/file": {
+ "get": {
+ "tags": [
+ "Attachments"
+ ],
+ "description": "Downloads and returns attachment as response for the given input filePath.",
+ "operationId": "Attachments_Download",
+ "produces": [
+ "application/octet-stream",
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "attachmentId",
+ "description": "ID of attachment to be downloaded.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "format": "binary",
+ "type": "file"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Attachments_Download": {
+ "$ref": "./examples/Attachments_Download.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/boundaries": {
+ "get": {
+ "tags": [
+ "Boundaries"
+ ],
+ "description": "Returns a paginated list of boundary resources under a particular farmer.",
+ "operationId": "Boundaries_ListByFarmerId",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "isPrimary",
+ "description": "Is the boundary primary.",
+ "type": "boolean"
+ },
+ {
+ "in": "query",
+ "name": "parentType",
+ "description": "Type of the parent it belongs to.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "parentIds",
+ "description": "Parent Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minAcreage",
+ "description": "Minimum acreage of the boundary (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAcreage",
+ "description": "Maximum acreage of the boundary (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/BoundaryListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Boundaries_ListByFarmerId": {
+ "$ref": "./examples/Boundaries_ListByFarmerId.json"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Boundaries"
+ ],
+ "description": "Search for boundaries by fields and intersecting geometry.",
+ "operationId": "Boundaries_SearchByFarmerId",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "query",
+ "description": "Query filters.",
+ "schema": {
+ "$ref": "#/definitions/SearchBoundaryQuery"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/BoundaryListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Boundaries_SearchByFarmerId": {
+ "$ref": "./examples/Boundaries_SearchByFarmerId.json"
+ }
+ }
+ }
+ },
+ "/boundaries": {
+ "get": {
+ "tags": [
+ "Boundaries"
+ ],
+ "description": "Returns a paginated list of boundary resources across all farmers.",
+ "operationId": "Boundaries_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "isPrimary",
+ "description": "Is the boundary primary.",
+ "type": "boolean"
+ },
+ {
+ "in": "query",
+ "name": "parentType",
+ "description": "Type of the parent it belongs to.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "parentIds",
+ "description": "Parent Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minAcreage",
+ "description": "Minimum acreage of the boundary (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAcreage",
+ "description": "Maximum acreage of the boundary (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/BoundaryListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Boundaries_List": {
+ "$ref": "./examples/Boundaries_List.json"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Boundaries"
+ ],
+ "description": "Search for boundaries across all farmers by fields and intersecting geometry.",
+ "operationId": "Boundaries_Search",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "query",
+ "description": "Query filters.",
+ "schema": {
+ "$ref": "#/definitions/SearchBoundaryQuery"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/BoundaryListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Boundaries_Search": {
+ "$ref": "./examples/Boundaries_Search.json"
+ }
+ }
+ }
+ },
+ "/boundaries/cascade-delete/{jobId}": {
+ "get": {
+ "tags": [
+ "Boundaries"
+ ],
+ "description": "Get cascade delete job for specified boundary.",
+ "operationId": "Boundaries_GetCascadeDeleteJobDetails",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "ID of the job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CascadeDeleteJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Boundaries_GetCascadeDeleteJobDetails": {
+ "$ref": "./examples/Boundaries_GetCascadeDeleteJobDetails.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Boundaries"
+ ],
+ "description": "Create a cascade delete job for specified boundary.",
+ "operationId": "Boundaries_CreateCascadeDeleteJob",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "Job ID supplied by end user.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "boundaryId",
+ "description": "ID of the boundary to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CascadeDeleteJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Boundaries_CreateCascadeDeleteJob": {
+ "$ref": "./examples/Boundaries_CreateCascadeDeleteJob.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/boundaries/{boundaryId}": {
+ "get": {
+ "tags": [
+ "Boundaries"
+ ],
+ "description": "Gets a specified boundary resource under a particular farmer.",
+ "operationId": "Boundaries_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "boundaryId",
+ "description": "ID of the boundary.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Boundary"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Boundaries_Get": {
+ "$ref": "./examples/Boundaries_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Boundaries"
+ ],
+ "description": "Creates or updates a boundary resource.",
+ "operationId": "Boundaries_CreateOrUpdate",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "boundaryId",
+ "description": "ID of the boundary resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "boundary",
+ "description": "Boundary resource payload to create or update.",
+ "schema": {
+ "$ref": "#/definitions/Boundary"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Boundary"
+ }
+ },
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Boundary"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Boundaries_CreateOrUpdate": {
+ "$ref": "./examples/Boundaries_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Boundaries"
+ ],
+ "description": "Deletes a specified boundary resource under a particular farmer.",
+ "operationId": "Boundaries_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "boundaryId",
+ "description": "ID of the boundary.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Boundaries_Delete": {
+ "$ref": "./examples/Boundaries_Delete.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/boundaries/{boundaryId}/overlap": {
+ "get": {
+ "tags": [
+ "Boundaries"
+ ],
+ "description": "Returns overlapping acreage between two boundary Ids.",
+ "operationId": "Boundaries_GetOverlap",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "boundaryId",
+ "description": "ID of the boundary.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "otherFarmerId",
+ "description": "FarmerId of the other field.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "otherBoundaryId",
+ "description": "ID of the other boundary.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/BoundaryOverlapResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Boundaries_GetOverlap": {
+ "$ref": "./examples/Boundaries_GetOverlap.json"
+ }
+ }
+ }
+ },
+ "/crops": {
+ "get": {
+ "tags": [
+ "Crops"
+ ],
+ "description": "Returns a paginated list of crop resources.",
+ "operationId": "Crops_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "phenotypes",
+ "description": "Crop phenotypes of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CropListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Crops_List": {
+ "$ref": "./examples/Crops_List.json"
+ }
+ }
+ }
+ },
+ "/crops/{cropId}": {
+ "get": {
+ "tags": [
+ "Crops"
+ ],
+ "description": "Gets a specified crop resource.",
+ "operationId": "Crops_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "cropId",
+ "description": "ID of the crop.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Crop"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Crops_Get": {
+ "$ref": "./examples/Crops_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Crops"
+ ],
+ "description": "Creates or updates a crop resource.",
+ "operationId": "Crops_CreateOrUpdate",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "cropId",
+ "description": "ID of the crop resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "crop",
+ "description": "Crop resource payload to create or update.",
+ "schema": {
+ "$ref": "#/definitions/Crop"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Crop"
+ }
+ },
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Crop"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Crops_CreateOrUpdate": {
+ "$ref": "./examples/Crops_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Crops"
+ ],
+ "description": "Deletes Crop for given crop id.",
+ "operationId": "Crops_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "cropId",
+ "description": "ID of crop to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Crops_Delete": {
+ "$ref": "./examples/Crops_Delete.json"
+ }
+ }
+ }
+ },
+ "/crops/{cropId}/crop-varieties": {
+ "get": {
+ "tags": [
+ "CropVarieties"
+ ],
+ "description": "Returns a paginated list of crop variety resources under a particular crop.",
+ "operationId": "CropVarieties_ListByCropId",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "cropId",
+ "description": "ID of the associated crop.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "cropIds",
+ "description": "CropIds of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "brands",
+ "description": "Brands of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "products",
+ "description": "Products of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CropVarietyListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "CropVarieties_ListByCropId": {
+ "$ref": "./examples/CropVarieties_ListByCropId.json"
+ }
+ }
+ }
+ },
+ "/crop-varieties": {
+ "get": {
+ "tags": [
+ "CropVarieties"
+ ],
+ "description": "Returns a paginated list of crop variety resources across all crops.",
+ "operationId": "CropVarieties_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "cropIds",
+ "description": "CropIds of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "brands",
+ "description": "Brands of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "products",
+ "description": "Products of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CropVarietyListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "CropVarieties_List": {
+ "$ref": "./examples/CropVarieties_List.json"
+ }
+ }
+ }
+ },
+ "/crops/{cropId}/crop-varieties/{cropVarietyId}": {
+ "get": {
+ "tags": [
+ "CropVarieties"
+ ],
+ "description": "Gets a specified crop variety resource under a particular crop.",
+ "operationId": "CropVarieties_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "cropId",
+ "description": "ID of the associated crop.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "cropVarietyId",
+ "description": "ID of the crop variety.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CropVariety"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "CropVarieties_Get": {
+ "$ref": "./examples/CropVarieties_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "CropVarieties"
+ ],
+ "description": "Creates or updates a crop variety resource.",
+ "operationId": "CropVarieties_CreateOrUpdate",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "cropId",
+ "description": "ID of the crop resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "cropVarietyId",
+ "description": "ID of the crop variety resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "cropVariety",
+ "description": "Crop variety resource payload to create or update.",
+ "schema": {
+ "$ref": "#/definitions/CropVariety"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CropVariety"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CropVariety"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "CropVarieties_CreateOrUpdate": {
+ "$ref": "./examples/CropVarieties_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "CropVarieties"
+ ],
+ "description": "Deletes a specified crop variety resource under a particular crop.",
+ "operationId": "CropVarieties_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "cropId",
+ "description": "ID of the crop.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "cropVarietyId",
+ "description": "ID of the crop variety.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "CropVarieties_Delete": {
+ "$ref": "./examples/CropVarieties_Delete.json"
+ }
+ }
+ }
+ },
+ "/farmers": {
+ "get": {
+ "tags": [
+ "Farmers"
+ ],
+ "description": "Returns a paginated list of farmer resources.",
+ "operationId": "Farmers_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FarmerListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Farmers_List": {
+ "$ref": "./examples/Farmers_List.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}": {
+ "get": {
+ "tags": [
+ "Farmers"
+ ],
+ "description": "Gets a specified farmer resource.",
+ "operationId": "Farmers_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Farmer"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Farmers_Get": {
+ "$ref": "./examples/Farmers_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Farmers"
+ ],
+ "description": "Creates or updates a farmer resource.",
+ "operationId": "Farmers_CreateOrUpdate",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "farmer",
+ "description": "Farmer resource payload to create or update.",
+ "schema": {
+ "$ref": "#/definitions/Farmer"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Farmer"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Farmer"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Farmers_CreateOrUpdate": {
+ "$ref": "./examples/Farmers_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Farmers"
+ ],
+ "description": "Deletes a specified farmer resource.",
+ "operationId": "Farmers_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of farmer to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Farmers_Delete": {
+ "$ref": "./examples/Farmers_Delete.json"
+ }
+ }
+ }
+ },
+ "/farmers/cascade-delete/{jobId}": {
+ "get": {
+ "tags": [
+ "Farmers"
+ ],
+ "description": "Get a cascade delete job for specified farmer.",
+ "operationId": "Farmers_GetCascadeDeleteJobDetails",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "ID of the job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CascadeDeleteJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Farmers_GetCascadeDeleteJobDetails": {
+ "$ref": "./examples/Farmers_GetCascadeDeleteJobDetails.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Farmers"
+ ],
+ "description": "Create a cascade delete job for specified farmer.",
+ "operationId": "Farmers_CreateCascadeDeleteJob",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "Job ID supplied by end user.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "farmerId",
+ "description": "ID of the farmer to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CascadeDeleteJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Farmers_CreateCascadeDeleteJob": {
+ "$ref": "./examples/Farmers_CreateCascadeDeleteJob.json"
+ }
+ }
+ }
+ },
+ "/farm-operations/ingest-data/{jobId}": {
+ "put": {
+ "tags": [
+ "FarmOperations"
+ ],
+ "description": "Create a farm operation data ingestion job.",
+ "operationId": "FarmOperations_CreateDataIngestionJob",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "Job ID supplied by user.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "job",
+ "description": "Job parameters supplied by user.",
+ "schema": {
+ "$ref": "#/definitions/FarmOperationDataIngestionJob"
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FarmOperationDataIngestionJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "FarmOperations_CreateDataIngestionJob": {
+ "$ref": "./examples/FarmOperations_CreateDataIngestionJob.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "FarmOperations"
+ ],
+ "description": "Get a farm operation data ingestion job.",
+ "operationId": "FarmOperations_GetDataIngestionJobDetails",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "ID of the job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FarmOperationDataIngestionJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "FarmOperations_GetDataIngestionJobDetails": {
+ "$ref": "./examples/FarmOperations_GetDataIngestionJobDetails.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/farms": {
+ "get": {
+ "tags": [
+ "Farms"
+ ],
+ "description": "Returns a paginated list of farm resources under a particular farmer.",
+ "operationId": "Farms_ListByFarmerId",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FarmListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Farms_ListByFarmerId": {
+ "$ref": "./examples/Farms_ListByFarmerId.json"
+ }
+ }
+ }
+ },
+ "/farms": {
+ "get": {
+ "tags": [
+ "Farms"
+ ],
+ "description": "Returns a paginated list of farm resources across all farmers.",
+ "operationId": "Farms_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FarmListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Farms_List": {
+ "$ref": "./examples/Farms_List.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/farms/{farmId}": {
+ "get": {
+ "tags": [
+ "Farms"
+ ],
+ "description": "Gets a specified farm resource under a particular farmer.",
+ "operationId": "Farms_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "farmId",
+ "description": "ID of the farm resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Farm"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Farms_Get": {
+ "$ref": "./examples/Farms_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Farms"
+ ],
+ "description": "Creates or updates a farm resource under a particular farmer.",
+ "operationId": "Farms_CreateOrUpdate",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "farmId",
+ "description": "ID of the farm resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "farm",
+ "description": "Farm resource payload to create or update.",
+ "schema": {
+ "$ref": "#/definitions/Farm"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Farm"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Farm"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Farms_CreateOrUpdate": {
+ "$ref": "./examples/Farms_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Farms"
+ ],
+ "description": "Deletes a specified farm resource under a particular farmer.",
+ "operationId": "Farms_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "farmId",
+ "description": "ID of the farm.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Farms_Delete": {
+ "$ref": "./examples/Farms_Delete.json"
+ }
+ }
+ }
+ },
+ "/farms/cascade-delete/{jobId}": {
+ "get": {
+ "tags": [
+ "Farms"
+ ],
+ "description": "Get a cascade delete job for specified farm.",
+ "operationId": "Farms_GetCascadeDeleteJobDetails",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "ID of the job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CascadeDeleteJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Farms_GetCascadeDeleteJobDetails": {
+ "$ref": "./examples/Farms_GetCascadeDeleteJobDetails.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Farms"
+ ],
+ "description": "Create a cascade delete job for specified farm.",
+ "operationId": "Farms_CreateCascadeDeleteJob",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "Job ID supplied by end user.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "farmId",
+ "description": "ID of the farm to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CascadeDeleteJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Farms_CreateCascadeDeleteJob": {
+ "$ref": "./examples/Farms_CreateCascadeDeleteJob.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/fields": {
+ "get": {
+ "tags": [
+ "Fields"
+ ],
+ "description": "Returns a paginated list of field resources under a particular farmer.",
+ "operationId": "Fields_ListByFarmerId",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "farmIds",
+ "description": "Farm Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FieldListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Fields_ListByFarmerId": {
+ "$ref": "./examples/Fields_ListByFarmerId.json"
+ }
+ }
+ }
+ },
+ "/fields": {
+ "get": {
+ "tags": [
+ "Fields"
+ ],
+ "description": "Returns a paginated list of field resources across all farmers.",
+ "operationId": "Fields_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "farmIds",
+ "description": "Farm Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FieldListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Fields_List": {
+ "$ref": "./examples/Fields_List.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/fields/{fieldId}": {
+ "get": {
+ "tags": [
+ "Fields"
+ ],
+ "description": "Gets a specified field resource under a particular farmer.",
+ "operationId": "Fields_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "fieldId",
+ "description": "ID of the field.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Field"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Fields_Get": {
+ "$ref": "./examples/Fields_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Fields"
+ ],
+ "description": "Creates or Updates a field resource under a particular farmer.",
+ "operationId": "Fields_CreateOrUpdate",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "fieldId",
+ "description": "ID of the field resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "field",
+ "description": "Field resource payload to create or update.",
+ "schema": {
+ "$ref": "#/definitions/Field"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Field"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Field"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Fields_CreateOrUpdate": {
+ "$ref": "./examples/Fields_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Fields"
+ ],
+ "description": "Deletes a specified field resource under a particular farmer.",
+ "operationId": "Fields_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "fieldId",
+ "description": "ID of the field.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Fields_Delete": {
+ "$ref": "./examples/Fields_Delete.json"
+ }
+ }
+ }
+ },
+ "/fields/cascade-delete/{jobId}": {
+ "get": {
+ "tags": [
+ "Fields"
+ ],
+ "description": "Get a cascade delete job for specified field.",
+ "operationId": "Fields_GetCascadeDeleteJobDetails",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "ID of the job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CascadeDeleteJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Fields_GetCascadeDeleteJobDetails": {
+ "$ref": "./examples/Fields_GetCascadeDeleteJobDetails.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Fields"
+ ],
+ "description": "Create a cascade delete job for specified field.",
+ "operationId": "Fields_CreateCascadeDeleteJob",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "Job ID supplied by end user.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "fieldId",
+ "description": "ID of the field to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CascadeDeleteJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Fields_CreateCascadeDeleteJob": {
+ "$ref": "./examples/Fields_CreateCascadeDeleteJob.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/harvest-data": {
+ "get": {
+ "tags": [
+ "HarvestData"
+ ],
+ "description": "Returns a paginated list of harvest data resources under a particular farm.",
+ "operationId": "HarvestData_ListByFarmerId",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "minTotalYield",
+ "description": "Minimum Yield value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxTotalYield",
+ "description": "Maximum Yield value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minAvgYield",
+ "description": "Minimum AvgYield value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgYield",
+ "description": "Maximum AvgYield value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minTotalWetMass",
+ "description": "Minimum Total WetMass value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxTotalWetMass",
+ "description": "Maximum Total WetMass value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minAvgWetMass",
+ "description": "Minimum AvgWetMass value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgWetMass",
+ "description": "Maximum AvgWetMass value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minAvgMoisture",
+ "description": "Minimum AvgMoisture value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgMoisture",
+ "description": "Maximum AvgMoisture value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minAvgSpeed",
+ "description": "Minimum AvgSpeed value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgSpeed",
+ "description": "Maximum AvgSpeed value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "sources",
+ "description": "Sources of the operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "associatedBoundaryIds",
+ "description": "Boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "operationBoundaryIds",
+ "description": "Operation boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minOperationStartDateTime",
+ "description": "Minimum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationStartDateTime",
+ "description": "Maximum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationEndDateTime",
+ "description": "Minimum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationEndDateTime",
+ "description": "Maximum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationModifiedDateTime",
+ "description": "Minimum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationModifiedDateTime",
+ "description": "Maximum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minArea",
+ "description": "Minimum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxArea",
+ "description": "Maximum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/HarvestDataListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "HarvestData_ListByFarmerId": {
+ "$ref": "./examples/HarvestData_ListByFarmerId.json"
+ }
+ }
+ }
+ },
+ "/harvest-data": {
+ "get": {
+ "tags": [
+ "HarvestData"
+ ],
+ "description": "Returns a paginated list of harvest data resources across all farmers.",
+ "operationId": "HarvestData_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "minTotalYield",
+ "description": "Minimum Yield value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxTotalYield",
+ "description": "Maximum Yield value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minAvgYield",
+ "description": "Minimum AvgYield value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgYield",
+ "description": "Maximum AvgYield value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minTotalWetMass",
+ "description": "Minimum Total WetMass value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxTotalWetMass",
+ "description": "Maximum Total WetMass value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minAvgWetMass",
+ "description": "Minimum AvgWetMass value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgWetMass",
+ "description": "Maximum AvgWetMass value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minAvgMoisture",
+ "description": "Minimum AvgMoisture value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgMoisture",
+ "description": "Maximum AvgMoisture value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minAvgSpeed",
+ "description": "Minimum AvgSpeed value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgSpeed",
+ "description": "Maximum AvgSpeed value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "sources",
+ "description": "Sources of the operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "associatedBoundaryIds",
+ "description": "Boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "operationBoundaryIds",
+ "description": "Operation boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minOperationStartDateTime",
+ "description": "Minimum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationStartDateTime",
+ "description": "Maximum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationEndDateTime",
+ "description": "Minimum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationEndDateTime",
+ "description": "Maximum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationModifiedDateTime",
+ "description": "Minimum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationModifiedDateTime",
+ "description": "Maximum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minArea",
+ "description": "Minimum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxArea",
+ "description": "Maximum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/HarvestDataListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "HarvestData_List": {
+ "$ref": "./examples/HarvestData_List.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/harvest-data/{harvestDataId}": {
+ "get": {
+ "tags": [
+ "HarvestData"
+ ],
+ "description": "Get a specified harvest data resource under a particular farmer.",
+ "operationId": "HarvestData_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "harvestDataId",
+ "description": "ID of the harvest data resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/HarvestData"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "HarvestData_Get": {
+ "$ref": "./examples/HarvestData_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "HarvestData"
+ ],
+ "description": "Creates or updates harvest data resource under a particular farmer.",
+ "operationId": "HarvestData_CreateOrUpdate",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "harvestDataId",
+ "description": "ID of the harvest data resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "harvestData",
+ "description": "Harvest data resource payload to create or update.",
+ "schema": {
+ "$ref": "#/definitions/HarvestData"
+ }
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/HarvestData"
+ }
+ },
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/HarvestData"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "HarvestData_CreateOrUpdate": {
+ "$ref": "./examples/HarvestData_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "HarvestData"
+ ],
+ "description": "Deletes a specified harvest data resource under a particular farmer.",
+ "operationId": "HarvestData_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "harvestDataId",
+ "description": "ID of the harvest data.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "HarvestData_Delete": {
+ "$ref": "./examples/HarvestData_Delete.json"
+ }
+ }
+ }
+ },
+ "/image-processing/rasterize/{jobId}": {
+ "put": {
+ "tags": [
+ "ImageProcessing"
+ ],
+ "description": "Create a ImageProcessing Rasterize job.",
+ "operationId": "ImageProcessing_CreateRasterizeJob",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "JobId provided by user.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "job",
+ "description": "Job parameters supplied by user.",
+ "schema": {
+ "$ref": "#/definitions/ImageProcessingRasterizeJob"
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ImageProcessingRasterizeJob"
+ }
+ },
+ "default": {
+ "description": "Error"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "ImageProcessing_CreateRasterizeJob": {
+ "$ref": "./examples/ImageProcessing_CreateRasterizeJob.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ImageProcessing"
+ ],
+ "description": "Get ImageProcessing Rasterize job's details.",
+ "operationId": "ImageProcessing_GetRasterizeJob",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "ID of the job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ImageProcessingRasterizeJob"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ImageProcessing_GetRasterizeJob": {
+ "$ref": "./examples/ImageProcessing_GetRasterizeJob.json"
+ }
+ }
+ }
+ },
+ "/oauth/providers": {
+ "get": {
+ "tags": [
+ "OAuthProviders"
+ ],
+ "description": "Returns a paginated list of oauthProvider resources.",
+ "operationId": "OAuthProviders_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/OAuthProviderListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "OAuthProviders_List": {
+ "$ref": "./examples/OAuthProviders_List.json"
+ }
+ }
+ }
+ },
+ "/oauth/providers/{oauthProviderId}": {
+ "get": {
+ "tags": [
+ "OAuthProviders"
+ ],
+ "description": "Get a specified oauthProvider resource.",
+ "operationId": "OAuthProviders_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "oauthProviderId",
+ "description": "ID of the oauthProvider resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/OAuthProvider"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "OAuthProviders_Get": {
+ "$ref": "./examples/OAuthProviders_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "OAuthProviders"
+ ],
+ "description": "Creates or updates an oauthProvider resource.",
+ "operationId": "OAuthProviders_CreateOrUpdate",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "oauthProviderId",
+ "description": "ID of oauthProvider resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "oauthProvider",
+ "description": "OauthProvider resource payload to create or update.",
+ "schema": {
+ "$ref": "#/definitions/OAuthProvider"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/OAuthProvider"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/OAuthProvider"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "OAuthProviders_CreateOrUpdate": {
+ "$ref": "./examples/OAuthProviders_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "OAuthProviders"
+ ],
+ "description": "Deletes an specified oauthProvider resource.",
+ "operationId": "OAuthProviders_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "oauthProviderId",
+ "description": "ID of oauthProvider.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "OAuthProviders_Delete": {
+ "$ref": "./examples/OAuthProviders_Delete.json"
+ }
+ }
+ }
+ },
+ "/oauth/tokens": {
+ "get": {
+ "tags": [
+ "OAuthTokens"
+ ],
+ "description": "Returns a list of OAuthToken documents.",
+ "operationId": "OAuthTokens_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "authProviderIds",
+ "description": "Name of AuthProvider.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "farmerIds",
+ "description": "List of farmers.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "isValid",
+ "description": "If the token object is valid.",
+ "type": "boolean"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/OAuthTokenListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "OAuthTokens_List": {
+ "$ref": "./examples/OAuthTokens_List.json"
+ }
+ }
+ }
+ },
+ "/oauth/tokens/:connect": {
+ "post": {
+ "tags": [
+ "OAuthTokens"
+ ],
+ "description": "Returns Connection link needed in the OAuth flow.",
+ "operationId": "OAuthTokens_GetOAuthConnectionLink",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "connectRequest",
+ "description": "OAuth Connect Request.",
+ "schema": {
+ "$ref": "#/definitions/OAuthConnectRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "type": "string"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "OAuthTokens_GetOAuthConnectionLink": {
+ "$ref": "./examples/OAuthTokens_GetOAuthConnectionLink.json"
+ }
+ }
+ }
+ },
+ "/oauth/tokens/remove/{jobId}": {
+ "get": {
+ "tags": [
+ "OAuthTokens"
+ ],
+ "description": "Get cascade delete job details for OAuth tokens for specified job ID.",
+ "operationId": "OAuthTokens_GetCascadeDeleteJobDetails",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "ID of the job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CascadeDeleteJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "OAuthTokens_GetCascadeDeleteJobDetails": {
+ "$ref": "./examples/OAuthTokens_GetCascadeDeleteJobDetails.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "OAuthTokens"
+ ],
+ "description": "Create a cascade delete job for OAuth tokens.",
+ "operationId": "OAuthTokens_CreateCascadeDeleteJob",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "Job ID supplied by end user.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "farmerId",
+ "description": "ID of the farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "oauthProviderId",
+ "description": "ID of the OAuthProvider.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CascadeDeleteJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "OAuthTokens_CreateCascadeDeleteJob": {
+ "$ref": "./examples/OAuthTokens_CreateCascadeDeleteJob.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/planting-data": {
+ "get": {
+ "tags": [
+ "PlantingData"
+ ],
+ "description": "Returns a paginated list of planting data resources under a particular farm.",
+ "operationId": "PlantingData_ListByFarmerId",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "minAvgPlantingRate",
+ "description": "Minimum AvgPlantingRate value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgPlantingRate",
+ "description": "Maximum AvgPlantingRate value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minTotalMaterial",
+ "description": "Minimum TotalMaterial value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxTotalMaterial",
+ "description": "Maximum TotalMaterial value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minAvgMaterial",
+ "description": "Minimum AvgMaterial value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgMaterial",
+ "description": "Maximum AvgMaterial value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "sources",
+ "description": "Sources of the operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "associatedBoundaryIds",
+ "description": "Boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "operationBoundaryIds",
+ "description": "Operation boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minOperationStartDateTime",
+ "description": "Minimum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationStartDateTime",
+ "description": "Maximum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationEndDateTime",
+ "description": "Minimum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationEndDateTime",
+ "description": "Maximum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationModifiedDateTime",
+ "description": "Minimum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationModifiedDateTime",
+ "description": "Maximum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minArea",
+ "description": "Minimum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxArea",
+ "description": "Maximum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/PlantingDataListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "PlantingData_ListByFarmerId": {
+ "$ref": "./examples/PlantingData_ListByFarmerId.json"
+ }
+ }
+ }
+ },
+ "/planting-data": {
+ "get": {
+ "tags": [
+ "PlantingData"
+ ],
+ "description": "Returns a paginated list of planting data resources across all farmers.",
+ "operationId": "PlantingData_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "minAvgPlantingRate",
+ "description": "Minimum AvgPlantingRate value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgPlantingRate",
+ "description": "Maximum AvgPlantingRate value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minTotalMaterial",
+ "description": "Minimum TotalMaterial value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxTotalMaterial",
+ "description": "Maximum TotalMaterial value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minAvgMaterial",
+ "description": "Minimum AvgMaterial value(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgMaterial",
+ "description": "Maximum AvgMaterial value (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "sources",
+ "description": "Sources of the operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "associatedBoundaryIds",
+ "description": "Boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "operationBoundaryIds",
+ "description": "Operation boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minOperationStartDateTime",
+ "description": "Minimum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationStartDateTime",
+ "description": "Maximum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationEndDateTime",
+ "description": "Minimum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationEndDateTime",
+ "description": "Maximum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationModifiedDateTime",
+ "description": "Minimum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationModifiedDateTime",
+ "description": "Maximum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minArea",
+ "description": "Minimum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxArea",
+ "description": "Maximum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/PlantingDataListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "PlantingData_List": {
+ "$ref": "./examples/PlantingData_List.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/planting-data/{plantingDataId}": {
+ "get": {
+ "tags": [
+ "PlantingData"
+ ],
+ "description": "Get a specified planting data resource under a particular farmer.",
+ "operationId": "PlantingData_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "plantingDataId",
+ "description": "ID of the planting data resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/PlantingData"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PlantingData_Get": {
+ "$ref": "./examples/PlantingData_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "PlantingData"
+ ],
+ "description": "Creates or updates an planting data resource under a particular farmer.",
+ "operationId": "PlantingData_CreateOrUpdate",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "plantingDataId",
+ "description": "ID of the planting data resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "plantingData",
+ "description": "Planting data resource payload to create or update.",
+ "schema": {
+ "$ref": "#/definitions/PlantingData"
+ }
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/PlantingData"
+ }
+ },
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/PlantingData"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PlantingData_CreateOrUpdate": {
+ "$ref": "./examples/PlantingData_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "PlantingData"
+ ],
+ "description": "Deletes a specified planting data resource under a particular farmer.",
+ "operationId": "PlantingData_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "plantingDataId",
+ "description": "ID of the planting data.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PlantingData_Delete": {
+ "$ref": "./examples/PlantingData_Delete.json"
+ }
+ }
+ }
+ },
+ "/scenes": {
+ "get": {
+ "tags": [
+ "Scenes"
+ ],
+ "description": "Returns a paginated list of scene resources.",
+ "operationId": "Scenes_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "provider",
+ "description": "Provider name of scene data.",
+ "required": true,
+ "type": "string",
+ "default": "Microsoft"
+ },
+ {
+ "in": "query",
+ "name": "farmerId",
+ "description": "FarmerId.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "boundaryId",
+ "description": "BoundaryId.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "source",
+ "description": "Source name of scene data, default value Sentinel_2_L2A (Sentinel 2 L2A).",
+ "type": "string",
+ "default": "Sentinel_2_L2A"
+ },
+ {
+ "in": "query",
+ "name": "startDateTime",
+ "description": "Scene start UTC datetime (inclusive), sample format: yyyy-MM-ddThh:mm:ssZ.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "endDateTime",
+ "description": "Scene end UTC datetime (inclusive), sample format: yyyy-MM-dThh:mm:ssZ.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCloudCoveragePercentage",
+ "description": "Filter scenes with cloud coverage percentage less than max value. Range [0 to 100.0].",
+ "type": "number",
+ "format": "double",
+ "default": 100,
+ "maximum": 100,
+ "minimum": 0
+ },
+ {
+ "in": "query",
+ "name": "maxDarkPixelCoveragePercentage",
+ "description": "Filter scenes with dark pixel coverage percentage less than max value. Range [0 to 100.0].",
+ "type": "number",
+ "format": "double",
+ "default": 100,
+ "maximum": 100,
+ "minimum": 0
+ },
+ {
+ "in": "query",
+ "name": "imageNames",
+ "description": "List of image names to be filtered.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "imageResolutions",
+ "description": "List of image resolutions in meters to be filtered.",
+ "type": "array",
+ "items": {
+ "format": "double",
+ "type": "number"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "imageFormats",
+ "description": "List of image formats to be filtered.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/SceneListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Scenes_List": {
+ "$ref": "./examples/Scenes_List.json"
+ }
+ }
+ }
+ },
+ "/scenes/satellite/ingest-data/{jobId}": {
+ "put": {
+ "tags": [
+ "Scenes"
+ ],
+ "description": "Create a satellite data ingestion job.",
+ "operationId": "Scenes_CreateSatelliteDataIngestionJob",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "JobId provided by user.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "job",
+ "description": "Job parameters supplied by user.",
+ "schema": {
+ "$ref": "#/definitions/SatelliteDataIngestionJob"
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/SatelliteDataIngestionJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Scenes_CreateSatelliteDataIngestionJob": {
+ "$ref": "./examples/Scenes_CreateSatelliteDataIngestionJob.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Scenes"
+ ],
+ "description": "Get a satellite data ingestion job.",
+ "operationId": "Scenes_GetSatelliteDataIngestionJobDetails",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "ID of the job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/SatelliteDataIngestionJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Scenes_GetSatelliteDataIngestionJobDetails": {
+ "$ref": "./examples/Scenes_GetSatelliteDataIngestionJobDetails.json"
+ }
+ }
+ }
+ },
+ "/scenes/downloadFiles": {
+ "get": {
+ "tags": [
+ "Scenes"
+ ],
+ "description": "Downloads and returns file stream as response for the given input filePath.",
+ "operationId": "Scenes_Download",
+ "produces": [
+ "application/octet-stream",
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "filePath",
+ "description": "cloud storage path of scene file.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "format": "binary",
+ "type": "file"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Scenes_Download": {
+ "$ref": "./examples/Scenes_Download.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/seasonal-fields": {
+ "get": {
+ "tags": [
+ "SeasonalFields"
+ ],
+ "description": "Returns a paginated list of seasonal field resources under a particular farmer.",
+ "operationId": "SeasonalFields_ListByFarmerId",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "farmIds",
+ "description": "Farm Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "fieldIds",
+ "description": "Field Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "seasonIds",
+ "description": "Season Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "cropVarietyIds",
+ "description": "CropVarietyIds of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "cropIds",
+ "description": "Ids of the crop it belongs to.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minAvgYieldValue",
+ "description": "Minimum average yield value of the seasonal field(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgYieldValue",
+ "description": "Maximum average yield value of the seasonal field(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "avgYieldUnit",
+ "description": "Unit of the average yield value attribute.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "minAvgSeedPopulationValue",
+ "description": "Minimum average seed population value of the seasonal field(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgSeedPopulationValue",
+ "description": "Maximum average seed population value of the seasonal field(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "avgSeedPopulationUnit",
+ "description": "Unit of average seed population value attribute.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "minPlantingDateTime",
+ "description": "Minimum planting datetime, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxPlantingDateTime",
+ "description": "Maximum planting datetime, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/SeasonalFieldListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "SeasonalFields_ListByFarmerId": {
+ "$ref": "./examples/SeasonalFields_ListByFarmerId.json"
+ }
+ }
+ }
+ },
+ "/seasonal-fields": {
+ "get": {
+ "tags": [
+ "SeasonalFields"
+ ],
+ "description": "Returns a paginated list of seasonal field resources across all farmers.",
+ "operationId": "SeasonalFields_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "farmIds",
+ "description": "Farm Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "fieldIds",
+ "description": "Field Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "seasonIds",
+ "description": "Season Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "cropVarietyIds",
+ "description": "CropVarietyIds of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "cropIds",
+ "description": "Ids of the crop it belongs to.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minAvgYieldValue",
+ "description": "Minimum average yield value of the seasonal field(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgYieldValue",
+ "description": "Maximum average yield value of the seasonal field(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "avgYieldUnit",
+ "description": "Unit of the average yield value attribute.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "minAvgSeedPopulationValue",
+ "description": "Minimum average seed population value of the seasonal field(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxAvgSeedPopulationValue",
+ "description": "Maximum average seed population value of the seasonal field(inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "avgSeedPopulationUnit",
+ "description": "Unit of average seed population value attribute.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "minPlantingDateTime",
+ "description": "Minimum planting datetime, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxPlantingDateTime",
+ "description": "Maximum planting datetime, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/SeasonalFieldListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "SeasonalFields_List": {
+ "$ref": "./examples/SeasonalFields_List.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/seasonal-fields/{seasonalFieldId}": {
+ "get": {
+ "tags": [
+ "SeasonalFields"
+ ],
+ "description": "Gets a specified seasonal field resource under a particular farmer.",
+ "operationId": "SeasonalFields_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "seasonalFieldId",
+ "description": "ID of the seasonal field.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/SeasonalField"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "SeasonalFields_Get": {
+ "$ref": "./examples/SeasonalFields_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "SeasonalFields"
+ ],
+ "description": "Creates or Updates a seasonal field resource under a particular farmer.",
+ "operationId": "SeasonalFields_CreateOrUpdate",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "seasonalFieldId",
+ "description": "ID of the seasonal field resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "seasonalField",
+ "description": "Seasonal field resource payload to create or update.",
+ "schema": {
+ "$ref": "#/definitions/SeasonalField"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/SeasonalField"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/SeasonalField"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "SeasonalFields_CreateOrUpdate": {
+ "$ref": "./examples/SeasonalFields_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "SeasonalFields"
+ ],
+ "description": "Deletes a specified seasonal-field resource under a particular farmer.",
+ "operationId": "SeasonalFields_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "seasonalFieldId",
+ "description": "ID of the seasonal field.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "SeasonalFields_Delete": {
+ "$ref": "./examples/SeasonalFields_Delete.json"
+ }
+ }
+ }
+ },
+ "/seasonal-fields/cascade-delete/{jobId}": {
+ "get": {
+ "tags": [
+ "SeasonalFields"
+ ],
+ "description": "Get cascade delete job for specified seasonal field.",
+ "operationId": "SeasonalFields_GetCascadeDeleteJobDetails",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "ID of the job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CascadeDeleteJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "SeasonalFields_GetCascadeDeleteJobDetails": {
+ "$ref": "./examples/SeasonalFields_GetCascadeDeleteJobDetails.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "SeasonalFields"
+ ],
+ "description": "Create a cascade delete job for specified seasonal field.",
+ "operationId": "SeasonalFields_CreateCascadeDeleteJob",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "Job ID supplied by end user.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "seasonalFieldId",
+ "description": "ID of the seasonalField to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CascadeDeleteJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "SeasonalFields_CreateCascadeDeleteJob": {
+ "$ref": "./examples/SeasonalFields_CreateCascadeDeleteJob.json"
+ }
+ }
+ }
+ },
+ "/seasons": {
+ "get": {
+ "tags": [
+ "Seasons"
+ ],
+ "description": "Returns a paginated list of season resources.",
+ "operationId": "Seasons_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "minStartDateTime",
+ "description": "Minimum season start datetime, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxStartDateTime",
+ "description": "Maximum season start datetime, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minEndDateTime",
+ "description": "Minimum season end datetime, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxEndDateTime",
+ "description": "Maximum season end datetime, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "years",
+ "description": "Years of the resource.",
+ "type": "array",
+ "items": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/SeasonListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Seasons_List": {
+ "$ref": "./examples/Seasons_List.json"
+ }
+ }
+ }
+ },
+ "/seasons/{seasonId}": {
+ "get": {
+ "tags": [
+ "Seasons"
+ ],
+ "description": "Gets a specified season resource.",
+ "operationId": "Seasons_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "seasonId",
+ "description": "ID of the season.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Season"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Seasons_Get": {
+ "$ref": "./examples/Seasons_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Seasons"
+ ],
+ "description": "Creates or updates a season resource.",
+ "operationId": "Seasons_CreateOrUpdate",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "seasonId",
+ "description": "ID of the season resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "season",
+ "description": "Season resource payload to create or update.",
+ "schema": {
+ "$ref": "#/definitions/Season"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Season"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Season"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Seasons_CreateOrUpdate": {
+ "$ref": "./examples/Seasons_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Seasons"
+ ],
+ "description": "Deletes a specified season resource.",
+ "operationId": "Seasons_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "seasonId",
+ "description": "ID of the season.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Seasons_Delete": {
+ "$ref": "./examples/Seasons_Delete.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/tillage-data": {
+ "get": {
+ "tags": [
+ "TillageData"
+ ],
+ "description": "Returns a paginated list of tillage data resources under a particular farm.",
+ "operationId": "TillageData_ListByFarmerId",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "minTillageDepth",
+ "description": "Minimum measured tillage depth (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxTillageDepth",
+ "description": "Maximum measured tillage depth (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minTillagePressure",
+ "description": "Minimum pressure applied by a tillage implement (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxTillagePressure",
+ "description": "Maximum pressure applied by a tillage implement (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "sources",
+ "description": "Sources of the operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "associatedBoundaryIds",
+ "description": "Boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "operationBoundaryIds",
+ "description": "Operation boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minOperationStartDateTime",
+ "description": "Minimum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationStartDateTime",
+ "description": "Maximum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationEndDateTime",
+ "description": "Minimum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationEndDateTime",
+ "description": "Maximum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationModifiedDateTime",
+ "description": "Minimum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationModifiedDateTime",
+ "description": "Maximum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minArea",
+ "description": "Minimum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxArea",
+ "description": "Maximum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/TillageDataListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "TillageData_ListByFarmerId": {
+ "$ref": "./examples/TillageData_ListByFarmerId.json"
+ }
+ }
+ }
+ },
+ "/tillage-data": {
+ "get": {
+ "tags": [
+ "TillageData"
+ ],
+ "description": "Returns a paginated list of tillage data resources across all farmers.",
+ "operationId": "TillageData_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "minTillageDepth",
+ "description": "Minimum measured tillage depth (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxTillageDepth",
+ "description": "Maximum measured tillage depth (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "minTillagePressure",
+ "description": "Minimum pressure applied by a tillage implement (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxTillagePressure",
+ "description": "Maximum pressure applied by a tillage implement (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "sources",
+ "description": "Sources of the operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "associatedBoundaryIds",
+ "description": "Boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "operationBoundaryIds",
+ "description": "Operation boundary IDs associated with operation data.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minOperationStartDateTime",
+ "description": "Minimum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationStartDateTime",
+ "description": "Maximum start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationEndDateTime",
+ "description": "Minimum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationEndDateTime",
+ "description": "Maximum end date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minOperationModifiedDateTime",
+ "description": "Minimum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxOperationModifiedDateTime",
+ "description": "Maximum modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minArea",
+ "description": "Minimum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "maxArea",
+ "description": "Maximum area for which operation was applied (inclusive).",
+ "type": "number",
+ "format": "double"
+ },
+ {
+ "in": "query",
+ "name": "ids",
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "names",
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "propertyFilters",
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "statuses",
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "minCreatedDateTime",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxCreatedDateTime",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "minLastModifiedDateTime",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "maxLastModifiedDateTime",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/TillageDataListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "TillageData_List": {
+ "$ref": "./examples/TillageData_List.json"
+ }
+ }
+ }
+ },
+ "/farmers/{farmerId}/tillage-data/{tillageDataId}": {
+ "get": {
+ "tags": [
+ "TillageData"
+ ],
+ "description": "Get a specified tillage data resource under a particular farmer.",
+ "operationId": "TillageData_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "tillageDataId",
+ "description": "ID of the tillage data resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/TillageData"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "TillageData_Get": {
+ "$ref": "./examples/TillageData_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "TillageData"
+ ],
+ "description": "Creates or updates an tillage data resource under a particular farmer.",
+ "operationId": "TillageData_CreateOrUpdate",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "tillageDataId",
+ "description": "ID of the tillage data resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "tillageData",
+ "description": "Tillage data resource payload to create or update.",
+ "schema": {
+ "$ref": "#/definitions/TillageData"
+ }
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/TillageData"
+ }
+ },
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/TillageData"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "TillageData_CreateOrUpdate": {
+ "$ref": "./examples/TillageData_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "TillageData"
+ ],
+ "description": "Deletes a specified tillage data resource under a particular farmer.",
+ "operationId": "TillageData_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmerId",
+ "description": "ID of the associated farmer resource.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "tillageDataId",
+ "description": "ID of the tillage data.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "TillageData_Delete": {
+ "$ref": "./examples/TillageData_Delete.json"
+ }
+ }
+ }
+ },
+ "/weather": {
+ "get": {
+ "tags": [
+ "Weather"
+ ],
+ "description": "Returns a paginated list of weather data.",
+ "operationId": "Weather_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "farmerId",
+ "description": "Farmer ID.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "boundaryId",
+ "description": "Boundary ID.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "extensionId",
+ "description": "ID of the weather extension.",
+ "required": true,
+ "type": "string",
+ "pattern": "^[A-za-z]{3,50}[.][A-za-z]{3,100}$"
+ },
+ {
+ "in": "query",
+ "name": "weatherDataType",
+ "description": "Type of weather data (forecast/historical).",
+ "required": true,
+ "type": "string",
+ "maxLength": 50,
+ "minLength": 0
+ },
+ {
+ "in": "query",
+ "name": "granularity",
+ "description": "Granularity of weather data (daily/hourly).",
+ "required": true,
+ "type": "string",
+ "maxLength": 50,
+ "minLength": 0
+ },
+ {
+ "in": "query",
+ "name": "startDateTime",
+ "description": "Weather data start UTC date-time (inclusive), sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "endDateTime",
+ "description": "Weather data end UTC date-time (inclusive), sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/WeatherDataListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Weather_List": {
+ "$ref": "./examples/Weather_List.json"
+ }
+ }
+ }
+ },
+ "/weather/ingest-data/{jobId}": {
+ "get": {
+ "tags": [
+ "Weather"
+ ],
+ "description": "Get weather ingestion job.",
+ "operationId": "Weather_GetDataIngestionJobDetails",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "ID of the job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/WeatherDataIngestionJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Weather_GetDataIngestionJobDetails": {
+ "$ref": "./examples/Weather_GetDataIngestionJobDetails.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Weather"
+ ],
+ "description": "Create a weather data ingestion job.",
+ "operationId": "Weather_CreateDataIngestionJob",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "Job id supplied by user.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "job",
+ "description": "Job parameters supplied by user.",
+ "schema": {
+ "$ref": "#/definitions/WeatherDataIngestionJob"
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/WeatherDataIngestionJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Weather_CreateDataIngestionJob": {
+ "$ref": "./examples/Weather_CreateDataIngestionJob.json"
+ }
+ }
+ }
+ },
+ "/weather/delete-data/{jobId}": {
+ "get": {
+ "tags": [
+ "Weather"
+ ],
+ "description": "Get weather data delete job.",
+ "operationId": "Weather_GetDataDeleteJobDetails",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "ID of the job.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/WeatherDataDeleteJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Weather_GetDataDeleteJobDetails": {
+ "$ref": "./examples/Weather_GetDataDeleteJobDetails.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Weather"
+ ],
+ "description": "Create a weather data delete job.",
+ "operationId": "Weather_CreateDataDeleteJob",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "jobId",
+ "description": "Job ID supplied by end user.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "description": "The requested API version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "job",
+ "description": "Job parameters supplied by user.",
+ "schema": {
+ "$ref": "#/definitions/WeatherDataDeleteJob"
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/WeatherDataDeleteJob"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Weather_CreateDataDeleteJob": {
+ "$ref": "./examples/Weather_CreateDataDeleteJob.json"
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "Endpoint": {
+ "name": "Endpoint",
+ "description": "The endpoint of your FarmBeats resource (protocol and hostname, for example: https://{resourceName}.farmbeats.azure.net).",
+ "x-ms-parameter-location": "client",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ }
+ },
+ "definitions": {
+ "Measure": {
+ "description": "Schema for storing measurement reading and unit.",
+ "type": "object",
+ "properties": {
+ "unit": {
+ "description": "Data unit.",
+ "maxLength": 50,
+ "minLength": 1,
+ "type": "string"
+ },
+ "value": {
+ "format": "double",
+ "description": "Data value.",
+ "type": "number"
+ }
+ }
+ },
+ "ApplicationProductDetail": {
+ "description": "Schema of product used during application.",
+ "type": "object",
+ "properties": {
+ "productName": {
+ "description": "Name of the product applied.",
+ "maxLength": 100,
+ "minLength": 1,
+ "type": "string"
+ },
+ "isCarrier": {
+ "description": "A flag indicating whether product is a carrier for a tank mix.",
+ "default": false,
+ "type": "boolean"
+ },
+ "avgMaterial": {
+ "$ref": "#/definitions/Measure"
+ },
+ "totalMaterial": {
+ "$ref": "#/definitions/Measure"
+ }
+ }
+ },
+ "ApplicationData": {
+ "description": "Schema of application data resource.",
+ "type": "object",
+ "properties": {
+ "applicationProductDetails": {
+ "description": "Application product details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationProductDetail"
+ }
+ },
+ "avgMaterial": {
+ "$ref": "#/definitions/Measure"
+ },
+ "totalMaterial": {
+ "$ref": "#/definitions/Measure"
+ },
+ "area": {
+ "$ref": "#/definitions/Measure"
+ },
+ "source": {
+ "description": "Source of the operation data.",
+ "maxLength": 100,
+ "minLength": 2,
+ "type": "string"
+ },
+ "operationModifiedDateTime": {
+ "format": "date-time",
+ "description": "Modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ.\r\nNote: this will be specified by the source provider itself.",
+ "type": "string"
+ },
+ "operationStartDateTime": {
+ "format": "date-time",
+ "description": "Start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "operationEndDateTime": {
+ "format": "date-time",
+ "description": "End date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "attachmentsLink": {
+ "description": "Link for attachments.",
+ "type": "string",
+ "readOnly": true
+ },
+ "associatedBoundaryId": {
+ "description": "Optional boundary ID of the field for which operation was applied.",
+ "type": "string"
+ },
+ "operationBoundaryId": {
+ "description": "Optional boundary ID of the actual area for which operation was applied inside the specified field.",
+ "type": "string"
+ },
+ "farmerId": {
+ "description": "Farmer ID which belongs to the operation data.",
+ "type": "string",
+ "readOnly": true
+ },
+ "id": {
+ "description": "Unique resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "ApplicationDataListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationData"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "InnerError": {
+ "description": "Inner error containing list of errors.\r\nInnerError reference document.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Specific error code than was provided by the\r\ncontaining error.",
+ "type": "string"
+ },
+ "innererror": {
+ "$ref": "#/definitions/InnerError"
+ }
+ },
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "Error": {
+ "description": "An error from the Azure AgPlatform service.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Server-defined set of error codes.",
+ "type": "string"
+ },
+ "message": {
+ "description": "Human-readable representation of the error.",
+ "type": "string"
+ },
+ "target": {
+ "description": "Target of the error.",
+ "type": "string"
+ },
+ "details": {
+ "description": "Array of details about specific errors that led to this reported error.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "innererror": {
+ "$ref": "#/definitions/InnerError"
+ }
+ }
+ },
+ "ErrorResponse": {
+ "description": "An error response from the Azure AgPlatform service.\r\nErrorResponse reference document..",
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "traceId": {
+ "description": "Unique trace ID.",
+ "type": "string"
+ }
+ }
+ },
+ "Attachment": {
+ "description": "Schema of attachment resource.",
+ "type": "object",
+ "properties": {
+ "farmerId": {
+ "description": "Farmer id for this attachment.",
+ "type": "string",
+ "readOnly": true
+ },
+ "resourceId": {
+ "description": "Associated Resource id for this attachment.",
+ "type": "string"
+ },
+ "resourceType": {
+ "description": "Associated Resource type for this attachment\r\ni.e. Farmer, Farm, Field, SeasonalField, Boundary, FarmOperationApplicationData, HarvestData, TillageData, PlantingData.",
+ "type": "string"
+ },
+ "originalFileName": {
+ "description": "Original File Name for this attachment.",
+ "type": "string",
+ "readOnly": true
+ },
+ "id": {
+ "description": "Unique id.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date when resource was created.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date when resource was last modified.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "AttachmentListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Attachment"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "GeoJsonObjectType": {
+ "description": "GeoJSON object type.",
+ "enum": [
+ "Point",
+ "Polygon",
+ "MultiPolygon"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "GeoJsonObjectType",
+ "modelAsString": true
+ }
+ },
+ "GeoJsonObject": {
+ "description": "GeoJSON abstract class.",
+ "required": [
+ "type"
+ ],
+ "type": "object",
+ "properties": {
+ "type": {
+ "$ref": "#/definitions/GeoJsonObjectType"
+ }
+ },
+ "discriminator": "type"
+ },
+ "Boundary": {
+ "description": "Schema of boundary resource.",
+ "type": "object",
+ "properties": {
+ "farmerId": {
+ "description": "Farmer ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "parentId": {
+ "description": "ID of the parent(field or seasonalField) it belongs to.",
+ "type": "string"
+ },
+ "geometry": {
+ "$ref": "#/definitions/GeoJsonObject"
+ },
+ "isPrimary": {
+ "description": "Is the boundary primary.",
+ "type": "boolean"
+ },
+ "acreage": {
+ "format": "double",
+ "description": "Boundary area in acres.",
+ "type": "number",
+ "readOnly": true
+ },
+ "parentType": {
+ "description": "Type of the parent it belongs to.",
+ "type": "string",
+ "readOnly": true
+ },
+ "id": {
+ "description": "Unique resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ }
+ },
+ "example": {
+ "name": "string",
+ "description": "string",
+ "parentId": "string",
+ "isPrimary": false,
+ "geometry": {
+ "type": "Polygon",
+ "coordinates": [
+ [
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70448589324951,
+ 20.542411534243367
+ ],
+ [
+ 73.70877742767334,
+ 20.541688176010233
+ ],
+ [
+ 73.71023654937744,
+ 20.545083911372505
+ ],
+ [
+ 73.70663166046143,
+ 20.546992723579137
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ]
+ ]
+ ]
+ }
+ }
+ },
+ "BoundaryListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Boundary"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "SearchBoundaryQuery": {
+ "description": "SearchAllBoundaries and SearchBoundaries parameters.",
+ "type": "object",
+ "properties": {
+ "ids": {
+ "description": "Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "names": {
+ "description": "Names of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "propertyFilters": {
+ "description": "Filters on key-value pairs within the Properties object.\r\neg. \"{testKey} eq {testValue}\".",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "statuses": {
+ "description": "Statuses of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "minCreatedDateTime": {
+ "format": "date-time",
+ "description": "Minimum creation date of resource (inclusive).",
+ "type": "string"
+ },
+ "maxCreatedDateTime": {
+ "format": "date-time",
+ "description": "Maximum creation date of resource (inclusive).",
+ "type": "string"
+ },
+ "minLastModifiedDateTime": {
+ "format": "date-time",
+ "description": "Minimum last modified date of resource (inclusive).",
+ "type": "string"
+ },
+ "maxLastModifiedDateTime": {
+ "format": "date-time",
+ "description": "Maximum last modified date of resource (inclusive).",
+ "type": "string"
+ },
+ "$maxPageSize": {
+ "format": "int32",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10,
+ "type": "integer"
+ },
+ "$skipToken": {
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ "isPrimary": {
+ "description": "Is the boundary primary.",
+ "type": "boolean"
+ },
+ "parentType": {
+ "description": "Type of the parent it belongs to.",
+ "type": "string"
+ },
+ "parentIds": {
+ "description": "Parent Ids of the resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "minAcreage": {
+ "format": "double",
+ "description": "Minimum acreage of the boundary (inclusive).",
+ "type": "number"
+ },
+ "maxAcreage": {
+ "format": "double",
+ "description": "Maximum acreage of the boundary (inclusive).",
+ "type": "number"
+ },
+ "intersectsWithGeometry": {
+ "$ref": "#/definitions/GeoJsonObject"
+ }
+ }
+ },
+ "CascadeDeleteJob": {
+ "description": "Schema of cascade delete job.",
+ "required": [
+ "farmerId",
+ "resourceId",
+ "resourceType"
+ ],
+ "type": "object",
+ "properties": {
+ "farmerId": {
+ "description": "Farmer ID.",
+ "type": "string"
+ },
+ "resourceId": {
+ "description": "The id of the resource.",
+ "type": "string"
+ },
+ "resourceType": {
+ "description": "The type of the resource.",
+ "type": "string"
+ },
+ "id": {
+ "description": "Unique job id.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the job.\r\nPossible values: 'Waiting', 'Running', 'Succeeded', 'Failed', 'Cancelled'.",
+ "type": "string",
+ "readOnly": true
+ },
+ "durationInSeconds": {
+ "format": "double",
+ "description": "Duration of the job in seconds.",
+ "type": "number",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Status message to capture more details of the job.",
+ "type": "string",
+ "readOnly": true
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Job created at dateTime. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "lastActionDateTime": {
+ "format": "date-time",
+ "description": "Job was last acted upon at dateTime. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "Job start time when available. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "endTime": {
+ "format": "date-time",
+ "description": "Job end time when available. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "BoundaryOverlapResponse": {
+ "description": "Schema of boundary overlap response.",
+ "type": "object",
+ "properties": {
+ "boundaryAcreage": {
+ "format": "double",
+ "description": "Acreage of Main boundary.",
+ "type": "number"
+ },
+ "otherBoundaryAcreage": {
+ "format": "double",
+ "description": "Acreage of other boundary.",
+ "type": "number"
+ },
+ "intersectingAcreage": {
+ "format": "double",
+ "description": "Acreage of intersecting boundary.",
+ "type": "number"
+ }
+ }
+ },
+ "Crop": {
+ "description": "Schema of crop resource.",
+ "type": "object",
+ "properties": {
+ "phenotype": {
+ "description": "Crop phenotype.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "id": {
+ "description": "Unique resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "CropListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Crop"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "CropVariety": {
+ "description": "Schema of crop variety resource.",
+ "type": "object",
+ "properties": {
+ "cropId": {
+ "description": "ID of the crop it belongs to.",
+ "type": "string",
+ "readOnly": true
+ },
+ "brand": {
+ "description": "CropVariety Brand.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "product": {
+ "description": "CropVariety product.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "id": {
+ "description": "Unique resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "CropVarietyListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CropVariety"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "Farmer": {
+ "description": "Schema of farmer resource.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Unique resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "FarmerListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Farmer"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "FarmOperationDataIngestionJob": {
+ "description": "Schema of farm operation data ingestion job.",
+ "required": [
+ "authProviderId",
+ "farmerId",
+ "startYear"
+ ],
+ "type": "object",
+ "properties": {
+ "farmerId": {
+ "description": "Farmer ID.",
+ "type": "string"
+ },
+ "authProviderId": {
+ "description": "Authentication provider ID.",
+ "type": "string"
+ },
+ "operations": {
+ "description": "List of operation types for which data needs to be downloaded. Available values: AllOperations, Application, Planting, Harvest, Tillage.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "startYear": {
+ "format": "int32",
+ "description": "Start Year (Minimum = 2000, Maximum = CurrentYear).",
+ "type": "integer"
+ },
+ "id": {
+ "description": "Unique job id.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the job.\r\nPossible values: 'Waiting', 'Running', 'Succeeded', 'Failed', 'Cancelled'.",
+ "type": "string",
+ "readOnly": true
+ },
+ "durationInSeconds": {
+ "format": "double",
+ "description": "Duration of the job in seconds.",
+ "type": "number",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Status message to capture more details of the job.",
+ "type": "string",
+ "readOnly": true
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Job created at dateTime. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "lastActionDateTime": {
+ "format": "date-time",
+ "description": "Job was last acted upon at dateTime. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "Job start time when available. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "endTime": {
+ "format": "date-time",
+ "description": "Job end time when available. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "Farm": {
+ "description": "Schema of farm resource.",
+ "type": "object",
+ "properties": {
+ "farmerId": {
+ "description": "Farmer ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "id": {
+ "description": "Unique resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "FarmListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Farm"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "Field": {
+ "description": "Schema of field resource.",
+ "type": "object",
+ "properties": {
+ "farmId": {
+ "description": "ID of the associated Farm.",
+ "type": "string"
+ },
+ "farmerId": {
+ "description": "Farmer ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "primaryBoundaryId": {
+ "description": "Primary boundary id.",
+ "type": "string",
+ "readOnly": true
+ },
+ "boundaryIds": {
+ "description": "Boundary Ids.",
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "id": {
+ "description": "Unique resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "FieldListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Field"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "HarvestProductDetail": {
+ "description": "Schema of product used during harvesting.",
+ "type": "object",
+ "properties": {
+ "productName": {
+ "description": "Name of the product.",
+ "maxLength": 100,
+ "minLength": 1,
+ "type": "string"
+ },
+ "area": {
+ "$ref": "#/definitions/Measure"
+ },
+ "totalYield": {
+ "$ref": "#/definitions/Measure"
+ },
+ "avgYield": {
+ "$ref": "#/definitions/Measure"
+ },
+ "avgMoisture": {
+ "$ref": "#/definitions/Measure"
+ },
+ "totalWetMass": {
+ "$ref": "#/definitions/Measure"
+ },
+ "avgWetMass": {
+ "$ref": "#/definitions/Measure"
+ }
+ }
+ },
+ "HarvestData": {
+ "description": "Schema of harvest data resource.",
+ "type": "object",
+ "properties": {
+ "totalYield": {
+ "$ref": "#/definitions/Measure"
+ },
+ "avgYield": {
+ "$ref": "#/definitions/Measure"
+ },
+ "totalWetMass": {
+ "$ref": "#/definitions/Measure"
+ },
+ "avgWetMass": {
+ "$ref": "#/definitions/Measure"
+ },
+ "avgMoisture": {
+ "$ref": "#/definitions/Measure"
+ },
+ "avgSpeed": {
+ "$ref": "#/definitions/Measure"
+ },
+ "harvestProductDetails": {
+ "description": "Harvest product details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HarvestProductDetail"
+ }
+ },
+ "area": {
+ "$ref": "#/definitions/Measure"
+ },
+ "source": {
+ "description": "Source of the operation data.",
+ "maxLength": 100,
+ "minLength": 2,
+ "type": "string"
+ },
+ "operationModifiedDateTime": {
+ "format": "date-time",
+ "description": "Modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ.\r\nNote: this will be specified by the source provider itself.",
+ "type": "string"
+ },
+ "operationStartDateTime": {
+ "format": "date-time",
+ "description": "Start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "operationEndDateTime": {
+ "format": "date-time",
+ "description": "End date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "attachmentsLink": {
+ "description": "Link for attachments.",
+ "type": "string",
+ "readOnly": true
+ },
+ "associatedBoundaryId": {
+ "description": "Optional boundary ID of the field for which operation was applied.",
+ "type": "string"
+ },
+ "operationBoundaryId": {
+ "description": "Optional boundary ID of the actual area for which operation was applied inside the specified field.",
+ "type": "string"
+ },
+ "farmerId": {
+ "description": "Farmer ID which belongs to the operation data.",
+ "type": "string",
+ "readOnly": true
+ },
+ "id": {
+ "description": "Unique resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "HarvestDataListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HarvestData"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "ImageProcessingRasterizeJob": {
+ "description": "ImageProcessingRasterizeJob.",
+ "required": [
+ "farmerId",
+ "shapefileAttachmentId",
+ "shapefileColumnNames"
+ ],
+ "type": "object",
+ "properties": {
+ "farmerId": {
+ "description": "Farmer ID.",
+ "type": "string"
+ },
+ "shapefileAttachmentId": {
+ "description": "Shapefile attachment ID.",
+ "type": "string"
+ },
+ "shapefileColumnNames": {
+ "description": "List of shapefile column names to create raster attachments.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "id": {
+ "description": "Unique job id.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the job.\r\nPossible values: 'Waiting', 'Running', 'Succeeded', 'Failed', 'Cancelled'.",
+ "type": "string",
+ "readOnly": true
+ },
+ "durationInSeconds": {
+ "format": "double",
+ "description": "Duration of the job in seconds.",
+ "type": "number",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Status message to capture more details of the job.",
+ "type": "string",
+ "readOnly": true
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Job created at dateTime. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "lastActionDateTime": {
+ "format": "date-time",
+ "description": "Job was last acted upon at dateTime. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "Job start time when available. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "endTime": {
+ "format": "date-time",
+ "description": "Job end time when available. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "OAuthProvider": {
+ "description": "Schema of OAuth provider resource.",
+ "type": "object",
+ "properties": {
+ "appId": {
+ "description": "OAuth App ID for given OAuth Provider.",
+ "maxLength": 200,
+ "minLength": 2,
+ "type": "string"
+ },
+ "appSecret": {
+ "description": "OAuth App secret for given Provider.\r\nNote: Won't be sent in response.",
+ "maxLength": 200,
+ "minLength": 2,
+ "type": "string"
+ },
+ "apiKey": {
+ "description": "OAuth Api key for given Provider.\r\nNote: currently Applicable to Climate provider. Won't be sent in response.",
+ "maxLength": 200,
+ "minLength": 2,
+ "type": "string"
+ },
+ "isProductionApp": {
+ "description": "An optional flag to determine if the App is ready to be used for Production scenarios in the provider side or not. (Default value: false)\r\nNote: Currently applicable for JohnDeere.",
+ "default": false,
+ "type": "boolean"
+ },
+ "id": {
+ "description": "Unique OAuth provider ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "OAuthProviderListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OAuthProvider"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "OAuthToken": {
+ "description": "Schema of OAuth token resource.",
+ "required": [
+ "authProviderId",
+ "farmerId"
+ ],
+ "type": "object",
+ "properties": {
+ "farmerId": {
+ "description": "Farmer ID for this OAuth config.",
+ "type": "string"
+ },
+ "authProviderId": {
+ "description": "ID of the OAuth provider resource containing app information.",
+ "type": "string"
+ },
+ "isValid": {
+ "description": "An optional flag indicating whether the token is a valid or expired (Default value: true).",
+ "default": true,
+ "type": "boolean"
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "OAuthTokenListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OAuthToken"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "OAuthConnectRequest": {
+ "description": "Get OAuth config query parameters.",
+ "required": [
+ "farmerId",
+ "oAuthProviderId",
+ "userRedirectLink"
+ ],
+ "type": "object",
+ "properties": {
+ "farmerId": {
+ "description": "ID of the farmer.",
+ "type": "string"
+ },
+ "oAuthProviderId": {
+ "description": "ID of the OAuthProvider.",
+ "type": "string"
+ },
+ "userRedirectLink": {
+ "description": "Link to redirect the user to, at the end of the oauth flow.",
+ "maxLength": 1000,
+ "minLength": 0,
+ "type": "string"
+ },
+ "userRedirectState": {
+ "description": "State to provide back when redirecting the user, at the end of the oauth flow.",
+ "maxLength": 200,
+ "minLength": 0,
+ "type": "string"
+ }
+ }
+ },
+ "PlantingProductDetail": {
+ "description": "Schema for Planting product detail.",
+ "type": "object",
+ "properties": {
+ "productName": {
+ "description": "Name of the product.",
+ "type": "string"
+ },
+ "area": {
+ "$ref": "#/definitions/Measure"
+ },
+ "totalMaterial": {
+ "$ref": "#/definitions/Measure"
+ },
+ "avgMaterial": {
+ "$ref": "#/definitions/Measure"
+ }
+ }
+ },
+ "PlantingData": {
+ "description": "Schema of planting data resource.",
+ "type": "object",
+ "properties": {
+ "avgPlantingRate": {
+ "$ref": "#/definitions/Measure"
+ },
+ "totalMaterial": {
+ "$ref": "#/definitions/Measure"
+ },
+ "avgMaterial": {
+ "$ref": "#/definitions/Measure"
+ },
+ "plantingProductDetails": {
+ "description": "Planting product details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PlantingProductDetail"
+ }
+ },
+ "area": {
+ "$ref": "#/definitions/Measure"
+ },
+ "source": {
+ "description": "Source of the operation data.",
+ "maxLength": 100,
+ "minLength": 2,
+ "type": "string"
+ },
+ "operationModifiedDateTime": {
+ "format": "date-time",
+ "description": "Modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ.\r\nNote: this will be specified by the source provider itself.",
+ "type": "string"
+ },
+ "operationStartDateTime": {
+ "format": "date-time",
+ "description": "Start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "operationEndDateTime": {
+ "format": "date-time",
+ "description": "End date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "attachmentsLink": {
+ "description": "Link for attachments.",
+ "type": "string",
+ "readOnly": true
+ },
+ "associatedBoundaryId": {
+ "description": "Optional boundary ID of the field for which operation was applied.",
+ "type": "string"
+ },
+ "operationBoundaryId": {
+ "description": "Optional boundary ID of the actual area for which operation was applied inside the specified field.",
+ "type": "string"
+ },
+ "farmerId": {
+ "description": "Farmer ID which belongs to the operation data.",
+ "type": "string",
+ "readOnly": true
+ },
+ "id": {
+ "description": "Unique resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "PlantingDataListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PlantingData"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "ImageFormat": {
+ "description": "Supported image formats for scene resource.",
+ "enum": [
+ "TIF"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ImageFormat",
+ "modelAsString": true
+ }
+ },
+ "ImageFile": {
+ "description": "Schema of image file resource.",
+ "required": [
+ "name"
+ ],
+ "type": "object",
+ "properties": {
+ "fileLink": {
+ "description": "Link of the image file.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the image file.",
+ "type": "string"
+ },
+ "imageFormat": {
+ "$ref": "#/definitions/ImageFormat"
+ },
+ "resolution": {
+ "format": "double",
+ "description": "Resolution of image file in meters.",
+ "type": "number"
+ }
+ }
+ },
+ "Scene": {
+ "description": "Schema of scene resource.",
+ "type": "object",
+ "properties": {
+ "sceneDateTime": {
+ "format": "date-time",
+ "description": "Date-time of the scene, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Data provider of the scene.",
+ "maxLength": 100,
+ "minLength": 2,
+ "type": "string"
+ },
+ "source": {
+ "description": "Data source of the scene.",
+ "maxLength": 100,
+ "minLength": 2,
+ "type": "string"
+ },
+ "imageFiles": {
+ "description": "Collection of image files.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageFile"
+ }
+ },
+ "imageFormat": {
+ "$ref": "#/definitions/ImageFormat"
+ },
+ "cloudCoverPercentage": {
+ "format": "double",
+ "description": "Cloud cover percentage of the scene.",
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ "darkPixelPercentage": {
+ "format": "double",
+ "description": "Dark pixel percentage of the scene.",
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ "ndviMedianValue": {
+ "format": "double",
+ "description": "Median of NDVI of the scene.",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "boundaryId": {
+ "description": "Boundary ID which belongs to the scene.",
+ "maxLength": 100,
+ "minLength": 2,
+ "type": "string"
+ },
+ "farmerId": {
+ "description": "Farmer ID which belongs to the scene.",
+ "type": "string"
+ },
+ "id": {
+ "description": "Unique scene resource ID.",
+ "type": "string"
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "SceneListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Scene"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "DataProvider": {
+ "description": "Provider of satellite data.",
+ "enum": [
+ "Microsoft"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "DataProvider",
+ "modelAsString": true
+ }
+ },
+ "Source": {
+ "description": "Source of satellite data.",
+ "enum": [
+ "Sentinel_2_L2A"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "Source",
+ "modelAsString": true
+ }
+ },
+ "SatelliteData": {
+ "description": "Data Model for SatelliteIngestionJobRequest.",
+ "type": "object",
+ "properties": {
+ "imageNames": {
+ "description": "List of ImageNames.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "example": [
+ "NDVI"
+ ]
+ },
+ "imageFormats": {
+ "description": "List of ImageFormats. Available value: TIF.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "example": [
+ "TIF"
+ ]
+ },
+ "imageResolutions": {
+ "description": "List of ImageResolutions in meters. Available values: 10, 20, 60.",
+ "type": "array",
+ "items": {
+ "format": "double",
+ "type": "number"
+ },
+ "example": [
+ 10
+ ]
+ }
+ }
+ },
+ "SatelliteDataIngestionJob": {
+ "description": "Schema of satellite data ingestion job.",
+ "required": [
+ "boundaryId",
+ "endDateTime",
+ "farmerId",
+ "startDateTime"
+ ],
+ "type": "object",
+ "properties": {
+ "farmerId": {
+ "description": "Farmer ID.",
+ "type": "string"
+ },
+ "boundaryId": {
+ "description": "The id of the boundary object for which satellite data is being fetched.",
+ "type": "string"
+ },
+ "startDateTime": {
+ "format": "date-time",
+ "description": "Start Date.",
+ "type": "string"
+ },
+ "endDateTime": {
+ "format": "date-time",
+ "description": "End Date.",
+ "type": "string"
+ },
+ "provider": {
+ "$ref": "#/definitions/DataProvider"
+ },
+ "source": {
+ "$ref": "#/definitions/Source"
+ },
+ "data": {
+ "$ref": "#/definitions/SatelliteData"
+ },
+ "id": {
+ "description": "Unique job id.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the job.\r\nPossible values: 'Waiting', 'Running', 'Succeeded', 'Failed', 'Cancelled'.",
+ "type": "string",
+ "readOnly": true
+ },
+ "durationInSeconds": {
+ "format": "double",
+ "description": "Duration of the job in seconds.",
+ "type": "number",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Status message to capture more details of the job.",
+ "type": "string",
+ "readOnly": true
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Job created at dateTime. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "lastActionDateTime": {
+ "format": "date-time",
+ "description": "Job was last acted upon at dateTime. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "Job start time when available. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "endTime": {
+ "format": "date-time",
+ "description": "Job end time when available. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "SeasonalField": {
+ "description": "Schema of seasonal field resource.",
+ "type": "object",
+ "properties": {
+ "farmerId": {
+ "description": "Farmer ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "primaryBoundaryId": {
+ "description": "Primary boundary id.",
+ "type": "string",
+ "readOnly": true
+ },
+ "boundaryIds": {
+ "description": "Boundary Ids.",
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "farmId": {
+ "description": "ID of the associated Farm.",
+ "type": "string"
+ },
+ "fieldId": {
+ "description": "ID of the associated Field.",
+ "type": "string"
+ },
+ "seasonId": {
+ "description": "ID of the season it belongs to.",
+ "type": "string"
+ },
+ "cropVarietyIds": {
+ "description": "CropVariety ids.",
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cropId": {
+ "description": "ID of the crop it belongs to.",
+ "type": "string"
+ },
+ "avgYieldValue": {
+ "format": "double",
+ "description": "Average yield value of the seasonal field.",
+ "type": "number"
+ },
+ "avgYieldUnit": {
+ "description": "Unit of the average yield value attribute.",
+ "maxLength": 32,
+ "minLength": 2,
+ "type": "string"
+ },
+ "avgSeedPopulationValue": {
+ "format": "double",
+ "description": "Average seed population value of the seasonal field.",
+ "type": "number"
+ },
+ "avgSeedPopulationUnit": {
+ "description": "Unit of average seed population value attribute.",
+ "maxLength": 32,
+ "minLength": 2,
+ "type": "string"
+ },
+ "plantingDateTime": {
+ "format": "date-time",
+ "description": "Planting datetime, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "id": {
+ "description": "Unique resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "SeasonalFieldListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SeasonalField"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "Season": {
+ "description": "Schema of season resource.",
+ "type": "object",
+ "properties": {
+ "startDateTime": {
+ "format": "date-time",
+ "description": "Season start datetime, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "endDateTime": {
+ "format": "date-time",
+ "description": "Season end datetime, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "year": {
+ "format": "int32",
+ "description": "Season year.",
+ "type": "integer"
+ },
+ "id": {
+ "description": "Unique resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "SeasonListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Season"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "TillageData": {
+ "description": "Schema of tillage data resource.",
+ "type": "object",
+ "properties": {
+ "tillageDepth": {
+ "$ref": "#/definitions/Measure"
+ },
+ "tillagePressure": {
+ "$ref": "#/definitions/Measure"
+ },
+ "area": {
+ "$ref": "#/definitions/Measure"
+ },
+ "source": {
+ "description": "Source of the operation data.",
+ "maxLength": 100,
+ "minLength": 2,
+ "type": "string"
+ },
+ "operationModifiedDateTime": {
+ "format": "date-time",
+ "description": "Modified date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ.\r\nNote: this will be specified by the source provider itself.",
+ "type": "string"
+ },
+ "operationStartDateTime": {
+ "format": "date-time",
+ "description": "Start date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "operationEndDateTime": {
+ "format": "date-time",
+ "description": "End date-time of the operation data, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "attachmentsLink": {
+ "description": "Link for attachments.",
+ "type": "string",
+ "readOnly": true
+ },
+ "associatedBoundaryId": {
+ "description": "Optional boundary ID of the field for which operation was applied.",
+ "type": "string"
+ },
+ "operationBoundaryId": {
+ "description": "Optional boundary ID of the actual area for which operation was applied inside the specified field.",
+ "type": "string"
+ },
+ "farmerId": {
+ "description": "Farmer ID which belongs to the operation data.",
+ "type": "string",
+ "readOnly": true
+ },
+ "id": {
+ "description": "Unique resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "TillageDataListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TillageData"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "Location": {
+ "description": "Location model class.",
+ "required": [
+ "latitude",
+ "longitude"
+ ],
+ "type": "object",
+ "properties": {
+ "latitude": {
+ "format": "double",
+ "description": "Latitude of the location.",
+ "maximum": 90,
+ "minimum": -90,
+ "type": "number"
+ },
+ "longitude": {
+ "format": "double",
+ "description": "Longitude of the location.",
+ "maximum": 180,
+ "minimum": -180,
+ "type": "number"
+ }
+ }
+ },
+ "WeatherData": {
+ "description": "Schema of weather data.",
+ "required": [
+ "boundaryId",
+ "dateTime",
+ "extensionId",
+ "extensionVersion",
+ "farmerId",
+ "granularity",
+ "location",
+ "weatherDataType"
+ ],
+ "type": "object",
+ "properties": {
+ "farmerId": {
+ "description": "Farmer ID.",
+ "type": "string"
+ },
+ "boundaryId": {
+ "description": "Boundary ID.",
+ "type": "string"
+ },
+ "extensionId": {
+ "description": "ID of the weather extension.",
+ "type": "string"
+ },
+ "location": {
+ "$ref": "#/definitions/Location"
+ },
+ "dateTime": {
+ "format": "date-time",
+ "description": "Date-time of the weather data, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "unitSystemCode": {
+ "description": "Unit System like US/SI etc.",
+ "type": "string"
+ },
+ "extensionVersion": {
+ "description": "Version of the weather data extension.",
+ "type": "string"
+ },
+ "weatherDataType": {
+ "description": "Type of weather data (forecast/historical).",
+ "type": "string"
+ },
+ "granularity": {
+ "description": "Granularity of weather data (daily/hourly).",
+ "type": "string"
+ },
+ "cloudCover": {
+ "$ref": "#/definitions/Measure"
+ },
+ "dewPoint": {
+ "$ref": "#/definitions/Measure"
+ },
+ "growingDegreeDay": {
+ "$ref": "#/definitions/Measure"
+ },
+ "precipitation": {
+ "$ref": "#/definitions/Measure"
+ },
+ "pressure": {
+ "$ref": "#/definitions/Measure"
+ },
+ "relativeHumidity": {
+ "$ref": "#/definitions/Measure"
+ },
+ "soilMoisture": {
+ "$ref": "#/definitions/Measure"
+ },
+ "soilTemperature": {
+ "$ref": "#/definitions/Measure"
+ },
+ "temperature": {
+ "$ref": "#/definitions/Measure"
+ },
+ "visibility": {
+ "$ref": "#/definitions/Measure"
+ },
+ "wetBulbTemperature": {
+ "$ref": "#/definitions/Measure"
+ },
+ "windChill": {
+ "$ref": "#/definitions/Measure"
+ },
+ "windDirection": {
+ "$ref": "#/definitions/Measure"
+ },
+ "windGust": {
+ "$ref": "#/definitions/Measure"
+ },
+ "windSpeed": {
+ "$ref": "#/definitions/Measure"
+ },
+ "id": {
+ "description": "Weather data ID.",
+ "type": "string"
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was created, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedDateTime": {
+ "format": "date-time",
+ "description": "Date-time when resource was last modified, sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "WeatherDataListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/WeatherData"
+ }
+ },
+ "$skipToken": {
+ "description": "Token used in retrieving the next page. If null, there are no additional pages.",
+ "type": "string"
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string"
+ }
+ }
+ },
+ "WeatherDataIngestionJob": {
+ "description": "Schema of weather ingestion job.",
+ "required": [
+ "boundaryId",
+ "extensionApiInput",
+ "extensionApiName",
+ "extensionId",
+ "farmerId"
+ ],
+ "type": "object",
+ "properties": {
+ "boundaryId": {
+ "description": "The id of the boundary object for which weather data is being fetched.",
+ "type": "string"
+ },
+ "farmerId": {
+ "description": "The id of the farmer object for which weather data is being fetched.",
+ "type": "string"
+ },
+ "extensionId": {
+ "description": "ID of the extension to be used for the providerInput. eg. DTN.ClearAg.",
+ "maxLength": 100,
+ "minLength": 2,
+ "pattern": "^[A-za-z]{3,50}[.][A-za-z]{3,100}$",
+ "type": "string"
+ },
+ "extensionApiName": {
+ "description": "Extension api name to which request is to be made.",
+ "maxLength": 100,
+ "minLength": 2,
+ "type": "string"
+ },
+ "extensionApiInput": {
+ "description": "Extension api input dictionary which would be used to feed request query/body/parameter information.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "extensionDataProviderAppId": {
+ "description": "App id of the weather data provider.",
+ "maxLength": 200,
+ "minLength": 2,
+ "type": "string"
+ },
+ "extensionDataProviderApiKey": {
+ "description": "Api key of the weather data provider.",
+ "maxLength": 200,
+ "minLength": 2,
+ "type": "string"
+ },
+ "id": {
+ "description": "Unique job id.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the job.\r\nPossible values: 'Waiting', 'Running', 'Succeeded', 'Failed', 'Cancelled'.",
+ "type": "string",
+ "readOnly": true
+ },
+ "durationInSeconds": {
+ "format": "double",
+ "description": "Duration of the job in seconds.",
+ "type": "number",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Status message to capture more details of the job.",
+ "type": "string",
+ "readOnly": true
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Job created at dateTime. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "lastActionDateTime": {
+ "format": "date-time",
+ "description": "Job was last acted upon at dateTime. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "Job start time when available. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "endTime": {
+ "format": "date-time",
+ "description": "Job end time when available. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "WeatherDataDeleteJob": {
+ "description": "Schema of weather data delete job.",
+ "required": [
+ "boundaryId",
+ "extensionId",
+ "farmerId"
+ ],
+ "type": "object",
+ "properties": {
+ "extensionId": {
+ "description": "ID of the extension to be used for the providerInput. eg. DTN.ClearAg.",
+ "maxLength": 100,
+ "minLength": 2,
+ "pattern": "^[A-za-z]{3,50}[.][A-za-z]{3,100}$",
+ "type": "string"
+ },
+ "farmerId": {
+ "description": "The id of the farmer object for which weather data is being fetched.",
+ "type": "string"
+ },
+ "boundaryId": {
+ "description": "The id of the boundary object for which weather data is being fetched.",
+ "type": "string"
+ },
+ "weatherDataType": {
+ "description": "Type of weather data. Possible values include: 'forecast' , 'historical'.",
+ "type": "string"
+ },
+ "granularity": {
+ "description": "Granularity of weather data. Possible values include: 'daily' , 'hourly'.",
+ "type": "string"
+ },
+ "startDateTime": {
+ "format": "date-time",
+ "description": "Weather data start UTC date-time (inclusive), sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "endDateTime": {
+ "format": "date-time",
+ "description": "Weather data end UTC date-time (inclusive), sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string"
+ },
+ "id": {
+ "description": "Unique job id.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the job.\r\nPossible values: 'Waiting', 'Running', 'Succeeded', 'Failed', 'Cancelled'.",
+ "type": "string",
+ "readOnly": true
+ },
+ "durationInSeconds": {
+ "format": "double",
+ "description": "Duration of the job in seconds.",
+ "type": "number",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Status message to capture more details of the job.",
+ "type": "string",
+ "readOnly": true
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Job created at dateTime. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "lastActionDateTime": {
+ "format": "date-time",
+ "description": "Job was last acted upon at dateTime. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "Job start time when available. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "endTime": {
+ "format": "date-time",
+ "description": "Job end time when available. Sample format: yyyy-MM-ddTHH:mm:ssZ.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name to identify resource.",
+ "maxLength": 100,
+ "minLength": 0,
+ "type": "string"
+ },
+ "description": {
+ "description": "Textual description of the resource.",
+ "maxLength": 500,
+ "minLength": 0,
+ "type": "string"
+ },
+ "properties": {
+ "description": "A collection of key value pairs that belongs to the resource.\r\nEach pair must not have a key greater than 50 characters\r\nand must not have a value greater than 150 characters.\r\nNote: A maximum of 25 key value pairs can be provided for a resource and only string and numeral values are supported.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "example": {
+ "key1": "value1",
+ "key2": 123.45
+ }
+ }
+ }
+ },
+ "MultiPolygon": {
+ "description": "MultiPolygon geometry.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/GeoJsonObject"
+ },
+ {
+ "$ref": "#/definitions/MultiPolygonCoordinates"
+ }
+ ],
+ "x-ms-discriminator-value": "MultiPolygon"
+ },
+ "MultiPolygonCoordinates": {
+ "description": "Schema of multi polygon coordinates.",
+ "required": [
+ "coordinates"
+ ],
+ "type": "object",
+ "properties": {
+ "coordinates": {
+ "description": "Gets or sets Coordinates of GeoJSON Object.\r\nIt must be an array of polygons, each polygon contains list of linear rings.\r\nFor Polygons with more than one of these rings, the first MUST be the exterior ring,\r\nand any others MUST be interior rings.",
+ "minLength": 1,
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "format": "double",
+ "type": "number"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "Point": {
+ "description": "Point geometry.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/GeoJsonObject"
+ },
+ {
+ "$ref": "#/definitions/PointCoordinates"
+ }
+ ],
+ "x-ms-discriminator-value": "Point"
+ },
+ "PointCoordinates": {
+ "description": "Schema of the coordinates of a point.",
+ "type": "object",
+ "required": [
+ "coordinates"
+ ],
+ "properties": {
+ "coordinates": {
+ "description": "Gets or sets the coordinate of this point.\r\nIt must be an array of 2 or 3 elements for a 2D or 3D system.",
+ "maximum": 3,
+ "minimum": 2,
+ "type": "array",
+ "items": {
+ "format": "double",
+ "type": "number"
+ }
+ }
+ }
+ },
+ "Polygon": {
+ "description": "Polygon geometry.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/GeoJsonObject"
+ },
+ {
+ "$ref": "#/definitions/PolygonCoordinates"
+ }
+ ],
+ "x-ms-discriminator-value": "Polygon"
+ },
+ "PolygonCoordinates": {
+ "description": "Schema of polygon coordinates.",
+ "required": [
+ "coordinates"
+ ],
+ "type": "object",
+ "properties": {
+ "coordinates": {
+ "description": "Gets or sets type of the GeoJSON Object.\r\nIt must be an array of linear ring coordinate arrays.\r\nFor Polygons with more than one of these rings, the first MUST be the exterior ring,\r\nand any others MUST be interior rings.",
+ "minLength": 1,
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "format": "double",
+ "type": "number"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "securityDefinitions": {
+ "Bearer": {
+ "type": "apiKey",
+ "name": "Authorization",
+ "in": "header",
+ "description": "Please provide a valid bearer token for authorized API calls. Note that you might need to clear your browser cache if you tried un-authenticated calls before."
+ }
+ },
+ "security": [
+ {
+ "Bearer": []
+ }
+ ]
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_CreateOrUpdate.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_CreateOrUpdate.json
new file mode 100644
index 000000000000..57545922eeb1
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_CreateOrUpdate.json
@@ -0,0 +1,149 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "applicationDataId": "APPLICATION123",
+ "api-version": "2021-03-31-preview",
+ "applicationData": {
+ "source": "Manual",
+ "name": "Application data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T11:12:12Z",
+ "operationBoundaryId": "APPLICATIONOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 60
+ },
+ "totalMaterial": {
+ "unit": "kilos",
+ "value": 9
+ },
+ "avgMaterial": {
+ "unit": "kilosperacre",
+ "value": 0.15
+ },
+ "applicationProductDetails": [
+ {
+ "productName": "POTASHVAR1",
+ "isCarrier": false,
+ "totalMaterial": {
+ "unit": "kilos",
+ "value": 4
+ },
+ "avgMaterial": {
+ "unit": "kilosperacre",
+ "value": 0.2
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "farmerId": "FARMER123",
+ "id": "APPLICATION123",
+ "source": "Manual",
+ "name": "Application data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T11:12:12Z",
+ "operationBoundaryId": "APPLICATIONOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 60
+ },
+ "totalMaterial": {
+ "unit": "kilos",
+ "value": 9
+ },
+ "avgMaterial": {
+ "unit": "kilosperacre",
+ "value": 0.15
+ },
+ "applicationProductDetails": [
+ {
+ "productName": "POTASHVAR1",
+ "isCarrier": false,
+ "totalMaterial": {
+ "unit": "kilos",
+ "value": 4
+ },
+ "avgMaterial": {
+ "unit": "kilosperacre",
+ "value": 0.2
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{applicationDataId}}&resourceTypes=ApplicationData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ },
+ "201": {
+ "body": {
+ "farmerId": "FARMER123",
+ "id": "APPLICATION123",
+ "source": "Manual",
+ "name": "Application data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T11:12:12Z",
+ "operationBoundaryId": "APPLICATIONOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 60
+ },
+ "totalMaterial": {
+ "unit": "kilos",
+ "value": 9
+ },
+ "avgMaterial": {
+ "unit": "kilosperacre",
+ "value": 0.15
+ },
+ "applicationProductDetails": [
+ {
+ "productName": "POTASHVAR1",
+ "isCarrier": false,
+ "totalMaterial": {
+ "unit": "kilos",
+ "value": 4
+ },
+ "avgMaterial": {
+ "unit": "kilosperacre",
+ "value": 0.2
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{applicationDataId}}&resourceTypes=ApplicationData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_Delete.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_Delete.json
new file mode 100644
index 000000000000..20dc9e559382
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_Delete.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "applicationDataId": "APPLICATION123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_Get.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_Get.json
new file mode 100644
index 000000000000..b9daa7a1fd1f
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_Get.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "applicationDataId": "APPLICATION123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "farmerId": "FARMER123",
+ "id": "APPLICATION123",
+ "source": "Manual",
+ "name": "Application data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T11:12:12Z",
+ "operationBoundaryId": "APPLICATIONOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 60
+ },
+ "totalMaterial": {
+ "unit": "kilos",
+ "value": 9
+ },
+ "avgMaterial": {
+ "unit": "kilosperacre",
+ "value": 0.15
+ },
+ "applicationProductDetails": [
+ {
+ "productName": "POTASHVAR1",
+ "isCarrier": false,
+ "totalMaterial": {
+ "unit": "kilos",
+ "value": 4
+ },
+ "avgMaterial": {
+ "unit": "kilosperacre",
+ "value": 0.2
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{applicationDataId}}&resourceTypes=ApplicationData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_List.json
new file mode 100644
index 000000000000..5f76b4ef2d0d
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_List.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "farmerId": "FARMER123",
+ "id": "APPLICATION123",
+ "source": "Manual",
+ "name": "Application data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T11:12:12Z",
+ "operationBoundaryId": "APPLICATIONOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 60
+ },
+ "totalMaterial": {
+ "unit": "kilos",
+ "value": 9
+ },
+ "avgMaterial": {
+ "unit": "kilosperacre",
+ "value": 0.15
+ },
+ "applicationProductDetails": [
+ {
+ "productName": "POTASHVAR1",
+ "isCarrier": false,
+ "totalMaterial": {
+ "unit": "kilos",
+ "value": 4
+ },
+ "avgMaterial": {
+ "unit": "kilosperacre",
+ "value": 0.2
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{applicationDataId}}&resourceTypes=ApplicationData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_ListByFarmerId.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_ListByFarmerId.json
new file mode 100644
index 000000000000..5b0d758e3ae4
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ApplicationData_ListByFarmerId.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "farmerId": "FARMER123",
+ "id": "APPLICATION123",
+ "source": "Manual",
+ "name": "Application data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T11:12:12Z",
+ "operationBoundaryId": "APPLICATIONOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 60
+ },
+ "totalMaterial": {
+ "unit": "kilos",
+ "value": 9
+ },
+ "avgMaterial": {
+ "unit": "kilosperacre",
+ "value": 0.15
+ },
+ "applicationProductDetails": [
+ {
+ "productName": "POTASHVAR1",
+ "isCarrier": false,
+ "totalMaterial": {
+ "unit": "kilos",
+ "value": 4
+ },
+ "avgMaterial": {
+ "unit": "kilosperacre",
+ "value": 0.2
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{applicationDataId}}&resourceTypes=ApplicationData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_CreateOrUpdate.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_CreateOrUpdate.json
new file mode 100644
index 000000000000..690aa0d90592
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_CreateOrUpdate.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "attachmentId": "ATTACHMENT123",
+ "api-version": "2021-03-31-preview",
+ "file": "101010101"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "ATTACHMENT123",
+ "farmerId": "FARMER123",
+ "resourceId": "FARMER123",
+ "resourceType": "farmer",
+ "originalFileName": "attachment-file",
+ "name": "John Smith's Field",
+ "status": "Active",
+ "description": "Some description",
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "ATTACHMENT123",
+ "farmerId": "FARMER123",
+ "resourceId": "FARMER123",
+ "resourceType": "farmer",
+ "originalFileName": "attachment-file",
+ "name": "John Smith's Field",
+ "status": "Active",
+ "description": "Some description",
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_Delete.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_Delete.json
new file mode 100644
index 000000000000..e6fddfaa62cf
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_Delete.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "attachmentId": "ATTACHMENT123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_Download.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_Download.json
new file mode 100644
index 000000000000..75312a623832
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_Download.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "attachmentId": "ATTACHMENT123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": "101010101"
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_Get.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_Get.json
new file mode 100644
index 000000000000..635f927d9a43
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_Get.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "attachmentId": "ATTACHMENT123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "ATTACHMENT123",
+ "farmerId": "FARMER123",
+ "resourceId": "FARMER123",
+ "resourceType": "farmer",
+ "originalFileName": "attachment-file",
+ "name": "John Smith's Field",
+ "status": "Active",
+ "description": "Some description",
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_ListByFarmerId.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_ListByFarmerId.json
new file mode 100644
index 000000000000..5fd6ec10225c
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Attachments_ListByFarmerId.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "ATTACHMENT123",
+ "farmerId": "FARMER123",
+ "resourceId": "FARMER123",
+ "resourceType": "farmer",
+ "originalFileName": "attachment-file",
+ "name": "John Smith's Field",
+ "status": "Active",
+ "description": "Some description",
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_CreateCascadeDeleteJob.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_CreateCascadeDeleteJob.json
new file mode 100644
index 000000000000..09ce3d8c2053
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_CreateCascadeDeleteJob.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "boundaryId": "BOUNDARY123",
+ "api-version": "2021-03-31-preview",
+ "jobId": "JOB123"
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "id": "JOB123",
+ "status": "Succeeded",
+ "message": "Job completed successfully.",
+ "durationInSeconds": 14.7977857,
+ "createdDateTime": "2021-04-19T11:31:20Z",
+ "lastActionDateTime": "2021-04-19T11:31:34Z",
+ "startTime": "2021-04-19T11:31:19Z",
+ "endTime": "2021-04-19T11:31:34Z",
+ "farmerId": "FARMER123",
+ "resourceId": "BOUNDARY123",
+ "resourceType": "boundary",
+ "name": "John Smith's Boundary",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_CreateOrUpdate.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_CreateOrUpdate.json
new file mode 100644
index 000000000000..25264c72321d
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_CreateOrUpdate.json
@@ -0,0 +1,137 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "boundaryId": "BOUNDARY123",
+ "api-version": "2021-03-31-preview",
+ "boundary": {
+ "parentId": "FIELD123",
+ "isPrimary": false,
+ "geometry": {
+ "type": "Polygon",
+ "coordinates": [
+ [
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70448589324951,
+ 20.542411534243367
+ ],
+ [
+ 73.70877742767334,
+ 20.541688176010233
+ ],
+ [
+ 73.71023654937744,
+ 20.545083911372505
+ ],
+ [
+ 73.70663166046143,
+ 20.546992723579137
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ]
+ ]
+ ]
+ },
+ "name": "John Smith's Boundary",
+ "description": "Some description"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "parentId": "FIELD123",
+ "isPrimary": false,
+ "geometry": {
+ "type": "Polygon",
+ "coordinates": [
+ [
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70448589324951,
+ 20.542411534243367
+ ],
+ [
+ 73.70877742767334,
+ 20.541688176010233
+ ],
+ [
+ 73.71023654937744,
+ 20.545083911372505
+ ],
+ [
+ 73.70663166046143,
+ 20.546992723579137
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ]
+ ]
+ ]
+ },
+ "name": "John Smith's Boundary",
+ "description": "Some description"
+ }
+ },
+ "201": {
+ "body": {
+ "parentId": "FIELD123",
+ "isPrimary": false,
+ "geometry": {
+ "type": "Polygon",
+ "coordinates": [
+ [
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70448589324951,
+ 20.542411534243367
+ ],
+ [
+ 73.70877742767334,
+ 20.541688176010233
+ ],
+ [
+ 73.71023654937744,
+ 20.545083911372505
+ ],
+ [
+ 73.70663166046143,
+ 20.546992723579137
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ]
+ ]
+ ]
+ },
+ "name": "John Smith's Boundary",
+ "description": "Some description"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_Delete.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_Delete.json
new file mode 100644
index 000000000000..6f54f0c0e68b
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_Delete.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "boundaryId": "BOUNDARY123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_Get.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_Get.json
new file mode 100644
index 000000000000..8b367ca8b678
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_Get.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "boundaryId": "BOUNDARY123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "parentId": "FIELD123",
+ "isPrimary": false,
+ "geometry": {
+ "type": "Polygon",
+ "coordinates": [
+ [
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70448589324951,
+ 20.542411534243367
+ ],
+ [
+ 73.70877742767334,
+ 20.541688176010233
+ ],
+ [
+ 73.71023654937744,
+ 20.545083911372505
+ ],
+ [
+ 73.70663166046143,
+ 20.546992723579137
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ]
+ ]
+ ]
+ },
+ "name": "John Smith's Boundary",
+ "description": "Some description"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_GetCascadeDeleteJobDetails.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_GetCascadeDeleteJobDetails.json
new file mode 100644
index 000000000000..aa0fba378785
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_GetCascadeDeleteJobDetails.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "jobId": "JOB123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "JOB123",
+ "status": "Succeeded",
+ "message": "Job completed successfully.",
+ "durationInSeconds": 14.7977857,
+ "createdDateTime": "2021-04-19T11:31:20Z",
+ "lastActionDateTime": "2021-04-19T11:31:34Z",
+ "startTime": "2021-04-19T11:31:19Z",
+ "endTime": "2021-04-19T11:31:34Z",
+ "name": "John Smith's Boundary",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "farmerId": "FARMER123",
+ "resourceId": "BOUNDARY123",
+ "resourceType": "boundary"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_GetOverlap.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_GetOverlap.json
new file mode 100644
index 000000000000..35d8e2ae0f84
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_GetOverlap.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "boundaryId": "BOUNDARY123",
+ "otherFarmerId": "FARMER456",
+ "otherBoundaryId": "BOUNDARY56",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "boundaryAcreage": 35,
+ "otherBoundaryAcreage": 25,
+ "intersectingAcreage": 10
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_List.json
new file mode 100644
index 000000000000..8ca2e70efba1
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_List.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "parentId": "FIELD123",
+ "isPrimary": false,
+ "geometry": {
+ "type": "Polygon",
+ "coordinates": [
+ [
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70448589324951,
+ 20.542411534243367
+ ],
+ [
+ 73.70877742767334,
+ 20.541688176010233
+ ],
+ [
+ 73.71023654937744,
+ 20.545083911372505
+ ],
+ [
+ 73.70663166046143,
+ 20.546992723579137
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ]
+ ]
+ ]
+ },
+ "name": "John Smith's Boundary",
+ "description": "Some description"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_ListByFarmerId.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_ListByFarmerId.json
new file mode 100644
index 000000000000..d4779fd7e53b
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_ListByFarmerId.json
@@ -0,0 +1,58 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "parentId": "FIELD123",
+ "isPrimary": false,
+ "geometry": {
+ "type": "Polygon",
+ "coordinates": [
+ [
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70448589324951,
+ 20.542411534243367
+ ],
+ [
+ 73.70877742767334,
+ 20.541688176010233
+ ],
+ [
+ 73.71023654937744,
+ 20.545083911372505
+ ],
+ [
+ 73.70663166046143,
+ 20.546992723579137
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ]
+ ]
+ ]
+ },
+ "name": "John Smith's Boundary",
+ "description": "Some description"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_Search.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_Search.json
new file mode 100644
index 000000000000..713d5e4f3859
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_Search.json
@@ -0,0 +1,111 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "body": {
+ "ids": [
+ "BOUNDARY123"
+ ],
+ "names": [
+ "John Smith's Boundary"
+ ],
+ "propertyFilters": [
+ "RetailerId"
+ ],
+ "statuses": [
+ "Active"
+ ],
+ "minCreatedDateTime": "2021-04-22T12:53:39Z",
+ "maxCreatedDateTime": "2021-04-22T12:53:39Z",
+ "minLastModifiedDateTime": "2021-04-22T12:53:39Z",
+ "maxLastModifiedDateTime": "2021-04-22T12:53:39Z",
+ "$maxPageSize": 50,
+ "$skipToken": "string",
+ "isPrimary": true,
+ "parentType": "field",
+ "parentIds": [
+ "FIELD123"
+ ],
+ "minAcreage": 200,
+ "maxAcreage": 800,
+ "intersectsWithGeometry": {
+ "type": "Polygon",
+ "coordinates": [
+ [
+ [
+ 10.98958969116211,
+ 45.284911882713146
+ ],
+ [
+ 11.004695892333984,
+ 45.284911882713146
+ ],
+ [
+ 11.004695892333984,
+ 45.29360722000945
+ ],
+ [
+ 10.98958969116211,
+ 45.29360722000945
+ ],
+ [
+ 10.98958969116211,
+ 45.284911882713146
+ ]
+ ]
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "parentId": "FIELD123",
+ "isPrimary": false,
+ "geometry": {
+ "type": "Polygon",
+ "coordinates": [
+ [
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70448589324951,
+ 20.542411534243367
+ ],
+ [
+ 73.70877742767334,
+ 20.541688176010233
+ ],
+ [
+ 73.71023654937744,
+ 20.545083911372505
+ ],
+ [
+ 73.70663166046143,
+ 20.546992723579137
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ]
+ ]
+ ]
+ },
+ "name": "John Smith's Boundary",
+ "description": "Some description"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_SearchByFarmerId.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_SearchByFarmerId.json
new file mode 100644
index 000000000000..01153167765b
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Boundaries_SearchByFarmerId.json
@@ -0,0 +1,112 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "api-version": "2021-03-31-preview",
+ "body": {
+ "ids": [
+ "BOUNDARY123"
+ ],
+ "names": [
+ "John Smith's Boundary"
+ ],
+ "propertyFilters": [
+ "RetailerId"
+ ],
+ "statuses": [
+ "Active"
+ ],
+ "minCreatedDateTime": "2021-04-22T12:53:39Z",
+ "maxCreatedDateTime": "2021-04-22T12:53:39Z",
+ "minLastModifiedDateTime": "2021-04-22T12:53:39Z",
+ "maxLastModifiedDateTime": "2021-04-22T12:53:39Z",
+ "$maxPageSize": 50,
+ "$skipToken": "string",
+ "isPrimary": true,
+ "parentType": "field",
+ "parentIds": [
+ "FIELD123"
+ ],
+ "minAcreage": 200,
+ "maxAcreage": 800,
+ "intersectsWithGeometry": {
+ "type": "Polygon",
+ "coordinates": [
+ [
+ [
+ 10.98958969116211,
+ 45.284911882713146
+ ],
+ [
+ 11.004695892333984,
+ 45.284911882713146
+ ],
+ [
+ 11.004695892333984,
+ 45.29360722000945
+ ],
+ [
+ 10.98958969116211,
+ 45.29360722000945
+ ],
+ [
+ 10.98958969116211,
+ 45.284911882713146
+ ]
+ ]
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "John Smith's Boundary",
+ "description": "Some description",
+ "parentId": "FIELD123",
+ "isPrimary": false,
+ "geometry": {
+ "type": "Polygon",
+ "coordinates": [
+ [
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ],
+ [
+ 73.70448589324951,
+ 20.542411534243367
+ ],
+ [
+ 73.70877742767334,
+ 20.541688176010233
+ ],
+ [
+ 73.71023654937744,
+ 20.545083911372505
+ ],
+ [
+ 73.70663166046143,
+ 20.546992723579137
+ ],
+ [
+ 73.70457172393799,
+ 20.545385304358106
+ ]
+ ]
+ ]
+ }
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_CreateOrUpdate.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_CreateOrUpdate.json
new file mode 100644
index 000000000000..b55ebb68da1a
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_CreateOrUpdate.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "cropId": "CORN123",
+ "cropVarietyId": "SEED123",
+ "cropVariety": {
+ "brand": "BRAND123",
+ "product": "AGTECH",
+ "status": "Active",
+ "name": "John Smith's Crop",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "SEED123",
+ "cropId": "CORN123",
+ "brand": "BRAND123",
+ "product": "AGTECH",
+ "name": "John Smith's Crop",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "SEED123",
+ "cropId": "CORN123",
+ "brand": "BRAND123",
+ "product": "AGTECH",
+ "name": "John Smith's Crop",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_Delete.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_Delete.json
new file mode 100644
index 000000000000..c62fd820d5c2
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_Delete.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "cropId": "CORN123",
+ "cropVarietyId": "SEED123"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_Get.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_Get.json
new file mode 100644
index 000000000000..be3eca9dbfa1
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_Get.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "cropId": "CORN123",
+ "cropVarietyId": "SEED123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "SEED123",
+ "cropId": "CORN123",
+ "brand": "BRAND123",
+ "product": "AGTECH",
+ "name": "John Smith's Crop",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_List.json
new file mode 100644
index 000000000000..ccde0d486bd2
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_List.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "SEED123",
+ "cropId": "CORN123",
+ "brand": "BRAND123",
+ "product": "AGTECH",
+ "name": "John Smith's Crop",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_ListByCropId.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_ListByCropId.json
new file mode 100644
index 000000000000..8eb7a9d2af11
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/CropVarieties_ListByCropId.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "cropId": "CORN123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "SEED123",
+ "cropId": "CORN123",
+ "brand": "BRAND123",
+ "product": "AGTECH",
+ "name": "John Smith's Crop",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Crops_CreateOrUpdate.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Crops_CreateOrUpdate.json
new file mode 100644
index 000000000000..89db89d4104e
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Crops_CreateOrUpdate.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "cropId": "CORN123",
+ "crop": {
+ "phenotype": "Corn",
+ "status": "Active",
+ "name": "John Smith's Crop",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "CORN123",
+ "phenotype": "Corn",
+ "name": "John Smith's Crop",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "CORN123",
+ "phenotype": "Corn",
+ "name": "John Smith's Crop",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Crops_Delete.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Crops_Delete.json
new file mode 100644
index 000000000000..a096ebe1f94b
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Crops_Delete.json
@@ -0,0 +1,10 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "cropId": "CORN123"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Crops_Get.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Crops_Get.json
new file mode 100644
index 000000000000..5caa58d6da6c
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Crops_Get.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "cropId": "CORN123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "CORN123",
+ "phenotype": "Corn",
+ "name": "John Smith's Crop",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Crops_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Crops_List.json
new file mode 100644
index 000000000000..54f133d7d4e3
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Crops_List.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "CORN123",
+ "phenotype": "Corn",
+ "name": "John Smith's Crop",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/FarmOperations_CreateDataIngestionJob.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/FarmOperations_CreateDataIngestionJob.json
new file mode 100644
index 000000000000..163cbf16f9e4
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/FarmOperations_CreateDataIngestionJob.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "jobId": "JOB123",
+ "api-version": "2021-03-31-preview",
+ "body": {
+ "farmerId": "TEST-FARMER",
+ "authProviderId": "JOHNDEERE",
+ "operations": [
+ "AllOperations"
+ ],
+ "startYear": 2012,
+ "name": "Farm Operations Job",
+ "description": "For TEST-FARMER",
+ "properties": {
+ "Operation": "All"
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "operations": [
+ "AllOperations"
+ ],
+ "startYear": 2012,
+ "durationInSeconds": 14.79,
+ "id": "sdi-0916aeec-ad8d-41d0-9797-63924f818cd7",
+ "status": "Waiting",
+ "message": "string",
+ "createdDateTime": "2021-03-15T07:14:14Z",
+ "lastActionDateTime": "2021-03-15T07:14:14Z",
+ "startTime": "2021-03-15T07:14:14Z",
+ "endTime": "2021-03-15T07:14:14Z",
+ "name": "Farm Operations Job",
+ "description": "For TEST-FARMER",
+ "properties": {
+ "Operation": "All"
+ },
+ "farmerId": "TEST-FARMER",
+ "authProviderId": "JOHNDEERE"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/FarmOperations_GetDataIngestionJobDetails.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/FarmOperations_GetDataIngestionJobDetails.json
new file mode 100644
index 000000000000..19947892604d
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/FarmOperations_GetDataIngestionJobDetails.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "jobId": "JOB123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "durationInSeconds": 11.2,
+ "id": "farm-operations-job",
+ "status": "Succeeded",
+ "message": "string",
+ "createdDateTime": "2021-04-16T08:24:50Z",
+ "lastActionDateTime": "2021-04-16T08:24:50Z",
+ "startTime": "2021-04-16T08:24:50Z",
+ "endTime": "2021-04-16T08:24:50Z",
+ "name": "Farm operations Job",
+ "description": "Test job",
+ "properties": {
+ "Region": "Asia"
+ },
+ "farmerId": "FARMER123",
+ "authProviderId": "JOHNDEERE",
+ "operations": [
+ "AllOperations"
+ ],
+ "startYear": 2012
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_CreateCascadeDeleteJob.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_CreateCascadeDeleteJob.json
new file mode 100644
index 000000000000..a7d2c1e25a5b
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_CreateCascadeDeleteJob.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "api-version": "2021-03-31-preview",
+ "jobId": "JOB123"
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "id": "JOB123",
+ "status": "Succeeded",
+ "message": "Job completed successfully.",
+ "durationInSeconds": 14.7977857,
+ "createdDateTime": "2021-04-19T11:31:20Z",
+ "lastActionDateTime": "2021-04-19T11:31:34Z",
+ "startTime": "2021-04-19T11:31:19Z",
+ "endTime": "2021-04-19T11:31:34Z",
+ "farmerId": "FARMER123",
+ "resourceId": "FARMER123",
+ "resourceType": "farmer",
+ "name": "John Smith",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_CreateOrUpdate.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_CreateOrUpdate.json
new file mode 100644
index 000000000000..b0c8b228bc3b
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_CreateOrUpdate.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "api-version": "2021-03-31-preview",
+ "farmer": {
+ "status": "Active",
+ "name": "John Smith",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "FARMER123",
+ "name": "John Smith",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "FARMER123",
+ "name": "John Smith",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_Delete.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_Delete.json
new file mode 100644
index 000000000000..eaa1e89032a9
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_Delete.json
@@ -0,0 +1,10 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_Get.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_Get.json
new file mode 100644
index 000000000000..606647a7877c
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_Get.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "FARMER123",
+ "name": "John Smith",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_GetCascadeDeleteJobDetails.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_GetCascadeDeleteJobDetails.json
new file mode 100644
index 000000000000..fa3c14969a1d
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_GetCascadeDeleteJobDetails.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "jobId": "JOB123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "JOB123",
+ "status": "Succeeded",
+ "message": "Job completed successfully.",
+ "durationInSeconds": 14.7977857,
+ "createdDateTime": "2021-04-19T11:31:20Z",
+ "lastActionDateTime": "2021-04-19T11:31:34Z",
+ "startTime": "2021-04-19T11:31:19Z",
+ "endTime": "2021-04-19T11:31:34Z",
+ "name": "John Smith",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "farmerId": "FARMER123",
+ "resourceId": "FARMER123",
+ "resourceType": "farmer"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_List.json
new file mode 100644
index 000000000000..ddfbfa7bde25
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farmers_List.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "FARMER123",
+ "name": "John Smith",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_CreateCascadeDeleteJob.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_CreateCascadeDeleteJob.json
new file mode 100644
index 000000000000..4a26aca784c9
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_CreateCascadeDeleteJob.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "farmId": "FARM123",
+ "api-version": "2021-03-31-preview",
+ "jobId": "JOB123"
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "id": "JOB123",
+ "status": "Succeeded",
+ "message": "Job completed successfully.",
+ "durationInSeconds": 14.7977857,
+ "createdDateTime": "2021-04-19T11:31:20Z",
+ "lastActionDateTime": "2021-04-19T11:31:34Z",
+ "startTime": "2021-04-19T11:31:19Z",
+ "endTime": "2021-04-19T11:31:34Z",
+ "farmerId": "FARMER123",
+ "resourceId": "FARM123",
+ "resourceType": "farm",
+ "name": "John Smith's Field",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_CreateOrUpdate.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_CreateOrUpdate.json
new file mode 100644
index 000000000000..5f1bb2f459ef
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_CreateOrUpdate.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "farmId": "FARM123",
+ "api-version": "2021-03-31-preview",
+ "farm": {
+ "status": "Active",
+ "name": "John Smith's Farm",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "FARM123",
+ "farmerId": "FARMER123",
+ "name": "John Smith's Farm",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "FARM123",
+ "farmerId": "FARMER123",
+ "name": "John Smith's Farm",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_Delete.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_Delete.json
new file mode 100644
index 000000000000..36d748d9f396
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_Delete.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "farmId": "FARM123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_Get.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_Get.json
new file mode 100644
index 000000000000..d33a4ffeb592
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_Get.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123",
+ "farmId": "FARM123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "FARM123",
+ "farmerId": "FARMER123",
+ "name": "John Smith's Farm",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_GetCascadeDeleteJobDetails.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_GetCascadeDeleteJobDetails.json
new file mode 100644
index 000000000000..3721e59fb36c
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_GetCascadeDeleteJobDetails.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "jobId": "JOB123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "JOB123",
+ "status": "Succeeded",
+ "message": "Job completed successfully.",
+ "durationInSeconds": 14.7977857,
+ "createdDateTime": "2021-04-19T11:31:20Z",
+ "lastActionDateTime": "2021-04-19T11:31:34Z",
+ "startTime": "2021-04-19T11:31:19Z",
+ "endTime": "2021-04-19T11:31:34Z",
+ "name": "John Smith's Farm",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "farmerId": "FARMER123",
+ "resourceId": "FARM123",
+ "resourceType": "farm"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_List.json
new file mode 100644
index 000000000000..fc004b6a3578
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_List.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "FARM123",
+ "farmerId": "FARMER123",
+ "name": "John Smith's Farm",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_ListByFarmerId.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_ListByFarmerId.json
new file mode 100644
index 000000000000..79b77c8abd9e
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Farms_ListByFarmerId.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "FARM123",
+ "farmerId": "FARMER123",
+ "name": "John Smith's Farm",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_CreateCascadeDeleteJob.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_CreateCascadeDeleteJob.json
new file mode 100644
index 000000000000..3db893452b2a
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_CreateCascadeDeleteJob.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "fieldId": "FIELD123",
+ "api-version": "2021-03-31-preview",
+ "jobId": "JOB123"
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "id": "JOB123",
+ "status": "Succeeded",
+ "message": "Job completed successfully.",
+ "durationInSeconds": 14.7977857,
+ "createdDateTime": "2021-04-19T11:31:20Z",
+ "lastActionDateTime": "2021-04-19T11:31:34Z",
+ "startTime": "2021-04-19T11:31:19Z",
+ "endTime": "2021-04-19T11:31:34Z",
+ "farmerId": "FARMER123",
+ "resourceId": "FIELD123",
+ "resourceType": "field",
+ "name": "John Smith's Field",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_CreateOrUpdate.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_CreateOrUpdate.json
new file mode 100644
index 000000000000..3cdb24e13c4c
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_CreateOrUpdate.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "fieldId": "FIELD123",
+ "api-version": "2021-03-31-preview",
+ "field": {
+ "farmId": "FARM123",
+ "status": "Active",
+ "name": "John Smith's Field",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "FIELD123",
+ "farmerId": "FARMER123",
+ "farmId": "FARM123",
+ "primaryBoundaryId": "BOUNDARY123",
+ "boundaryIds": [
+ "BOUNDARY123",
+ "BOUNDARY456"
+ ],
+ "name": "John Smith's Field",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "FIELD123",
+ "farmerId": "FARMER123",
+ "farmId": "FARM123",
+ "primaryBoundaryId": "BOUNDARY123",
+ "boundaryIds": [
+ "BOUNDARY123",
+ "BOUNDARY456"
+ ],
+ "name": "John Smith's Field",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_Delete.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_Delete.json
new file mode 100644
index 000000000000..c47512aa50af
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_Delete.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "fieldId": "FIELD123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_Get.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_Get.json
new file mode 100644
index 000000000000..da17b84a03ac
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_Get.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123",
+ "fieldId": "FIELD123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "FIELD123",
+ "farmerId": "FARMER123",
+ "farmId": "FARM123",
+ "primaryBoundaryId": "BOUNDARY123",
+ "boundaryIds": [
+ "BOUNDARY123",
+ "BOUNDARY456"
+ ],
+ "name": "John Smith's Field",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_GetCascadeDeleteJobDetails.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_GetCascadeDeleteJobDetails.json
new file mode 100644
index 000000000000..fe5878968de1
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_GetCascadeDeleteJobDetails.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "jobId": "JOB123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "JOB123",
+ "status": "Succeeded",
+ "message": "Job completed successfully.",
+ "durationInSeconds": 14.7977857,
+ "createdDateTime": "2021-04-19T11:31:20Z",
+ "lastActionDateTime": "2021-04-19T11:31:34Z",
+ "startTime": "2021-04-19T11:31:19Z",
+ "endTime": "2021-04-19T11:31:34Z",
+ "name": "John Smith's Field",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "farmerId": "FARMER123",
+ "resourceId": "FIELD123",
+ "resourceType": "field"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_List.json
new file mode 100644
index 000000000000..4978fe7edd6e
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_List.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "FIELD123",
+ "farmerId": "FARMER123",
+ "farmId": "FARM123",
+ "primaryBoundaryId": "BOUNDARY123",
+ "boundaryIds": [
+ "BOUNDARY123",
+ "BOUNDARY456"
+ ],
+ "name": "John Smith's Field",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_ListByFarmerId.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_ListByFarmerId.json
new file mode 100644
index 000000000000..bf218911d277
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Fields_ListByFarmerId.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "FIELD123",
+ "farmerId": "FARMER123",
+ "farmId": "FARM123",
+ "primaryBoundaryId": "BOUNDARY123",
+ "boundaryIds": [
+ "BOUNDARY123",
+ "BOUNDARY456"
+ ],
+ "name": "John Smith's Field",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_CreateOrUpdate.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_CreateOrUpdate.json
new file mode 100644
index 000000000000..1b81b715ffee
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_CreateOrUpdate.json
@@ -0,0 +1,242 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123",
+ "harvestDataId": "HARVESTOP123",
+ "harvestData": {
+ "source": "Manual",
+ "name": "Harvest data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:14:12Z",
+ "operationBoundaryId": "HARVESTOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 50
+ },
+ "totalYield": {
+ "unit": "kilos",
+ "value": 1400
+ },
+ "avgYield": {
+ "unit": "kilosperacre",
+ "value": 28
+ },
+ "totalWetMass": {
+ "unit": "kilos",
+ "value": 500
+ },
+ "avgWetMass": {
+ "unit": "kilosperacre",
+ "value": 10
+ },
+ "avgMoisture": {
+ "unit": "percent",
+ "value": 14.61
+ },
+ "avgSpeed": {
+ "unit": "kmsperhour",
+ "value": 7.2
+ },
+ "harvestProductDetails": [
+ {
+ "productName": "VAR1",
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "totalYield": {
+ "unit": "kilos",
+ "value": 900
+ },
+ "avgYield": {
+ "unit": "kilosperacre",
+ "value": 30
+ },
+ "totalWetMass": {
+ "unit": "kilos",
+ "value": 300
+ },
+ "avgWetMass": {
+ "unit": "kilosperacre",
+ "value": 10
+ },
+ "avgMoisture": {
+ "unit": "percent",
+ "value": 16.4
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "farmerId": "FARMER123",
+ "id": "HARVESTOP123",
+ "source": "Manual",
+ "name": "Harvest data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:12:12Z",
+ "operationBoundaryId": "HARVESTOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 50
+ },
+ "totalYield": {
+ "unit": "kilos",
+ "value": 1400
+ },
+ "avgYield": {
+ "unit": "kilosperacre",
+ "value": 28
+ },
+ "totalWetMass": {
+ "unit": "kilos",
+ "value": 500
+ },
+ "avgWetMass": {
+ "unit": "kilosperacre",
+ "value": 10
+ },
+ "avgMoisture": {
+ "unit": "percent",
+ "value": 14.61
+ },
+ "avgSpeed": {
+ "unit": "kmsperhour",
+ "value": 7.2
+ },
+ "harvestProductDetails": [
+ {
+ "productName": "VAR1",
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "totalYield": {
+ "unit": "kilos",
+ "value": 900
+ },
+ "avgYield": {
+ "unit": "kilosperacre",
+ "value": 30
+ },
+ "totalWetMass": {
+ "unit": "kilos",
+ "value": 300
+ },
+ "avgWetMass": {
+ "unit": "kilosperacre",
+ "value": 10
+ },
+ "avgMoisture": {
+ "unit": "percent",
+ "value": 16.4
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{harvestDataId}}&resourceTypes=HarvestData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ },
+ "201": {
+ "body": {
+ "farmerId": "FARMER123",
+ "id": "HARVESTOP123",
+ "source": "Manual",
+ "name": "Harvest data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:12:12Z",
+ "operationBoundaryId": "HARVESTOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 50
+ },
+ "totalYield": {
+ "unit": "kilos",
+ "value": 1400
+ },
+ "avgYield": {
+ "unit": "kilosperacre",
+ "value": 28
+ },
+ "totalWetMass": {
+ "unit": "kilos",
+ "value": 500
+ },
+ "avgWetMass": {
+ "unit": "kilosperacre",
+ "value": 10
+ },
+ "avgMoisture": {
+ "unit": "percent",
+ "value": 14.61
+ },
+ "avgSpeed": {
+ "unit": "kmsperhour",
+ "value": 7.2
+ },
+ "harvestProductDetails": [
+ {
+ "productName": "VAR1",
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "totalYield": {
+ "unit": "kilos",
+ "value": 900
+ },
+ "avgYield": {
+ "unit": "kilosperacre",
+ "value": 30
+ },
+ "totalWetMass": {
+ "unit": "kilos",
+ "value": 300
+ },
+ "avgWetMass": {
+ "unit": "kilosperacre",
+ "value": 10
+ },
+ "avgMoisture": {
+ "unit": "percent",
+ "value": 16.4
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{harvestDataId}}&resourceTypes=HarvestData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_Delete.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_Delete.json
new file mode 100644
index 000000000000..88c5785f4045
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_Delete.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123",
+ "harvestDataId": "HARVESTOP123"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_Get.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_Get.json
new file mode 100644
index 000000000000..caae9cb85c56
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_Get.json
@@ -0,0 +1,90 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123",
+ "harvestDataId": "HARVESTOP123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "farmerId": "FARMER123",
+ "id": "HARVESTOP123",
+ "source": "Manual",
+ "name": "Harvest data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:12:12Z",
+ "operationBoundaryId": "HARVESTOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 50
+ },
+ "totalYield": {
+ "unit": "kilos",
+ "value": 1400
+ },
+ "avgYield": {
+ "unit": "kilosperacre",
+ "value": 28
+ },
+ "totalWetMass": {
+ "unit": "kilos",
+ "value": 500
+ },
+ "avgWetMass": {
+ "unit": "kilosperacre",
+ "value": 10
+ },
+ "avgMoisture": {
+ "unit": "percent",
+ "value": 14.61
+ },
+ "avgSpeed": {
+ "unit": "kmsperhour",
+ "value": 7.2
+ },
+ "harvestProductDetails": [
+ {
+ "productName": "VAR1",
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "totalYield": {
+ "unit": "kilos",
+ "value": 900
+ },
+ "avgYield": {
+ "unit": "kilosperacre",
+ "value": 30
+ },
+ "totalWetMass": {
+ "unit": "kilos",
+ "value": 300
+ },
+ "avgWetMass": {
+ "unit": "kilosperacre",
+ "value": 10
+ },
+ "avgMoisture": {
+ "unit": "percent",
+ "value": 16.4
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{harvestDataId}}&resourceTypes=HarvestData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_List.json
new file mode 100644
index 000000000000..7eecebcce739
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_List.json
@@ -0,0 +1,94 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "farmerId": "FARMER123",
+ "id": "HARVESTOP123",
+ "source": "Manual",
+ "name": "Harvest data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:14:12Z",
+ "operationBoundaryId": "HARVESTOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 50
+ },
+ "totalYield": {
+ "unit": "kilos",
+ "value": 1400
+ },
+ "avgYield": {
+ "unit": "kilosperacre",
+ "value": 28
+ },
+ "totalWetMass": {
+ "unit": "kilos",
+ "value": 500
+ },
+ "avgWetMass": {
+ "unit": "kilosperacre",
+ "value": 10
+ },
+ "avgMoisture": {
+ "unit": "percent",
+ "value": 14.61
+ },
+ "avgSpeed": {
+ "unit": "kmsperhour",
+ "value": 7.2
+ },
+ "harvestProductDetails": [
+ {
+ "productName": "VAR1",
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "totalYield": {
+ "unit": "kilos",
+ "value": 900
+ },
+ "avgYield": {
+ "unit": "kilosperacre",
+ "value": 30
+ },
+ "totalWetMass": {
+ "unit": "kilos",
+ "value": 300
+ },
+ "avgWetMass": {
+ "unit": "kilosperacre",
+ "value": 10
+ },
+ "avgMoisture": {
+ "unit": "percent",
+ "value": 16.4
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{harvestDataId}}&resourceTypes=HarvestData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https:/{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/harvestData?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7ehK8eAKzdo1MNnwcAAAAAAA%3d%3d%23RT%3a1%23TRC%3a10%23ISV%3a2%23IEO%3a65551%23FPC%3aAQ2fBwAAAAAAD58HAAAAAAA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_ListByFarmerId.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_ListByFarmerId.json
new file mode 100644
index 000000000000..fdab67c54d14
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/HarvestData_ListByFarmerId.json
@@ -0,0 +1,95 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "farmerId": "FARMER123",
+ "id": "HARVESTOP123",
+ "source": "Manual",
+ "name": "Harvest data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:12:12Z",
+ "operationBoundaryId": "HARVESTOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 50
+ },
+ "totalYield": {
+ "unit": "kilos",
+ "value": 1400
+ },
+ "avgYield": {
+ "unit": "kilosperacre",
+ "value": 28
+ },
+ "totalWetMass": {
+ "unit": "kilos",
+ "value": 500
+ },
+ "avgWetMass": {
+ "unit": "kilosperacre",
+ "value": 10
+ },
+ "avgMoisture": {
+ "unit": "percent",
+ "value": 14.61
+ },
+ "avgSpeed": {
+ "unit": "kmsperhour",
+ "value": 7.2
+ },
+ "harvestProductDetails": [
+ {
+ "productName": "VAR1",
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "totalYield": {
+ "unit": "kilos",
+ "value": 900
+ },
+ "avgYield": {
+ "unit": "kilosperacre",
+ "value": 30
+ },
+ "totalWetMass": {
+ "unit": "kilos",
+ "value": 300
+ },
+ "avgWetMass": {
+ "unit": "kilosperacre",
+ "value": 10
+ },
+ "avgMoisture": {
+ "unit": "percent",
+ "value": 16.4
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{harvestDataId}}&resourceTypes=HarvestData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https:/{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/harvestData?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7ehK8eAKzdo1MNnwcAAAAAAA%3d%3d%23RT%3a1%23TRC%3a10%23ISV%3a2%23IEO%3a65551%23FPC%3aAQ2fBwAAAAAAD58HAAAAAAA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ImageProcessing_CreateRasterizeJob.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ImageProcessing_CreateRasterizeJob.json
new file mode 100644
index 000000000000..b3dc595eb9bd
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ImageProcessing_CreateRasterizeJob.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "jobId": "JOB123",
+ "api-version": "2021-03-31-preview",
+ "body": {
+ "farmerId": "test_farmer",
+ "shapefileAttachmentId": "harvesting_data_shapefile123",
+ "shapefileColumnNames": [
+ "Wet_yield",
+ "Dry_yield"
+ ],
+ "name": "Harvest_Data_Rasterize_Job",
+ "description": "Rasterize harvest data shape file",
+ "properties": {
+ "region": "Asia"
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "durationInSeconds": 12.4,
+ "id": "weather-job",
+ "status": "Waiting",
+ "message": "Created job to fetch weather data for job name 'TestWeatherJob', farmer id 'test_farmer' and field id 'test_field'.",
+ "createdDateTime": "2021-04-16T11:33:45Z",
+ "lastActionDateTime": "2021-04-16T11:33:45Z",
+ "startTime": "2021-04-16T11:33:45Z",
+ "endTime": "2021-04-16T11:33:45Z",
+ "farmerId": "test_farmer",
+ "shapefileAttachmentId": "harvesting_data_shapefile123",
+ "shapefileColumnNames": [
+ "Wet_yield",
+ "Dry_yield"
+ ],
+ "name": "Harvest_Data_Rasterize_Job",
+ "description": "Rasterize harvest data shape file",
+ "properties": {
+ "region": "Asia"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ImageProcessing_GetRasterizeJob.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ImageProcessing_GetRasterizeJob.json
new file mode 100644
index 000000000000..62face2583c2
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/ImageProcessing_GetRasterizeJob.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "jobId": "JOB123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "durationInSeconds": 12.4,
+ "id": "weather-job",
+ "status": "Succeeded",
+ "message": "Weather data is available for startTime to endTime",
+ "createdDateTime": "2021-04-16T08:24:50Z",
+ "lastActionDateTime": "2021-04-16T08:24:50Z",
+ "startTime": "2021-04-16T08:24:50Z",
+ "endTime": "2021-04-16T08:24:50Z",
+ "farmerId": "test_farmer",
+ "shapefileAttachmentId": "harvesting_data_shapefile123",
+ "shapefileColumnNames": [
+ "Wet_yield",
+ "Dry_yield"
+ ],
+ "name": "Harvest_Data_Rasterize_Job",
+ "description": "Rasterize harvest data shape file",
+ "properties": {
+ "region": "Asia"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthProviders_CreateOrUpdate.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthProviders_CreateOrUpdate.json
new file mode 100644
index 000000000000..80139cdbf05e
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthProviders_CreateOrUpdate.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "oauthProviderId": "JOHNDEERE",
+ "api-version": "2021-03-31-preview",
+ "oauthProvider": {
+ "appId": "appId",
+ "appSecret": "appSecret",
+ "apiKey": "apiKey",
+ "isProductionApp": false,
+ "name": "JOHNDEERE",
+ "description": "some description",
+ "properties": {
+ "orgId": "ORG123"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "JOHNDEERE",
+ "appId": "appId",
+ "appSecret": "appSecret",
+ "apiKey": "apiKey",
+ "isProductionApp": false,
+ "name": "JOHNDEERE",
+ "description": "some description",
+ "properties": {
+ "orgId": "ORG123"
+ },
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e",
+ "createdDateTime": "2021-04-23T11:31:10Z",
+ "modifiedDateTime": "2021-04-23T11:31:10Z"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "JOHNDEERE",
+ "appId": "appId",
+ "appSecret": "appSecret",
+ "apiKey": "apiKey",
+ "isProductionApp": false,
+ "name": "JOHNDEERE",
+ "description": "some description",
+ "properties": {
+ "orgId": "ORG123"
+ },
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e",
+ "createdDateTime": "2021-04-23T11:31:10Z",
+ "modifiedDateTime": "2021-04-23T11:31:10Z"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthProviders_Delete.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthProviders_Delete.json
new file mode 100644
index 000000000000..3a02f6d27ae6
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthProviders_Delete.json
@@ -0,0 +1,10 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "oauthProviderId": "JOHNDEERE",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthProviders_Get.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthProviders_Get.json
new file mode 100644
index 000000000000..994c7a7013be
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthProviders_Get.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "oauthProviderId": "JOHNDEERE",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "appId": "appId",
+ "appSecret": "appSecret",
+ "apiKey": "apiKey",
+ "isProductionApp": false,
+ "id": "JOHNDEERE",
+ "eTag": "f8fad5b-d9cb-469f-a165-70867728950e",
+ "createdDateTime": "2021-04-22T18:27:37Z",
+ "modifiedDateTime": "2021-04-22T18:27:37Z",
+ "name": "JD Integration",
+ "description": "Oauth Flow",
+ "properties": {
+ "Farmer": "123"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthProviders_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthProviders_List.json
new file mode 100644
index 000000000000..3777236bf4b3
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthProviders_List.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "appId": "appId",
+ "appSecret": "appSecret",
+ "apiKey": "apiKey",
+ "isProductionApp": false,
+ "id": "JOHNDEERE",
+ "eTag": "f8fad5b-d9cb-469f-a165-70867728950e",
+ "createdDateTime": "2021-04-22T18:27:37Z",
+ "modifiedDateTime": "2021-04-22T18:27:37Z",
+ "name": "JD Integration",
+ "description": "Oauth Flow",
+ "properties": {
+ "Farmer": "123"
+ }
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthTokens_CreateCascadeDeleteJob.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthTokens_CreateCascadeDeleteJob.json
new file mode 100644
index 000000000000..65800d1eba15
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthTokens_CreateCascadeDeleteJob.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "jobId": "JOBID123",
+ "farmerId": "FARMER123",
+ "oauthProviderId": "JOHNDEERE",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "farmerId": "FARMER123",
+ "resourceId": "JOHNDEERE",
+ "resourceType": "oauthtokeninfo",
+ "id": "JOBID123",
+ "status": "Waiting",
+ "message": "Created cascade delete job for 'oauthtokeninfo' resource with id 'JOHNDEERE' and farmerId 'FARMER123'.",
+ "createdDateTime": "2021-05-13T20:04:39Z",
+ "lastActionDateTime": "2021-05-13T20:04:39Z",
+ "startTime": "2021-05-13T20:04:37Z"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthTokens_GetCascadeDeleteJobDetails.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthTokens_GetCascadeDeleteJobDetails.json
new file mode 100644
index 000000000000..9a263d908ddf
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthTokens_GetCascadeDeleteJobDetails.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "jobId": "JOBID123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "farmerId": "FARMER123",
+ "resourceId": "JOHNDEERE",
+ "resourceType": "oauthtokeninfo",
+ "id": "JOBID123",
+ "status": "Waiting",
+ "message": "Created cascade delete job for 'oauthtokeninfo' resource with id 'JOHNDEERE' and farmerId 'FARMER123'.",
+ "createdDateTime": "2021-05-13T20:04:39Z",
+ "lastActionDateTime": "2021-05-13T20:04:39Z",
+ "startTime": "2021-05-13T20:04:37Z"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthTokens_GetOAuthConnectionLink.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthTokens_GetOAuthConnectionLink.json
new file mode 100644
index 000000000000..31c435205661
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthTokens_GetOAuthConnectionLink.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "body": {
+ "farmerId": "FARMER123",
+ "oAuthProviderId": "JOHNDEERE",
+ "userRedirectLink": "https://docs.microsoft.com",
+ "userRedirectState": "code"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": "Connection string"
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthTokens_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthTokens_List.json
new file mode 100644
index 000000000000..7ccb4143441b
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/OAuthTokens_List.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "farmerId": "FARMER123",
+ "authProviderId": "JOHNDEERE",
+ "isValid": true,
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e",
+ "createdDateTime": "2021-04-22T18:49:25Z",
+ "modifiedDateTime": "2021-04-22T18:49:25Z"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_CreateOrUpdate.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_CreateOrUpdate.json
new file mode 100644
index 000000000000..3c9dad916c1e
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_CreateOrUpdate.json
@@ -0,0 +1,170 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123",
+ "plantingDataId": "PLANTINGOP123",
+ "plantingData": {
+ "source": "Manual",
+ "name": "Planting data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:14:12Z",
+ "operationBoundaryId": "PLANTINGOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "avgPlantingRate": {
+ "unit": "seedsperacre",
+ "value": 30
+ },
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "totalMaterial": {
+ "unit": "seeds",
+ "value": 758814
+ },
+ "avgMaterial": {
+ "unit": "seedsperacre",
+ "value": 25293
+ },
+ "plantingProductDetails": [
+ {
+ "productName": "VAR1",
+ "area": {
+ "unit": "acre",
+ "value": 20
+ },
+ "totalMaterial": {
+ "unit": "seeds",
+ "value": 389214
+ },
+ "avgMaterial": {
+ "unit": "seedsperacre",
+ "value": 19460
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "farmerId": "FARMER123",
+ "id": "PLANTINGOP123",
+ "source": "Manual",
+ "name": "Planting data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:14:12Z",
+ "operationBoundaryId": "PLANTINGOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "avgPlantingRate": {
+ "unit": "seedsperacre",
+ "value": 30
+ },
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "totalMaterial": {
+ "unit": "seeds",
+ "value": 758814
+ },
+ "avgMaterial": {
+ "unit": "seedsperacre",
+ "value": 25293
+ },
+ "plantingProductDetails": [
+ {
+ "productName": "VAR1",
+ "area": {
+ "unit": "acre",
+ "value": 20
+ },
+ "totalMaterial": {
+ "unit": "seeds",
+ "value": 389214
+ },
+ "avgMaterial": {
+ "unit": "seedsperacre",
+ "value": 19460
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{plantingDataId}}&resourceTypes=PlantingData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ },
+ "201": {
+ "body": {
+ "farmerId": "FARMER123",
+ "id": "PLANTINGOP123",
+ "source": "Manual",
+ "name": "Planting data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:14:12Z",
+ "operationBoundaryId": "PLANTINGOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "avgPlantingRate": {
+ "unit": "seedsperacre",
+ "value": 30
+ },
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "totalMaterial": {
+ "unit": "seeds",
+ "value": 758814
+ },
+ "avgMaterial": {
+ "unit": "seedsperacre",
+ "value": 25293
+ },
+ "plantingProductDetails": [
+ {
+ "productName": "VAR1",
+ "area": {
+ "unit": "acre",
+ "value": 20
+ },
+ "totalMaterial": {
+ "unit": "seeds",
+ "value": 389214
+ },
+ "avgMaterial": {
+ "unit": "seedsperacre",
+ "value": 19460
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{plantingDataId}}&resourceTypes=PlantingData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_Delete.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_Delete.json
new file mode 100644
index 000000000000..8b17313f1110
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_Delete.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123",
+ "plantingDataId": "PLANTINGOP123"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_Get.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_Get.json
new file mode 100644
index 000000000000..155712c370fd
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_Get.json
@@ -0,0 +1,66 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123",
+ "plantingDataId": "PLANTINGOP123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "farmerId": "FARMER123",
+ "id": "PLANTINGOP123",
+ "source": "Manual",
+ "name": "Planting data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:14:12Z",
+ "operationBoundaryId": "PLANTINGOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "avgPlantingRate": {
+ "unit": "seedsperacre",
+ "value": 30
+ },
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "totalMaterial": {
+ "unit": "seeds",
+ "value": 758814
+ },
+ "avgMaterial": {
+ "unit": "seedsperacre",
+ "value": 25293
+ },
+ "plantingProductDetails": [
+ {
+ "productName": "VAR1",
+ "area": {
+ "unit": "acre",
+ "value": 20
+ },
+ "totalMaterial": {
+ "unit": "seeds",
+ "value": 389214
+ },
+ "avgMaterial": {
+ "unit": "seedsperacre",
+ "value": 19460
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{plantingDataId}}&resourceTypes=PlantingData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_List.json
new file mode 100644
index 000000000000..b6c59eaee01a
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_List.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "farmerId": "FARMER123",
+ "id": "PLANTINGOP123",
+ "source": "Manual",
+ "name": "Planting data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:14:12Z",
+ "operationBoundaryId": "PLANTINGOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "avgPlantingRate": {
+ "unit": "seedsperacre",
+ "value": 30
+ },
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "totalMaterial": {
+ "unit": "seeds",
+ "value": 758814
+ },
+ "avgMaterial": {
+ "unit": "seedsperacre",
+ "value": 25293
+ },
+ "plantingProductDetails": [
+ {
+ "productName": "VAR1",
+ "area": {
+ "unit": "acre",
+ "value": 20
+ },
+ "totalMaterial": {
+ "unit": "seeds",
+ "value": 389214
+ },
+ "avgMaterial": {
+ "unit": "seedsperacre",
+ "value": 19460
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{plantingDataId}}&resourceTypes=PlantingData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https:/{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/plantingData?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7ehK8eAKzdo1MNnwcAAAAAAA%3d%3d%23RT%3a1%23TRC%3a10%23ISV%3a2%23IEO%3a65551%23FPC%3aAQ2fBwAAAAAAD58HAAAAAAA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_ListByFarmerId.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_ListByFarmerId.json
new file mode 100644
index 000000000000..7bb636bba095
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/PlantingData_ListByFarmerId.json
@@ -0,0 +1,71 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "farmerId": "FARMER123",
+ "id": "PLANTINGOP123",
+ "source": "Manual",
+ "name": "Planting data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:14:12Z",
+ "operationBoundaryId": "PLANTINGOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "avgPlantingRate": {
+ "unit": "seedsperacre",
+ "value": 30
+ },
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "totalMaterial": {
+ "unit": "seeds",
+ "value": 758814
+ },
+ "avgMaterial": {
+ "unit": "seedsperacre",
+ "value": 25293
+ },
+ "plantingProductDetails": [
+ {
+ "productName": "VAR1",
+ "area": {
+ "unit": "acre",
+ "value": 20
+ },
+ "totalMaterial": {
+ "unit": "seeds",
+ "value": 389214
+ },
+ "avgMaterial": {
+ "unit": "seedsperacre",
+ "value": 19460
+ }
+ }
+ ],
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{plantingDataId}}&resourceTypes=PlantingData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https:/{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/plantingData?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7ehK8eAKzdo1MNnwcAAAAAAA%3d%3d%23RT%3a1%23TRC%3a10%23ISV%3a2%23IEO%3a65551%23FPC%3aAQ2fBwAAAAAAD58HAAAAAAA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Scenes_CreateSatelliteDataIngestionJob.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Scenes_CreateSatelliteDataIngestionJob.json
new file mode 100644
index 000000000000..3e97b7391d97
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Scenes_CreateSatelliteDataIngestionJob.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "jobId": "JOB123",
+ "api-version": "2021-03-31-preview",
+ "body": {
+ "boundaryId": "BOUNDARY123",
+ "farmerId": "FARMER123",
+ "startDateTime": "2020-04-16T10:14:12Z",
+ "endDateTime": "2021-04-16T10:14:12Z",
+ "provider": "Microsoft",
+ "source": "Sentinel_2_L2A",
+ "name": "North Farm 2019 satellite imagery",
+ "description": "Test job",
+ "data": {
+ "imageFormats": [
+ "Tif"
+ ],
+ "imageNames": [
+ "NDVI"
+ ],
+ "imageResolutions": [
+ 10.0
+ ]
+ },
+ "properties": {
+ "Region": "Asia"
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "durationInSeconds": 12.4,
+ "id": "satellite-job",
+ "status": "Created",
+ "message": "Created job 'satellite-job' to fetch satellite data for boundary 'BOUNDARY123' for startDate '01/01/2019 00:00:00' and endDate '03/30/2019 00:00:00' (both inclusive)",
+ "createdDateTime": "2021-04-16T07:56:05Z",
+ "lastActionDateTime": "2021-04-16T07:56:05Z",
+ "startDateTime": "2021-04-16T07:56:05Z",
+ "endDateTime": "2021-04-16T07:56:05Z",
+ "farmerId": "FARMER123",
+ "boundaryId": "BOUNDARY123",
+ "name": "North Farm 2019 satellite imagery",
+ "description": "Test job",
+ "properties": {
+ "Region": "Asia"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Scenes_Download.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Scenes_Download.json
new file mode 100644
index 000000000000..0fe996302727
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Scenes_Download.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "filePath": "https://filePath",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": "101010101"
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Scenes_GetSatelliteDataIngestionJobDetails.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Scenes_GetSatelliteDataIngestionJobDetails.json
new file mode 100644
index 000000000000..07ac177ebd7d
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Scenes_GetSatelliteDataIngestionJobDetails.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "jobId": "JOB123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "durationInSeconds": 12.4,
+ "id": "satellite-job",
+ "status": "Succeeded",
+ "message": "Satellite data is available for 73 days from provider in the requested date range. Successfully fetched data for 73 days.",
+ "createdDateTime": "2021-04-16T08:24:50Z",
+ "lastActionDateTime": "2021-04-16T08:24:50Z",
+ "startTime": "2021-04-16T08:24:50Z",
+ "endTime": "2021-04-16T08:24:50Z",
+ "name": "North Farm 2019 satellite imagery",
+ "description": "Test job",
+ "properties": {
+ "Region": "Asia"
+ },
+ "boundaryId": "BOUNDARY123",
+ "farmerId": "FARMER123",
+ "startDateTime": "2020-04-16T10:14:12Z",
+ "endDateTime": "2021-04-16T10:14:12Z",
+ "provider": "Microsoft",
+ "source": "Sentinel_2_L2A",
+ "data": {
+ "imageFormats": [
+ "Tif"
+ ],
+ "imageNames": [
+ "NDVI"
+ ],
+ "imageResolutions": [
+ 10.0
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Scenes_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Scenes_List.json
new file mode 100644
index 000000000000..cd555fe0682f
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Scenes_List.json
@@ -0,0 +1,142 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "provider": "Microsoft",
+ "farmerId": "FARMER123",
+ "boundaryId": "BOUNDARY123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "400e200f-ccc4-0cea-c120-3fdc6a41f99f",
+ "sceneDateTime": "2019-01-27T00:00:00Z",
+ "boundaryId": "BOUNDARY123",
+ "farmerId": "FARMER123",
+ "provider": "Microsoft",
+ "source": "Sentinel_2_L2A",
+ "cloudCoverPercentage": 67.2,
+ "darkPixelPercentage": 2.4,
+ "imageFormat": "TIF",
+ "imageFiles": [
+ {
+ "name": "B08",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/b08_10.tif"
+ },
+ {
+ "name": "B03",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/b03_10.tif"
+ },
+ {
+ "name": "B11",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/b11_10.tif"
+ },
+ {
+ "name": "SNW",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/snw_10.tif"
+ },
+ {
+ "name": "B05",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/b05_10.tif"
+ },
+ {
+ "name": "B06",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/b06_10.tif"
+ },
+ {
+ "name": "dataMask",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/datamask_10.tif"
+ },
+ {
+ "name": "B07",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/b07_10.tif"
+ },
+ {
+ "name": "CLP",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/clp_10.tif"
+ },
+ {
+ "name": "NDVI",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/ndvi_10.tif"
+ },
+ {
+ "name": "SCL",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/scl_10.tif"
+ },
+ {
+ "name": "B09",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/b09_10.tif"
+ },
+ {
+ "name": "B01",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/b01_10.tif"
+ },
+ {
+ "name": "NDWI",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/ndwi_10.tif"
+ },
+ {
+ "name": "AOT",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/aot_10.tif"
+ },
+ {
+ "name": "CLD",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/cld_10.tif"
+ },
+ {
+ "name": "CLM",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/clm_10.tif"
+ },
+ {
+ "name": "B02",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/b02_10.tif"
+ },
+ {
+ "name": "B04",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/b04_10.tif"
+ },
+ {
+ "name": "B8A",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/b8a_10.tif"
+ },
+ {
+ "name": "EVI",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/evi_10.tif"
+ },
+ {
+ "name": "B12",
+ "resolution": 10.0,
+ "fileLink": "https://{{resourceName}}.farmbeats.azure.net/scenes/downloadFiles?api-version=2020-12-31-preview& filePath=microsoft/sentinel_2_l2a/FARMER123/BOUNDARY123/2019-01-27/00-00-00/b12_10.tif"
+ }
+ ]
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/scenes?provider=Microsoft&farmerId=FARMER123&boundaryId=BOUNDARY123&api-version=2020-10-16-preview&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7ehK8eAKzdo1PTnwcAAAAAAA%3d%3d%23RT%3a1%23TRC%3a10%23ISV%3a2%23IEO%3a65551%23FPC%3aAdOfBwAAAAAA7Z8HAAAAAAA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_CreateCascadeDeleteJob.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_CreateCascadeDeleteJob.json
new file mode 100644
index 000000000000..85084ff521ed
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_CreateCascadeDeleteJob.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "seasonalFieldId": "SEASONALFIELD123",
+ "api-version": "2021-03-31-preview",
+ "jobId": "JOB123"
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "id": "JOB123",
+ "status": "Succeeded",
+ "message": "Job completed successfully.",
+ "durationInSeconds": 14.7977857,
+ "createdDateTime": "2021-04-19T11:31:20Z",
+ "lastActionDateTime": "2021-04-19T11:31:34Z",
+ "startTime": "2021-04-19T11:31:19Z",
+ "endTime": "2021-04-19T11:31:34Z",
+ "farmerId": "FARMER123",
+ "resourceId": "SEASONALFIELD123",
+ "resourceType": "seasonalfield"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_CreateOrUpdate.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_CreateOrUpdate.json
new file mode 100644
index 000000000000..39d8f11403c7
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_CreateOrUpdate.json
@@ -0,0 +1,100 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "seasonalFieldId": "SEASONALFIELD123",
+ "api-version": "2021-03-31-preview",
+ "seasonalField": {
+ "farmId": "FARM123",
+ "fieldId": "FIELD123",
+ "seasonId": "WINTER_WHEAT_2021",
+ "cropId": "WHEAT",
+ "cropVarietyIds": [
+ "WHEAT_VARIETY_123",
+ "WHEAT_VARIETY_456"
+ ],
+ "avgYieldValue": 321.6,
+ "avgYieldUnit": "Bushels per acre",
+ "avgSeedPopulationValue": 45,
+ "avgSeedPopulationUnit": "Kilogram per acre",
+ "plantingDateTime": "2021-04-21T06:49:30Z",
+ "name": "John Smith's Seasonal Field",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "SEASONALFIELD123",
+ "farmerId": "FARMER123",
+ "farmId": "FARM123",
+ "fieldId": "FIELD123",
+ "seasonId": "WINTER_WHEAT_2021",
+ "cropId": "WHEAT",
+ "cropVarietyIds": [
+ "WHEAT_VARIETY_123",
+ "WHEAT_VARIETY_456"
+ ],
+ "primaryBoundaryId": "BOUNDARY123",
+ "boundaryIds": [
+ "BOUNDARY123",
+ "BOUNDARY456"
+ ],
+ "avgYieldValue": 321.6,
+ "avgYieldUnit": "Bushels per acre",
+ "avgSeedPopulationValue": 45,
+ "avgSeedPopulationUnit": "Kilogram per acre",
+ "plantingDateTime": "2021-04-21T06:49:30Z",
+ "name": "John Smith's Seasonal Field",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "SEASONALFIELD123",
+ "farmerId": "FARMER123",
+ "farmId": "FARM123",
+ "fieldId": "FIELD123",
+ "seasonId": "WINTER_WHEAT_2021",
+ "cropId": "WHEAT",
+ "cropVarietyIds": [
+ "WHEAT_VARIETY_123",
+ "WHEAT_VARIETY_456"
+ ],
+ "primaryBoundaryId": "BOUNDARY123",
+ "boundaryIds": [
+ "BOUNDARY123",
+ "BOUNDARY456"
+ ],
+ "avgYieldValue": 321.6,
+ "avgYieldUnit": "Bushels per acre",
+ "avgSeedPopulationValue": 45,
+ "avgSeedPopulationUnit": "Kilogram per acre",
+ "plantingDateTime": "2021-04-21T06:49:30Z",
+ "name": "John Smith's Seasonal Field",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_Delete.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_Delete.json
new file mode 100644
index 000000000000..e88c3e014d9d
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_Delete.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "seasonalFieldId": "SEASONALFIELD123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_Get.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_Get.json
new file mode 100644
index 000000000000..531e3c81b5e5
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_Get.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "seasonalFieldId": "SEASONALFIELD123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "SEASONALFIELD123",
+ "farmerId": "FARMER123",
+ "farmId": "FARM123",
+ "fieldId": "FIELD123",
+ "seasonId": "WINTER_WHEAT_2021",
+ "cropId": "WHEAT",
+ "cropVarietyIds": [
+ "WHEAT_VARIETY_123",
+ "WHEAT_VARIETY_456"
+ ],
+ "primaryBoundaryId": "BOUNDARY123",
+ "boundaryIds": [
+ "BOUNDARY123",
+ "BOUNDARY456"
+ ],
+ "avgYieldValue": 321.6,
+ "avgYieldUnit": "Bushels per acre",
+ "avgSeedPopulationValue": 45,
+ "avgSeedPopulationUnit": "Kilogram per acre",
+ "plantingDateTime": "2021-04-21T06:49:30Z",
+ "name": "John Smith's Seasonal Field",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_GetCascadeDeleteJobDetails.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_GetCascadeDeleteJobDetails.json
new file mode 100644
index 000000000000..17a1d054dfe9
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_GetCascadeDeleteJobDetails.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "jobId": "JOB123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "JOB123",
+ "status": "Succeeded",
+ "message": "Job completed successfully.",
+ "durationInSeconds": 14.7977857,
+ "createdDateTime": "2021-04-19T11:31:20Z",
+ "lastActionDateTime": "2021-04-19T11:31:34Z",
+ "startTime": "2021-04-19T11:31:19Z",
+ "endTime": "2021-04-19T11:31:34Z",
+ "farmerId": "FARMER123",
+ "resourceId": "SEASONALFIELD123",
+ "resourceType": "seasonalfield"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_List.json
new file mode 100644
index 000000000000..e2df1c6e4d09
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_List.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "SEASONALFIELD123",
+ "farmerId": "FARMER123",
+ "farmId": "FARM123",
+ "fieldId": "FIELD123",
+ "seasonId": "WINTER_WHEAT_2021",
+ "cropId": "WHEAT",
+ "cropVarietyIds": [
+ "WHEAT_VARIETY_123",
+ "WHEAT_VARIETY_456"
+ ],
+ "primaryBoundaryId": "BOUNDARY123",
+ "boundaryIds": [
+ "BOUNDARY123",
+ "BOUNDARY456"
+ ],
+ "avgYieldValue": 321.6,
+ "avgYieldUnit": "Bushels per acre",
+ "avgSeedPopulationValue": 45,
+ "avgSeedPopulationUnit": "Kilogram per acre",
+ "plantingDateTime": "2021-04-21T06:49:30Z",
+ "name": "John Smith's Seasonal Field",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_ListByFarmerId.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_ListByFarmerId.json
new file mode 100644
index 000000000000..1ff5c7b115ed
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/SeasonalFields_ListByFarmerId.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "SEASONALFIELD123",
+ "farmerId": "FARMER123",
+ "farmId": "FARM123",
+ "fieldId": "FIELD123",
+ "seasonId": "WINTER_WHEAT_2021",
+ "cropId": "WHEAT",
+ "cropVarietyIds": [
+ "WHEAT_VARIETY_123",
+ "WHEAT_VARIETY_456"
+ ],
+ "primaryBoundaryId": "BOUNDARY123",
+ "boundaryIds": [
+ "BOUNDARY123",
+ "BOUNDARY456"
+ ],
+ "avgYieldValue": 321.6,
+ "avgYieldUnit": "Bushels per acre",
+ "avgSeedPopulationValue": 45,
+ "avgSeedPopulationUnit": "Kilogram per acre",
+ "plantingDateTime": "2021-04-21T06:49:30Z",
+ "name": "John Smith's Seasonal Field",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Seasons_CreateOrUpdate.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Seasons_CreateOrUpdate.json
new file mode 100644
index 000000000000..b9233c24fb19
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Seasons_CreateOrUpdate.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "seasonId": "SEASON123",
+ "season": {
+ "startDateTime": "2021-04-22T17:56:28Z",
+ "endDateTime": "2021-04-22T17:56:28Z",
+ "year": 2012,
+ "status": "Active",
+ "name": "John Smith's Season",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "startDateTime": "2021-04-22T17:50:26Z",
+ "endDateTime": "2021-04-22T17:50:26Z",
+ "year": 2012,
+ "id": "SEASON123",
+ "name": "John Smith's Season",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ },
+ "201": {
+ "body": {
+ "startDateTime": "2021-04-22T17:50:26Z",
+ "endDateTime": "2021-04-22T17:50:26Z",
+ "year": 2012,
+ "id": "SEASON123",
+ "name": "John Smith's Season",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Seasons_Delete.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Seasons_Delete.json
new file mode 100644
index 000000000000..65b69d8f4cff
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Seasons_Delete.json
@@ -0,0 +1,10 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "seasonId": "SEASON123"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Seasons_Get.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Seasons_Get.json
new file mode 100644
index 000000000000..bb211e68d035
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Seasons_Get.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "seasonId": "SEASON123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "startDateTime": "2021-04-22T17:50:26Z",
+ "endDateTime": "2021-04-22T17:50:26Z",
+ "year": 2012,
+ "id": "SEASON123",
+ "name": "John Smith's Season",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Seasons_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Seasons_List.json
new file mode 100644
index 000000000000..5c0053b60f65
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Seasons_List.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "startDateTime": "2021-04-22T17:50:26Z",
+ "endDateTime": "2021-04-22T17:50:26Z",
+ "year": 2012,
+ "id": "SEASON123",
+ "name": "John Smith's Season",
+ "status": "Active",
+ "description": "Some description",
+ "properties": {
+ "Irrigated": "Yes",
+ "RetailerId": "Retailer123"
+ },
+ "createdDateTime": "2021-04-21T06:49:30Z",
+ "modifiedDateTime": "2021-04-21T06:49:30Z",
+ "eTag": "0f8fad5b-d9cb-469f-a165-70867728950e"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https://{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/seasonalFields/{{seasonalFieldId}}?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7e23TRC%3a10%23ISA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_CreateOrUpdate.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_CreateOrUpdate.json
new file mode 100644
index 000000000000..4dfc09b2a20b
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_CreateOrUpdate.json
@@ -0,0 +1,107 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123",
+ "tillageDataId": "TILLAGEOP123",
+ "tillageData": {
+ "source": "Manual",
+ "name": "Planting data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:14:12Z",
+ "operationBoundaryId": "PLANTINGOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "tillagePressure": {
+ "unit": "kg per sq cms",
+ "value": 950
+ },
+ "tillageDepth": {
+ "unit": "cms",
+ "value": 9.5
+ },
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "farmerId": "FARMER123",
+ "id": "TILLAGEOP123",
+ "source": "Manual",
+ "name": "Planting data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:12:12Z",
+ "operationBoundaryId": "PLANTINGOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "tillagePressure": {
+ "unit": "kg per sq cms",
+ "value": 950
+ },
+ "tillageDepth": {
+ "unit": "cms",
+ "value": 9.5
+ },
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{plantingDataId}}&resourceTypes=PlantingData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ },
+ "201": {
+ "body": {
+ "farmerId": "FARMER123",
+ "id": "TILLAGEOP123",
+ "source": "Manual",
+ "name": "Planting data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:12:12Z",
+ "operationBoundaryId": "PLANTINGOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "tillagePressure": {
+ "unit": "kg per sq cms",
+ "value": 950
+ },
+ "tillageDepth": {
+ "unit": "cms",
+ "value": 9.5
+ },
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{plantingDataId}}&resourceTypes=PlantingData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_Delete.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_Delete.json
new file mode 100644
index 000000000000..8ab38e14e5fb
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_Delete.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123",
+ "tillageDataId": "TILLAGEOP123"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_Get.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_Get.json
new file mode 100644
index 000000000000..a9499ed7990f
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_Get.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123",
+ "tillageDataId": "TILLAGEOP123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "farmerId": "FARMER123",
+ "id": "TILLAGEOP123",
+ "source": "Manual",
+ "name": "Planting data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:14:12Z",
+ "operationBoundaryId": "PLANTINGOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "tillagePressure": {
+ "unit": "kg per sq cms",
+ "value": 950
+ },
+ "tillageDepth": {
+ "unit": "cms",
+ "value": 9.5
+ },
+ "properties": {
+ "Region": "Asia",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{plantingDataId}}&resourceTypes=PlantingData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_List.json
new file mode 100644
index 000000000000..52e57fe5de5e
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_List.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "farmerId": "FARMER123",
+ "id": "TILLAGEOP123",
+ "source": "Manual",
+ "name": "Planting data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:14:12Z",
+ "operationBoundaryId": "PLANTINGOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "tillagePressure": {
+ "unit": "kg per sq cms",
+ "value": 950
+ },
+ "tillageDepth": {
+ "unit": "cms",
+ "value": 9.5
+ },
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{plantingDataId}}&resourceTypes=PlantingData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https:/{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/plantingData?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7ehK8eAKzdo1MNnwcAAAAAAA%3d%3d%23RT%3a1%23TRC%3a10%23ISV%3a2%23IEO%3a65551%23FPC%3aAQ2fBwAAAAAAD58HAAAAAAA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_ListByFarmerId.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_ListByFarmerId.json
new file mode 100644
index 000000000000..240a3548c76b
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/TillageData_ListByFarmerId.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "api-version": "2021-03-31-preview",
+ "farmerId": "FARMER123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "farmerId": "FARMER123",
+ "id": "TILLAGEOP123",
+ "source": "Manual",
+ "name": "Planting data for North Farm",
+ "description": "some description",
+ "status": "Active",
+ "operationStartDateTime": "2021-02-25T16:57:04Z",
+ "operationEndDateTime": "2021-02-27T10:13:06Z",
+ "operationModifiedDateTime": "2021-02-28T10:14:12Z",
+ "operationBoundaryId": "PLANTINGOPBOUNDARY1",
+ "associatedBoundaryId": "NORTHFARM2021CORNBOUNDARY",
+ "area": {
+ "unit": "acre",
+ "value": 30
+ },
+ "tillagePressure": {
+ "unit": "kg per sq cms",
+ "value": 950
+ },
+ "tillageDepth": {
+ "unit": "cms",
+ "value": 9.5
+ },
+ "properties": {
+ "Region": "Europe",
+ "CountyCode": 123
+ },
+ "attachmentsLink": "https://.farmbeats.azure.net/farmer/{{farmerId}}/attachments?api-version={{apiVersion}}&resourceIds={{plantingDataId}}&resourceTypes=PlantingData",
+ "createdDateTime": "2021-02-29T04:57:04Z",
+ "modifiedDateTime": "2021-03-08T18:22:07Z",
+ "eTag": "cb00a3ac-0000-0100-0000-601d21ec0000"
+ }
+ ],
+ "$skipToken": "string",
+ "nextLink": "https:/{{resourceName}}.farmbeats.azure.net/farmers/{{farmerId}}/plantingData?api-version={{apiVersion}}&$skipToken=%5b%7b%22token%22%3a%22%2bRID%3a%7ehK8eAKzdo1MNnwcAAAAAAA%3d%3d%23RT%3a1%23TRC%3a10%23ISV%3a2%23IEO%3a65551%23FPC%3aAQ2fBwAAAAAAD58HAAAAAAA%3d%22%2c%22range%22%3a%7b%22min%22%3a%22%22%2c%22max%22%3a%22FF%22%7d%7d%5d"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_CreateDataDeleteJob.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_CreateDataDeleteJob.json
new file mode 100644
index 000000000000..98a2a1267033
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_CreateDataDeleteJob.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "jobId": "JOB123",
+ "api-version": "2021-03-31-preview",
+ "body": {
+ "extensionId": "dtn.clearAg",
+ "farmerId": "test_farmer",
+ "boundaryId": "test_farmer",
+ "weatherDataType": "forecast",
+ "granularity": "daily",
+ "startDateTime": "2021-04-18T01:32:42Z",
+ "endDateTime": "2021-04-18T01:32:42Z",
+ "name": "Delete Job",
+ "description": "For extension dtn.clearAg",
+ "properties": {
+ "region": "US"
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "durationInSeconds": 12.4,
+ "id": "delete-weather-job",
+ "status": "Waiting",
+ "message": "Created job to delete weather data for job name 'delete-weather-job', farmer id 'test_farmer' and boundary id 'test_boundary'.",
+ "createdDateTime": "2021-04-16T11:33:45Z",
+ "lastActionDateTime": "2021-04-16T11:33:45Z",
+ "startTime": "2021-04-16T11:33:45Z",
+ "endTime": "2021-04-16T11:33:45Z",
+ "farmerId": "test_farmer",
+ "boundaryId": "test_farmer",
+ "extensionId": "dtn.clearAg",
+ "name": "Delete Job",
+ "description": "For extension dtn.clearAg",
+ "properties": {
+ "region": "US"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_CreateDataIngestionJob.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_CreateDataIngestionJob.json
new file mode 100644
index 000000000000..27b4b7a446cc
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_CreateDataIngestionJob.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "jobId": "JOB123",
+ "api-version": "2021-03-31-preview",
+ "body": {
+ "farmerId": "test_farmer",
+ "boundaryId": "test_boundary",
+ "extensionId": "dtn.clearAg",
+ "extensionApiName": "dailyforecast",
+ "extensionApiInput": {
+ "start": 0,
+ "end": 5
+ },
+ "name": "TestWeatherJob",
+ "description": "Daily Forecast data for 5 days",
+ "properties": {
+ "region": "Asia"
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "durationInSeconds": 12.4,
+ "id": "weather-job",
+ "status": "Waiting",
+ "message": "Created job to fetch weather data for job name 'TestWeatherJob', farmer id 'test_farmer' and field id 'test_field'.",
+ "createdDateTime": "2021-04-16T11:33:45Z",
+ "lastActionDateTime": "2021-04-16T11:33:45Z",
+ "startTime": "2021-04-16T11:33:45Z",
+ "endTime": "2021-04-16T11:33:45Z",
+ "farmerId": "test_farmer",
+ "boundaryId": "test_boundary",
+ "extensionId": "dtn.clearAg",
+ "extensionApiName": "dailyforecast",
+ "extensionApiInput": {
+ "start": 0,
+ "end": 5
+ },
+ "name": "TestWeatherJob",
+ "description": "Daily Forecast data for 5 days",
+ "properties": {
+ "region": "Asia"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_GetDataDeleteJobDetails.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_GetDataDeleteJobDetails.json
new file mode 100644
index 000000000000..91bd4cb389ae
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_GetDataDeleteJobDetails.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "jobId": "JOB123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "durationInSeconds": 12.4,
+ "id": "weather-delete-job",
+ "status": "Succeeded",
+ "message": "Weather data is deleted for startTime to endTime",
+ "createdDateTime": "2021-04-16T08:24:50Z",
+ "lastActionDateTime": "2021-04-16T08:24:50Z",
+ "extensionId": "dtn.clearAg",
+ "farmerId": "test_farmer",
+ "boundaryId": "test_farmer",
+ "weatherDataType": "forecast",
+ "granularity": "daily",
+ "startDateTime": "2021-04-18T01:32:42Z",
+ "endDateTime": "2021-04-18T01:32:42Z",
+ "name": "Delete Job",
+ "description": "For extension dtn.clearAg",
+ "properties": {
+ "region": "US"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_GetDataIngestionJobDetails.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_GetDataIngestionJobDetails.json
new file mode 100644
index 000000000000..9b4a6f6ac0e9
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_GetDataIngestionJobDetails.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "jobId": "JOB123",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "durationInSeconds": 12.4,
+ "id": "weather-job",
+ "status": "Succeeded",
+ "message": "Weather data is available for startTime to endTime",
+ "createdDateTime": "2021-04-16T08:24:50Z",
+ "lastActionDateTime": "2021-04-16T08:24:50Z",
+ "startTime": "2021-04-16T08:24:50Z",
+ "endTime": "2021-04-16T08:24:50Z",
+ "farmerId": "test_farmer",
+ "boundaryId": "test_boundary",
+ "extensionId": "dtn.clearAg",
+ "extensionApiName": "dailyforecast",
+ "extensionApiInput": {
+ "start": 0,
+ "end": 5
+ },
+ "name": "TestWeatherJob",
+ "description": "Daily Forecast data for 5 days",
+ "properties": {
+ "region": "Asia"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_List.json b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_List.json
new file mode 100644
index 000000000000..837c992aaa74
--- /dev/null
+++ b/specification/agfood/data-plane/Microsoft.AgFoodPlatform/preview/2021-03-31-preview/examples/Weather_List.json
@@ -0,0 +1,143 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "farmerId": "FARMER123",
+ "boundaryId": "BOUNDARY123",
+ "extensionId": "DTN.ClearAg",
+ "weatherDataType": "Historical",
+ "granularity": "Daily",
+ "api-version": "2021-03-31-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "ecd327e7-07f1-31b1-65ee-2162e193c055",
+ "farmerId": "test_farmer",
+ "boundaryId": "test_boundary",
+ "extensionId": "dtn.clearAg",
+ "location": {
+ "latitude": 77.75695801443568,
+ "longitude": 12.30932563432023
+ },
+ "dateTime": "2020-12-23T00:00:00Z",
+ "unitSystemCode": "us-std",
+ "extensionVersion": "1.0",
+ "weatherDataType": "forecast",
+ "granularity": "daily",
+ "cloudCover": {
+ "unit": "%",
+ "value": 81.1
+ },
+ "dewPoint": {
+ "unit": "F",
+ "value": 26.0
+ },
+ "precipitation": {
+ "unit": "in",
+ "value": 0.1
+ },
+ "relativeHumidity": {
+ "unit": "%",
+ "value": 74.0
+ },
+ "temperature": {
+ "unit": "F",
+ "value": 33.0
+ },
+ "windGust": {
+ "unit": "mph",
+ "value": 50.0
+ },
+ "windSpeed": {
+ "unit": "mph",
+ "value": 31.0
+ },
+ "eTag": "\"2b00a419-0000-0700-0000-5fe1ae4c0000\"",
+ "properties": {
+ "air_temp_max": {
+ "unit": "F",
+ "value": 36.0
+ },
+ "air_temp_min": "29",
+ "cloudCoverDescriptor": "Becoming Broken Overcast",
+ "precipitationDescriptor": "Light Snow Likely",
+ "weatherDescriptor": "Light Snow Likely",
+ "windDirectionDescriptor": "East",
+ "windTrendDescriptor": "None",
+ "dewPointMax": {
+ "unit": "F",
+ "value": 28.0
+ },
+ "dewPointMin": {
+ "unit": "F",
+ "value": 22.0
+ },
+ "iceAccPeriod": {
+ "unit": "in",
+ "value": 0.0
+ },
+ "liquidAccPeriod": {
+ "unit": "in",
+ "value": 0.0
+ },
+ "longWaveRadiationAvg": {
+ "unit": "W/m^2",
+ "value": 291.0
+ },
+ "petPeriod": {
+ "unit": "in",
+ "value": 0.04
+ },
+ "precipProb": {
+ "unit": "%",
+ "value": 75.0
+ },
+ "relativeHumidityMax": {
+ "unit": "%",
+ "value": 81.0
+ },
+ "relativeHumidityMin": {
+ "unit": "%",
+ "value": 69.0
+ },
+ "shortWaveRadiationAvg": {
+ "unit": "W/m^2",
+ "value": 0.0
+ },
+ "snowAccPeriod": {
+ "unit": "in",
+ "value": 0.7
+ },
+ "sunshineDuration": {
+ "unit": "hours",
+ "value": 0.0
+ },
+ "windSpeed2mAvg": {
+ "unit": "mph",
+ "value": 24.0
+ },
+ "windSpeed2mMax": {
+ "unit": "mph",
+ "value": 32.0
+ },
+ "windSpeed2mMin": {
+ "unit": "mph",
+ "value": 17.0
+ },
+ "windSpeedMax": {
+ "unit": "mph",
+ "value": 42.0
+ },
+ "windSpeedMin": {
+ "unit": "mph",
+ "value": 23.0
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/agfood/data-plane/readme.md b/specification/agfood/data-plane/readme.md
new file mode 100644
index 000000000000..3d36db0e3711
--- /dev/null
+++ b/specification/agfood/data-plane/readme.md
@@ -0,0 +1,43 @@
+# agfood
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for agfood.
+
+## Getting Started
+
+To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run:
+
+> `autorest readme.md`
+
+To see additional help and options, run:
+
+> `autorest --help`
+
+For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page.
+
+---
+
+## Configuration
+
+### Basic Information
+
+These are the global settings for the agfood.
+
+```yaml
+openapi-type: data-plane
+tag: package-2021-03-31-preview
+
+directive:
+ - suppress: LongRunningResponseStatusCode
+ reason: The validation tools do not properly recognize 202 as a supported response code.
+```
+
+### Tag: package-2021-03-31-preview
+
+These settings apply only when `--tag=package-2021-03-31-preview` is specified on the command line.
+
+```yaml $(tag) == 'package-2021-03-31-preview'
+input-file:
+ - Microsoft.AgFoodPlatform/preview/2021-03-31-preview/agfood.json
+```
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/agfood.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/agfood.json
new file mode 100644
index 000000000000..4c4c7db32213
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/agfood.json
@@ -0,0 +1,1200 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure AgFoodPlatform RP Service",
+ "description": "APIs documentation for Azure AgFoodPlatform Resource Provider Service.",
+ "version": "2020-05-12-preview"
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AgFoodPlatform/farmBeats/{farmBeatsResourceName}/extensions/{extensionId}": {
+ "put": {
+ "tags": [
+ "Extensions"
+ ],
+ "description": "Install extension.",
+ "operationId": "Extensions_Create",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ExtensionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/FarmBeatsResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Extension"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Extensions_Create": {
+ "$ref": "./examples/Extensions_Create.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Extensions"
+ ],
+ "description": "Get installed extension details by extension id.",
+ "operationId": "Extensions_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ExtensionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/FarmBeatsResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Extension"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Extensions_Get": {
+ "$ref": "./examples/Extensions_Get.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Extensions"
+ ],
+ "description": "Upgrade to latest extension.",
+ "operationId": "Extensions_Update",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ExtensionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/FarmBeatsResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Extension"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Extensions_Update": {
+ "$ref": "./examples/Extensions_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Extensions"
+ ],
+ "description": "Uninstall extension.",
+ "operationId": "Extensions_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ExtensionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/FarmBeatsResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success"
+ },
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Extensions_Delete": {
+ "$ref": "./examples/Extensions_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AgFoodPlatform/farmBeats/{farmBeatsResourceName}/extensions": {
+ "get": {
+ "tags": [
+ "Extensions"
+ ],
+ "description": "Get installed extensions details.",
+ "operationId": "Extensions_ListByFarmBeats",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/FarmBeatsResourceNameParameter"
+ },
+ {
+ "in": "query",
+ "name": "extensionIds",
+ "description": "Installed extension ids.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "extensionCategories",
+ "description": "Installed extension categories.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ExtensionListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Extensions_ListByFarmBeats": {
+ "$ref": "./examples/Extensions_ListByFarmBeats.json"
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.AgFoodPlatform/farmBeatsExtensionDefinitions": {
+ "get": {
+ "tags": [
+ "FarmBeatsExtensions"
+ ],
+ "description": "Get list of farmBeats extension.",
+ "operationId": "FarmBeatsExtensions_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "farmBeatsExtensionIds",
+ "description": "FarmBeatsExtension ids.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "farmBeatsExtensionNames",
+ "description": "FarmBeats extension names.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "extensionCategories",
+ "description": "Extension categories.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "publisherIds",
+ "description": "Publisher ids.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi"
+ },
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FarmBeatsExtensionListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "FarmBeatsExtensions_List": {
+ "$ref": "./examples/FarmBeatsExtensions_List.json"
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.AgFoodPlatform/farmBeatsExtensionDefinitions/{farmBeatsExtensionId}": {
+ "get": {
+ "tags": [
+ "FarmBeatsExtensions"
+ ],
+ "description": "Get farmBeats extension.",
+ "operationId": "FarmBeatsExtensions_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "farmBeatsExtensionId",
+ "description": "farmBeatsExtensionId to be queried.",
+ "required": true,
+ "type": "string",
+ "pattern": "^[A-za-z]{3,50}[.][A-za-z]{3,100}$"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FarmBeatsExtension"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "FarmBeatsExtensions_Get": {
+ "$ref": "./examples/FarmBeatsExtensions_Get.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AgFoodPlatform/farmBeats/{farmBeatsResourceName}": {
+ "get": {
+ "tags": [
+ "FarmBeatsModels"
+ ],
+ "description": "Get FarmBeats resource.",
+ "operationId": "FarmBeatsModels_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/FarmBeatsResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FarmBeats"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "FarmBeatsModels_Get": {
+ "$ref": "./examples/FarmBeatsModels_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "FarmBeatsModels"
+ ],
+ "description": "Create or update FarmBeats resource.",
+ "operationId": "FarmBeatsModels_CreateOrUpdate",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/FarmBeatsResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "FarmBeats resource create or update request object.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/FarmBeats"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FarmBeats"
+ }
+ },
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FarmBeats"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "FarmBeatsModels_CreateOrUpdate": {
+ "$ref": "./examples/FarmBeatsModels_CreateOrUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "FarmBeatsModels"
+ ],
+ "description": "Update a FarmBeats resource.",
+ "operationId": "FarmBeatsModels_Update",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/FarmBeatsResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "Request object.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/FarmBeatsUpdateRequestModel"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FarmBeats"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "FarmBeatsModels_Update": {
+ "$ref": "./examples/FarmBeatsModels_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "FarmBeatsModels"
+ ],
+ "description": "Delete a FarmBeats resource.",
+ "operationId": "FarmBeatsModels_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/FarmBeatsResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success"
+ },
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "FarmBeatsModels_Delete": {
+ "$ref": "./examples/FarmBeatsModels_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AgFoodPlatform/farmBeats": {
+ "get": {
+ "tags": [
+ "FarmBeatsModels"
+ ],
+ "description": "Lists the FarmBeats instances for a subscription.",
+ "operationId": "FarmBeatsModels_ListBySubscription",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Skip token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FarmBeatsListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "FarmBeatsModels_ListBySubscription": {
+ "$ref": "./examples/FarmBeatsModels_ListBySubscription.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AgFoodPlatform/farmBeats": {
+ "get": {
+ "tags": [
+ "FarmBeatsModels"
+ ],
+ "description": "Lists the FarmBeats instances for a resource group.",
+ "operationId": "FarmBeatsModels_ListByResourceGroup",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "$maxPageSize",
+ "description": "Maximum number of items needed (inclusive).\r\nMinimum = 10, Maximum = 1000, Default value = 50.",
+ "type": "integer",
+ "format": "int32",
+ "default": 50,
+ "maximum": 1000,
+ "minimum": 10
+ },
+ {
+ "in": "query",
+ "name": "$skipToken",
+ "description": "Continuation token for getting next set of results.",
+ "type": "string"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/FarmBeatsListResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "FarmBeatsModels_ListByResourceGroup": {
+ "$ref": "./examples/FarmBeatsModels_ListByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AgFoodPlatform/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "Locations"
+ ],
+ "description": "Checks the name availability of the resource with requested resource name.",
+ "operationId": "Locations_CheckNameAvailability",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "NameAvailabilityRequest object.",
+ "required": true,
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/CheckNameAvailabilityRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/CheckNameAvailabilityResponse"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Locations_CheckNameAvailability_AlreadyExists": {
+ "$ref": "./examples/Locations_CheckNameAvailability_AlreadyExists.json"
+ },
+ "Locations_CheckNameAvailability_Available": {
+ "$ref": "./examples/Locations_CheckNameAvailability_Available.json"
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.AgFoodPlatform/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Lists the available operations of Microsoft.AgFoodPlatform resource provider.",
+ "operationId": "Operations_List",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Operations_List": {
+ "$ref": "./examples/Operations_List.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ExtensionProperties": {
+ "description": "Extension resource properties.",
+ "type": "object",
+ "properties": {
+ "extensionId": {
+ "description": "Extension Id.",
+ "pattern": "^[A-za-z]{3,50}[.][A-za-z]{3,100}$",
+ "type": "string",
+ "readOnly": true
+ },
+ "extensionCategory": {
+ "description": "Extension category. e.g. weather/sensor/satellite.",
+ "type": "string",
+ "readOnly": true
+ },
+ "installedExtensionVersion": {
+ "description": "Installed extension version.",
+ "pattern": "^([1-9]|10).\\d$",
+ "type": "string",
+ "readOnly": true
+ },
+ "extensionAuthLink": {
+ "description": "Extension auth link.",
+ "type": "string",
+ "readOnly": true
+ },
+ "extensionApiDocsLink": {
+ "description": "Extension api docs link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "Extension": {
+ "description": "Extension resource.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "systemData": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData"
+ },
+ "properties": {
+ "$ref": "#/definitions/ExtensionProperties",
+ "x-ms-client-flatten": true
+ },
+ "eTag": {
+ "description": "The ETag value to implement optimistic concurrency.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "ExtensionListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Extension"
+ }
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UnitSystemsInfo": {
+ "description": "Unit systems info for the data provider.",
+ "required": [
+ "key",
+ "values"
+ ],
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "UnitSystem key sent as part of ProviderInput.",
+ "maxLength": 100,
+ "minLength": 2,
+ "type": "string"
+ },
+ "values": {
+ "description": "List of unit systems supported by this data provider.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "DetailedInformation": {
+ "description": "Model to capture detailed information for farmBeatsExtensions.",
+ "type": "object",
+ "properties": {
+ "apiName": {
+ "description": "ApiName available for the farmBeatsExtension.",
+ "type": "string",
+ "example": "dailyforecast, dailyhistorical."
+ },
+ "customParameters": {
+ "description": "List of customParameters.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "platformParameters": {
+ "description": "List of platformParameters.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unitsSupported": {
+ "$ref": "#/definitions/UnitSystemsInfo"
+ },
+ "apiInputParameters": {
+ "description": "List of apiInputParameters.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "FarmBeatsExtensionProperties": {
+ "description": "FarmBeatsExtension properties.",
+ "type": "object",
+ "properties": {
+ "targetResourceType": {
+ "description": "Target ResourceType of the farmBeatsExtension.",
+ "type": "string",
+ "readOnly": true
+ },
+ "farmBeatsExtensionId": {
+ "description": "FarmBeatsExtension ID.",
+ "maxLength": 100,
+ "minLength": 2,
+ "pattern": "^[A-za-z]{3,50}[.][A-za-z]{3,100}$",
+ "type": "string",
+ "readOnly": true
+ },
+ "farmBeatsExtensionName": {
+ "description": "FarmBeatsExtension name.",
+ "maxLength": 100,
+ "minLength": 2,
+ "type": "string",
+ "readOnly": true
+ },
+ "farmBeatsExtensionVersion": {
+ "description": "FarmBeatsExtension version.",
+ "maxLength": 100,
+ "minLength": 2,
+ "pattern": "^([1-9]|10).\\d$",
+ "type": "string",
+ "readOnly": true
+ },
+ "publisherId": {
+ "description": "Publisher ID.",
+ "maxLength": 100,
+ "minLength": 2,
+ "type": "string",
+ "readOnly": true
+ },
+ "description": {
+ "description": "Textual description.",
+ "maxLength": 500,
+ "minLength": 2,
+ "type": "string",
+ "readOnly": true
+ },
+ "extensionCategory": {
+ "description": "Category of the extension. e.g. weather/sensor/satellite.",
+ "maxLength": 100,
+ "minLength": 2,
+ "type": "string",
+ "readOnly": true
+ },
+ "extensionAuthLink": {
+ "description": "FarmBeatsExtension auth link.",
+ "type": "string",
+ "readOnly": true
+ },
+ "extensionApiDocsLink": {
+ "description": "FarmBeatsExtension api docs link.",
+ "type": "string",
+ "readOnly": true
+ },
+ "detailedInformation": {
+ "description": "Detailed information which shows summary of requested data.\r\nUsed in descriptive get extension metadata call.\r\nInformation for weather category per api included are apisSupported,\r\ncustomParameters, PlatformParameters and Units supported.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DetailedInformation"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "FarmBeatsExtension": {
+ "description": "FarmBeats extension resource.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "systemData": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData"
+ },
+ "properties": {
+ "$ref": "#/definitions/FarmBeatsExtensionProperties",
+ "x-ms-client-flatten": true
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "FarmBeatsExtensionListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FarmBeatsExtension"
+ }
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "FarmBeatsProperties": {
+ "description": "FarmBeats ARM Resource properties.",
+ "type": "object",
+ "properties": {
+ "instanceUri": {
+ "format": "uri",
+ "description": "Uri of the FarmBeats instance.",
+ "type": "string",
+ "readOnly": true
+ },
+ "provisioningState": {
+ "description": "FarmBeats instance provisioning state.",
+ "enum": [
+ "Succeeded",
+ "Failed"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "FarmBeats": {
+ "description": "FarmBeats ARM Resource.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "properties": {
+ "systemData": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData"
+ },
+ "properties": {
+ "$ref": "#/definitions/FarmBeatsProperties",
+ "x-ms-client-flatten": true
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "FarmBeatsUpdateRequestModel": {
+ "description": "FarmBeats update request.",
+ "type": "object",
+ "properties": {
+ "location": {
+ "description": "Geo-location where the resource lives.",
+ "type": "string"
+ },
+ "tags": {
+ "description": "Resource tags.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "FarmBeatsListResponse": {
+ "description": "Paged response contains list of requested objects and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of requested objects.",
+ "type": "array",
+ "uniqueItems": false,
+ "items": {
+ "$ref": "#/definitions/FarmBeats"
+ }
+ },
+ "nextLink": {
+ "description": "Continuation link (absolute URI) to the next page of results in the list.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ }
+ },
+ "parameters": {
+ "FarmBeatsResourceNameParameter": {
+ "in": "path",
+ "name": "farmBeatsResourceName",
+ "description": "FarmBeats resource name.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "ExtensionIdParameter": {
+ "in": "path",
+ "name": "extensionId",
+ "description": "Id of extension resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ },
+ "description": "Azure Active Directory OAuth2 Flow."
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_Create.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_Create.json
new file mode 100644
index 000000000000..1bf3fe863980
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_Create.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview",
+ "subscriptionId": "11111111-2222-3333-4444-555555555555",
+ "resourceGroupName": "examples-rg",
+ "farmBeatsResourceName": "examples-farmbeatsResourceName",
+ "extensionId": "provider.extension"
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/examples-rg/Microsoft.AgFoodPlatform/farmBeats/examples-farmbeatsResourceName/extensions/provider.extension",
+ "name": "provider.extension",
+ "type": "Microsoft.AgFoodPlatform/farmBeats/extensions",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "User",
+ "createdAt": "2020-02-01T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2020-02-01T01:01:01.1075056Z"
+ },
+ "eTag": "7200b954-0000-0700-0000-603cbbc40000",
+ "properties": {
+ "extensionCategory": "Weather",
+ "installedExtensionVersion": "1.0",
+ "extensionAuthLink": "https://www.provider.com/extension/",
+ "extensionApiDocsLink": "https://docs.provider.com/documentation/extension"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_Delete.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_Delete.json
new file mode 100644
index 000000000000..acc12ece1dc8
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_Delete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview",
+ "subscriptionId": "11111111-2222-3333-4444-555555555555",
+ "resourceGroupName": "examples-rg",
+ "farmBeatsResourceName": "examples-farmbeatsResourceName",
+ "extensionId": "provider.extension"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_Get.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_Get.json
new file mode 100644
index 000000000000..a9fd49929933
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_Get.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview",
+ "subscriptionId": "11111111-2222-3333-4444-555555555555",
+ "resourceGroupName": "examples-rg",
+ "farmBeatsResourceName": "examples-farmbeatsResourceName",
+ "extensionId": "provider.extension"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/examples-rg/Microsoft.AgFoodPlatform/farmBeats/examples-farmbeatsResourceName/extensions/provider.extension",
+ "name": "provider.extension",
+ "type": "Microsoft.AgFoodPlatform/farmBeats/extensions",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "User",
+ "createdAt": "2020-02-01T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2020-02-01T01:01:01.1075056Z"
+ },
+ "eTag": "7200b954-0000-0700-0000-603cbbc40000",
+ "properties": {
+ "extensionCategory": "Weather",
+ "installedExtensionVersion": "1.0",
+ "extensionAuthLink": "https://www.provider.com/extension/",
+ "extensionApiDocsLink": "https://docs.provider.com/documentation/extension"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_ListByFarmBeats.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_ListByFarmBeats.json
new file mode 100644
index 000000000000..c3e1f3b78402
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_ListByFarmBeats.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview",
+ "subscriptionId": "11111111-2222-3333-4444-555555555555",
+ "resourceGroupName": "examples-rg",
+ "farmBeatsResourceName": "examples-farmbeatsResourceName"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/examples-rg/Microsoft.AgFoodPlatform/farmBeats/examples-farmbeatsResourceName/extensions/provider.extension",
+ "name": "provider.extension",
+ "type": "Microsoft.AgFoodPlatform/farmBeats/extensions",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "User",
+ "createdAt": "2020-02-01T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2020-02-01T01:01:01.1075056Z"
+ },
+ "eTag": "7200b954-0000-0700-0000-603cbbc40000",
+ "properties": {
+ "extensionCategory": "Weather",
+ "installedExtensionVersion": "1.0",
+ "extensionAuthLink": "https://www.provider.com/extension/",
+ "extensionApiDocsLink": "https://docs.provider.com/documentation/extension"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_Update.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_Update.json
new file mode 100644
index 000000000000..2d08b1b5f6d3
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Extensions_Update.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview",
+ "subscriptionId": "11111111-2222-3333-4444-555555555555",
+ "resourceGroupName": "examples-rg",
+ "farmBeatsResourceName": "examples-farmbeatsResourceName",
+ "extensionId": "provider.extension"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/examples-rg/Microsoft.AgFoodPlatform/farmBeats/examples-farmbeatsResourceName/extensions/provider.extension",
+ "name": "provider.extension",
+ "type": "Microsoft.AgFoodPlatform/farmBeats/extensions",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "User",
+ "createdAt": "2020-02-01T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2020-02-01T01:01:01.1075056Z"
+ },
+ "eTag": "7200b954-0000-0700-0000-603cbbc40000",
+ "properties": {
+ "extensionCategory": "Weather",
+ "installedExtensionVersion": "2.0",
+ "extensionAuthLink": "https://www.provider.com/extension/",
+ "extensionApiDocsLink": "https://docs.provider.com/documentation/extension"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsExtensions_Get.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsExtensions_Get.json
new file mode 100644
index 000000000000..8a79dd9cf2b5
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsExtensions_Get.json
@@ -0,0 +1,243 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview",
+ "farmBeatsExtensionId": "DTN.ContentServices"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "Microsoft.AgFoodPlatform/farmBeatsExtensionDefinitions/DTN.ContentServices",
+ "type": "Microsoft.AgFoodPlatform/farmBeatsExtensionDefinitions",
+ "systemData": {
+ "createdAt": "2021-04-12T15:28:06Z",
+ "lastModifiedAt": "2021-04-12T15:30:01Z"
+ },
+ "properties": {
+ "targetResourceType": "FarmBeats",
+ "farmBeatsExtensionId": "DTN.ContentServices",
+ "farmBeatsExtensionName": "DTN",
+ "farmBeatsExtensionVersion": "1.0",
+ "publisherId": "dtn",
+ "extensionCategory": "Weather",
+ "extensionAuthLink": "https://www.dtn.com/dtn-content-integration/",
+ "extensionApiDocsLink": "https://cs-docs.dtn.com/api/weather-observations-and-forecasts-rest-api/",
+ "detailedInformation": [
+ {
+ "apiName": "GetDailyObservations",
+ "customParameters": [
+ "stationId",
+ "stationLatitude",
+ "stationLongitude",
+ "timeZone",
+ "sunrise",
+ "sunset",
+ "weatherCode",
+ "weatherDescription",
+ "maxTemperature",
+ "minTemperature",
+ "avgHeatIndex",
+ "maxHeatIndex",
+ "minHeatIndex",
+ "maxWindChill",
+ "minWindChill",
+ "maxFeelsLike",
+ "minFeelsLike",
+ "avgFeelsLike",
+ "maxWindSpeed",
+ "avgWetBulbGlobeTemp",
+ "maxWetBulbGlobeTemp",
+ "minWetBulbGlobeTemp",
+ "minutesOfSunshine",
+ "cornHeatUnit",
+ "evapotranspiration"
+ ],
+ "platformParameters": [
+ "cloudCover",
+ "dewPoint",
+ "growingDegreeDay",
+ "precipitation",
+ "pressure",
+ "relativeHumidity",
+ "temperature",
+ "wetBulbTemperature",
+ "dateTime",
+ "windChill",
+ "windSpeed",
+ "windDirection"
+ ],
+ "unitsSupported": {
+ "key": "units",
+ "values": [
+ "us",
+ "si"
+ ]
+ },
+ "apiInputParameters": [
+ "stationId",
+ "lat",
+ "lon",
+ "days",
+ "units",
+ "precision",
+ "sector"
+ ]
+ },
+ {
+ "apiName": "GetHourlyObservations",
+ "customParameters": [
+ "stationId",
+ "stationLatitude",
+ "stationLongitude",
+ "timeZone",
+ "weatherCode",
+ "weatherDescription",
+ "feelsLike",
+ "visibilityWeatherCode",
+ "visibilityWeatherDescription",
+ "minutesOfSunshine"
+ ],
+ "platformParameters": [
+ "cloudCover",
+ "dewPoint",
+ "precipitation",
+ "pressure",
+ "relativeHumidity",
+ "temperature",
+ "wetBulbTemperature",
+ "dateTime",
+ "visibility",
+ "windChill",
+ "windSpeed",
+ "windDirection",
+ "windGust"
+ ],
+ "unitsSupported": {
+ "key": "units",
+ "values": [
+ "us",
+ "si"
+ ]
+ },
+ "apiInputParameters": [
+ "stationId",
+ "lat",
+ "lon",
+ "hours",
+ "units",
+ "precision",
+ "sector"
+ ]
+ },
+ {
+ "apiName": "GetHourlyForecasts",
+ "customParameters": [
+ "stationId",
+ "stationLatitude",
+ "stationLongitude",
+ "timeZone",
+ "weatherCode",
+ "weatherDescription",
+ "feelsLike",
+ "visibilityWeatherCode",
+ "visibilityWeatherDescription",
+ "minutesOfSunshine"
+ ],
+ "platformParameters": [
+ "cloudCover",
+ "dewPoint",
+ "precipitation",
+ "pressure",
+ "relativeHumidity",
+ "temperature",
+ "wetBulbTemperature",
+ "dateTime",
+ "visibility",
+ "windChill",
+ "windSpeed",
+ "windDirection",
+ "windGust"
+ ],
+ "unitsSupported": {
+ "key": "units",
+ "values": [
+ "us",
+ "si"
+ ]
+ },
+ "apiInputParameters": [
+ "stationId",
+ "lat",
+ "lon",
+ "days",
+ "units",
+ "precision",
+ "sector"
+ ]
+ },
+ {
+ "apiName": "GetDailyForecasts",
+ "customParameters": [
+ "stationId",
+ "stationLatitude",
+ "stationLongitude",
+ "timeZone",
+ "sunrise",
+ "sunset",
+ "weatherCode",
+ "weatherDescription",
+ "maxTemperature",
+ "minTemperature",
+ "avgHeatIndex",
+ "maxHeatIndex",
+ "minHeatIndex",
+ "maxWindChill",
+ "minWindChill",
+ "maxFeelsLike",
+ "minFeelsLike",
+ "avgFeelsLike",
+ "maxWindSpeed",
+ "avgWetBulbGlobeTemp",
+ "maxWetBulbGlobeTemp",
+ "minWetBulbGlobeTemp",
+ "minutesOfSunshine",
+ "cornHeatUnit",
+ "evapotranspiration"
+ ],
+ "platformParameters": [
+ "cloudCover",
+ "dewPoint",
+ "growingDegreeDay",
+ "precipitation",
+ "pressure",
+ "relativeHumidity",
+ "temperature",
+ "wetBulbTemperature",
+ "dateTime",
+ "windChill",
+ "windSpeed",
+ "windDirection"
+ ],
+ "unitsSupported": {
+ "key": "units",
+ "values": [
+ "us",
+ "si"
+ ]
+ },
+ "apiInputParameters": [
+ "stationId",
+ "lat",
+ "lon",
+ "days",
+ "units",
+ "precision",
+ "sector"
+ ]
+ }
+ ]
+ },
+ "name": "DTN.ContentServices"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsExtensions_List.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsExtensions_List.json
new file mode 100644
index 000000000000..045a68ac341b
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsExtensions_List.json
@@ -0,0 +1,248 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "Microsoft.AgFoodPlatform/farmBeatsExtensionDefinitions/DTN.ContentServices",
+ "type": "Microsoft.AgFoodPlatform/farmBeatsExtensionDefinitions",
+ "systemData": {
+ "createdAt": "2021-04-12T15:28:06Z",
+ "lastModifiedAt": "2021-04-12T15:30:01Z"
+ },
+ "properties": {
+ "targetResourceType": "FarmBeats",
+ "farmBeatsExtensionId": "DTN.ContentServices",
+ "farmBeatsExtensionName": "DTN",
+ "farmBeatsExtensionVersion": "1.0",
+ "publisherId": "dtn",
+ "extensionCategory": "Weather",
+ "extensionAuthLink": "https://www.dtn.com/dtn-content-integration/",
+ "extensionApiDocsLink": "https://cs-docs.dtn.com/api/weather-observations-and-forecasts-rest-api/",
+ "detailedInformation": [
+ {
+ "apiName": "GetDailyObservations",
+ "customParameters": [
+ "stationId",
+ "stationLatitude",
+ "stationLongitude",
+ "timeZone",
+ "sunrise",
+ "sunset",
+ "weatherCode",
+ "weatherDescription",
+ "maxTemperature",
+ "minTemperature",
+ "avgHeatIndex",
+ "maxHeatIndex",
+ "minHeatIndex",
+ "maxWindChill",
+ "minWindChill",
+ "maxFeelsLike",
+ "minFeelsLike",
+ "avgFeelsLike",
+ "maxWindSpeed",
+ "avgWetBulbGlobeTemp",
+ "maxWetBulbGlobeTemp",
+ "minWetBulbGlobeTemp",
+ "minutesOfSunshine",
+ "cornHeatUnit",
+ "evapotranspiration"
+ ],
+ "platformParameters": [
+ "cloudCover",
+ "dewPoint",
+ "growingDegreeDay",
+ "precipitation",
+ "pressure",
+ "relativeHumidity",
+ "temperature",
+ "wetBulbTemperature",
+ "dateTime",
+ "windChill",
+ "windSpeed",
+ "windDirection"
+ ],
+ "unitsSupported": {
+ "key": "units",
+ "values": [
+ "us",
+ "si"
+ ]
+ },
+ "apiInputParameters": [
+ "stationId",
+ "lat",
+ "lon",
+ "days",
+ "units",
+ "precision",
+ "sector"
+ ]
+ },
+ {
+ "apiName": "GetHourlyObservations",
+ "customParameters": [
+ "stationId",
+ "stationLatitude",
+ "stationLongitude",
+ "timeZone",
+ "weatherCode",
+ "weatherDescription",
+ "feelsLike",
+ "visibilityWeatherCode",
+ "visibilityWeatherDescription",
+ "minutesOfSunshine"
+ ],
+ "platformParameters": [
+ "cloudCover",
+ "dewPoint",
+ "precipitation",
+ "pressure",
+ "relativeHumidity",
+ "temperature",
+ "wetBulbTemperature",
+ "dateTime",
+ "visibility",
+ "windChill",
+ "windSpeed",
+ "windDirection",
+ "windGust"
+ ],
+ "unitsSupported": {
+ "key": "units",
+ "values": [
+ "us",
+ "si"
+ ]
+ },
+ "apiInputParameters": [
+ "stationId",
+ "lat",
+ "lon",
+ "hours",
+ "units",
+ "precision",
+ "sector"
+ ]
+ },
+ {
+ "apiName": "GetHourlyForecasts",
+ "customParameters": [
+ "stationId",
+ "stationLatitude",
+ "stationLongitude",
+ "timeZone",
+ "weatherCode",
+ "weatherDescription",
+ "feelsLike",
+ "visibilityWeatherCode",
+ "visibilityWeatherDescription",
+ "minutesOfSunshine"
+ ],
+ "platformParameters": [
+ "cloudCover",
+ "dewPoint",
+ "precipitation",
+ "pressure",
+ "relativeHumidity",
+ "temperature",
+ "wetBulbTemperature",
+ "dateTime",
+ "visibility",
+ "windChill",
+ "windSpeed",
+ "windDirection",
+ "windGust"
+ ],
+ "unitsSupported": {
+ "key": "units",
+ "values": [
+ "us",
+ "si"
+ ]
+ },
+ "apiInputParameters": [
+ "stationId",
+ "lat",
+ "lon",
+ "days",
+ "units",
+ "precision",
+ "sector"
+ ]
+ },
+ {
+ "apiName": "GetDailyForecasts",
+ "customParameters": [
+ "stationId",
+ "stationLatitude",
+ "stationLongitude",
+ "timeZone",
+ "sunrise",
+ "sunset",
+ "weatherCode",
+ "weatherDescription",
+ "maxTemperature",
+ "minTemperature",
+ "avgHeatIndex",
+ "maxHeatIndex",
+ "minHeatIndex",
+ "maxWindChill",
+ "minWindChill",
+ "maxFeelsLike",
+ "minFeelsLike",
+ "avgFeelsLike",
+ "maxWindSpeed",
+ "avgWetBulbGlobeTemp",
+ "maxWetBulbGlobeTemp",
+ "minWetBulbGlobeTemp",
+ "minutesOfSunshine",
+ "cornHeatUnit",
+ "evapotranspiration"
+ ],
+ "platformParameters": [
+ "cloudCover",
+ "dewPoint",
+ "growingDegreeDay",
+ "precipitation",
+ "pressure",
+ "relativeHumidity",
+ "temperature",
+ "wetBulbTemperature",
+ "dateTime",
+ "windChill",
+ "windSpeed",
+ "windDirection"
+ ],
+ "unitsSupported": {
+ "key": "units",
+ "values": [
+ "us",
+ "si"
+ ]
+ },
+ "apiInputParameters": [
+ "stationId",
+ "lat",
+ "lon",
+ "days",
+ "units",
+ "precision",
+ "sector"
+ ]
+ }
+ ]
+ },
+ "name": "DTN.ContentServices"
+ }
+ ],
+ "nextLink": "string"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_CreateOrUpdate.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_CreateOrUpdate.json
new file mode 100644
index 000000000000..5613d21df6f7
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_CreateOrUpdate.json
@@ -0,0 +1,65 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview",
+ "subscriptionId": "11111111-2222-3333-4444-555555555555",
+ "resourceGroupName": "examples-rg",
+ "farmBeatsResourceName": "examples-farmbeatsResourceName",
+ "body": {
+ "location": "eastus2",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/examples-rg/Microsoft.AgFoodPlatform/farmBeats/examples-farmbeatsResourceName",
+ "name": "examples-farmbeatsResourceName",
+ "type": "Microsoft.AgFoodPlatform/farmBeats",
+ "location": "eastus2",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "User",
+ "createdAt": "2020-02-01T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2020-02-01T01:01:01.1075056Z"
+ },
+ "properties": {
+ "instanceUri": "https://examples-farmbeatsResourceName.eastus2.farmbeats.azure.net",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/examples-rg/Microsoft.AgFoodPlatform/farmBeats/examples-farmbeatsResourceName",
+ "name": "examples-farmbeatsResourceName",
+ "type": "Microsoft.AgFoodPlatform/farmBeats",
+ "location": "eastus2",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "User",
+ "createdAt": "2020-02-01T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2020-02-01T01:01:01.1075056Z"
+ },
+ "properties": {
+ "instanceUri": "https://examples-farmbeatsResourceName.eastus2.farmbeats.azure.net",
+ "provisioningState": "Failed"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_Delete.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_Delete.json
new file mode 100644
index 000000000000..ca960b71cfdf
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_Delete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview",
+ "subscriptionId": "11111111-2222-3333-4444-555555555555",
+ "resourceGroupName": "examples-rg",
+ "farmBeatsResourceName": "examples-farmBeatsResourceName"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_Get.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_Get.json
new file mode 100644
index 000000000000..f15db77e4d33
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_Get.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview",
+ "subscriptionId": "11111111-2222-3333-4444-555555555555",
+ "resourceGroupName": "examples-rg",
+ "farmBeatsResourceName": "examples-farmBeatsResourceName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/examples-rg/Microsoft.AgFoodPlatform/farmBeats/examples-farmbeatsResourceName",
+ "name": "examples-farmBeatsResourceName",
+ "type": "Microsoft.AgFoodPlatform/farmBeats",
+ "location": "eastus2",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "User",
+ "createdAt": "2020-02-01T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2020-02-01T01:01:01.1075056Z"
+ },
+ "properties": {
+ "instanceUri": "https://examples-farmbeatsResourceName.eastus2.farmbeats.azure.net",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_ListByResourceGroup.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_ListByResourceGroup.json
new file mode 100644
index 000000000000..69b66f5bec27
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_ListByResourceGroup.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview",
+ "subscriptionId": "11111111-2222-3333-4444-555555555555",
+ "resourceGroupName": "examples-rg"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/examples-rg/Microsoft.AgFoodPlatform/farmBeats/examples-farmbeatsResourceName",
+ "name": "examples-farmBeatsResourceName",
+ "type": "Microsoft.AgFoodPlatform/farmBeats",
+ "location": "eastus2",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "User",
+ "createdAt": "2020-02-01T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2020-02-01T01:01:01.1075056Z"
+ },
+ "properties": {
+ "instanceUri": "https://examples-farmbeatsResourceName.eastus2.farmbeats.azure.net",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_ListBySubscription.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_ListBySubscription.json
new file mode 100644
index 000000000000..60ae3f9167ec
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_ListBySubscription.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview",
+ "subscriptionId": "11111111-2222-3333-4444-555555555555"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/examples-rg/Microsoft.AgFoodPlatform/farmBeats/examples-farmbeatsResourceName",
+ "name": "examples-farmBeatsResourceName",
+ "type": "Microsoft.AgFoodPlatform/farmBeats",
+ "location": "eastus2",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "User",
+ "createdAt": "2020-02-01T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2020-02-01T01:01:01.1075056Z"
+ },
+ "properties": {
+ "instanceUri": "https://examples-farmbeatsResourceName.eastus2.farmbeats.azure.net",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_Update.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_Update.json
new file mode 100644
index 000000000000..91916585be34
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/FarmBeatsModels_Update.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview",
+ "subscriptionId": "11111111-2222-3333-4444-555555555555",
+ "resourceGroupName": "examples-rg",
+ "farmBeatsResourceName": "examples-farmBeatsResourceName",
+ "body": {
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/examples-rg/Microsoft.AgFoodPlatform/farmBeats/examples-farmbeatsResourceName",
+ "name": "examples-farmBeatsResourceName",
+ "type": "Microsoft.AgFoodPlatform/farmBeats",
+ "location": "eastus2",
+ "tags": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "User",
+ "createdAt": "2020-02-01T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2020-02-01T01:01:01.1075056Z"
+ },
+ "properties": {
+ "instanceUri": "https://examples-farmbeatsResourceName.eastus2.farmbeats.azure.net",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Locations_CheckNameAvailability_AlreadyExists.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Locations_CheckNameAvailability_AlreadyExists.json
new file mode 100644
index 000000000000..67af64832527
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Locations_CheckNameAvailability_AlreadyExists.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview",
+ "subscriptionId": "11111111-2222-3333-4444-555555555555",
+ "body": {
+ "name": "existingaccountname",
+ "type": "Microsoft.AgFoodPlatform/farmBeats"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": false,
+ "reason": "AlreadyExists",
+ "message": "An account named 'existingaccountname' is already in use."
+ }
+ }
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Locations_CheckNameAvailability_Available.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Locations_CheckNameAvailability_Available.json
new file mode 100644
index 000000000000..c515d3f3c2be
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Locations_CheckNameAvailability_Available.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview",
+ "subscriptionId": "11111111-2222-3333-4444-555555555555",
+ "body": {
+ "name": "newaccountname",
+ "type": "Microsoft.AgFoodPlatform/farmBeats"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": true
+ }
+ }
+ }
+}
diff --git a/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Operations_List.json b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Operations_List.json
new file mode 100644
index 000000000000..a80bbb8e33d4
--- /dev/null
+++ b/specification/agfood/resource-manager/Microsoft.AgFoodPlatform/preview/2020-05-12-preview/examples/Operations_List.json
@@ -0,0 +1,94 @@
+{
+ "parameters": {
+ "api-version": "2020-05-12-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.AgFoodPlatform/farmBeats/read",
+ "isDataAction": false,
+ "display": {
+ "provider": "Microsoft AgFoodPlatform",
+ "resource": "AgFoodPlatform FarmBeats",
+ "operation": "Get or List AgFoodPlatform FarmBeats resource(s).",
+ "description": "Gets or Lists existing AgFoodPlatform FarmBeats resource(s)."
+ }
+ },
+ {
+ "name": "Microsoft.AgFoodPlatform/farmBeats/write",
+ "isDataAction": false,
+ "display": {
+ "provider": "Microsoft AgFoodPlatform",
+ "resource": "AgFoodPlatform FarmBeats",
+ "operation": "Create or Update AgFoodPlatform FarmBeats.",
+ "description": "Creates or Updates AgFoodPlatform FarmBeats."
+ }
+ },
+ {
+ "name": "Microsoft.AgFoodPlatform/farmBeats/delete",
+ "isDataAction": false,
+ "display": {
+ "provider": "Microsoft AgFoodPlatform",
+ "resource": "AgFoodPlatform FarmBeats",
+ "operation": "Delete AgFoodPlatform FarmBeats resource.",
+ "description": "Deletes an existing AgFoodPlatform FarmBeats resource."
+ }
+ },
+ {
+ "name": "Microsoft.AgFoodPlatform/locations/checkNameAvailability/action",
+ "isDataAction": false,
+ "display": {
+ "provider": "Microsoft AgFoodPlatform",
+ "resource": "Locations",
+ "operation": "Check Name Availability",
+ "description": "Checks that resource name is valid and is not in use."
+ }
+ },
+ {
+ "name": "Microsoft.AgFoodPlatform/operations/read",
+ "isDataAction": false,
+ "display": {
+ "provider": "Microsoft AgFoodPlatform",
+ "resource": "List all operations in Microsoft AgFoodPlatform resource provider.",
+ "operation": "List all operations.",
+ "description": "List all operations in Microsoft AgFoodPlatform resource provider."
+ }
+ },
+ {
+ "name": "Microsoft.AgFoodPlatform/farmBeats/extensions/read",
+ "isDataAction": false,
+ "display": {
+ "provider": "Microsoft AgFoodPlatform",
+ "resource": "AgFoodPlatform Extensions",
+ "operation": "Get or List AgFoodPlatform Extensions resource(s).",
+ "description": "Gets or Lists existing AgFoodPlatform Extensions resource(s)."
+ }
+ },
+ {
+ "name": "Microsoft.AgFoodPlatform/farmBeats/extensions/write",
+ "isDataAction": false,
+ "display": {
+ "provider": "Microsoft AgFoodPlatform",
+ "resource": "AgFoodPlatform Extensions",
+ "operation": "Create or Update AgFoodPlatform Extensions.",
+ "description": "Creates or Updates AgFoodPlatform Extensions."
+ }
+ },
+ {
+ "name": "Microsoft.AgFoodPlatform/farmBeats/extensions/delete",
+ "isDataAction": false,
+ "display": {
+ "provider": "Microsoft AgFoodPlatform",
+ "resource": "AgFoodPlatform Extensions",
+ "operation": "Delete AgFoodPlatform Extensions resource.",
+ "description": "Deletes an existing AgFoodPlatform Extensions resource."
+ }
+ }
+ ],
+ "nextLink": "https://management.azure.com/providers/Microsoft.AgFoodPlatform/operations?$skiptoken={token}"
+ }
+ }
+ }
+}
diff --git a/specification/agfood/resource-manager/readme.csharp.md b/specification/agfood/resource-manager/readme.csharp.md
new file mode 100644
index 000000000000..9e64c3052486
--- /dev/null
+++ b/specification/agfood/resource-manager/readme.csharp.md
@@ -0,0 +1,15 @@
+## C#
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+```yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 1
+ clear-output-folder: true
+ client-side-validation: false
+ namespace: Microsoft.AgFoodPlatform
+ output-folder: $(csharp-sdks-folder)/agfood/management/Microsoft.AgFoodPlatform/Generated
+```
diff --git a/specification/agfood/resource-manager/readme.go.md b/specification/agfood/resource-manager/readme.go.md
new file mode 100644
index 000000000000..056ea4b911ef
--- /dev/null
+++ b/specification/agfood/resource-manager/readme.go.md
@@ -0,0 +1,11 @@
+## Go
+
+These settings apply only when `--go` is specified on the command line.
+
+```yaml $(go) && $(track2)
+license-header: MICROSOFT_MIT_NO_VERSION
+module-name: sdk/agfood/armagfood
+module: github.com/Azure/azure-sdk-for-go/$(module-name)
+output-folder: $(go-sdk-folder)/$(module-name)
+azure-arm: true
+```
diff --git a/specification/agfood/resource-manager/readme.md b/specification/agfood/resource-manager/readme.md
new file mode 100644
index 000000000000..2798ac8e8a73
--- /dev/null
+++ b/specification/agfood/resource-manager/readme.md
@@ -0,0 +1,105 @@
+# agfood
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for agfood.
+
+## Getting Started
+
+To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run:
+
+> `autorest readme.md`
+
+To see additional help and options, run:
+
+> `autorest --help`
+
+For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page.
+
+---
+
+## Configuration
+
+### Basic Information
+
+These are the global settings for the agfood.
+
+```yaml
+openapi-type: arm
+tag: package-2020-05-12-preview
+```
+
+### Tag: package-2020-05-12-preview
+
+These settings apply only when `--tag=package-2020-05-12-preview` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-05-12-preview'
+input-file:
+ - Microsoft.AgFoodPlatform/preview/2020-05-12-preview/agfood.json
+```
+
+---
+
+# Code Generation
+
+## Swagger to SDK
+
+This section describes what SDK should be generated by the automatic system.
+This is not used by Autorest itself.
+
+```yaml $(swagger-to-sdk)
+swagger-to-sdk:
+ - repo: azure-sdk-for-python-track2
+ - repo: azure-sdk-for-js
+```
+## Go
+
+See configuration in [readme.go.md](./readme.go.md)
+
+## Python
+
+See configuration in [readme.python.md](./readme.python.md)
+
+## TypeScript
+
+See configuration in [readme.typescript.md](./readme.typescript.md)
+
+## CSharp
+
+See configuration in [readme.csharp.md](./readme.csharp.md)
+
+## Suppression
+
+``` yaml
+directive:
+ - from: agfood.json
+ suppress: R3006 # BodyTopLevelProperties
+ where: $.definitions.FarmBeats.properties
+ reason: Currently systemData is not allowed.
+ - from: agfood.json
+ suppress: R3006 # BodyTopLevelProperties
+ where: $.definitions.Extension.properties
+ reason: Currently systemData is not allowed.
+ - from: agfood.json
+ suppress: R3018 # EnumInsteadOfBoolean
+ where:
+ - $.definitions.Operation.properties.isDataAction
+ - $.definitions.CheckNameAvailabilityResult.properties.nameAvailable
+ reason: Booleans are used to indicate binary states of the property, enum is not appropriate.
+ - from: agfood.json
+ suppress: R4000 # DescriptionAndTitleMissing
+ where:
+ - $.definitions.Error.properties.innererror
+ - $.definitions.ErrorResponse.properties.error
+ - $.definitions.Extension.properties.properties
+ - $.definitions.Extension.properties.systemData
+ - $.definitions.FarmBeats.properties.properties
+ - $.definitions.FarmBeats.properties.systemData
+ - $.definitions.InnerError.properties.innererror
+ - $.definitions.Operation.properties.display
+ reason: Model has description added in it's schema.
+ - from: types.json
+ suppress: R4000 # DescriptionAndTitleMissing
+ where: $.definitions.Resource
+ reason: Common type models are inherited.
+```
diff --git a/specification/agfood/resource-manager/readme.python.md b/specification/agfood/resource-manager/readme.python.md
new file mode 100644
index 000000000000..f109f297029c
--- /dev/null
+++ b/specification/agfood/resource-manager/readme.python.md
@@ -0,0 +1,23 @@
+## Python
+
+These settings apply only when `--python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(track2)
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+package-name: azure-mgmt-agfood
+no-namespace-folders: true
+package-version: 1.0.0b1
+clear-output-folder: true
+```
+
+``` yaml $(python-mode) == 'update' && $(track2)
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/agfood/azure-mgmt-agfood/azure/mgmt/agfood
+```
+
+``` yaml $(python-mode) == 'create' && $(track2)
+basic-setup-py: true
+output-folder: $(python-sdks-folder)/agfood/azure-mgmt-agfood
+```
diff --git a/specification/agfood/resource-manager/readme.typescript.md b/specification/agfood/resource-manager/readme.typescript.md
new file mode 100644
index 000000000000..c4ad9c4e1545
--- /dev/null
+++ b/specification/agfood/resource-manager/readme.typescript.md
@@ -0,0 +1,15 @@
+## 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
+ license-header: MICROSOFT_MIT_NO_VERSION
+ package-name: "@azure/arm-agfood"
+ output-folder: "$(typescript-sdks-folder)/sdk/agfood/arm-agfood"
+ payload-flattening-threshold: 1
+ clear-output-folder: true
+ generate-metadata: true
+```
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/AlertsManagement.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/AlertsManagement.json
index b5be751defbb..c7f52dfc4257 100644
--- a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/AlertsManagement.json
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/AlertsManagement.json
@@ -375,7 +375,7 @@
},
"subscriptionId": {
"name": "subscriptionId",
- "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
+ "description": "The Azure subscription Id.",
"type": "string",
"in": "path",
"required": true
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/SmartDetectorAlertRulesApi.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/SmartDetectorAlertRulesApi.json
new file mode 100644
index 000000000000..3b0b1f8c2644
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/SmartDetectorAlertRulesApi.json
@@ -0,0 +1,751 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Alerts Management Service Resource Provider",
+ "description": "APIs for Azure Smart Detector Alert Rules CRUD operations.",
+ "version": "2021-04-01"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/providers/microsoft.alertsManagement/smartDetectorAlertRules": {
+ "get": {
+ "tags": [
+ "SmartDetectorAlertRules"
+ ],
+ "operationId": "SmartDetectorAlertRules_List",
+ "description": "List all the existing Smart Detector alert rules within the subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ExpandDetectorParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/SmartDetectorErrorResponse"
+ }
+ },
+ "200": {
+ "description": "Successful request to list Smart Detector alert rules.",
+ "schema": {
+ "$ref": "#/definitions/AlertRulesList"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Smart Detector alert rules": {
+ "$ref": "./examples/SmartDetectorAlertRule_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.alertsManagement/smartDetectorAlertRules": {
+ "get": {
+ "tags": [
+ "SmartDetectorAlertRules"
+ ],
+ "operationId": "SmartDetectorAlertRules_ListByResourceGroup",
+ "description": "List all the existing Smart Detector alert rules within the subscription and resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ExpandDetectorParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/SmartDetectorErrorResponse"
+ }
+ },
+ "200": {
+ "description": "Successful request to list Smart Detector alert rules.",
+ "schema": {
+ "$ref": "#/definitions/AlertRulesList"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List alert rules": {
+ "$ref": "./examples/SmartDetectorAlertRule_ListByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.alertsManagement/smartDetectorAlertRules/{alertRuleName}": {
+ "get": {
+ "tags": [
+ "SmartDetectorAlertRules"
+ ],
+ "operationId": "SmartDetectorAlertRules_Get",
+ "description": "Get a specific Smart Detector alert rule.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AlertRuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ExpandDetectorParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/SmartDetectorErrorResponse"
+ }
+ },
+ "200": {
+ "description": "Successful request to get Smart Detector alert rule.",
+ "schema": {
+ "$ref": "#/definitions/AlertRule"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a Smart Detector alert rule": {
+ "$ref": "./examples/SmartDetectorAlertRule_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "SmartDetectorAlertRules"
+ ],
+ "operationId": "SmartDetectorAlertRules_CreateOrUpdate",
+ "description": "Create or update a Smart Detector alert rule.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AlertRuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "description": "Parameters supplied to the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AlertRule"
+ }
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/SmartDetectorErrorResponse"
+ }
+ },
+ "200": {
+ "description": "Successful request to update a Smart Detector alert rule.",
+ "schema": {
+ "$ref": "#/definitions/AlertRule"
+ }
+ },
+ "201": {
+ "description": "Successful request to create a Smart Detector alert rule.",
+ "schema": {
+ "$ref": "#/definitions/AlertRule"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update a Smart Detector alert rule": {
+ "$ref": "./examples/SmartDetectorAlertRule_CreateOrUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "SmartDetectorAlertRules"
+ ],
+ "operationId": "SmartDetectorAlertRules_Patch",
+ "description": "Patch a specific Smart Detector alert rule.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AlertRuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "description": "Parameters supplied to the operation.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AlertRulePatchObject"
+ }
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/SmartDetectorErrorResponse"
+ }
+ },
+ "200": {
+ "description": "Successful request to patch Smart Detector alert rule.",
+ "schema": {
+ "$ref": "#/definitions/AlertRule"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Patch alert rules": {
+ "$ref": "./examples/SmartDetectorAlertRule_Patch.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "SmartDetectorAlertRules"
+ ],
+ "operationId": "SmartDetectorAlertRules_Delete",
+ "description": "Delete an existing Smart Detector alert rule.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AlertRuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/SmartDetectorErrorResponse"
+ }
+ },
+ "200": {
+ "description": "Successful request to delete a Smart Detector alert rule."
+ },
+ "204": {
+ "description": "The Smart Detector alert rule does not exist. It may have already been deleted."
+ }
+ },
+ "x-ms-examples": {
+ "Delete a Smart Detector alert rule": {
+ "$ref": "./examples/SmartDetectorAlertRule_Delete.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "SmartDetectorErrorResponse": {
+ "description": "API error.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/SmartDetectorErrorResponseBody",
+ "description": "The API error body.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "SmartDetectorErrorResponseBody": {
+ "description": "API error body.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Error code",
+ "type": "string"
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "type": "string"
+ }
+ }
+ },
+ "ActionGroupsInformation": {
+ "properties": {
+ "customEmailSubject": {
+ "description": "An optional custom email subject to use in email notifications.",
+ "type": "string"
+ },
+ "customWebhookPayload": {
+ "description": "An optional custom web-hook payload to use in web-hook notifications.",
+ "type": "string"
+ },
+ "groupIds": {
+ "description": "The Action Group resource IDs.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "groupIds"
+ ],
+ "description": "The Action Groups information, used by the alert rule."
+ },
+ "ThrottlingInformation": {
+ "properties": {
+ "duration": {
+ "description": "The required duration (in ISO8601 format) to wait before notifying on the alert rule again. The time granularity must be in minutes and minimum value is 0 minutes",
+ "type": "string",
+ "format": "duration"
+ }
+ },
+ "description": "Optional throttling information for the alert rule."
+ },
+ "AzureResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The resource ID.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource type."
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource name."
+ },
+ "location": {
+ "type": "string",
+ "description": "The resource location.",
+ "default": "global"
+ },
+ "tags": {
+ "type": "object",
+ "description": "The resource tags.",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ },
+ "x-ms-azure-resource": true,
+ "description": "An Azure resource object"
+ },
+ "AlertRule": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/AzureResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AlertRuleProperties",
+ "description": "The properties of the alert rule."
+ }
+ },
+ "description": "The alert rule information"
+ },
+ "AlertRulesList": {
+ "description": "List of Smart Detector alert rules.",
+ "properties": {
+ "value": {
+ "description": "List of Smart Detector alert rules.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AlertRule"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ }
+ },
+ "AlertRulePatchObject": {
+ "properties": {
+ "id": {
+ "description": "The resource ID.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource type."
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource name."
+ },
+ "tags": {
+ "type": "object",
+ "description": "The resource tags.",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AlertRulePatchProperties",
+ "description": "The properties of the alert rule.",
+ "minProperties": 1
+ }
+ },
+ "description": "The alert rule patch information"
+ },
+ "Detector": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The detector id."
+ },
+ "parameters": {
+ "description": "The detector's parameters.'",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The Smart Detector name."
+ },
+ "description": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The Smart Detector description."
+ },
+ "supportedResourceTypes": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "type": "string"
+ },
+ "description": "The Smart Detector supported resource types."
+ },
+ "imagePaths": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "type": "string"
+ },
+ "description": "The Smart Detector image path. By default this is not populated, unless it's specified in expandDetector"
+ },
+ "parameterDefinitions": {
+ "type": "array",
+ "readOnly": true,
+ "description": "The Smart Detector parameters definitions.'",
+ "items": {
+ "type": "object",
+ "$ref": "#/definitions/DetectorParameterDefinition"
+ }
+ },
+ "supportedCadences": {
+ "type": "array",
+ "readOnly": true,
+ "description": "The Smart Detector supported cadences.",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "description": "The detector information. By default this is not populated, unless it's specified in expandDetector"
+ },
+ "AlertRuleProperties": {
+ "properties": {
+ "description": {
+ "description": "The alert rule description.",
+ "type": "string"
+ },
+ "state": {
+ "description": "The alert rule state.",
+ "type": "string",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "AlertRuleState",
+ "modelAsString": true
+ }
+ },
+ "severity": {
+ "description": "The alert rule severity.",
+ "type": "string",
+ "enum": [
+ "Sev0",
+ "Sev1",
+ "Sev2",
+ "Sev3",
+ "Sev4"
+ ],
+ "x-ms-enum": {
+ "name": "Severity",
+ "modelAsString": true
+ }
+ },
+ "frequency": {
+ "description": "The alert rule frequency in ISO8601 format. The time granularity must be in minutes and minimum value is 1 minute, depending on the detector.",
+ "type": "string",
+ "format": "duration"
+ },
+ "detector": {
+ "description": "The alert rule's detector.",
+ "$ref": "#/definitions/Detector"
+ },
+ "scope": {
+ "description": "The alert rule resources scope.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "actionGroups": {
+ "description": "The alert rule actions.",
+ "$ref": "#/definitions/ActionGroupsInformation"
+ },
+ "throttling": {
+ "description": "The alert rule throttling information.",
+ "$ref": "#/definitions/ThrottlingInformation"
+ }
+ },
+ "required": [
+ "state",
+ "severity",
+ "frequency",
+ "detector",
+ "scope",
+ "actionGroups"
+ ],
+ "description": "The alert rule properties."
+ },
+ "AlertRulePatchProperties": {
+ "properties": {
+ "description": {
+ "description": "The alert rule description.",
+ "type": "string"
+ },
+ "state": {
+ "description": "The alert rule state.",
+ "type": "string",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "AlertRuleState",
+ "modelAsString": true
+ }
+ },
+ "severity": {
+ "description": "The alert rule severity.",
+ "type": "string",
+ "enum": [
+ "Sev0",
+ "Sev1",
+ "Sev2",
+ "Sev3",
+ "Sev4"
+ ],
+ "x-ms-enum": {
+ "name": "Severity",
+ "modelAsString": true
+ }
+ },
+ "frequency": {
+ "description": "The alert rule frequency in ISO8601 format. The time granularity must be in minutes and minimum value is 5 minutes.",
+ "type": "string",
+ "format": "duration"
+ },
+ "actionGroups": {
+ "description": "The alert rule actions.",
+ "$ref": "#/definitions/ActionGroupsInformation"
+ },
+ "throttling": {
+ "description": "The alert rule throttling information.",
+ "$ref": "#/definitions/ThrottlingInformation"
+ }
+ },
+ "description": "The alert rule properties."
+ },
+ "DetectorParameterDefinition": {
+ "type": "object",
+ "description": "The detector parameter definition.",
+ "properties": {
+ "name": {
+ "description": "The detector parameter name.",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "The detector parameter display name.",
+ "type": "string"
+ },
+ "description": {
+ "description": "The detector parameter description.",
+ "type": "string"
+ },
+ "type": {
+ "description": "The detector parameter type.",
+ "type": "string",
+ "enum": [
+ "String",
+ "Integer",
+ "Double",
+ "Boolean",
+ "DateTime"
+ ],
+ "x-ms-enum": {
+ "name": "DetectorParameterType",
+ "values": [
+ {
+ "value": "String",
+ "description": "Defines a string parameter."
+ },
+ {
+ "value": "Integer",
+ "description": "Defines an integer parameter."
+ },
+ {
+ "value": "Double",
+ "description": "Defines a double parameter."
+ },
+ {
+ "value": "Boolean",
+ "description": "Defines a boolean parameter."
+ },
+ {
+ "value": "DateTime",
+ "description": "Defines a DateTime parameter."
+ }
+ ],
+ "modelAsString": true
+ }
+ },
+ "isMandatory": {
+ "description": "A value indicating whether this detector parameter is mandatory.",
+ "type": "boolean"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "subscriptionId": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Azure subscription Id.",
+ "minLength": 1
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group.",
+ "x-ms-parameter-location": "method"
+ },
+ "AlertRuleNameParameter": {
+ "name": "alertRuleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the alert rule.",
+ "x-ms-parameter-location": "method"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ },
+ "ExpandDetectorParameter": {
+ "name": "expandDetector",
+ "in": "query",
+ "type": "boolean",
+ "description": "Indicates if Smart Detector should be expanded.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_CreateOrUpdate.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_CreateOrUpdate.json
new file mode 100644
index 000000000000..8eeb0cbc7eb1
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_CreateOrUpdate.json
@@ -0,0 +1,92 @@
+{
+ "parameters": {
+ "subscriptionId": "b368ca2f-e298-46b7-b0ab-012281956afa",
+ "resourceGroupName": "MyAlertRules",
+ "alertRuleName": "MyAlertRule",
+ "api-version": "2021-04-01",
+ "parameters": {
+ "properties": {
+ "description": "Sample smart detector alert rule description",
+ "state": "Enabled",
+ "severity": "Sev3",
+ "frequency": "PT5M",
+ "detector": {
+ "id": "VMMemoryLeak"
+ },
+ "scope": [
+ "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/MyVms/providers/Microsoft.Compute/virtualMachines/vm1"
+ ],
+ "actionGroups": {
+ "customEmailSubject": "My custom email subject",
+ "customWebhookPayload": "{\"AlertRuleName\":\"#alertrulename\"}",
+ "groupIds": [
+ "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourcegroups/actionGroups/providers/microsoft.insights/actiongroups/MyActionGroup"
+ ]
+ },
+ "throttling": {
+ "duration": "PT20M"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/MyAlertRules/providers/microsoft.alertsManagement/smartDetectorAlertRules/MyAlertRule",
+ "type": "Microsoft.AlertsManagement/smartDetectorAlertRules",
+ "name": "MyAlertRule",
+ "location": "global",
+ "tags": {},
+ "properties": {
+ "description": "Sample smart detector alert rule description",
+ "state": "Enabled",
+ "severity": "Sev3",
+ "frequency": "PT5M",
+ "detector": {
+ "id": "VMMemoryLeak"
+ },
+ "scope": [
+ "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/MyVms/providers/Microsoft.Compute/virtualMachines/vm1"
+ ],
+ "actionGroups": [
+ {
+ "actionGroupId": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourcegroups/actionGroups/providers/microsoft.insights/actiongroups/MyActionGroup"
+ }
+ ],
+ "throttling": {
+ "duration": "PT20M"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/MyAlertRules/providers/microsoft.alertsManagement/smartDetectorAlertRules/MyAlertRule",
+ "type": "Microsoft.AlertsManagement/smartDetectorAlertRules",
+ "name": "MyAlertRule",
+ "location": "global",
+ "tags": {},
+ "properties": {
+ "description": "Sample smart detector alert rule description",
+ "state": "Enabled",
+ "severity": "Sev3",
+ "frequency": "PT5M",
+ "detector": {
+ "id": "VMMemoryLeak"
+ },
+ "scope": [
+ "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/MyVms/providers/Microsoft.Compute/virtualMachines/vm1"
+ ],
+ "actionGroups": [
+ {
+ "actionGroupId": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourcegroups/actionGroups/providers/microsoft.insights/actiongroups/MyActionGroup"
+ }
+ ],
+ "throttling": {
+ "duration": "PT20M"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_Delete.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_Delete.json
new file mode 100644
index 000000000000..e643abd765c2
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_Delete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "b368ca2f-e298-46b7-b0ab-012281956afa",
+ "resourceGroupName": "MyAlertRules",
+ "alertRuleName": "MyAlertRule",
+ "api-version": "2021-04-01"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_Get.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_Get.json
new file mode 100644
index 000000000000..ce73878725a3
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_Get.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "b368ca2f-e298-46b7-b0ab-012281956afa",
+ "resourceGroupName": "MyAlertRules",
+ "alertRuleName": "MyAlertRule",
+ "api-version": "2021-04-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/MyAlertRules/providers/microsoft.alertsManagement/smartDetectorAlertRules/MyAlertRule",
+ "type": "Microsoft.AlertsManagement/smartDetectorAlertRules",
+ "name": "MyAlertRule",
+ "location": "global",
+ "tags": {},
+ "properties": {
+ "description": "Sample smart detector alert rule description",
+ "state": "Enabled",
+ "severity": "Sev3",
+ "frequency": "PT5M",
+ "detector": {
+ "id": "VMMemoryLeak",
+ "name": "Memory Leak in VM",
+ "description": "Alerts on a consistent increase in memory consumption over a long period of time",
+ "supportedCadences": [
+ 1
+ ],
+ "supportedResourceTypes": [
+ "VirtualMachine"
+ ],
+ "parameterDefinitions": []
+ },
+ "scope": [
+ "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/MyVms/providers/Microsoft.Compute/virtualMachines/vm1"
+ ],
+ "actionGroups": [
+ {
+ "actionGroupId": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourcegroups/MyActionGroups/providers/microsoft.insights/actionGroups/MyActionGroup"
+ }
+ ],
+ "throttling": {
+ "duration": "PT20M"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_List.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_List.json
new file mode 100644
index 000000000000..44790632e009
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_List.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "subscriptionId": "b368ca2f-e298-46b7-b0ab-012281956afa",
+ "resourceGroupName": "MyAlertRules",
+ "api-version": "2021-04-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nextLink": null,
+ "value": [
+ {
+ "id": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/MyAlertRules/providers/microsoft.alertsManagement/smartDetectorAlertRules/MyAlertRule",
+ "type": "Microsoft.AlertsManagement/smartDetectorAlertRules",
+ "name": "MyAlertRule",
+ "location": "global",
+ "tags": {},
+ "properties": {
+ "description": "Sample smart detector alert rule description",
+ "state": "Enabled",
+ "severity": "Sev3",
+ "frequency": "PT5M",
+ "detector": {
+ "id": "VMMemoryLeak"
+ },
+ "scope": [
+ "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/vms/providers/Microsoft.Compute/virtualMachines/vm1"
+ ],
+ "actionGroups": [
+ {
+ "actionGroupId": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourcegroups/MyActionGroups/providers/microsoft.insights/actionGroups/MyActionGroup"
+ }
+ ],
+ "throttling": {
+ "duration": "PT20M"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/MyAlertRules/providers/microsoft.alertsManagement/smartDetectorAlertRules/MySecondAlertRule",
+ "type": "Microsoft.AlertsManagement/smartDetectorAlertRules",
+ "name": "MySecondAlertRule",
+ "location": "global",
+ "tags": {},
+ "properties": {
+ "description": "Sample smart detector alert rule description",
+ "state": "Disabled",
+ "severity": "Sev2",
+ "frequency": "PT15M",
+ "detector": {
+ "id": "VMMemoryLeak"
+ },
+ "scope": [
+ "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/vms/providers/Microsoft.Compute/virtualMachines/vm2"
+ ],
+ "actionGroups": [
+ {
+ "actionGroupId": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourcegroups/MyActionGroups/providers/microsoft.insights/actionGroups/MyActionGroup"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_ListByResourceGroup.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_ListByResourceGroup.json
new file mode 100644
index 000000000000..ab7783902c79
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_ListByResourceGroup.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "subscriptionId": "b368ca2f-e298-46b7-b0ab-012281956afa",
+ "resourceGroupName": "MyAlertRules",
+ "api-version": "2021-04-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nextLink": null,
+ "value": [
+ {
+ "id": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/MyAlertRules/providers/microsoft.alertsManagement/smartDetectorAlertRules/MyAlertRule",
+ "type": "Microsoft.AlertsManagement/smartDetectorAlertRules",
+ "name": "MyAlertRule",
+ "location": "global",
+ "tags": {},
+ "properties": {
+ "description": "Sample smart detector alert rule description",
+ "state": "Enabled",
+ "severity": "Sev3",
+ "frequency": "PT5M",
+ "detector": {
+ "id": "VMMemoryLeak"
+ },
+ "scope": [
+ "/subscriptions/b324c52b-4073-4807-93af-e07d289c093e/resourceGroups/test/providers/Microsoft.Storage/storageAccounts/larryshoebox/blobServices/default"
+ ],
+ "actionGroups": [
+ {
+ "actionGroupId": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourcegroups/MyActionGroups/providers/microsoft.insights/actionGroups/MyActionGroup"
+ }
+ ],
+ "throttling": {
+ "duration": "PT20M"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/MyAlertRules/providers/microsoft.alertsManagement/smartDetectorAlertRules/MySecondAlertRule",
+ "type": "Microsoft.AlertsManagement/smartDetectorAlertRules",
+ "name": "MySecondAlertRule",
+ "location": "global",
+ "tags": {},
+ "properties": {
+ "description": "Sample smart detector alert rule description",
+ "state": "Disabled",
+ "severity": "Sev2",
+ "frequency": "PT15M",
+ "detector": {
+ "id": "VMMemoryLeak"
+ },
+ "scope": [
+ "/subscriptions/b324c52b-4073-4807-93af-e07d289c093e/resourceGroups/test/providers/Microsoft.Storage/storageAccounts/larryshoebox/blobServices/default"
+ ],
+ "actionGroups": [
+ {
+ "actionGroupId": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourcegroups/MyActionGroups/providers/microsoft.insights/actionGroups/MyActionGroup"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_Patch.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_Patch.json
new file mode 100644
index 000000000000..9ece49807712
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-04-01/examples/SmartDetectorAlertRule_Patch.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "subscriptionId": "b368ca2f-e298-46b7-b0ab-012281956afa",
+ "resourceGroupName": "MyAlertRules",
+ "alertRuleName": "MyAlertRule",
+ "api-version": "2021-04-01",
+ "parameters": {
+ "tags": {
+ "newKey": "newVal"
+ },
+ "properties": {
+ "description": "New description for patching",
+ "frequency": "PT1M"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/MyAlertRules/providers/microsoft.alertsManagement/smartDetectorAlertRules/MyAlertRule",
+ "type": "Microsoft.AlertsManagement/smartDetectorAlertRules",
+ "name": "MyAlertRule",
+ "location": "global",
+ "tags": {
+ "newKey": "newVal"
+ },
+ "properties": {
+ "description": "New description for patching",
+ "state": "Enabled",
+ "severity": "Sev3",
+ "frequency": "PT1M",
+ "detector": {
+ "id": "VMMemoryLeak"
+ },
+ "scope": [
+ "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourceGroups/MyVms/providers/Microsoft.Compute/virtualMachines/vm1"
+ ],
+ "actionGroups": [
+ {
+ "actionGroupId": "/subscriptions/b368ca2f-e298-46b7-b0ab-012281956afa/resourcegroups/actionGroups/providers/microsoft.insights/actiongroups/MyActionGroup"
+ }
+ ],
+ "throttling": {
+ "duration": "PT20M"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/readme.azureresourceschema.md b/specification/alertsmanagement/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 7ce77518edb5..000000000000
--- a/specification/alertsmanagement/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,101 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-alertsmanagement-2021-01-01-preview
- - tag: schema-alertsmanagement-2020-08-04-preview
- - tag: schema-alertsmanagement-2019-06-01
- - tag: schema-alertsmanagement-2019-05-05-preview
- - tag: schema-alertsmanagement-2019-03-01
- - tag: schema-alertsmanagement-2018-05-05-preview
- - tag: schema-alertsmanagement-2018-05-05
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-alertsmanagement-2021-01-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-alertsmanagement-2021-01-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AlertsManagement/preview/2021-01-01-preview/AlertsManagement.json
- - Microsoft.AlertsManagement/preview/2021-01-01-preview/MigrateFromSmartDetections.json
-
-```
-
-### Tag: schema-alertsmanagement-2020-08-04-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-alertsmanagement-2020-08-04-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AlertsManagement/preview/2020-08-04-preview/AlertsManagement.json
- - Microsoft.AlertsManagement/preview/2020-08-04-preview/ResourceHealthAlertRules.json
-
-```
-
-### Tag: schema-alertsmanagement-2019-06-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-alertsmanagement-2019-06-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AlertsManagement/stable/2019-06-01/SmartDetectorAlertRulesApi.json
-
-```
-
-### Tag: schema-alertsmanagement-2019-05-05-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-alertsmanagement-2019-05-05-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AlertsManagement/preview/2019-05-05-preview/ActionRules.json
- - Microsoft.AlertsManagement/preview/2019-05-05-preview/AlertsManagement.json
- - Microsoft.AlertsManagement/preview/2019-05-05-preview/SmartGroups.json
-
-```
-
-### Tag: schema-alertsmanagement-2019-03-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-alertsmanagement-2019-03-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AlertsManagement/stable/2019-03-01/AlertsManagement.json
- - Microsoft.AlertsManagement/stable/2019-03-01/SmartDetectorAlertRulesApi.json
-
-```
-
-### Tag: schema-alertsmanagement-2018-05-05-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-alertsmanagement-2018-05-05-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AlertsManagement/preview/2018-05-05-preview/AlertsManagement.json
-
-```
-
-### Tag: schema-alertsmanagement-2018-05-05 and azureresourceschema
-
-``` yaml $(tag) == 'schema-alertsmanagement-2018-05-05' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AlertsManagement/stable/2018-05-05/AlertsManagement.json
-
-```
diff --git a/specification/alertsmanagement/resource-manager/readme.md b/specification/alertsmanagement/resource-manager/readme.md
index 61382bb09f41..fff705d11ce5 100644
--- a/specification/alertsmanagement/resource-manager/readme.md
+++ b/specification/alertsmanagement/resource-manager/readme.md
@@ -45,6 +45,16 @@ tag: package-2019-06-preview
```
+
+### Tag: package-2021-04-only
+
+These settings apply only when `--tag=package-2021-04-only` is specified on the command line.
+
+```yaml $(tag) == 'package-2021-04-only'
+input-file:
+ - Microsoft.AlertsManagement/stable/2019-03-01/AlertsManagement.json
+ - Microsoft.AlertsManagement/stable/2021-04-01/SmartDetectorAlertRulesApi.json
+```
### Tag: package-preview-2021-01
These settings apply only when `--tag=package-preview-2021-01` is specified on the command line.
@@ -143,8 +153,6 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-trenton
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js alertsmanagement/resource-manager
```
## C#
@@ -175,7 +183,5 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/analysisservices/resource-manager/readme.azureresourceschema.md b/specification/analysisservices/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index d89301b2b8b3..000000000000
--- a/specification/analysisservices/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,48 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-analysisservices-2017-08-01
- - tag: schema-analysisservices-2017-07-14
- - tag: schema-analysisservices-2016-05-16
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-analysisservices-2017-08-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-analysisservices-2017-08-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AnalysisServices/stable/2017-08-01/analysisservices.json
-
-```
-
-### Tag: schema-analysisservices-2017-07-14 and azureresourceschema
-
-``` yaml $(tag) == 'schema-analysisservices-2017-07-14' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AnalysisServices/stable/2017-07-14/analysisservices.json
-
-```
-
-### Tag: schema-analysisservices-2016-05-16 and azureresourceschema
-
-``` yaml $(tag) == 'schema-analysisservices-2016-05-16' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AnalysisServices/stable/2016-05-16/analysisservices.json
-
-```
diff --git a/specification/analysisservices/resource-manager/readme.md b/specification/analysisservices/resource-manager/readme.md
index 1e60c46b1f69..37c2cb8c62f6 100644
--- a/specification/analysisservices/resource-manager/readme.md
+++ b/specification/analysisservices/resource-manager/readme.md
@@ -85,8 +85,6 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_analysis_services']
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js analysisservices/resource-manager
```
@@ -186,7 +184,5 @@ generate-interface: true
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/apimcontenttypes.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/apimcontenttypes.json
index 70b1f5dbff50..f566930f5e1f 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/apimcontenttypes.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/apimcontenttypes.json
@@ -40,7 +40,7 @@
"ContentType"
],
"operationId": "ContentType_ListByService",
- "description": "Returns list of content types",
+ "description": "Lists the developer portal's content types. Content types describe content items' properties, validation rules, and constraints.",
"x-ms-examples": {
"ApiManagementListContentTypes": {
"$ref": "./examples/ApiManagementListContentTypes.json"
@@ -62,7 +62,7 @@
],
"responses": {
"200": {
- "description": "Lists a collection of content type entities.",
+ "description": "Returns a collection of the Content Type entities.",
"schema": {
"$ref": "./definitions.json#/definitions/ContentTypeCollection"
}
@@ -85,7 +85,7 @@
"ContentType"
],
"operationId": "ContentType_Get",
- "description": "Gets API Management content type details.",
+ "description": "Gets the details of the developer portal's content type. Content types describe content items' properties, validation rules, and constraints.",
"x-ms-examples": {
"ApiManagementGetContentType": {
"$ref": "./examples/ApiManagementGetContentType.json"
@@ -110,7 +110,7 @@
],
"responses": {
"200": {
- "description": "Get the details of the content type.",
+ "description": "Returns the details of the specified content type.",
"schema": {
"$ref": "./definitions.json#/definitions/ContentTypeContract"
},
@@ -134,7 +134,7 @@
"ContentType"
],
"operationId": "ContentType_CreateOrUpdate",
- "description": "Creates or updates an Content Type.",
+ "description": "Creates or updates the developer portal's content type. Content types describe content items' properties, validation rules, and constraints. Custom content types' identifiers need to start with the `c-` prefix. Built-in content types can't be modified.",
"x-ms-examples": {
"ApiManagementCreateContentType": {
"$ref": "./examples/ApiManagementCreateContentType.json"
@@ -162,7 +162,7 @@
],
"responses": {
"201": {
- "description": "Content type was successfully created.",
+ "description": "The content type was successfully created.",
"headers": {
"ETag": {
"description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
@@ -198,7 +198,7 @@
"ContentType"
],
"operationId": "ContentType_Delete",
- "description": "Removes specified content type.",
+ "description": "Removes the specified developer portal's content type. Content types describe content items' properties, validation rules, and constraints. Built-in content types (with identifiers starting with the `c-` prefix) can't be removed.",
"x-ms-examples": {
"ApiManagementDeleteContentType": {
"$ref": "./examples/ApiManagementDeleteContentType.json"
@@ -246,7 +246,7 @@
"ContentTypeContentItem"
],
"operationId": "ContentItem_ListByService",
- "description": "Returns list of content items",
+ "description": "Lists developer portal's content items specified by the provided content type.",
"x-ms-examples": {
"ApiManagementListContentTypeContentItems": {
"$ref": "./examples/ApiManagementListContentTypeContentItems.json"
@@ -271,7 +271,7 @@
],
"responses": {
"200": {
- "description": "Lists a collection of Content Type entities.",
+ "description": "Returns a collection of Content Type entities.",
"schema": {
"$ref": "./definitions.json#/definitions/ContentItemCollection"
}
@@ -294,7 +294,7 @@
"ContentTypeContentItem"
],
"operationId": "ContentItem_GetEntityTag",
- "description": "Returns content item metadata",
+ "description": "Returns the entity state (ETag) version of the developer portal's content item specified by its identifier.",
"x-ms-examples": {
"ApiManagementHeadContentTypeContentItem": {
"$ref": "./examples/ApiManagementHeadContentTypeContentItem.json"
@@ -343,7 +343,7 @@
"ContentTypeContentItem"
],
"operationId": "ContentItem_Get",
- "description": "Returns content item details",
+ "description": "Returns the developer portal's content item specified by its identifier.",
"x-ms-examples": {
"ApiManagementGetContentTypeContentItem": {
"$ref": "./examples/ApiManagementGetContentTypeContentItem.json"
@@ -371,7 +371,7 @@
],
"responses": {
"200": {
- "description": "Get the details of the content item.",
+ "description": "Returns the content item.",
"schema": {
"$ref": "./definitions.json#/definitions/ContentItemContract"
},
@@ -395,7 +395,7 @@
"ContentTypeContentItem"
],
"operationId": "ContentItem_CreateOrUpdate",
- "description": "Creates new content item",
+ "description": "Creates a new developer portal's content item specified by the provided content type.",
"x-ms-examples": {
"ApiManagementCreateContentTypeContentItem": {
"$ref": "./examples/ApiManagementCreateContentTypeContentItem.json"
@@ -426,7 +426,7 @@
],
"responses": {
"201": {
- "description": "Content item was successfully created.",
+ "description": "The content item was successfully created.",
"headers": {
"ETag": {
"description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
@@ -462,7 +462,7 @@
"ContentTypeContentItem"
],
"operationId": "ContentItem_Delete",
- "description": "Removes specified content item.",
+ "description": "Removes the specified developer portal's content item.",
"x-ms-examples": {
"ApiManagementDeleteContentTypeContentItem": {
"$ref": "./examples/ApiManagementDeleteContentTypeContentItem.json"
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/apimportalrevisions.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/apimportalrevisions.json
index 6a1d3ea6cfba..c70f56bc6af2 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/apimportalrevisions.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/apimportalrevisions.json
@@ -40,7 +40,7 @@
"PortalRevision"
],
"operationId": "PortalRevision_ListByService",
- "description": "Lists a collection of developer portal revision entities.",
+ "description": "Lists developer portal's revisions.",
"x-ms-examples": {
"ApiManagementListPortalRevisions": {
"$ref": "./examples/ApiManagementListPortalRevisions.json"
@@ -75,7 +75,7 @@
],
"responses": {
"200": {
- "description": "Lists a collection of developer portal revision entities.",
+ "description": "Lists portal's revisions.",
"schema": {
"$ref": "./definitions.json#/definitions/PortalRevisionCollection"
}
@@ -98,7 +98,7 @@
"PortalRevision"
],
"operationId": "PortalRevision_GetEntityTag",
- "description": "Gets developer portal revision specified by its identifier.",
+ "description": "Gets the developer portal revision specified by its identifier.",
"x-ms-examples": {
"ApiManagementHeadPortalRevision": {
"$ref": "./examples/ApiManagementHeadPortalRevision.json"
@@ -123,7 +123,7 @@
],
"responses": {
"200": {
- "description": "Specified Portal revision entity exists and current entity state version is present in the ETag header.",
+ "description": "The specified portal revision entity exists and current entity state version is present in the ETag header.",
"headers": {
"ETag": {
"description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
@@ -144,7 +144,7 @@
"PortalRevision"
],
"operationId": "PortalRevision_Get",
- "description": "Gets developer portal revision specified by its identifier.",
+ "description": "Gets the developer portal's revision specified by its identifier.",
"x-ms-examples": {
"ApiManagementGetPortalRevision": {
"$ref": "./examples/ApiManagementGetPortalRevision.json"
@@ -169,7 +169,7 @@
],
"responses": {
"200": {
- "description": "Gets the specified developer portal revision entity.",
+ "description": "Gets the specified portal's revision.",
"schema": {
"$ref": "./definitions.json#/definitions/PortalRevisionContract"
},
@@ -193,7 +193,7 @@
"PortalRevision"
],
"operationId": "PortalRevision_CreateOrUpdate",
- "description": "Creates a new developer portal revision.",
+ "description": "Creates a new developer portal's revision by running the portal's publishing. The `isCurrent` property indicates if the revision is publicly accessible.",
"x-ms-examples": {
"ApiManagementCreatePortalRevision": {
"$ref": "./examples/ApiManagementCreatePortalRevision.json"
@@ -226,10 +226,10 @@
],
"responses": {
"202": {
- "description": "Request to create developer portal revision was accepted."
+ "description": "Request to create a developer portal revision was accepted."
},
"201": {
- "description": "Developer portal revision was successfully created.",
+ "description": "The developer portal revision was successfully created.",
"schema": {
"$ref": "./definitions.json#/definitions/PortalRevisionContract"
},
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/definitions.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/definitions.json
index 216fe4a2983a..d6d917f5d309 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/definitions.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/definitions.json
@@ -231,14 +231,14 @@
"readOnly": true
}
},
- "description": "Paged Api list representation."
+ "description": "Paged API list representation."
},
"ApiContract": {
"properties": {
"properties": {
"x-ms-client-flatten": true,
"$ref": "#/definitions/ApiContractProperties",
- "description": "Api entity contract properties."
+ "description": "API entity contract properties."
}
},
"allOf": [
@@ -246,7 +246,7 @@
"$ref": "./apimanagement.json#/definitions/Resource"
}
],
- "description": "Api details."
+ "description": "API details."
},
"ApiContractProperties": {
"properties": {
@@ -302,14 +302,14 @@
"required": [
"path"
],
- "description": "Api Entity Properties"
+ "description": "API Entity Properties"
},
"ApiCreateOrUpdateParameter": {
"properties": {
"properties": {
"x-ms-client-flatten": true,
"$ref": "#/definitions/ApiCreateOrUpdateProperties",
- "description": "Api entity create of update properties."
+ "description": "API entity create of update properties."
}
},
"description": "API Create or Update Parameters."
@@ -398,7 +398,7 @@
},
"apiType": {
"type": "string",
- "description": "Type of Api to create. \n * `http` creates a REST API \n * `soap` creates a SOAP pass-through API \n * `websocket` creates websocket API.",
+ "description": "Type of API to create. \n * `http` creates a REST API \n * `soap` creates a SOAP pass-through API \n * `websocket` creates websocket API.",
"enum": [
"http",
"soap",
@@ -433,7 +433,7 @@
"$ref": "#/definitions/ApiContractProperties"
}
],
- "description": "Api Create or Update Properties."
+ "description": "API Create or Update Properties."
},
"ApiEntityBaseContract": {
"properties": {
@@ -465,13 +465,13 @@
},
"apiRevision": {
"type": "string",
- "description": "Describes the Revision of the Api. If no value is provided, default revision 1 is created",
+ "description": "Describes the revision of the API. If no value is provided, default revision 1 is created",
"minLength": 1,
"maxLength": 100
},
"apiVersion": {
"type": "string",
- "description": "Indicates the Version identifier of the API if the API is versioned",
+ "description": "Indicates the version identifier of the API if the API is versioned",
"maxLength": 100
},
"isCurrent": {
@@ -485,12 +485,12 @@
},
"apiRevisionDescription": {
"type": "string",
- "description": "Description of the Api Revision.",
+ "description": "Description of the API Revision.",
"maxLength": 256
},
"apiVersionDescription": {
"type": "string",
- "description": "Description of the Api Version.",
+ "description": "Description of the API Version.",
"maxLength": 256
},
"apiVersionSetId": {
@@ -569,31 +569,31 @@
"values": [
{
"value": "swagger-link-json",
- "description": "The Api Definition is exported in OpenApi Specification 2.0 format to the Storage Blob.",
+ "description": "The API Definition is exported in OpenAPI Specification 2.0 format to the Storage Blob.",
"name": "Swagger"
},
{
"value": "wsdl-link+xml",
- "description": "The Api Definition is exported in WSDL Schema to Storage Blob. This is only supported for APIs of Type `soap`",
+ "description": "The API Definition is exported in WSDL Schema to Storage Blob. This is only supported for APIs of Type `soap`",
"name": "Wsdl"
},
{
"value": "wadl-link-json",
- "description": "Export the Api Definition in WADL Schema to Storage Blob.",
+ "description": "Export the API Definition in WADL Schema to Storage Blob.",
"name": "Wadl"
},
{
"value": "openapi-link",
- "description": "Export the Api Definition in OpenApi Specification 3.0 to Storage Blob.",
+ "description": "Export the API Definition in OpenAPI Specification 3.0 to Storage Blob.",
"name": "OpenApi"
}
]
},
- "description": "Format in which the Api Details are exported to the Storage Blob with Sas Key valid for 5 minutes."
+ "description": "Format in which the API Details are exported to the Storage Blob with Sas Key valid for 5 minutes."
},
"value": {
"type": "object",
- "description": "The object defining the schema of the exported Api Detail",
+ "description": "The object defining the schema of the exported API Detail",
"properties": {
"link": {
"type": "string",
@@ -688,7 +688,7 @@
"readOnly": true
}
},
- "description": "Paged Api Revision list representation."
+ "description": "Paged API Revision list representation."
},
"ApiRevisionContract": {
"properties": {
@@ -886,14 +886,14 @@
"description": "Next page link if any."
}
},
- "description": "Paged Api Version Set list representation."
+ "description": "Paged API Version Set list representation."
},
"ApiVersionSetContract": {
"properties": {
"properties": {
"x-ms-client-flatten": true,
"$ref": "#/definitions/ApiVersionSetContractProperties",
- "description": "Api VersionSet contract properties."
+ "description": "API VersionSet contract properties."
}
},
"allOf": [
@@ -901,7 +901,7 @@
"$ref": "./apimanagement.json#/definitions/Resource"
}
],
- "description": "Api Version Set Contract details."
+ "description": "API Version Set Contract details."
},
"ApiVersionSetContractDetails": {
"description": "An API Version Set contains the common configuration for a set of API Versions relating ",
@@ -1003,17 +1003,17 @@
"maxLength": 100
}
},
- "description": "Api Version set base parameters"
+ "description": "API Version set base parameters"
},
"ApiVersionSetUpdateParameters": {
"properties": {
"properties": {
"x-ms-client-flatten": true,
"$ref": "#/definitions/ApiVersionSetUpdateParametersProperties",
- "description": "Parameters to update or create an Api Version Set Contract."
+ "description": "Parameters to update or create an API Version Set Contract."
}
},
- "description": "Parameters to update or create an Api Version Set Contract."
+ "description": "Parameters to update or create an API Version Set Contract."
},
"ApiVersionSetUpdateParametersProperties": {
"properties": {
@@ -1434,7 +1434,7 @@
},
"resourceId": {
"type": "string",
- "description": "Management Uri of the Resource in External System. This url can be the Arm Resource Id of Logic Apps, Function Apps or Api Apps.",
+ "description": "Management Uri of the Resource in External System. This url can be the Arm Resource Id of Logic Apps, Function Apps or API Apps.",
"minLength": 1,
"maxLength": 2000
},
@@ -2258,7 +2258,7 @@
},
"isDefault": {
"type": "boolean",
- "description": "Whether the template is the default template provided by Api Management or has been edited.",
+ "description": "Whether the template is the default template provided by API Management or has been edited.",
"readOnly": true
},
"parameters": {
@@ -3020,7 +3020,7 @@
"properties": {
"secretIdentifier": {
"type": "string",
- "description": "Key vault secret identifier for fetching secret. Providing a versioned secret will prevent auto-refresh. This requires Api Management service to be configured with aka.ms/apimmsi"
+ "description": "Key vault secret identifier for fetching secret. Providing a versioned secret will prevent auto-refresh. This requires API Management service to be configured with aka.ms/apimmsi"
},
"identityClientId": {
"type": "string",
@@ -3441,7 +3441,7 @@
"$ref": "./apimanagement.json#/definitions/Resource"
}
],
- "description": "Api Operation details."
+ "description": "API Operation details."
},
"OperationContractProperties": {
"properties": {
@@ -3508,9 +3508,24 @@
"description": "Operation Policies"
}
},
- "description": "Api Operation Entity Base Contract details."
+ "description": "API Operation Entity Base Contract details."
},
"OperationResultContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/OperationResultContractProperties",
+ "description": "Properties of the Operation Contract."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Long Running Git Operation Results."
+ },
+ "OperationResultContractProperties": {
"properties": {
"id": {
"type": "string",
@@ -3589,17 +3604,17 @@
},
"apiName": {
"type": "string",
- "description": "Api Name.",
+ "description": "API Name.",
"readOnly": true
},
"apiRevision": {
"type": "string",
- "description": "Api Revision.",
+ "description": "API Revision.",
"readOnly": true
},
"apiVersion": {
"type": "string",
- "description": "Api Version.",
+ "description": "API Version.",
"readOnly": true
},
"description": {
@@ -3632,7 +3647,7 @@
"description": "Properties of the API Operation entity that can be updated."
}
},
- "description": "Api Operation Update Contract details."
+ "description": "API Operation Update Contract details."
},
"OperationUpdateContractProperties": {
"properties": {
@@ -4922,7 +4937,7 @@
"items": {
"$ref": "#/definitions/SchemaContract"
},
- "description": "Api Schema Contract value.",
+ "description": "API Schema Contract value.",
"readOnly": true
},
"count": {
@@ -5441,7 +5456,7 @@
},
"api": {
"$ref": "#/definitions/ApiTagResourceContractProperties",
- "description": "Api associated with the tag."
+ "description": "API associated with the tag."
},
"operation": {
"$ref": "#/definitions/OperationTagResourceContractProperties",
@@ -5473,6 +5488,16 @@
"description": "Contract defining the Tag property in the Tag Resource Contract"
},
"TenantConfigurationSyncStateContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/TenantConfigurationSyncStateContractProperties",
+ "description": "Properties returned Tenant Configuration Sync State check."
+ }
+ },
+ "description": "Result of Tenant Configuration Sync State."
+ },
+ "TenantConfigurationSyncStateContractProperties": {
"properties": {
"branch": {
"type": "string",
@@ -5503,6 +5528,10 @@
"type": "string",
"format": "date-time",
"description": "The date of the latest configuration change. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "lastOperationId": {
+ "type": "string",
+ "description": "Most recent tenant configuration operation identifier"
}
},
"description": "Tenant Configuration Synchronization State."
@@ -6324,19 +6353,19 @@
"readOnly": true
}
},
- "description": "Paged deleted Api Management Services List Representation."
+ "description": "Paged deleted API Management Services List Representation."
},
"DeletedServiceContract": {
"properties": {
"properties": {
"x-ms-client-flatten": true,
"$ref": "#/definitions/DeletedServiceContractProperties",
- "description": "Deleted Api Management Service details."
+ "description": "Deleted API Management Service details."
},
"location": {
"readOnly": true,
"type": "string",
- "description": "Api Management Service Master Location."
+ "description": "API Management Service Master Location."
}
},
"allOf": [
@@ -6344,7 +6373,7 @@
"$ref": "./apimanagement.json#/definitions/Resource"
}
],
- "description": "Deleted Api Management Service information."
+ "description": "Deleted API Management Service information."
},
"DeletedServiceContractProperties": {
"properties": {
@@ -6395,7 +6424,7 @@
"$ref": "./apimanagement.json#/definitions/Resource"
}
],
- "description": "Portal revisions contract details."
+ "description": "Portal Revision's contract details."
},
"PortalRevisionContractProperties": {
"properties": {
@@ -6412,7 +6441,7 @@
},
"status": {
"type": "string",
- "description": "Portal revision publishing status",
+ "description": "Status of the portal's revision.",
"enum": [
"pending",
"publishing",
@@ -6425,19 +6454,19 @@
"values": [
{
"value": "pending",
- "description": "Portal revision publishing is pending"
+ "description": "Portal's revision has been queued."
},
{
"value": "publishing",
- "description": "Portal revision is publishing"
+ "description": "Portal's revision is being published."
},
{
"value": "completed",
- "description": "Portal revision publishing completed"
+ "description": "Portal's revision publishing completed."
},
{
"value": "failed",
- "description": "Portal revision publishing failed"
+ "description": "Portal's revision publishing failed."
}
]
},
@@ -6445,13 +6474,13 @@
},
"isCurrent": {
"type": "boolean",
- "description": "Indicates if the Portal Revision is public."
+ "description": "Indicates if the portal's revision is public."
},
"createdDateTime": {
"type": "string",
"readOnly": true,
"format": "date-time",
- "description": "Portal revision creation date and time."
+ "description": "Portal's revision creation date and time."
},
"updatedDateTime": {
"type": "string",
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantAccessSyncState.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantAccessSyncState.json
index 53bd156c5d93..6f8c9ac6c604 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantAccessSyncState.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantAccessSyncState.json
@@ -9,13 +9,19 @@
"responses": {
"200": {
"body": {
- "branch": "master",
- "commitId": "44c29c27a876372e2ea18d9c381cc493a6a89fc5",
- "isExport": true,
- "isSynced": false,
- "isGitEnabled": true,
- "syncDate": "2016-10-24T19:17:14.3641403Z",
- "configurationChangeDate": "2017-06-03T00:41:30.9670873Z"
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tenant/configuration/syncState",
+ "type": "Microsoft.ApiManagement/service/tenant/syncState",
+ "name": "syncState",
+ "properties": {
+ "branch": "master",
+ "commitId": "de891c2342c7058dde45e5e624eae7e558c94683",
+ "isExport": true,
+ "isSynced": true,
+ "isGitEnabled": true,
+ "syncDate": "2021-04-13T01:15:53.9824995Z",
+ "configurationChangeDate": "2021-04-13T00:11:43.862781Z",
+ "lastOperationId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tenant/configuration/operationResults/6074f0bd093a9d0dac3d7347"
+ }
}
}
}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantConfigurationDeploy.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantConfigurationDeploy.json
index bd2f272fc167..5b24da95aed7 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantConfigurationDeploy.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantConfigurationDeploy.json
@@ -19,13 +19,17 @@
},
"200": {
"body": {
- "id": "5a1af4ae2a6d2e0b688d7517",
- "status": "Failed",
- "started": "2017-11-26T17:06:54.303Z",
- "updated": "2017-11-26T17:07:21.777Z",
- "error": {
- "code": "ValidationError",
- "message": "File not found: 'api-management/configuration.json'"
+ "id": "6074e652093a9d0dac3d733c",
+ "type": "Microsoft.ApiManagement/service/tenant/operationResults",
+ "name": "6074e652093a9d0dac3d733c",
+ "properties": {
+ "status": "Failed",
+ "started": "2017-11-26T17:06:54.303Z",
+ "updated": "2017-11-26T17:07:21.777Z",
+ "error": {
+ "code": "ValidationError",
+ "message": "File not found: 'api-management/configuration.json'"
+ }
}
}
}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantConfigurationSave.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantConfigurationSave.json
index 6c83c545ef74..e4e3a73dcfa1 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantConfigurationSave.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantConfigurationSave.json
@@ -19,13 +19,16 @@
},
"200": {
"body": {
- "id": "5cae98acb597440f487b0d78",
- "status": "Succeeded",
- "started": "2019-04-11T01:30:20.883Z",
- "updated": "2019-04-11T01:30:41.623Z",
- "resultInfo": "The configuration was successfully saved to master as commit 709678560f72e689e469cf98ba9ba6d1b7736893.",
- "error": null,
- "actionLog": []
+ "id": "6074e652093a9d0dac3d733c",
+ "type": "Microsoft.ApiManagement/service/tenant/operationResults",
+ "name": "6074e652093a9d0dac3d733c",
+ "properties": {
+ "status": "Succeeded",
+ "started": "2021-04-13T00:31:14.94Z",
+ "updated": "2021-04-13T00:31:27.59Z",
+ "resultInfo": "The configuration was successfully saved to master as commit c0ae274f6046912107bad734834cbf65918668b6.",
+ "actionLog": []
+ }
}
}
}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantConfigurationValidate.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantConfigurationValidate.json
index 267a94abd4b5..ba05071933a3 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantConfigurationValidate.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2021-01-01-preview/examples/ApiManagementTenantConfigurationValidate.json
@@ -19,153 +19,16 @@
},
"200": {
"body": {
- "id": "5a1af64e2a6d2e0b688d751e",
- "status": "Succeeded",
- "started": "2019-04-11T01:30:51.767Z",
- "updated": "2019-04-11T01:30:57.653Z",
- "resultInfo": "Validation is successfull",
- "actionLog": [
- {
- "objectType": "ApiSpecificationContract",
- "action": "Updated",
- "objectKey": "57914cb351f68a16889be190;rev=1"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "5768181ea40f7eb6c49f6ac7"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "576819c9a40f7e86289fb3e3"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "576819f1a40f7e86289fb6de"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681a67a40f7e72b4132522"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681a73a40f7e72b413281d"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681a7ea40f7e72b4132b18"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681b88a40f7ea0f017f099"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681b9fa40f7ea0f017f682"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681bb5a40f7ea0f017fc6b"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681bcaa40f7ea0f0180254"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681bdfa40f7ea0f018083d"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681bf5a40f7ea0f0180e26"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681c0ea40f7ea0f018140f"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681c26a40f7ea0f01819f8"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681c83a40f7e85f44db237"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681cb2a40f7e85f44dbcd0"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681ce3a40f7e85f44dc769"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681d1fa40f7e85f44dd202"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681d60a40f7e85f44ddc9b"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681db4a40f7e85f44de735"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681e11a40f7e85f44df1ce"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681e73a40f7e85f44dfc67"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681f06a40f7e74ec07785c"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "5768211fa40f7e74ec07a74a"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "576823cfa40f7e74ec07d63a"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "5600b57e7e8880006a060001"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "5600b57e7e8880006a060002"
- }
- ]
+ "id": "6074ec02093a9d0dac3d7345",
+ "type": "Microsoft.ApiManagement/service/tenant/operationResults",
+ "name": "6074ec02093a9d0dac3d7345",
+ "properties": {
+ "status": "Succeeded",
+ "started": "2021-04-13T00:55:30.62Z",
+ "updated": "2021-04-13T00:55:39.857Z",
+ "resultInfo": "Validation is successfull",
+ "actionLog": []
+ }
}
}
}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/apimcontenttypes.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/apimcontenttypes.json
index 7e48ce96c972..a56dc685e138 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/apimcontenttypes.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/apimcontenttypes.json
@@ -40,7 +40,7 @@
"ContentType"
],
"operationId": "ContentType_ListByService",
- "description": "Returns list of content types",
+ "description": "Lists the developer portal's content types. Content types describe content items' properties, validation rules, and constraints.",
"x-ms-examples": {
"ApiManagementListContentTypes": {
"$ref": "./examples/ApiManagementListContentTypes.json"
@@ -62,7 +62,7 @@
],
"responses": {
"200": {
- "description": "Lists a collection of content type entities.",
+ "description": "Returns a collection of the Content Type entities.",
"schema": {
"$ref": "./definitions.json#/definitions/ContentTypeCollection"
}
@@ -85,7 +85,7 @@
"ContentType"
],
"operationId": "ContentType_Get",
- "description": "Gets API Management content type details.",
+ "description": "Gets the details of the developer portal's content type. Content types describe content items' properties, validation rules, and constraints.",
"x-ms-examples": {
"ApiManagementGetContentType": {
"$ref": "./examples/ApiManagementGetContentType.json"
@@ -110,7 +110,7 @@
],
"responses": {
"200": {
- "description": "Get the details of the content type.",
+ "description": "Returns the details of the specified content type.",
"schema": {
"$ref": "./definitions.json#/definitions/ContentTypeContract"
},
@@ -134,7 +134,7 @@
"ContentType"
],
"operationId": "ContentType_CreateOrUpdate",
- "description": "Creates or updates an Content Type.",
+ "description": "Creates or updates the developer portal's content type. Content types describe content items' properties, validation rules, and constraints. Custom content types' identifiers need to start with the `c-` prefix. Built-in content types can't be modified.",
"x-ms-examples": {
"ApiManagementCreateContentType": {
"$ref": "./examples/ApiManagementCreateContentType.json"
@@ -162,7 +162,7 @@
],
"responses": {
"201": {
- "description": "Content type was successfully created.",
+ "description": "The content type was successfully created.",
"headers": {
"ETag": {
"description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
@@ -198,7 +198,7 @@
"ContentType"
],
"operationId": "ContentType_Delete",
- "description": "Removes specified content type.",
+ "description": "Removes the specified developer portal's content type. Content types describe content items' properties, validation rules, and constraints. Built-in content types (with identifiers starting with the `c-` prefix) can't be removed.",
"x-ms-examples": {
"ApiManagementDeleteContentType": {
"$ref": "./examples/ApiManagementDeleteContentType.json"
@@ -246,7 +246,7 @@
"ContentTypeContentItem"
],
"operationId": "ContentItem_ListByService",
- "description": "Returns list of content items",
+ "description": "Lists developer portal's content items specified by the provided content type.",
"x-ms-examples": {
"ApiManagementListContentTypeContentItems": {
"$ref": "./examples/ApiManagementListContentTypeContentItems.json"
@@ -271,7 +271,7 @@
],
"responses": {
"200": {
- "description": "Lists a collection of Content Type entities.",
+ "description": "Returns a collection of Content Type entities.",
"schema": {
"$ref": "./definitions.json#/definitions/ContentItemCollection"
}
@@ -294,7 +294,7 @@
"ContentTypeContentItem"
],
"operationId": "ContentItem_GetEntityTag",
- "description": "Returns content item metadata",
+ "description": "Returns the entity state (ETag) version of the developer portal's content item specified by its identifier.",
"x-ms-examples": {
"ApiManagementHeadContentTypeContentItem": {
"$ref": "./examples/ApiManagementHeadContentTypeContentItem.json"
@@ -343,7 +343,7 @@
"ContentTypeContentItem"
],
"operationId": "ContentItem_Get",
- "description": "Returns content item details",
+ "description": "Returns the developer portal's content item specified by its identifier.",
"x-ms-examples": {
"ApiManagementGetContentTypeContentItem": {
"$ref": "./examples/ApiManagementGetContentTypeContentItem.json"
@@ -371,7 +371,7 @@
],
"responses": {
"200": {
- "description": "Get the details of the content item.",
+ "description": "Returns the content item.",
"schema": {
"$ref": "./definitions.json#/definitions/ContentItemContract"
},
@@ -395,7 +395,7 @@
"ContentTypeContentItem"
],
"operationId": "ContentItem_CreateOrUpdate",
- "description": "Creates new content item",
+ "description": "Creates a new developer portal's content item specified by the provided content type.",
"x-ms-examples": {
"ApiManagementCreateContentTypeContentItem": {
"$ref": "./examples/ApiManagementCreateContentTypeContentItem.json"
@@ -426,7 +426,7 @@
],
"responses": {
"201": {
- "description": "Content item was successfully created.",
+ "description": "The content item was successfully created.",
"headers": {
"ETag": {
"description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
@@ -462,7 +462,7 @@
"ContentTypeContentItem"
],
"operationId": "ContentItem_Delete",
- "description": "Removes specified content item.",
+ "description": "Removes the specified developer portal's content item.",
"x-ms-examples": {
"ApiManagementDeleteContentTypeContentItem": {
"$ref": "./examples/ApiManagementDeleteContentTypeContentItem.json"
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/apimportalrevisions.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/apimportalrevisions.json
index d9fd24b5f925..613cb5a414ba 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/apimportalrevisions.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/apimportalrevisions.json
@@ -40,7 +40,7 @@
"PortalRevision"
],
"operationId": "PortalRevision_ListByService",
- "description": "Lists a collection of developer portal revision entities.",
+ "description": "Lists developer portal's revisions.",
"x-ms-examples": {
"ApiManagementListPortalRevisions": {
"$ref": "./examples/ApiManagementListPortalRevisions.json"
@@ -75,7 +75,7 @@
],
"responses": {
"200": {
- "description": "Lists a collection of developer portal revision entities.",
+ "description": "Lists portal's revisions.",
"schema": {
"$ref": "./definitions.json#/definitions/PortalRevisionCollection"
}
@@ -98,7 +98,7 @@
"PortalRevision"
],
"operationId": "PortalRevision_GetEntityTag",
- "description": "Gets developer portal revision specified by its identifier.",
+ "description": "Gets the developer portal revision specified by its identifier.",
"x-ms-examples": {
"ApiManagementHeadPortalRevision": {
"$ref": "./examples/ApiManagementHeadPortalRevision.json"
@@ -123,7 +123,7 @@
],
"responses": {
"200": {
- "description": "Specified Portal revision entity exists and current entity state version is present in the ETag header.",
+ "description": "The specified portal revision entity exists and current entity state version is present in the ETag header.",
"headers": {
"ETag": {
"description": "Current entity state version. Should be treated as opaque and used to make conditional HTTP requests.",
@@ -144,7 +144,7 @@
"PortalRevision"
],
"operationId": "PortalRevision_Get",
- "description": "Gets developer portal revision specified by its identifier.",
+ "description": "Gets the developer portal's revision specified by its identifier.",
"x-ms-examples": {
"ApiManagementGetPortalRevision": {
"$ref": "./examples/ApiManagementGetPortalRevision.json"
@@ -169,7 +169,7 @@
],
"responses": {
"200": {
- "description": "Gets the specified developer portal revision entity.",
+ "description": "Gets the specified portal's revision.",
"schema": {
"$ref": "./definitions.json#/definitions/PortalRevisionContract"
},
@@ -193,7 +193,7 @@
"PortalRevision"
],
"operationId": "PortalRevision_CreateOrUpdate",
- "description": "Creates a new developer portal revision.",
+ "description": "Creates a new developer portal's revision by running the portal's publishing. The `isCurrent` property indicates if the revision is publicly accessible.",
"x-ms-examples": {
"ApiManagementCreatePortalRevision": {
"$ref": "./examples/ApiManagementCreatePortalRevision.json"
@@ -226,10 +226,10 @@
],
"responses": {
"202": {
- "description": "Request to create developer portal revision was accepted."
+ "description": "Request to create a developer portal revision was accepted."
},
"201": {
- "description": "Developer portal revision was successfully created.",
+ "description": "The developer portal revision was successfully created.",
"schema": {
"$ref": "./definitions.json#/definitions/PortalRevisionContract"
},
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/definitions.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/definitions.json
index 98cdbc97d91b..283ef09f07d1 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/definitions.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/definitions.json
@@ -3454,6 +3454,21 @@
"description": "Api Operation Entity Base Contract details."
},
"OperationResultContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/OperationResultContractProperties",
+ "description": "Properties of the Operation Contract."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./apimanagement.json#/definitions/Resource"
+ }
+ ],
+ "description": "Long Running Git Operation Results."
+ },
+ "OperationResultContractProperties": {
"properties": {
"id": {
"type": "string",
@@ -5408,6 +5423,16 @@
"description": "Contract defining the Tag property in the Tag Resource Contract"
},
"TenantConfigurationSyncStateContract": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/TenantConfigurationSyncStateContractProperties",
+ "description": "Properties returned Tenant Configuration Sync State check."
+ }
+ },
+ "description": "Result of Tenant Configuration Sync State."
+ },
+ "TenantConfigurationSyncStateContractProperties": {
"properties": {
"branch": {
"type": "string",
@@ -5438,6 +5463,10 @@
"type": "string",
"format": "date-time",
"description": "The date of the latest configuration change. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.\n"
+ },
+ "lastOperationId": {
+ "type": "string",
+ "description": "Most recent tenant configuration operation identifier"
}
},
"description": "Tenant Configuration Synchronization State."
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantAccessSyncState.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantAccessSyncState.json
index d3c3d0ce2f4b..6c9ca32cfe67 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantAccessSyncState.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantAccessSyncState.json
@@ -9,13 +9,19 @@
"responses": {
"200": {
"body": {
- "branch": "master",
- "commitId": "44c29c27a876372e2ea18d9c381cc493a6a89fc5",
- "isExport": true,
- "isSynced": false,
- "isGitEnabled": true,
- "syncDate": "2016-10-24T19:17:14.3641403Z",
- "configurationChangeDate": "2017-06-03T00:41:30.9670873Z"
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tenant/configuration/syncState",
+ "type": "Microsoft.ApiManagement/service/tenant/syncState",
+ "name": "syncState",
+ "properties": {
+ "branch": "master",
+ "commitId": "de891c2342c7058dde45e5e624eae7e558c94683",
+ "isExport": true,
+ "isSynced": true,
+ "isGitEnabled": true,
+ "syncDate": "2021-04-13T01:15:53.9824995Z",
+ "configurationChangeDate": "2021-04-13T00:11:43.862781Z",
+ "lastOperationId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tenant/configuration/operationResults/6074f0bd093a9d0dac3d7347"
+ }
}
}
}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantConfigurationDeploy.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantConfigurationDeploy.json
index 235d9be39638..3f8ede6f3909 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantConfigurationDeploy.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantConfigurationDeploy.json
@@ -14,18 +14,22 @@
"responses": {
"202": {
"headers": {
- "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tenant/operationResults/5a1af4ae2a6d2e0b688d7517?api-version=2020-12-01"
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tenant/operationResults/6074e652093a9d0dac3d733c?api-version=2020-12-01"
}
},
"200": {
"body": {
- "id": "5a1af4ae2a6d2e0b688d7517",
- "status": "Failed",
- "started": "2017-11-26T17:06:54.303Z",
- "updated": "2017-11-26T17:07:21.777Z",
- "error": {
- "code": "ValidationError",
- "message": "File not found: 'api-management/configuration.json'"
+ "id": "6074e652093a9d0dac3d733c",
+ "type": "Microsoft.ApiManagement/service/tenant/operationResults",
+ "name": "6074e652093a9d0dac3d733c",
+ "properties": {
+ "status": "Failed",
+ "started": "2017-11-26T17:06:54.303Z",
+ "updated": "2017-11-26T17:07:21.777Z",
+ "error": {
+ "code": "ValidationError",
+ "message": "File not found: 'api-management/configuration.json'"
+ }
}
}
}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantConfigurationSave.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantConfigurationSave.json
index e1e5fbf5a24c..cc4af56c5e44 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantConfigurationSave.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantConfigurationSave.json
@@ -14,18 +14,21 @@
"responses": {
"202": {
"headers": {
- "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tenant/operationResults/5a1af57d2a6d2e0b688d751b?api-version=2020-12-01"
+ "location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/tenant/operationResults/6074e652093a9d0dac3d733c?api-version=2020-12-01"
}
},
"200": {
"body": {
- "id": "5cae98acb597440f487b0d78",
- "status": "Succeeded",
- "started": "2019-04-11T01:30:20.883Z",
- "updated": "2019-04-11T01:30:41.623Z",
- "resultInfo": "The configuration was successfully saved to master as commit 709678560f72e689e469cf98ba9ba6d1b7736893.",
- "error": null,
- "actionLog": []
+ "id": "6074e652093a9d0dac3d733c",
+ "type": "Microsoft.ApiManagement/service/tenant/operationResults",
+ "name": "6074e652093a9d0dac3d733c",
+ "properties": {
+ "status": "Succeeded",
+ "started": "2021-04-13T00:31:14.94Z",
+ "updated": "2021-04-13T00:31:27.59Z",
+ "resultInfo": "The configuration was successfully saved to master as commit c0ae274f6046912107bad734834cbf65918668b6.",
+ "actionLog": []
+ }
}
}
}
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantConfigurationValidate.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantConfigurationValidate.json
index ed20536c5a1c..7a0752cf8378 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantConfigurationValidate.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2020-12-01/examples/ApiManagementTenantConfigurationValidate.json
@@ -19,153 +19,16 @@
},
"200": {
"body": {
- "id": "5a1af64e2a6d2e0b688d751e",
- "status": "Succeeded",
- "started": "2019-04-11T01:30:51.767Z",
- "updated": "2019-04-11T01:30:57.653Z",
- "resultInfo": "Validation is successfull",
- "actionLog": [
- {
- "objectType": "ApiSpecificationContract",
- "action": "Updated",
- "objectKey": "57914cb351f68a16889be190;rev=1"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "5768181ea40f7eb6c49f6ac7"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "576819c9a40f7e86289fb3e3"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "576819f1a40f7e86289fb6de"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681a67a40f7e72b4132522"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681a73a40f7e72b413281d"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681a7ea40f7e72b4132b18"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681b88a40f7ea0f017f099"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681b9fa40f7ea0f017f682"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681bb5a40f7ea0f017fc6b"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681bcaa40f7ea0f0180254"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681bdfa40f7ea0f018083d"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681bf5a40f7ea0f0180e26"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681c0ea40f7ea0f018140f"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681c26a40f7ea0f01819f8"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681c83a40f7e85f44db237"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681cb2a40f7e85f44dbcd0"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681ce3a40f7e85f44dc769"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681d1fa40f7e85f44dd202"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681d60a40f7e85f44ddc9b"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681db4a40f7e85f44de735"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681e11a40f7e85f44df1ce"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681e73a40f7e85f44dfc67"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "57681f06a40f7e74ec07785c"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "5768211fa40f7e74ec07a74a"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "576823cfa40f7e74ec07d63a"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "5600b57e7e8880006a060001"
- },
- {
- "objectType": "ProductSpecificationContract",
- "action": "Updated",
- "objectKey": "5600b57e7e8880006a060002"
- }
- ]
+ "id": "6074ec02093a9d0dac3d7345",
+ "type": "Microsoft.ApiManagement/service/tenant/operationResults",
+ "name": "6074ec02093a9d0dac3d7345",
+ "properties": {
+ "status": "Succeeded",
+ "started": "2021-04-13T00:55:30.62Z",
+ "updated": "2021-04-13T00:55:39.857Z",
+ "resultInfo": "Validation is successfull",
+ "actionLog": []
+ }
}
}
}
diff --git a/specification/apimanagement/resource-manager/readme.azureresourceschema.md b/specification/apimanagement/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index ae3f477f7a2e..000000000000
--- a/specification/apimanagement/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,455 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-apimanagement-2021-01-01-preview
- - tag: schema-apimanagement-2020-12-01
- - tag: schema-apimanagement-2020-06-01-preview
- - tag: schema-apimanagement-2019-12-01-preview
- - tag: schema-apimanagement-2019-12-01
- - tag: schema-apimanagement-2019-01-01
- - tag: schema-apimanagement-2018-06-01-preview
- - tag: schema-apimanagement-2018-01-01
- - tag: schema-apimanagement-2017-03-01
- - tag: schema-apimanagement-2016-10-10
- - tag: schema-apimanagement-2016-07-07
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-apimanagement-2021-01-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-apimanagement-2021-01-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimanagement.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimapis.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimapisByTags.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimapiversionsets.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimauthorizationservers.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimbackends.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimcaches.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimcertificates.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimcontenttypes.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimdeletedservices.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimdeployment.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimdiagnostics.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimemailtemplates.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimgateways.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimgroups.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimidentityprovider.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimissues.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimloggers.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimnamedvalues.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimnetworkstatus.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimnotifications.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimopenidconnectproviders.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimpolicies.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimpolicydescriptions.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimportalrevisions.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimportalsettings.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimproducts.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimproductsByTags.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimquotas.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimregions.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimreports.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimsettings.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimskus.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimsubscriptions.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimtagresources.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimtags.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimtenant.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/apimusers.json
- - Microsoft.ApiManagement/preview/2021-01-01-preview/definitions.json
-
-```
-
-### Tag: schema-apimanagement-2020-12-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-apimanagement-2020-12-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.ApiManagement/stable/2020-12-01/apimanagement.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimapis.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimapisByTags.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimapiversionsets.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimauthorizationservers.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimbackends.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimcaches.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimcertificates.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimcontenttypes.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimdeletedservices.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimdeployment.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimdiagnostics.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimemailtemplates.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimgateways.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimgroups.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimidentityprovider.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimissues.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimloggers.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimnamedvalues.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimnetworkstatus.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimnotifications.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimopenidconnectproviders.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimpolicies.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimpolicydescriptions.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimportalrevisions.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimportalsettings.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimproducts.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimproductsByTags.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimquotas.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimregions.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimreports.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimsettings.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimskus.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimsubscriptions.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimtagresources.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimtags.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimtenant.json
- - Microsoft.ApiManagement/stable/2020-12-01/apimusers.json
- - Microsoft.ApiManagement/stable/2020-12-01/definitions.json
-
-```
-
-### Tag: schema-apimanagement-2020-06-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-apimanagement-2020-06-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimanagement.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimapis.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimapisByTags.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimapiversionsets.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimauthorizationservers.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimbackends.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimcaches.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimcertificates.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimcontenttypes.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimdeletedservices.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimdeployment.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimdiagnostics.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimemailtemplates.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimgateways.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimgroups.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimidentityprovider.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimissues.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimloggers.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimnamedvalues.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimnetworkstatus.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimnotifications.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimopenidconnectproviders.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimpolicies.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimpolicydescriptions.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimportalrevisions.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimportalsettings.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimproducts.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimproductsByTags.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimquotas.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimregions.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimreports.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimsettings.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimskus.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimsubscriptions.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimtagresources.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimtags.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimtenant.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/apimusers.json
- - Microsoft.ApiManagement/preview/2020-06-01-preview/definitions.json
-
-```
-
-### Tag: schema-apimanagement-2019-12-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-apimanagement-2019-12-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimanagement.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimapis.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimapisByTags.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimapiversionsets.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimauthorizationservers.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimbackends.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimcaches.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimcertificates.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimdeployment.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimdiagnostics.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimemailtemplates.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimgateways.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimgroups.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimidentityprovider.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimissues.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimloggers.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimnetworkstatus.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimnotifications.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimopenidconnectproviders.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimpolicies.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimpolicydescriptions.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimportalsettings.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimproducts.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimproductsByTags.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimnamedvalues.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimquotas.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimregions.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimreports.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimsubscriptions.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimtagresources.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimtags.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimtenant.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/apimusers.json
- - Microsoft.ApiManagement/preview/2019-12-01-preview/definitions.json
-
-```
-
-### Tag: schema-apimanagement-2019-12-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-apimanagement-2019-12-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.ApiManagement/stable/2019-12-01/apimanagement.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimapis.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimapisByTags.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimapiversionsets.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimauthorizationservers.json
- - 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
- - Microsoft.ApiManagement/stable/2019-12-01/apimgateways.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimgroups.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimidentityprovider.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimissues.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimloggers.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimnamedvalues.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimnetworkstatus.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimnotifications.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimopenidconnectproviders.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimpolicies.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimpolicydescriptions.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimportalsettings.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimproducts.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimproductsByTags.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimquotas.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimregions.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimreports.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimsubscriptions.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimtagresources.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimtags.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimtenant.json
- - Microsoft.ApiManagement/stable/2019-12-01/apimusers.json
- - Microsoft.ApiManagement/stable/2019-12-01/definitions.json
-
-```
-
-### Tag: schema-apimanagement-2019-01-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-apimanagement-2019-01-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.ApiManagement/stable/2019-01-01/apimanagement.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimapis.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimapisByTags.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimapiversionsets.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimauthorizationservers.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimbackends.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimcaches.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimcertificates.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimdeployment.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimdiagnostics.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimemailtemplates.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimgroups.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimidentityprovider.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimissues.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimloggers.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimnetworkstatus.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimnotifications.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimopenidconnectproviders.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimpolicies.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimpolicysnippets.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimportalsettings.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimproducts.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimproductsByTags.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimproperties.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimquotas.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimregions.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimreports.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimsubscriptions.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimtagresources.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimtags.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimtenant.json
- - Microsoft.ApiManagement/stable/2019-01-01/apimusers.json
- - Microsoft.ApiManagement/stable/2019-01-01/definitions.json
-
-```
-
-### Tag: schema-apimanagement-2018-06-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-apimanagement-2018-06-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimanagement.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimapis.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimapisByTags.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimauthorizationservers.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimbackends.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimcaches.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimcertificates.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimdeployment.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimdiagnostics.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimemailtemplates.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimgroups.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimidentityprovider.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimissues.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimloggers.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimnotifications.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimnetworkstatus.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimopenidconnectproviders.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimpolicies.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimpolicysnippets.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimportalsettings.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimproducts.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimproductsByTags.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimproperties.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimquotas.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimregions.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimreports.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimsubscriptions.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimtagresources.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimtags.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimtenant.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimusers.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/apimapiversionsets.json
- - Microsoft.ApiManagement/preview/2018-06-01-preview/definitions.json
-
-```
-
-### Tag: schema-apimanagement-2018-01-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-apimanagement-2018-01-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.ApiManagement/stable/2018-01-01/apimanagement.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimapis.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimauthorizationservers.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimbackends.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimcertificates.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimdeployment.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimdiagnostics.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimemailtemplate.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimgroups.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimidentityprovider.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimloggers.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimnotifications.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimnetworkstatus.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimopenidconnectproviders.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimportalsettings.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimproducts.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimproperties.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimquotas.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimreports.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimsubscriptions.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimtagresources.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimtags.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimtenant.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimusers.json
- - Microsoft.ApiManagement/stable/2018-01-01/apimversionsets.json
-
-```
-
-### Tag: schema-apimanagement-2017-03-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-apimanagement-2017-03-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.ApiManagement/stable/2017-03-01/apimanagement.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimapis.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimauthorizationservers.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimbackends.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimcertificates.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimdeployment.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimdiagnostics.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimemailtemplate.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimgroups.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimidentityprovider.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimloggers.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimnotifications.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimnetworkstatus.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimopenidconnectproviders.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimportalsettings.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimproducts.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimproperties.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimquotas.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimreports.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimsubscriptions.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimtagresources.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimtags.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimtenant.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimusers.json
- - Microsoft.ApiManagement/stable/2017-03-01/apimversionsets.json
-
-```
-
-### Tag: schema-apimanagement-2016-10-10 and azureresourceschema
-
-``` yaml $(tag) == 'schema-apimanagement-2016-10-10' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.ApiManagement/stable/2016-10-10/apimanagement.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimapis.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimauthorizationservers.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimbackends.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimcertificates.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimdeployment.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimgroups.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimidentityprovider.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimloggers.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimnetworkstatus.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimopenidconnectproviders.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimproducts.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimproperties.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimquotas.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimreports.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimsubscriptions.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimtenant.json
- - Microsoft.ApiManagement/stable/2016-10-10/apimusers.json
-
-```
-
-### Tag: schema-apimanagement-2016-07-07 and azureresourceschema
-
-``` yaml $(tag) == 'schema-apimanagement-2016-07-07' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.ApiManagement/stable/2016-07-07/apimanagement.json
- - Microsoft.ApiManagement/stable/2016-07-07/apimdeployment.json
-
-```
diff --git a/specification/apimanagement/resource-manager/readme.md b/specification/apimanagement/resource-manager/readme.md
index 31b3296e3b88..5458143088a5 100644
--- a/specification/apimanagement/resource-manager/readme.md
+++ b/specification/apimanagement/resource-manager/readme.md
@@ -488,8 +488,6 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_api_management']
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js apimanagement/resource-manager
```
## C#
@@ -518,9 +516,7 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
## Suppression
diff --git a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2021-03-01-preview/appconfiguration.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2021-03-01-preview/appconfiguration.json
index 8a3a3807eee3..0607f2b84c9f 100644
--- a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2021-03-01-preview/appconfiguration.json
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/preview/2021-03-01-preview/appconfiguration.json
@@ -1575,6 +1575,10 @@
"items": {
"$ref": "#/definitions/MetricDimension"
}
+ },
+ "fillGapWithZero": {
+ "description": "Optional. If set to true, then zero will be returned for time duration where no metric is emitted/published.",
+ "type": "boolean"
}
}
},
diff --git a/specification/appconfiguration/resource-manager/readme.azureresourceschema.md b/specification/appconfiguration/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index da661721d59b..000000000000
--- a/specification/appconfiguration/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,84 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-appconfiguration-2021-03-01-preview
- - tag: schema-appconfiguration-2020-07-01-preview
- - tag: schema-appconfiguration-2020-06-01
- - tag: schema-appconfiguration-2019-11-01-preview
- - tag: schema-appconfiguration-2019-10-01
- - tag: schema-appconfiguration-2019-02-01-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-appconfiguration-2021-03-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-appconfiguration-2021-03-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AppConfiguration/preview/2021-03-01-preview/appconfiguration.json
-
-```
-
-### Tag: schema-appconfiguration-2020-07-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-appconfiguration-2020-07-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AppConfiguration/preview/2020-07-01-preview/appconfiguration.json
-
-```
-
-### Tag: schema-appconfiguration-2020-06-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-appconfiguration-2020-06-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AppConfiguration/stable/2020-06-01/appconfiguration.json
-
-```
-
-### Tag: schema-appconfiguration-2019-11-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-appconfiguration-2019-11-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AppConfiguration/preview/2019-11-01-preview/appconfiguration.json
-
-```
-
-### Tag: schema-appconfiguration-2019-10-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-appconfiguration-2019-10-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AppConfiguration/stable/2019-10-01/appconfiguration.json
-
-```
-
-### Tag: schema-appconfiguration-2019-02-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-appconfiguration-2019-02-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AppConfiguration/preview/2019-02-01-preview/appconfiguration.json
-
-```
diff --git a/specification/appconfiguration/resource-manager/readme.go.md b/specification/appconfiguration/resource-manager/readme.go.md
index 828f029a6f11..e69b52caf805 100644
--- a/specification/appconfiguration/resource-manager/readme.go.md
+++ b/specification/appconfiguration/resource-manager/readme.go.md
@@ -13,6 +13,7 @@ go:
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-2021-03-01-preview
- tag: package-2020-07-01-preview
- tag: package-2020-06-01
- tag: package-2019-11-01-preview
@@ -20,6 +21,15 @@ batch:
- tag: package-2019-02-01-preview
```
+### Tag: package-2021-03-01-preview and go
+
+These settings apply only when `--tag=package-2021-03-01-preview --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2021-03-01-preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2021-03-01-preview/$(namespace)
+```
+
### Tag: package-2020-07-01-preview and go
These settings apply only when `--tag=package-2020-07-01-preview --go` is specified on the command line.
diff --git a/specification/appconfiguration/resource-manager/readme.md b/specification/appconfiguration/resource-manager/readme.md
index 77dae0534fe0..9ff6fa69e34d 100644
--- a/specification/appconfiguration/resource-manager/readme.md
+++ b/specification/appconfiguration/resource-manager/readme.md
@@ -105,8 +105,6 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_app_configuration']
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js appconfiguration/resource-manager
```
## C#
@@ -163,7 +161,5 @@ directive:
reason: This is a standardized ARM API.
```
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/applicationinsights/data-plane/Monitor.Exporters/preview/2020-09-15_Preview/swagger.json b/specification/applicationinsights/data-plane/Monitor.Exporters/preview/2020-09-15_Preview/swagger.json
index ae3028af5321..1e150680fec3 100644
--- a/specification/applicationinsights/data-plane/Monitor.Exporters/preview/2020-09-15_Preview/swagger.json
+++ b/specification/applicationinsights/data-plane/Monitor.Exporters/preview/2020-09-15_Preview/swagger.json
@@ -6,7 +6,7 @@
"description": "This document describes the protocol for client requests and responses to the data collection endpoint."
},
"x-ms-parameterized-host": {
- "hostTemplate": "{Host}/v2/",
+ "hostTemplate": "{Host}/v2",
"useSchemePrefix": false,
"parameters": [
{
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-02-02-preview/components_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-02-02-preview/components_API.json
index d890209a607b..6930dd17bec0 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-02-02-preview/components_API.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2020-02-02-preview/components_API.json
@@ -601,6 +601,14 @@
"name": "IngestionMode",
"modelAsString": true
}
+ },
+ "DisableLocalAuth": {
+ "type": "boolean",
+ "description": "Disable Non-AAD based Auth."
+ },
+ "ForceCustomerStorageForProfiler": {
+ "type": "boolean",
+ "description": "Force users to create their own storage account for profiler and debugger."
}
},
"required": [
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/components_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/components_API.json
new file mode 100644
index 000000000000..e1a021011c4f
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/components_API.json
@@ -0,0 +1,774 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApplicationInsightsManagementClient",
+ "description": "Azure Application Insights client for Components",
+ "version": "2020-02-02"
+ },
+ "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/components": {
+ "get": {
+ "description": "Gets a list of all Application Insights components within a subscription.",
+ "operationId": "Components_List",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A list containing 0 or more Application Insights component definitions.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationInsightsComponentListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ComponentsList.json": {
+ "$ref": "./examples/ComponentsList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components": {
+ "get": {
+ "description": "Gets a list of Application Insights components within a resource group.",
+ "operationId": "Components_ListByResourceGroup",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A list containing 0 or more Application Insights component definitions.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationInsightsComponentListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ComponentListByResourceGroup": {
+ "$ref": "./examples/ComponentsListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}": {
+ "delete": {
+ "description": "Deletes an Application Insights component.",
+ "operationId": "Components_Delete",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request when deleting an Application Insights component."
+ },
+ "204": {
+ "description": "The specified component does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ComponentsDelete": {
+ "$ref": "./examples/ComponentsDelete.json"
+ }
+ }
+ },
+ "get": {
+ "description": "Returns an Application Insights component.",
+ "operationId": "Components_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "An Application Insights Component definition.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationInsightsComponent"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ComponentGet": {
+ "$ref": "./examples/ComponentsGet.json"
+ }
+ }
+ },
+ "put": {
+ "description": "Creates (or updates) an Application Insights component. Note: You cannot specify a different value for InstrumentationKey nor AppId in the Put operation.",
+ "operationId": "Components_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "InsightProperties",
+ "description": "Properties that need to be specified to create an Application Insights component.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ApplicationInsightsComponent"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request when creating or updating an Application Insights component. The updated component is returned.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationInsightsComponent"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ComponentCreate": {
+ "$ref": "./examples/ComponentsCreate.json"
+ },
+ "ComponentUpdate": {
+ "$ref": "./examples/ComponentsUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Updates an existing component's tags. To update other fields use the CreateOrUpdate method.",
+ "operationId": "Components_UpdateTags",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "ComponentTags",
+ "description": "Updated tag information to set into the component instance.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TagsResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Updating the Application Insights component's tags was successful. Component tags are updated and returned with the rest of the Component's object properties.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationInsightsComponent"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ComponentUpdateTagsOnly": {
+ "$ref": "./examples/ComponentsUpdateTagsOnly.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}/purge": {
+ "post": {
+ "description": "Purges data in an Application Insights component by a set of user-defined filters.\n\nIn order to manage system resources, purge requests are throttled at 50 requests per hour. You should batch the execution of purge requests by sending a single command whose predicate includes all user identities that require purging. Use the in operator to specify multiple identities. You should run the query prior to using for a purge request to verify that the results are expected.",
+ "operationId": "Components_Purge",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComponentPurgeParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted request for purging an Application Insights component.",
+ "schema": {
+ "$ref": "#/definitions/ComponentPurgeResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ComponentPurge": {
+ "$ref": "./examples/ComponentsPurge.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/components/{resourceName}/operations/{purgeId}": {
+ "get": {
+ "description": "Get status for an ongoing purge operation.",
+ "operationId": "Components_GetPurgeStatus",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComponentPurgeIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns status of purge operation in body of response. e.g.: running, completed.",
+ "schema": {
+ "$ref": "#/definitions/ComponentPurgeStatusResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ComponentPurge": {
+ "$ref": "./examples/ComponentsPurgeStatus.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ComponentsResource": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource Id"
+ },
+ "name": {
+ "type": "string",
+ "description": "Azure resource name",
+ "readOnly": true
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource type"
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "required": [
+ "location"
+ ],
+ "x-ms-azure-resource": true,
+ "description": "An azure resource object"
+ },
+ "TagsResource": {
+ "properties": {
+ "tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "description": "A container holding only the Tags for a resource, allowing the user to update the tags on a WebTest instance."
+ },
+ "ApplicationInsightsComponent": {
+ "properties": {
+ "kind": {
+ "type": "string",
+ "description": "The kind of application that this component refers to, used to customize UI. This value is a freeform string, values should typically be one of the following: web, ios, other, store, java, phone."
+ },
+ "etag": {
+ "type": "string",
+ "description": "Resource etag"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Properties that define an Application Insights component resource.",
+ "$ref": "#/definitions/ApplicationInsightsComponentProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ComponentsResource"
+ }
+ ],
+ "required": [
+ "kind"
+ ],
+ "description": "An Application Insights component definition."
+ },
+ "ApplicationInsightsComponentProperties": {
+ "description": "Properties that define an Application Insights component resource.",
+ "properties": {
+ "ApplicationId": {
+ "type": "string",
+ "description": "The unique ID of your application. This field mirrors the 'Name' field and cannot be changed.",
+ "readOnly": true
+ },
+ "AppId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Application Insights Unique ID for your Application."
+ },
+ "Name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Application name."
+ },
+ "Application_Type": {
+ "type": "string",
+ "description": "Type of application being monitored.",
+ "default": "web",
+ "enum": [
+ "web",
+ "other"
+ ],
+ "x-ms-enum": {
+ "name": "ApplicationType",
+ "modelAsString": true
+ },
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "Flow_Type": {
+ "type": "string",
+ "description": "Used by the Application Insights system to determine what kind of flow this component was created by. This is to be set to 'Bluefield' when creating/updating a component via the REST API.",
+ "default": "Bluefield",
+ "enum": [
+ "Bluefield"
+ ],
+ "x-ms-enum": {
+ "name": "FlowType",
+ "modelAsString": true
+ }
+ },
+ "Request_Source": {
+ "type": "string",
+ "description": "Describes what tool created this Application Insights component. Customers using this API should set this to the default 'rest'.",
+ "default": "rest",
+ "enum": [
+ "rest"
+ ],
+ "x-ms-enum": {
+ "name": "RequestSource",
+ "modelAsString": true
+ }
+ },
+ "InstrumentationKey": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Application Insights Instrumentation key. A read-only value that applications can use to identify the destination for all telemetry sent to Azure Application Insights. This value will be supplied upon construction of each new Application Insights component."
+ },
+ "CreationDate": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Creation Date for the Application Insights component, in ISO 8601 format.",
+ "format": "date-time"
+ },
+ "TenantId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure Tenant Id."
+ },
+ "HockeyAppId": {
+ "type": "string",
+ "description": "The unique application ID created when a new application is added to HockeyApp, used for communications with HockeyApp.",
+ "externalDocs": {
+ "url": "https://aka.ms/ewjuel"
+ }
+ },
+ "HockeyAppToken": {
+ "type": "string",
+ "description": "Token used to authenticate communications with between Application Insights and HockeyApp.",
+ "readOnly": true,
+ "externalDocs": {
+ "url": "https://aka.ms/sls76s"
+ }
+ },
+ "provisioningState": {
+ "type": "string",
+ "description": "Current state of this component: whether or not is has been provisioned within the resource group it is defined. Users cannot change this value but are able to read from it. Values will include Succeeded, Deploying, Canceled, and Failed.",
+ "readOnly": true
+ },
+ "SamplingPercentage": {
+ "type": "number",
+ "format": "double",
+ "description": "Percentage of the data produced by the application being monitored that is being sampled for Application Insights telemetry.",
+ "externalDocs": {
+ "url": "https://aka.ms/sl0yqd"
+ }
+ },
+ "ConnectionString": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Application Insights component connection string."
+ },
+ "RetentionInDays": {
+ "type": "integer",
+ "description": "Retention period in days.",
+ "readOnly": true
+ },
+ "DisableIpMasking": {
+ "type": "boolean",
+ "description": "Disable IP masking."
+ },
+ "ImmediatePurgeDataOn30Days": {
+ "type": "boolean",
+ "description": "Purge data immediately after 30 days."
+ },
+ "WorkspaceResourceId": {
+ "type": "string",
+ "description": "Resource Id of the log analytics workspace which the data will be ingested to. This property is required to create an application with this API version. Applications from older versions will not have this property."
+ },
+ "LaMigrationDate": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The date which the component got migrated to LA, in ISO 8601 format.",
+ "format": "date-time"
+ },
+ "PrivateLinkScopedResources": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkScopedResource"
+ },
+ "description": "List of linked private link scope resources."
+ },
+ "publicNetworkAccessForIngestion": {
+ "description": "The network access type for accessing Application Insights ingestion.",
+ "$ref": "#/definitions/PublicNetworkAccessType"
+ },
+ "publicNetworkAccessForQuery": {
+ "description": "The network access type for accessing Application Insights query.",
+ "$ref": "#/definitions/PublicNetworkAccessType"
+ },
+ "IngestionMode": {
+ "type": "string",
+ "description": "Indicates the flow of the ingestion.",
+ "default": "LogAnalytics",
+ "enum": [
+ "ApplicationInsights",
+ "ApplicationInsightsWithDiagnosticSettings",
+ "LogAnalytics"
+ ],
+ "x-ms-enum": {
+ "name": "IngestionMode",
+ "modelAsString": true
+ }
+ },
+ "DisableLocalAuth": {
+ "type": "boolean",
+ "description": "Disable Non-AAD based Auth."
+ },
+ "ForceCustomerStorageForProfiler": {
+ "type": "boolean",
+ "description": "Force users to create their own storage account for profiler and debugger."
+ }
+ },
+ "required": [
+ "Application_Type"
+ ]
+ },
+ "PrivateLinkScopedResource": {
+ "properties": {
+ "ResourceId": {
+ "type": "string",
+ "description": "The full resource Id of the private link scope resource."
+ },
+ "ScopeId": {
+ "type": "string",
+ "description": "The private link scope unique Identifier."
+ }
+ },
+ "description": "The private link scope resource reference."
+ },
+ "ApplicationInsightsComponentListResult": {
+ "description": "Describes the list of Application Insights Resources.",
+ "required": [
+ "value"
+ ],
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of Application Insights component definitions.",
+ "items": {
+ "$ref": "#/definitions/ApplicationInsightsComponent"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to get the next set of Application Insights component definitions if too many components where returned in the result set."
+ }
+ }
+ },
+ "ComponentPurgeBody": {
+ "description": "Describes the body of a purge request for an App Insights component",
+ "required": [
+ "table",
+ "filters"
+ ],
+ "properties": {
+ "table": {
+ "type": "string",
+ "description": "Table from which to purge data."
+ },
+ "filters": {
+ "type": "array",
+ "description": "The set of columns and filters (queries) to run over them to purge the resulting data.",
+ "items": {
+ "$ref": "#/definitions/ComponentPurgeBodyFilters"
+ }
+ }
+ }
+ },
+ "ComponentPurgeBodyFilters": {
+ "description": "User-defined filters to return data which will be purged from the table.",
+ "properties": {
+ "column": {
+ "description": "The column of the table over which the given query should run",
+ "type": "string"
+ },
+ "operator": {
+ "description": "A query operator to evaluate over the provided column and value(s). Supported operators are ==, =~, in, in~, >, >=, <, <=, between, and have the same behavior as they would in a KQL query.",
+ "type": "string"
+ },
+ "value": {
+ "description": "the value for the operator to function over. This can be a number (e.g., > 100), a string (timestamp >= '2017-09-01') or array of values."
+ },
+ "key": {
+ "description": "When filtering over custom dimensions, this key will be used as the name of the custom dimension.",
+ "type": "string"
+ }
+ }
+ },
+ "ComponentPurgeResponse": {
+ "description": "Response containing operationId for a specific purge action.",
+ "properties": {
+ "operationId": {
+ "description": "Id to use when querying for status for a particular purge operation.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "operationId"
+ ]
+ },
+ "ComponentPurgeStatusResponse": {
+ "description": "Response containing status for a specific purge operation.",
+ "properties": {
+ "status": {
+ "description": "Status of the operation represented by the requested Id.",
+ "type": "string",
+ "enum": [
+ "pending",
+ "completed"
+ ],
+ "x-ms-enum": {
+ "name": "PurgeState",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "status"
+ ]
+ },
+ "PublicNetworkAccessType": {
+ "type": "string",
+ "description": "The network access type for operating on the Application Insights Component. By default it is Enabled",
+ "default": "Enabled",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "PublicNetworkAccessType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Enabled",
+ "description": "Enables connectivity to Application Insights through public DNS."
+ },
+ {
+ "value": "Disabled",
+ "description": "Disables public connectivity to Application Insights through public DNS."
+ }
+ ]
+ }
+ }
+ },
+ "parameters": {
+ "ResourceNameParameter": {
+ "name": "resourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Application Insights component resource.",
+ "x-ms-parameter-location": "method"
+ },
+ "ComponentPurgeParameter": {
+ "name": "body",
+ "in": "body",
+ "description": "Describes the body of a request to purge data in a single table of an Application Insights component",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ComponentPurgeBody"
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "ComponentPurgeIdParameter": {
+ "name": "purgeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "In a purge status request, this is the Id of the operation the status of which is returned.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsCreate.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsCreate.json
new file mode 100644
index 000000000000..e47be170ccc3
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsCreate.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "api-version": "2020-02-02",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "my-component",
+ "InsightProperties": {
+ "location": "South Central US",
+ "kind": "web",
+ "properties": {
+ "Application_Type": "web",
+ "Flow_Type": "Bluefield",
+ "WorkspaceResourceId": "/subscriptions/subid/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
+ "Request_Source": "rest"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/components/my-component",
+ "name": "my-component",
+ "type": "Microsoft.Insights/components",
+ "location": "South Central US",
+ "tags": "",
+ "kind": "web",
+ "properties": {
+ "ApplicationId": "my-component",
+ "AppId": "887f4bfd-b5fd-40d7-9fc3-123456789abc",
+ "Application_Type": "web",
+ "Flow_Type": "Bluefield",
+ "Request_Source": "rest",
+ "InstrumentationKey": "bc095013-3cf2-45ac-ab47-123456789abc",
+ "CreationDate": "2017-01-24T01:05:38.5934061+00:00",
+ "TenantId": "f438d567-7177-4fe1-a5e3-123456789abc",
+ "HockeyAppId": "",
+ "HockeyAppToken": "",
+ "provisioningState": "Succeeded",
+ "SamplingPercentage": 100.0,
+ "WorkspaceResourceId": "/subscriptions/subid/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
+ "ConnectionString": "InstrumentationKey=bc095013-3cf2-45ac-ab47-123456789abc",
+ "DisableIpMasking": false,
+ "publicNetworkAccessForQuery": "Enabled",
+ "publicNetworkAccessForIngestion": "Enabled",
+ "IngestionMode": "LogAnalytics"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsDelete.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsDelete.json
new file mode 100644
index 000000000000..2e8b78b498f1
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-02-02",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "my-component"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsGet.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsGet.json
new file mode 100644
index 000000000000..92fc3f43beb7
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsGet.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "api-version": "2020-02-02",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "my-component"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/components/my-component",
+ "name": "my-component",
+ "type": "Microsoft.Insights/components",
+ "location": "South Central US",
+ "tags": "",
+ "kind": "web",
+ "properties": {
+ "ApplicationId": "my-component",
+ "AppId": "887f4bfd-b5fd-40d7-9fc3-123456789abc",
+ "Application_Type": "web",
+ "Flow_Type": "Bluefield",
+ "Request_Source": "rest",
+ "InstrumentationKey": "bc095013-3cf2-45ac-ab47-123456789abc",
+ "CreationDate": "2017-01-24T01:05:38.5934061+00:00",
+ "TenantId": "f438d567-7177-4fe1-a5e3-123456789abc",
+ "HockeyAppId": "",
+ "HockeyAppToken": "",
+ "provisioningState": "Succeeded",
+ "SamplingPercentage": 100.0,
+ "WorkspaceResourceId": "/subscriptions/subid/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
+ "ConnectionString": "InstrumentationKey=bc095013-3cf2-45ac-ab47-123456789abc",
+ "DisableIpMasking": false,
+ "publicNetworkAccessForQuery": "Enabled",
+ "publicNetworkAccessForIngestion": "Enabled",
+ "IngestionMode": "LogAnalytics"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsList.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsList.json
new file mode 100644
index 000000000000..4d5b050bbcbc
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsList.json
@@ -0,0 +1,71 @@
+{
+ "parameters": {
+ "api-version": "2020-02-02",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/components/my-component",
+ "name": "my-component",
+ "type": "Microsoft.Insights/components",
+ "location": "South Central US",
+ "tags": "",
+ "kind": "web",
+ "properties": {
+ "ApplicationId": "my-component",
+ "AppId": "16526d1a-dfba-4362-a9e9-123456789abc",
+ "Application_Type": "web",
+ "Flow_Type": "Bluefield",
+ "Request_Source": "rest",
+ "InstrumentationKey": "dc5931c7-a7ad-4ad0-89d6-123456789abc",
+ "CreationDate": "2017-02-14T12:24:05.0041213+00:00",
+ "TenantId": "f438d567-7177-4fe1-a5e3-123456789abc",
+ "HockeyAppId": "",
+ "HockeyAppToken": "",
+ "provisioningState": "Succeeded",
+ "SamplingPercentage": 75.0,
+ "WorkspaceResourceId": "/subscriptions/subid/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
+ "ConnectionString": "InstrumentationKey=dc5931c7-a7ad-4ad0-89d6-123456789abc",
+ "DisableIpMasking": false,
+ "publicNetworkAccessForQuery": "Enabled",
+ "publicNetworkAccessForIngestion": "Enabled",
+ "IngestionMode": "LogAnalytics"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/my-other-resource-group/providers/Microsoft.Insights/components/my-other-component",
+ "name": "my-other-component",
+ "type": "Microsoft.Insights/components",
+ "location": "South Central US",
+ "tags": "",
+ "kind": "web",
+ "properties": {
+ "ApplicationId": "my-other-component",
+ "AppId": "887f4bfd-b5fd-40d7-9fc3-123456789abc",
+ "Application_Type": "web",
+ "Flow_Type": "Bluefield",
+ "Request_Source": "rest",
+ "InstrumentationKey": "bc095013-3cf2-45ac-ab47-123456789abc",
+ "CreationDate": "2017-01-24T01:05:38.5934061+00:00",
+ "TenantId": "f438d567-7177-4fe1-a5e3-123456789abc",
+ "HockeyAppId": "",
+ "HockeyAppToken": "",
+ "provisioningState": "Succeeded",
+ "SamplingPercentage": 30.0,
+ "WorkspaceResourceId": "/subscriptions/subid/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
+ "ConnectionString": "InstrumentationKey=bc095013-3cf2-45ac-ab47-123456789abc",
+ "DisableIpMasking": false,
+ "publicNetworkAccessForQuery": "Enabled",
+ "publicNetworkAccessForIngestion": "Enabled",
+ "IngestionMode": "LogAnalytics"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsListByResourceGroup.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsListByResourceGroup.json
new file mode 100644
index 000000000000..e7cfff55f02e
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsListByResourceGroup.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "api-version": "2020-02-02",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/components/my-component",
+ "name": "my-component",
+ "type": "Microsoft.Insights/components",
+ "location": "South Central US",
+ "tags": "",
+ "kind": "web",
+ "properties": {
+ "ApplicationId": "my-component",
+ "AppId": "16526d1a-dfba-4362-a9e9-123456789abc",
+ "Application_Type": "web",
+ "Flow_Type": "Bluefield",
+ "Request_Source": "rest",
+ "InstrumentationKey": "dc5931c7-a7ad-4ad0-89d6-123456789abc",
+ "CreationDate": "2017-02-14T12:24:05.0041213+00:00",
+ "TenantId": "f438d567-7177-4fe1-a5e3-123456789abc",
+ "HockeyAppId": "",
+ "HockeyAppToken": "",
+ "provisioningState": "Succeeded",
+ "SamplingPercentage": 100.0,
+ "WorkspaceResourceId": "/subscriptions/subid/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
+ "ConnectionString": "InstrumentationKey=dc5931c7-a7ad-4ad0-89d6-123456789abc",
+ "DisableIpMasking": false,
+ "publicNetworkAccessForQuery": "Enabled",
+ "publicNetworkAccessForIngestion": "Enabled",
+ "IngestionMode": "LogAnalytics"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/my-other-resource-group/providers/Microsoft.Insights/components/my-other-component",
+ "name": "my-other-component",
+ "type": "Microsoft.Insights/components",
+ "location": "South Central US",
+ "tags": "",
+ "kind": "web",
+ "properties": {
+ "ApplicationId": "my-other-component",
+ "AppId": "887f4bfd-b5fd-40d7-9fc3-123456789abc",
+ "Application_Type": "web",
+ "Flow_Type": "Bluefield",
+ "Request_Source": "rest",
+ "InstrumentationKey": "bc095013-3cf2-45ac-ab47-123456789abc",
+ "CreationDate": "2017-01-24T01:05:38.5934061+00:00",
+ "TenantId": "f438d567-7177-4fe1-a5e3-123456789abc",
+ "HockeyAppId": "",
+ "HockeyAppToken": "",
+ "provisioningState": "Succeeded",
+ "SamplingPercentage": 50.0,
+ "WorkspaceResourceId": "/subscriptions/subid/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
+ "ConnectionString": "InstrumentationKey=bc095013-3cf2-45ac-ab47-123456789abc",
+ "DisableIpMasking": false,
+ "publicNetworkAccessForQuery": "Enabled",
+ "publicNetworkAccessForIngestion": "Enabled",
+ "IngestionMode": "LogAnalytics"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsPurge.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsPurge.json
new file mode 100644
index 000000000000..8fa7612ae7f2
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsPurge.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "resourceGroupName": "OIAutoRest5123",
+ "resourceName": "aztest5048",
+ "api-version": "2020-02-02",
+ "subscriptionId": "00000000-0000-0000-0000-00000000000",
+ "body": {
+ "table": "Heartbeat",
+ "filters": [
+ {
+ "column": "TimeGenerated",
+ "operator": ">",
+ "value": "2017-09-01T00:00:00"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "x-ms-status-location": "https://management.azure.com/subscriptions/b96161de-b34a-480f-7343-59b099299283/resourceGroups/example/providers/microsoft.insights/components/test/operations/purge-970318e7-b859-4edb-8903-83b1b54d0b74?api-version=2015-05-01"
+ },
+ "body": {
+ "operationId": "7d7cf277-9113-4ab3-8359-d0364b74d01d"
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsPurgeStatus.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsPurgeStatus.json
new file mode 100644
index 000000000000..0f38ffa06709
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsPurgeStatus.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "resourceGroupName": "OIAutoRest5123",
+ "resourceName": "aztest5048",
+ "api-version": "2020-02-02",
+ "subscriptionId": "00000000-0000-0000-0000-00000000000",
+ "purgeId": "purge-970318e7-b859-4edb-8903-83b1b54d0b74"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "completed"
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsUpdate.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsUpdate.json
new file mode 100644
index 000000000000..5130daaccc3c
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsUpdate.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "api-version": "2020-02-02",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "my-component",
+ "InsightProperties": {
+ "location": "South Central US",
+ "kind": "web",
+ "tags": {
+ "ApplicationGatewayType": "Internal-Only",
+ "BillingEntity": "Self"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/components/my-component",
+ "name": "my-component",
+ "type": "Microsoft.Insights/components",
+ "location": "South Central US",
+ "tags": {
+ "ApplicationGatewayType": "Internal-Only",
+ "BillingEntity": "Self"
+ },
+ "kind": "web",
+ "properties": {
+ "ApplicationId": "my-component",
+ "AppId": "887f4bfd-b5fd-40d7-9fc3-123456789abc",
+ "Application_Type": "web",
+ "Flow_Type": "Bluefield",
+ "Request_Source": "rest",
+ "InstrumentationKey": "bc095013-3cf2-45ac-ab47-123456789abc",
+ "CreationDate": "2017-01-24T01:05:38.5934061+00:00",
+ "TenantId": "f438d567-7177-4fe1-a5e3-123456789abc",
+ "HockeyAppId": "",
+ "HockeyAppToken": "",
+ "provisioningState": "Succeeded",
+ "SamplingPercentage": 100.0,
+ "WorkspaceResourceId": "/subscriptions/subid/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
+ "ConnectionString": "InstrumentationKey=bc095013-3cf2-45ac-ab47-123456789abc",
+ "DisableIpMasking": false,
+ "publicNetworkAccessForQuery": "Enabled",
+ "publicNetworkAccessForIngestion": "Enabled",
+ "IngestionMode": "LogAnalytics"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsUpdateTagsOnly.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsUpdateTagsOnly.json
new file mode 100644
index 000000000000..a01dea72ce89
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-02-02/examples/ComponentsUpdateTagsOnly.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "api-version": "2020-02-02",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "my-component",
+ "ComponentTags": {
+ "tags": {
+ "ApplicationGatewayType": "Internal-Only",
+ "BillingEntity": "Self",
+ "Color": "AzureBlue",
+ "CustomField_01": "Custom text in some random field named randomly",
+ "NodeType": "Edge"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.Insights/components/my-component",
+ "name": "my-component",
+ "type": "Microsoft.Insights/components",
+ "location": "South Central US",
+ "tags": {
+ "ApplicationGatewayType": "Internal-Only",
+ "BillingEntity": "Self",
+ "Color": "AzureBlue",
+ "CustomField_01": "Custom text in some random field named randomly",
+ "NodeType": "Edge"
+ },
+ "kind": "web",
+ "properties": {
+ "ApplicationId": "my-component",
+ "AppId": "887f4bfd-b5fd-40d7-9fc3-123456789abc",
+ "Application_Type": "web",
+ "Flow_Type": "Bluefield",
+ "Request_Source": "rest",
+ "InstrumentationKey": "bc095013-3cf2-45ac-ab47-123456789abc",
+ "CreationDate": "2017-01-24T01:05:38.5934061+00:00",
+ "TenantId": "f438d567-7177-4fe1-a5e3-123456789abc",
+ "HockeyAppId": "",
+ "HockeyAppToken": "",
+ "provisioningState": "Succeeded",
+ "SamplingPercentage": 100.0,
+ "WorkspaceResourceId": "/subscriptions/subid/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
+ "ConnectionString": "InstrumentationKey=bc095013-3cf2-45ac-ab47-123456789abc",
+ "DisableIpMasking": false,
+ "publicNetworkAccessForQuery": "Enabled",
+ "publicNetworkAccessForIngestion": "Enabled",
+ "IngestionMode": "LogAnalytics"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/myworkbooks_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/myworkbooks_API.json
index 8e0eeb3f9050..32705a23b87b 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/myworkbooks_API.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/myworkbooks_API.json
@@ -322,7 +322,7 @@
"properties": {
"identity": {
"description": "Identity used for BYOS",
- "$ref": "#/definitions/ManagedIdentity"
+ "$ref": "#/definitions/MyWorkbookManagedIdentity"
},
"id": {
"type": "string",
@@ -512,11 +512,11 @@
}
}
},
- "ManagedIdentity": {
+ "MyWorkbookManagedIdentity": {
"description": "Customer Managed Identity",
"properties": {
"userAssignedIdentities": {
- "$ref": "#/definitions/UserAssignedIdentities"
+ "$ref": "#/definitions/MyWorkbookUserAssignedIdentities"
},
"type": {
"type": "string",
@@ -528,7 +528,7 @@
}
}
},
- "UserAssignedIdentities": {
+ "MyWorkbookUserAssignedIdentities": {
"description": "Customer Managed Identity",
"properties": {
"principalId": {
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/workbookOperations_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/workbookOperations_API.json
index 64553e8f509f..696bb3de114e 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/workbookOperations_API.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/workbookOperations_API.json
@@ -1,8 +1,8 @@
{
"swagger": "2.0",
"info": {
- "title": "WorkbookClient",
- "description": "Azure client for Workbook.",
+ "title": "ApplicationInsightsManagementClient",
+ "description": "Azure Application Insights client for web test based alerting.",
"version": "2020-10-20"
},
"host": "management.azure.com",
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/workbooks_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/workbooks_API.json
index 8535d2e992ce..990e8ddf964e 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/workbooks_API.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-10-20/workbooks_API.json
@@ -334,7 +334,7 @@
"properties": {
"identity": {
"description": "Identity used for BYOS",
- "$ref": "#/definitions/ManagedIdentity"
+ "$ref": "#/definitions/WorkbookManagedIdentity"
},
"id": {
"type": "string",
@@ -577,11 +577,11 @@
}
}
},
- "ManagedIdentity": {
+ "WorkbookManagedIdentity": {
"description": "Customer Managed Identity",
"properties": {
"userAssignedIdentities": {
- "$ref": "#/definitions/UserAssignedIdentities"
+ "$ref": "#/definitions/WorkbookUserAssignedIdentities"
},
"type": {
"type": "string",
@@ -593,7 +593,7 @@
}
}
},
- "UserAssignedIdentities": {
+ "WorkbookUserAssignedIdentities": {
"description": "Customer Managed Identity",
"properties": {
"principalId": {
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplateAdd.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplateAdd.json
new file mode 100644
index 000000000000..8663f997ee22
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplateAdd.json
@@ -0,0 +1,151 @@
+{
+ "parameters": {
+ "api-version": "2020-11-20",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "testtemplate2",
+ "subscriptionId": "subid",
+ "workbookTemplateProperties": {
+ "location": "west us",
+ "properties": {
+ "priority": 1,
+ "author": "Contoso",
+ "galleries": [
+ {
+ "name": "Simple Template",
+ "category": "Failures",
+ "type": "tsg",
+ "resourceType": "microsoft.insights/components",
+ "order": 100
+ }
+ ],
+ "templateData": {
+ "version": "Notebook/1.0",
+ "items": [
+ {
+ "type": 1,
+ "content": {
+ "json": "## New workbook\n---\n\nWelcome to your new workbook. This area will display text formatted as markdown.\n\n\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections."
+ },
+ "name": "text - 2"
+ },
+ {
+ "type": 3,
+ "content": {
+ "version": "KqlItem/1.0",
+ "query": "union withsource=TableName *\n| summarize Count=count() by TableName\n| render barchart",
+ "size": 1,
+ "exportToExcelOptions": "visible",
+ "queryType": 0,
+ "resourceType": "microsoft.operationalinsights/workspaces"
+ },
+ "name": "query - 2"
+ }
+ ],
+ "styleSettings": {},
+ "$schema": "https://github.com/Microsoft/Application-Insights-Workbooks/blob/master/schema/workbook.json"
+ }
+ },
+ "tags": null
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testtemplate2",
+ "location": "westeurope",
+ "tags": null,
+ "type": "microsoft.insights/workbooktemplates",
+ "id": "/subscriptions/50359d91-7b9d-4823-85af-eb298a61ba95/resourceGroups/testrg/providers/microsoft.insights/workbooktemplates/testtemplate2",
+ "properties": {
+ "priority": 1,
+ "author": "Contoso",
+ "templateData": {
+ "version": "Notebook/1.0",
+ "items": [
+ {
+ "type": 1,
+ "content": {
+ "json": "## New workbook\n---\n\nWelcome to your new workbook. This area will display text formatted as markdown.\n\n\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections."
+ },
+ "name": "text - 2"
+ },
+ {
+ "type": 3,
+ "content": {
+ "version": "KqlItem/1.0",
+ "query": "union withsource=TableName *\n| summarize Count=count() by TableName\n| render barchart",
+ "size": 1,
+ "exportToExcelOptions": "visible",
+ "queryType": 0,
+ "resourceType": "microsoft.operationalinsights/workspaces"
+ },
+ "name": "query - 2"
+ }
+ ],
+ "styleSettings": {},
+ "$schema": "https://github.com/Microsoft/Application-Insights-Workbooks/blob/master/schema/workbook.json"
+ },
+ "galleries": [
+ {
+ "name": "Simple Template",
+ "category": "Failures",
+ "order": 100,
+ "type": "tsg",
+ "resourceType": "microsoft.insights/components"
+ }
+ ],
+ "localized": null
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "name": "testtemplate2",
+ "location": "westeurope",
+ "tags": null,
+ "type": "microsoft.insights/workbooktemplates",
+ "id": "/subscriptions/50359d91-7b9d-4823-85af-eb298a61ba95/resourceGroups/testrg/providers/microsoft.insights/workbooktemplates/testtemplate2",
+ "properties": {
+ "priority": 1,
+ "author": "Contoso",
+ "templateData": {
+ "version": "Notebook/1.0",
+ "items": [
+ {
+ "type": 1,
+ "content": {
+ "json": "## New workbook\n---\n\nWelcome to your new workbook. This area will display text formatted as markdown.\n\n\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections."
+ },
+ "name": "text - 2"
+ },
+ {
+ "type": 3,
+ "content": {
+ "version": "KqlItem/1.0",
+ "query": "union withsource=TableName *\n| summarize Count=count() by TableName\n| render barchart",
+ "size": 1,
+ "exportToExcelOptions": "visible",
+ "queryType": 0,
+ "resourceType": "microsoft.operationalinsights/workspaces"
+ },
+ "name": "query - 2"
+ }
+ ],
+ "styleSettings": {},
+ "$schema": "https://github.com/Microsoft/Application-Insights-Workbooks/blob/master/schema/workbook.json"
+ },
+ "galleries": [
+ {
+ "name": "Simple Template",
+ "category": "Failures",
+ "order": 100,
+ "type": "tsg",
+ "resourceType": "microsoft.insights/components"
+ }
+ ],
+ "localized": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplateDelete.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplateDelete.json
new file mode 100644
index 000000000000..64d42232a606
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplateDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-11-20",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "my-template-resource"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplateGet.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplateGet.json
new file mode 100644
index 000000000000..a7d732cd4e0c
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplateGet.json
@@ -0,0 +1,58 @@
+{
+ "parameters": {
+ "api-version": "2020-11-20",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "my-resource-name"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "my-resource-name",
+ "type": "microsoft.insights/workbooktemplate",
+ "location": "westus",
+ "id": "/subscriptions/6b643656-33eb-422f-aee8-3ac145d124af/resourceGroups/my-resource-group/providers/microsoft.insights/workbooktemplates/my-resource-name",
+ "properties": {
+ "priority": 1,
+ "author": "Contoso",
+ "galleries": [
+ {
+ "name": "Simple Template",
+ "category": "Failures",
+ "type": "tsg",
+ "resourceType": "microsoft.insights/components",
+ "order": 100
+ }
+ ],
+ "templateData": {
+ "version": "Notebook/1.0",
+ "items": [
+ {
+ "type": 1,
+ "content": {
+ "json": "## New workbook\n---\n\nWelcome to your new workbook. This area will display text formatted as markdown.\n\n\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections."
+ },
+ "name": "text - 2"
+ },
+ {
+ "type": 3,
+ "content": {
+ "version": "KqlItem/1.0",
+ "query": "union withsource=TableName *\n| summarize Count=count() by TableName\n| render barchart",
+ "size": 1,
+ "exportToExcelOptions": "visible",
+ "queryType": 0,
+ "resourceType": "microsoft.operationalinsights/workspaces"
+ },
+ "name": "query - 2"
+ }
+ ],
+ "styleSettings": {},
+ "$schema": "https://github.com/Microsoft/Application-Insights-Workbooks/blob/master/schema/workbook.json"
+ }
+ },
+ "tags": null
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplateUpdate.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplateUpdate.json
new file mode 100644
index 000000000000..4ed5d1eb0513
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplateUpdate.json
@@ -0,0 +1,104 @@
+{
+ "parameters": {
+ "api-version": "2020-11-20",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "my-template-resource",
+ "workbookTemplateProperties": {
+ "name": "display-name-of-template",
+ "location": "west us",
+ "type": "microsoft.insights/workbooktemplates",
+ "properties": {
+ "priority": 1,
+ "author": "Contoso",
+ "galleries": [
+ {
+ "name": "Simple Template",
+ "category": "Failures",
+ "type": "tsg",
+ "resourceType": "microsoft.insights/components",
+ "order": 100
+ }
+ ],
+ "templateData": {
+ "version": "Notebook/1.0",
+ "items": [
+ {
+ "type": 1,
+ "content": {
+ "json": "## New workbook\n---\n\nWelcome to your new workbook. This area will display text formatted as markdown.\n\n\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections."
+ },
+ "name": "text - 2"
+ },
+ {
+ "type": 3,
+ "content": {
+ "version": "KqlItem/1.0",
+ "query": "union withsource=TableName *\n| summarize Count=count() by TableName\n| render barchart",
+ "size": 1,
+ "exportToExcelOptions": "visible",
+ "queryType": 0,
+ "resourceType": "microsoft.operationalinsights/workspaces"
+ },
+ "name": "query - 2"
+ }
+ ],
+ "styleSettings": {},
+ "$schema": "https://github.com/Microsoft/Application-Insights-Workbooks/blob/master/schema/workbook.json"
+ }
+ },
+ "tags": null
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "testtemplate2",
+ "location": "westeurope",
+ "tags": null,
+ "type": "microsoft.insights/workbooktemplates",
+ "id": "/subscriptions/50359d91-7b9d-4823-85af-eb298a61ba95/resourceGroups/testrg/providers/microsoft.insights/workbooktemplates/testtemplate2",
+ "properties": {
+ "priority": 1,
+ "author": "Contoso",
+ "templateData": {
+ "version": "Notebook/1.0",
+ "items": [
+ {
+ "type": 1,
+ "content": {
+ "json": "## New workbook\n---\n\nWelcome to your new workbook. This area will display text formatted as markdown.\n\n\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections."
+ },
+ "name": "text - 2"
+ },
+ {
+ "type": 3,
+ "content": {
+ "version": "KqlItem/1.0",
+ "query": "union withsource=TableName *\n| summarize Count=count() by TableName\n| render barchart",
+ "size": 1,
+ "exportToExcelOptions": "visible",
+ "queryType": 0,
+ "resourceType": "microsoft.operationalinsights/workspaces"
+ },
+ "name": "query - 2"
+ }
+ ],
+ "styleSettings": {},
+ "$schema": "https://github.com/Microsoft/Application-Insights-Workbooks/blob/master/schema/workbook.json"
+ },
+ "galleries": [
+ {
+ "name": "Simple Template",
+ "category": "Failures",
+ "order": 100,
+ "type": "tsg",
+ "resourceType": "microsoft.insights/components"
+ }
+ ],
+ "localized": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplatesList.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplatesList.json
new file mode 100644
index 000000000000..3153adea2d45
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/examples/WorkbookTemplatesList.json
@@ -0,0 +1,105 @@
+{
+ "parameters": {
+ "api-version": "2020-11-20",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "name": "my-resource-name",
+ "type": "microsoft.insights/workbooktemplate",
+ "location": "westus",
+ "id": "/subscriptions/6b643656-33eb-422f-aee8-3ac145d124af/resourceGroups/my-resource-group/providers/microsoft.insights/workbooktemplates/my-resource-name",
+ "properties": {
+ "priority": 1,
+ "author": "Contoso",
+ "galleries": [
+ {
+ "name": "Simple Template",
+ "category": "Failures",
+ "type": "tsg",
+ "resourceType": "microsoft.insights/components",
+ "order": 100
+ }
+ ],
+ "templateData": {
+ "version": "Notebook/1.0",
+ "items": [
+ {
+ "type": 1,
+ "content": {
+ "json": "## New workbook\n---\n\nWelcome to your new workbook. This area will display text formatted as markdown.\n\n\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections."
+ },
+ "name": "text - 2"
+ },
+ {
+ "type": 3,
+ "content": {
+ "version": "KqlItem/1.0",
+ "query": "union withsource=TableName *\n| summarize Count=count() by TableName\n| render barchart",
+ "size": 1,
+ "exportToExcelOptions": "visible",
+ "queryType": 0,
+ "resourceType": "microsoft.operationalinsights/workspaces"
+ },
+ "name": "query - 2"
+ }
+ ],
+ "styleSettings": {},
+ "$schema": "https://github.com/Microsoft/Application-Insights-Workbooks/blob/master/schema/workbook.json"
+ }
+ },
+ "tags": null
+ },
+ {
+ "name": "my-resource-name2",
+ "type": "microsoft.insights/workbooktemplate",
+ "location": "westus",
+ "id": "/subscriptions/6b643656-33eb-422f-aee8-3ac145d124af/resourceGroups/my-resource-group/providers/microsoft.insights/workbooktemplates/my-resource-name2",
+ "properties": {
+ "priority": 1,
+ "author": "Contoso",
+ "galleries": [
+ {
+ "name": "Simple Template 2",
+ "category": "Failures",
+ "type": "tsg",
+ "resourceType": "microsoft.insights/components",
+ "order": 100
+ }
+ ],
+ "templateData": {
+ "version": "Notebook/1.0",
+ "items": [
+ {
+ "type": 1,
+ "content": {
+ "json": "## New workbook\n---\n\nWelcome to your new workbook. This area will display text formatted as markdown.\n\n\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections."
+ },
+ "name": "text - 2"
+ },
+ {
+ "type": 3,
+ "content": {
+ "version": "KqlItem/1.0",
+ "query": "union withsource=TableName *\n| summarize Count=count() by TableName\n| render barchart",
+ "size": 1,
+ "exportToExcelOptions": "visible",
+ "queryType": 0,
+ "resourceType": "microsoft.operationalinsights/workspaces"
+ },
+ "name": "query - 2"
+ }
+ ],
+ "styleSettings": {},
+ "$schema": "https://github.com/Microsoft/Application-Insights-Workbooks/blob/master/schema/workbook.json"
+ }
+ },
+ "tags": null
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/workbookTemplates_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/workbookTemplates_API.json
new file mode 100644
index 000000000000..67f063f7dd1b
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2020-11-20/workbookTemplates_API.json
@@ -0,0 +1,473 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApplicationInsightsManagementClient",
+ "description": "Azure Application Insights workbook template type.",
+ "version": "2020-11-20"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/workbooktemplates": {
+ "get": {
+ "description": "Get all Workbook templates defined within a specified resource group.",
+ "operationId": "WorkbookTemplates_ListByResourceGroup",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A list containing 0 or more workbook template definitions.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookTemplatesListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookTemplateError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "WorkbookTemplatesList": {
+ "$ref": "./examples/WorkbookTemplatesList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/workbooktemplates/{resourceName}": {
+ "get": {
+ "description": "Get a single workbook template by its resourceName.",
+ "operationId": "WorkbookTemplates_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookTemplateResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A workbook template definition.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookTemplate"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookTemplateError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookTemplateGet": {
+ "$ref": "./examples/WorkbookTemplateGet.json"
+ }
+ }
+ },
+ "delete": {
+ "description": "Delete a workbook template.",
+ "operationId": "WorkbookTemplates_Delete",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookTemplateResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The workbook template has been successfully deleted."
+ },
+ "204": {
+ "description": "The resource doesn't exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookTemplateError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookTemplateDelete": {
+ "$ref": "./examples/WorkbookTemplateDelete.json"
+ }
+ }
+ },
+ "put": {
+ "description": "Create a new workbook template.",
+ "operationId": "WorkbookTemplates_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookTemplateResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "workbookTemplateProperties",
+ "description": "Properties that need to be specified to create a new workbook.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkbookTemplate"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The newly created workbook template.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookTemplate"
+ }
+ },
+ "201": {
+ "description": "The newly created workbook template.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookTemplate"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookTemplateError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookTemplateAdd": {
+ "$ref": "./examples/WorkbookTemplateAdd.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Updates a workbook template that has already been added.",
+ "operationId": "WorkbookTemplates_Update",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookTemplateResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "WorkbookTemplateUpdateParameters",
+ "description": "Properties that need to be specified to patch a workbook template.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/WorkbookTemplateUpdateParameters"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The workbook template definition updated.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookTemplate"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookTemplateError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookTemplateUpdate": {
+ "$ref": "./examples/WorkbookTemplateUpdate.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "WorkbookTemplateResource": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource name."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource type"
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "required": [
+ "location"
+ ],
+ "x-ms-azure-resource": true,
+ "description": "An azure resource object"
+ },
+ "WorkbookTemplatesListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/WorkbookTemplate"
+ },
+ "description": "An array of workbook templates."
+ }
+ },
+ "description": "WorkbookTemplate list result."
+ },
+ "WorkbookTemplate": {
+ "description": "An Application Insights workbook template definition.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/WorkbookTemplateResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Metadata describing a workbook template for an Azure resource.",
+ "$ref": "#/definitions/WorkbookTemplateProperties"
+ }
+ }
+ },
+ "WorkbookTemplateProperties": {
+ "description": "Properties that contain a workbook template.",
+ "required": [
+ "templateData",
+ "galleries"
+ ],
+ "properties": {
+ "priority": {
+ "type": "integer",
+ "description": "Priority of the template. Determines which template to open when a workbook gallery is opened in viewer mode.",
+ "format": "int32"
+ },
+ "author": {
+ "type": "string",
+ "description": "Information about the author of the workbook template."
+ },
+ "templateData": {
+ "type": "object",
+ "description": "Valid JSON object containing workbook template payload."
+ },
+ "galleries": {
+ "type": "array",
+ "description": "Workbook galleries supported by the template.",
+ "items": {
+ "$ref": "#/definitions/WorkbookTemplateGallery"
+ }
+ },
+ "localized": {
+ "type": "object",
+ "description": "Key value pair of localized gallery. Each key is the locale code of languages supported by the Azure portal.",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/WorkbookTemplateLocalizedGallery"
+ }
+ }
+ }
+ }
+ },
+ "WorkbookTemplateGallery": {
+ "description": "Gallery information for a workbook template.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the workbook template in the gallery."
+ },
+ "category": {
+ "type": "string",
+ "description": "Category for the gallery."
+ },
+ "type": {
+ "type": "string",
+ "description": "Type of workbook supported by the workbook template."
+ },
+ "order": {
+ "type": "integer",
+ "description": "Order of the template within the gallery.",
+ "format": "int32"
+ },
+ "resourceType": {
+ "type": "string",
+ "description": "Azure resource type supported by the gallery."
+ }
+ }
+ },
+ "WorkbookTemplateLocalizedGallery": {
+ "description": "Localized template data and gallery information.",
+ "properties": {
+ "templateData": {
+ "type": "object",
+ "description": "Valid JSON object containing workbook template payload."
+ },
+ "galleries": {
+ "type": "array",
+ "description": "Workbook galleries supported by the template.",
+ "items": {
+ "$ref": "#/definitions/WorkbookTemplateGallery"
+ }
+ }
+ }
+ },
+ "WorkbookTemplateUpdateParameters": {
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Metadata describing a workbook for an Azure resource.",
+ "$ref": "#/definitions/WorkbookTemplateProperties"
+ }
+ },
+ "description": "The parameters that can be provided when updating workbook template."
+ },
+ "WorkbookTemplateErrorFieldContract": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Property level error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Human-readable representation of property-level error."
+ },
+ "target": {
+ "type": "string",
+ "description": "Property name."
+ }
+ },
+ "description": "Error Field contract."
+ },
+ "WorkbookTemplateError": {
+ "description": "Error message that will indicate why the operation failed.",
+ "properties": {
+ "error": {
+ "description": "Error message object that will indicate why the operation failed.",
+ "$ref": "#/definitions/WorkbookTemplateErrorBody"
+ }
+ }
+ },
+ "WorkbookTemplateErrorBody": {
+ "description": "Error message body that will indicate why the operation failed.",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response."
+ },
+ "message": {
+ "type": "string",
+ "description": "Human-readable representation of the error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/WorkbookTemplateErrorFieldContract"
+ },
+ "description": "The list of invalid fields send in request, in case of validation error."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "WorkbookTemplateResourceNameParameter": {
+ "name": "resourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Application Insights component resource.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbookAdd.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbookAdd.json
new file mode 100644
index 000000000000..39ef41be4f49
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbookAdd.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "subscriptionId": "00000000-0000-0000-0000-00000000",
+ "workbookProperties": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "location": "west us",
+ "kind": "user",
+ "properties": {
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "displayName": "Blah Blah Blah",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "category": "workbook"
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/my-resource-group/providers/Microsoft.Insights/myworkbooks/deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "type": "Microsoft.Insights/myworkbooks",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "user",
+ "properties": {
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "displayName": "Blah Blah Blah",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "storageUri": null
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/my-resource-group/providers/Microsoft.Insights/myworkbooks/deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "user",
+ "properties": {
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "displayName": "Blah Blah Blah",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "storageUri": null
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbookDelete.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbookDelete.json
new file mode 100644
index 000000000000..6fe14177a4c3
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbookDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbookGet.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbookGet.json
new file mode 100644
index 000000000000..6385bf46b2b9
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbookGet.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/6b643656-33eb-422f-aee8-3ac145d124af/resourceGroups/my-resource-group/providers/Microsoft.Insights/myworkbooks/deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "type": "Microsoft.Insights/myworkbooks",
+ "location": "westus",
+ "kind": "user",
+ "properties": {
+ "displayName": "My New Workbook",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbookUpdate.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbookUpdate.json
new file mode 100644
index 000000000000..06990a02a99e
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbookUpdate.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2",
+ "workbookProperties": {
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "location": "west us",
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ],
+ "kind": "user",
+ "properties": {
+ "displayName": "Blah Blah Blah",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "category": "workbook",
+ "storageUri": null
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "Microsoft.Insights/myworkbooks",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ],
+ "kind": "user",
+ "properties": {
+ "displayName": "Blah Blah Blah",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "category": "workbook",
+ "storageUri": null
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbooksList.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbooksList.json
new file mode 100644
index 000000000000..71cc5ed69865
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbooksList.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "category": "workbook"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "/subscriptions/6b643656-33eb-422f-aee8-3ac145d124af/resourceGroups/my-resource-group/providers/Microsoft.Insights/myworkbooks/c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "Microsoft.Insights/myworkbooks",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "tags": [],
+ "kind": "user",
+ "properties": {
+ "displayName": "My Workbook 1",
+ "userId": "userId",
+ "serializedData": "{\"verion\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null
+ }
+ },
+ {
+ "id": "/subscriptions/6b643656-33eb-422f-aee8-3ac145d124af/resourceGroups/my-resource-group/providers/Microsoft.Insights/myworkbooks/c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "Microsoft.Insights/myworkbooks",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "user",
+ "tags": [
+ "SampleTag01",
+ "SampleTag2"
+ ],
+ "properties": {
+ "displayName": "My Workbook 2",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbooksList2.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbooksList2.json
new file mode 100644
index 000000000000..4c664375c951
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/MyWorkbooksList2.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "category": "workbook"
+ },
+ "responses": {
+ "200": {
+ "body": [],
+ "nextLink": null
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookAdd.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookAdd.json
new file mode 100644
index 000000000000..daed083d4b6c
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookAdd.json
@@ -0,0 +1,75 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "subscriptionId": "subid",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup",
+ "workbookProperties": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "location": "west us",
+ "name": "Blah Blah Blah",
+ "kind": "shared",
+ "properties": {
+ "displayName": "tttt",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "category": "workbook",
+ "description": "Sample workbook"
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "shared",
+ "properties": {
+ "displayName": "Blah Blah Blah",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null,
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1bb"
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ },
+ "201": {
+ "body": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "shared",
+ "properties": {
+ "displayName": "Blah Blah Blah",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null,
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1bb"
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookDelete.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookDelete.json
new file mode 100644
index 000000000000..6fe14177a4c3
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookGet.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookGet.json
new file mode 100644
index 000000000000..cfd0adde20c0
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookGet.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "type": "",
+ "location": "westus",
+ "kind": "shared",
+ "properties": {
+ "displayName": "My New Workbook",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null,
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1bb"
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookGet1.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookGet1.json
new file mode 100644
index 000000000000..ecb41edfce50
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookGet1.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "type": "",
+ "location": "westus",
+ "kind": "shared",
+ "properties": {
+ "displayName": "My New Workbook",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookManagedAdd.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookManagedAdd.json
new file mode 100644
index 000000000000..c503061bcbe9
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookManagedAdd.json
@@ -0,0 +1,106 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "resourceGroupName": "my-resource-group",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup",
+ "workbookProperties": {
+ "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup/providers/Microsoft.Insights/workbooks/e378d137-1243-4256-b5c4-ad2a937cae79",
+ "name": "e378d137-1243-4256-b5c4-ad2a937cae79",
+ "location": "westus",
+ "tags": {
+ "hidden-title": "tttt"
+ },
+ "kind": "shared",
+ "etag": "\"4a00f78d-0000-0700-0000-5f8f616c1000\"",
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {}
+ }
+ },
+ "properties": {
+ "displayName": "tttt",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":{\"json\":\"test\"},\"name\":\"text - 0\"}],\"isLocked\":false,\"fallbackResourceIds\":[\"/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup\"]}",
+ "version": "Notebook/1.0",
+ "category": "workbook",
+ "tags": [],
+ "description": "Sample workbook",
+ "storageUri": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Storage/storageAccounts/testStorage/blobServices/default/containers/testContainer"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {
+ "clientId": "fbe75b66-01c5-4f87-a220-233af3270432",
+ "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9x19"
+ }
+ }
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup/providers/Microsoft.Insights/workbooks/72377f0c-b7e7-4044-a882-471bcbd9696e",
+ "name": "e378d137-1243-4256-b5c4-ad2a937cae79",
+ "type": "Microsoft.Insights/workbooks",
+ "location": "westus",
+ "tags": {
+ "hidden-title": "tttt"
+ },
+ "kind": "user",
+ "etag": "\"4a00f85e-0000-0700-0000-5f8f5dfa0000\"",
+ "properties": {
+ "displayName": "tttt",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[],\"isLocked\":false,\"fallbackResourceIds\":[\"/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.OperationalInsights/workspaces/test-ws\"]}",
+ "version": "Notebook/1.0",
+ "category": "workbook",
+ "userId": "70d90f65-8a70-4e42-b8d5-86gv25e0a90f",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup",
+ "timeModified": "2020-10-20T22:00:26.4229554Z",
+ "tags": [],
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1bb",
+ "storageUri": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Storage/storageAccounts/testStorage/blobServices/default/containers/testContainer"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {
+ "clientId": "fbe75b66-01c5-4f87-a220-233af3270432",
+ "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9x19"
+ }
+ }
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup/providers/Microsoft.Insights/workbooks/72377f0c-b7e7-4044-a882-471bcbd9696e",
+ "name": "e378d137-1243-4256-b5c4-ad2a937cae79",
+ "type": "Microsoft.Insights/workbooks",
+ "location": "westus",
+ "tags": {
+ "hidden-title": "tttt"
+ },
+ "kind": "user",
+ "etag": "\"4a00f85e-0000-0700-0000-5f8f5dfa0000\"",
+ "properties": {
+ "displayName": "tttt",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[],\"isLocked\":false,\"fallbackResourceIds\":[\"/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.OperationalInsights/workspaces/test-ws\"]}",
+ "version": "Notebook/1.0",
+ "category": "workbook",
+ "userId": "70d90f65-8a70-4e42-b8d5-86gv25e0a90f",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup",
+ "timeModified": "2020-10-20T22:00:26.4229554Z",
+ "tags": [],
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1bb",
+ "storageUri": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Storage/storageAccounts/testStorage/blobServices/default/containers/testContainer"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookManagedGet.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookManagedGet.json
new file mode 100644
index 000000000000..7b451edb229a
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookManagedGet.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "8980832b-9589-4ac2-b322-a6ae6a97f02b",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {
+ "clientId": "fbe75b66-01c5-4f87-a220-233af3270432",
+ "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9x19"
+ },
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2": {
+ "clientId": "47429305-c0d3-40bc-8595-6194sdfdf3dc",
+ "principalId": "bf9ebbc8-b92d-4752-8e66-c999d560326e0"
+ }
+ }
+ },
+ "id": "/subscriptions/8980832b-9589-4ac2-b322-a6ae6a97f02b/resourcegroups/vutest1/providers/Microsoft.Insights/workbooks/76cb9d13-93c0-4939-ab7d-4a7bd959e1ad",
+ "name": "76cb9d13-93c0-4939-ab7d-4a7bd959e1ad",
+ "type": "Microsoft.Insights/workbooks",
+ "location": "westcentralus",
+ "tags": {
+ "hidden-title": "azuremon"
+ },
+ "kind": "shared",
+ "etag": "\"0c003cb4-0000-0600-0000-5f5203c60000\"",
+ "properties": {
+ "displayName": "azuremon",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":{\"json\":\"testing1\"},\"showPin\":false,\"name\":\"text - 0\"}],\"isLocked\":true,\"fallbackResourceIds\":[\"Azure Monitor\"]}",
+ "version": "Notebook/1.0",
+ "category": "workbook",
+ "userId": "51d1409c-d725-4550-ac03-98c0bef9ef07",
+ "sourceId": "azure monitor",
+ "timeModified": "2020-09-04T09:07:17.735638Z",
+ "tags": [],
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1bb",
+ "storageUri": "/subscriptions/8980832b-9589-4ac2-b322-a6ae6a97f02b/resourceGroups/VuTest1/providers/Microsoft.Storage/storageAccounts/vutest1/blobServices/default/containers/testcmk2"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookManagedUpdate.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookManagedUpdate.json
new file mode 100644
index 000000000000..70a82b300308
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookManagedUpdate.json
@@ -0,0 +1,74 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyGroup",
+ "id": "e378d137-1243-4256-b5c4-562a937cae79",
+ "name": "e378d137-1243-4256-b5c4-562a937cae79",
+ "location": "westus",
+ "tags": null,
+ "type": "Microsoft.Insights/workbooks",
+ "kind": "shared",
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {},
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2": {}
+ }
+ },
+ "properties": {
+ "displayName": "tttt",
+ "version": "Notebook/1.0",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":{\"json\":\"test\"},\"name\":\"text - 0\"}],\"isLocked\":false,\"fallbackResourceIds\":[\"/subscriptions/8980832b-9589-4ac2-b322-a6ae6a97f02b/resourceGroups/MyGroup\"]}",
+ "category": "workbook",
+ "isPersisted": true,
+ "timeModified": "2020-10-20T22:00:26.4229554Z",
+ "tags": [],
+ "description": "Sample workbook",
+ "storageUri": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Storage/storageAccounts/testStorage/blobServices/default/containers/testContainer"
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {
+ "clientId": "fbe75b66-01c5-4f87-a220-233af3270432",
+ "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9x19"
+ },
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2": {
+ "clientId": "47429305-c0d3-40bc-8595-6194sdfdf3dc",
+ "principalId": "bf9ebbc8-b92d-4752-8e66-c999d560326e0"
+ }
+ }
+ },
+ "id": "/subscriptions/8980832b-9589-4ac2-b322-a6ae6a97f02b/resourcegroups/MyGroup/providers/Microsoft.Insights/workbooks/e378d137-1243-4256-b5c4-562a937cae79",
+ "name": "e378d137-1243-4256-b5c4-562a937cae79",
+ "type": "Microsoft.Insights/workbooks",
+ "location": "westus",
+ "tags": {
+ "hidden-title": "tttt"
+ },
+ "kind": "shared",
+ "etag": "\"4a00f78d-0000-0700-0000-5f8f616c0000\"",
+ "properties": {
+ "displayName": "tttt",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":{\"json\":\"test\"},\"name\":\"text - 0\"}],\"isLocked\":false,\"fallbackResourceIds\":[\"/subscriptions/8980832b-9589-4ac2-b322-a6ae6a97f02b/resourceGroups/MyGroup\"]}",
+ "version": "Notebook/1.0",
+ "category": "workbook",
+ "userId": "70d90f65-8a70-4e42-b8d5-863725e0a90f",
+ "sourceId": "/subscriptions/8980832b-9589-4ac2-b322-a6ae6a97f02b/resourcegroups/MyGroup",
+ "timeModified": "2020-10-20T22:15:08.1875458Z",
+ "tags": [],
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1bb",
+ "storageUri": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Storage/storageAccounts/testStorage/blobServices/default/containers/testContainer"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookRevisionGet.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookRevisionGet.json
new file mode 100644
index 000000000000..63a551267bc0
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookRevisionGet.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2",
+ "revisionId": "1e2f8435b98248febee70c64ac22e1ab"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "type": "",
+ "location": "westus",
+ "kind": "shared",
+ "properties": {
+ "displayName": "My New Workbook",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null,
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1ab"
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookRevisionsList.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookRevisionsList.json
new file mode 100644
index 000000000000..7f2b5b6311e3
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookRevisionsList.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "tags": [],
+ "properties": {
+ "name": "My Workbook 1",
+ "userId": "userId",
+ "sourceId": "Azure Monitor",
+ "serializedData": null,
+ "version": "ME",
+ "workbookId": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "shared",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null,
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1ab"
+ }
+ },
+ {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "tags": [
+ "SampleTag01",
+ "SampleTag2"
+ ],
+ "properties": {
+ "name": "My Workbook 2",
+ "userId": "userId",
+ "sourceId": "Azure Monitor",
+ "serializedData": null,
+ "version": "ME",
+ "workbookId": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "shared",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null,
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1bb"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookUpdate.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookUpdate.json
new file mode 100644
index 000000000000..3346fb2e2120
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbookUpdate.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2",
+ "sourceId": "/subscriptions/ad2f1a83-caac-4e21-9d2a-9ca3f87105e2/resourceGroups/Default-Web-WestUS/providers/Microsoft.Web/sites/MyTestApp-CodeLens1",
+ "workbookProperties": {
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "location": "west us",
+ "kind": "shared",
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ],
+ "properties": {
+ "name": "Blah Blah Blah",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "workbookId": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "category": "workbook",
+ "timeModified": null,
+ "description": "Sample workbook"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "shared",
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ],
+ "properties": {
+ "displayName": "Blah Blah Blah",
+ "userId": "userId",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null,
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1bb"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbooksList.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbooksList.json
new file mode 100644
index 000000000000..88c54c67fe23
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbooksList.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "category": "workbook",
+ "sourceId": "/subscriptions/ad2f1a83-caac-4e21-9d2a-9ca3f87105e2/resourceGroups/Default-Web-WestUS/providers/Microsoft.Web/sites/MyTestApp-CodeLens1"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "tags": [],
+ "properties": {
+ "name": "My Workbook 1",
+ "userId": "userId",
+ "sourceId": "Azure Monitor",
+ "serializedData": "{\"verion\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "workbookId": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "shared",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null,
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1bb"
+ }
+ },
+ {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "tags": [
+ "SampleTag01",
+ "SampleTag2"
+ ],
+ "properties": {
+ "name": "My Workbook 2",
+ "userId": "userId",
+ "sourceId": "Azure Monitor",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "workbookId": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "kind": "shared",
+ "category": "workbook",
+ "timeModified": null,
+ "storageUri": null,
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1bb"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbooksList2.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbooksList2.json
new file mode 100644
index 000000000000..4c664375c951
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbooksList2.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac145d124af",
+ "resourceGroupName": "my-resource-group",
+ "category": "workbook"
+ },
+ "responses": {
+ "200": {
+ "body": [],
+ "nextLink": null
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbooksManagedList.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbooksManagedList.json
new file mode 100644
index 000000000000..f21b223e3125
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/examples/WorkbooksManagedList.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "api-version": "2021-03-08",
+ "subscriptionId": "6b643656-33eb-422f-aee8-3ac119r124af",
+ "resourceGroupName": "my-resource-group",
+ "category": "workbook",
+ "sourceId": "/subscriptions/ad2f1a83-caac-4e21-9d2a-9ca3f87105e2/resourceGroups/Default-Web-WestUS/providers/Microsoft.Web/sites/MyTestApp-CodeLens1"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {
+ "clientId": "fbe75b66-01c5-4f87-a220-233af3270433",
+ "principalId": "075a0ca6-4326-4434-9abf-c9b1b79f9x19"
+ }
+ }
+ },
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1cdd5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4ddq-a059-9be8dac93960",
+ "tags": [],
+ "properties": {
+ "name": "My Workbook 1",
+ "userId": "userId",
+ "sourceId": "Azure Monitor",
+ "serializedData": "{\"verion\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "workbookId": "deadb33f-8bee-4ddq-a059-9be8dac93960",
+ "kind": "shared",
+ "category": "workbook",
+ "timeModified": null,
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1bb",
+ "storageUri": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Storage/storageAccounts/testStorage/blobServices/default/containers/testContainer"
+ }
+ },
+ {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1cdd5722",
+ "type": "",
+ "location": "westus",
+ "name": "deadb33f-8bee-4ddq-a059-9be8dac93960",
+ "tags": [
+ "SampleTag01",
+ "SampleTag2"
+ ],
+ "properties": {
+ "name": "My Workbook 2",
+ "userId": "userId",
+ "sourceId": "Azure Monitor",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "workbookId": "deadb33f-8bee-4ddq-a059-9be8dac93960",
+ "kind": "shared",
+ "category": "workbook",
+ "timeModified": null,
+ "description": "Sample workbook",
+ "revision": "1e2f8435b98248febee70c64ac22e1bb",
+ "storageUri": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Storage/storageAccounts/testStorage/blobServices/default/containers/testContainer"
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/myworkbooks_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/myworkbooks_API.json
new file mode 100644
index 000000000000..6d2b747a1a88
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/myworkbooks_API.json
@@ -0,0 +1,607 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApplicationInsightsManagementClient",
+ "description": "Azure Application Insights private workbook type.",
+ "version": "2021-03-08"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/myWorkbooks": {
+ "get": {
+ "description": "Get all private workbooks defined within a specified resource group and category.",
+ "operationId": "MyWorkbooks_ListByResourceGroup",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CategoryParameter"
+ },
+ {
+ "$ref": "#/parameters/TagsParameter"
+ },
+ {
+ "$ref": "#/parameters/SourceIdParameter"
+ },
+ {
+ "$ref": "#/parameters/CanFetchWorkbookContentParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A list containing 0 or more private workbook definitions.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbooksListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "WorkbooksList": {
+ "$ref": "./examples/MyWorkbooksList.json"
+ },
+ "WorkbooksList2": {
+ "$ref": "./examples/MyWorkbooksList2.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Insights/myWorkbooks": {
+ "get": {
+ "description": "Get all private workbooks defined within a specified subscription and category.",
+ "operationId": "MyWorkbooks_ListBySubscription",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/CategoryParameter"
+ },
+ {
+ "$ref": "#/parameters/TagsParameter"
+ },
+ {
+ "$ref": "#/parameters/CanFetchWorkbookContentParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A list containing 0 or more private workbook definitions.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbooksListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "WorkbooksList": {
+ "$ref": "./examples/MyWorkbooksList.json"
+ },
+ "WorkbooksList2": {
+ "$ref": "./examples/MyWorkbooksList2.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/myWorkbooks/{resourceName}": {
+ "get": {
+ "description": "Get a single private workbook by its resourceName.",
+ "operationId": "MyWorkbooks_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A private workbook definition.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookGet": {
+ "$ref": "./examples/MyWorkbookGet.json"
+ }
+ }
+ },
+ "delete": {
+ "description": "Delete a private workbook.",
+ "operationId": "MyWorkbooks_Delete",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The private workbook has been successfully deleted."
+ },
+ "204": {
+ "description": "The resource doesn't exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookDelete": {
+ "$ref": "./examples/MyWorkbookDelete.json"
+ }
+ }
+ },
+ "put": {
+ "description": "Create a new private workbook.",
+ "operationId": "MyWorkbooks_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SourceIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "workbookProperties",
+ "description": "Properties that need to be specified to create a new private workbook.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The newly created private workbook.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ },
+ "201": {
+ "description": "The newly created private workbook.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookAdd": {
+ "$ref": "./examples/MyWorkbookAdd.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Updates a private workbook that has already been added.",
+ "operationId": "MyWorkbooks_Update",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SourceIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "workbookProperties",
+ "description": "Properties that need to be specified to create a new private workbook.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The private workbook definition updated.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookUpdate": {
+ "$ref": "./examples/MyWorkbookUpdate.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "MyWorkbookResource": {
+ "properties": {
+ "identity": {
+ "description": "Identity used for BYOS",
+ "$ref": "#/definitions/MyWorkbookManagedIdentity"
+ },
+ "id": {
+ "type": "string",
+ "description": "Azure resource Id",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "name": {
+ "type": "string",
+ "description": "Azure resource name",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "type": {
+ "type": "string",
+ "description": "Azure resource type",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ },
+ "etag": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource etag"
+ }
+ },
+ "x-ms-azure-resource": true,
+ "description": "An azure resource object"
+ },
+ "MyWorkbooksListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/MyWorkbook"
+ },
+ "description": "An array of private workbooks."
+ },
+ "nextLink": {
+ "type": "string"
+ }
+ },
+ "description": "Workbook list result."
+ },
+ "MyWorkbook": {
+ "description": "An Application Insights private workbook definition.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/MyWorkbookResource"
+ }
+ ],
+ "properties": {
+ "kind": {
+ "type": "string",
+ "description": "The kind of workbook. Choices are user and shared.",
+ "enum": [
+ "user",
+ "shared"
+ ],
+ "x-ms-enum": {
+ "name": "kind",
+ "modelAsString": true
+ }
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Metadata describing a workbook for an Azure resource.",
+ "$ref": "#/definitions/MyWorkbookProperties"
+ },
+ "systemData": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData",
+ "readOnly": true
+ }
+ }
+ },
+ "MyWorkbookProperties": {
+ "description": "Properties that contain a private workbook.",
+ "required": [
+ "displayName",
+ "category",
+ "serializedData"
+ ],
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "The user-defined name of the private workbook."
+ },
+ "serializedData": {
+ "type": "string",
+ "x-nullable": true,
+ "description": "Configuration of this particular private workbook. Configuration data is a string containing valid JSON"
+ },
+ "version": {
+ "type": "string",
+ "description": "This instance's version of the data model. This can change as new features are added that can be marked private workbook."
+ },
+ "timeModified": {
+ "type": "string",
+ "description": "Date and time in UTC of the last modification that was made to this private workbook definition.",
+ "readOnly": true
+ },
+ "category": {
+ "type": "string",
+ "description": "Workbook category, as defined by the user at creation time."
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of 0 or more tags that are associated with this private workbook definition"
+ },
+ "userId": {
+ "type": "string",
+ "description": "Unique user id of the specific user that owns this private workbook.",
+ "readOnly": true
+ },
+ "sourceId": {
+ "type": "string",
+ "description": "Optional resourceId for a source resource."
+ },
+ "storageUri": {
+ "type": "string",
+ "x-nullable": true,
+ "description": "BYOS Storage Account URI"
+ }
+ }
+ },
+ "MyWorkbookError": {
+ "description": "Error response.",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/ErrorDefinition",
+ "description": "The error details."
+ }
+ }
+ },
+ "ErrorDefinition": {
+ "description": "Error definition.",
+ "properties": {
+ "code": {
+ "description": "Service specific error code which serves as the substatus for the HTTP error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Description of the error.",
+ "type": "string",
+ "readOnly": true
+ },
+ "innererror": {
+ "description": "Internal error details.",
+ "items": {
+ "$ref": "#/definitions/InnerErrorTrace"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "InnerErrorTrace": {
+ "description": "Error details",
+ "properties": {
+ "trace": {
+ "description": "detailed error trace",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "MyWorkbookManagedIdentity": {
+ "description": "Customer Managed Identity",
+ "properties": {
+ "userAssignedIdentities": {
+ "$ref": "#/definitions/MyWorkbookUserAssignedIdentities"
+ },
+ "type": {
+ "type": "string",
+ "description": "The identity type.",
+ "enum": [
+ "UserAssigned",
+ "None"
+ ]
+ }
+ }
+ },
+ "MyWorkbookUserAssignedIdentities": {
+ "description": "Customer Managed Identity",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal ID of resource identity."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant ID of resource."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "WorkbookResourceNameParameter": {
+ "name": "resourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Application Insights component resource.",
+ "x-ms-parameter-location": "method"
+ },
+ "CategoryParameter": {
+ "name": "category",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "workbook",
+ "TSG",
+ "performance",
+ "retention"
+ ],
+ "x-ms-enum": {
+ "name": "CategoryType",
+ "modelAsString": true
+ },
+ "description": "Category of workbook to return.",
+ "x-ms-parameter-location": "method"
+ },
+ "SourceIdParameter": {
+ "name": "sourceId",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Azure Resource Id that will fetch all linked workbooks.",
+ "x-ms-parameter-location": "method"
+ },
+ "CanFetchWorkbookContentParameter": {
+ "name": "canFetchContent",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Flag indicating whether or not to return the full content for each applicable workbook. If false, only return summary content for workbooks.",
+ "x-ms-parameter-location": "method"
+ },
+ "TagsParameter": {
+ "name": "tags",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "csv",
+ "description": "Tags presents on each workbook returned.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/workbookOperations_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/workbookOperations_API.json
new file mode 100644
index 000000000000..abcf9a510a93
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/workbookOperations_API.json
@@ -0,0 +1,158 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "WorkbookClient",
+ "description": "Azure client for Workbook.",
+ "version": "2021-03-08"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.Insights/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Lists all of the available insights REST API operations.",
+ "operationId": "Operations_List",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Insights error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ }
+ },
+ "definitions": {
+ "ErrorResponse": {
+ "description": "Error response indicates Insights service is not able to process the incoming request. The reason is provided in the error message.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Error code.",
+ "type": "string"
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "type": "string"
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorFieldContract"
+ },
+ "description": "The list of invalid fields send in request, in case of validation error."
+ }
+ }
+ },
+ "ErrorFieldContract": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Property level error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Human-readable representation of property-level error."
+ },
+ "target": {
+ "type": "string",
+ "description": "Property name."
+ }
+ },
+ "description": "Error Field contract."
+ },
+ "Operation": {
+ "description": "Azure Workbooks REST API operation",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}",
+ "type": "string"
+ },
+ "display": {
+ "description": "The object that represents the operation.",
+ "properties": {
+ "provider": {
+ "description": "Service provider: Microsoft.Insights",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource on which the operation is performed: Profile, endpoint, etc.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Operation type: Read, write, delete, etc.",
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "OperationListResult": {
+ "description": "Result of the request to list Azure Workbooks operations. It contains a list of operations and a URL link to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of Workbook operations supported by the Microsoft.Insights resource provider."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/workbooks_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/workbooks_API.json
new file mode 100644
index 000000000000..1b6848a9216c
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2021-03-08/workbooks_API.json
@@ -0,0 +1,792 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApplicationInsightsManagementClient",
+ "description": "Azure Application Insights workbook type.",
+ "version": "2021-03-08"
+ },
+ "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/workbooks": {
+ "get": {
+ "description": "Get all private workbooks defined within a specified subscription and category.",
+ "operationId": "Workbooks_ListBySubscription",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/CategoryParameter"
+ },
+ {
+ "$ref": "#/parameters/TagsParameter"
+ },
+ {
+ "$ref": "#/parameters/CanFetchWorkbookContentParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A list containing 0 or more workbook definitions.",
+ "schema": {
+ "$ref": "#/definitions/WorkbooksListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "WorkbooksList": {
+ "$ref": "./examples/WorkbooksList.json"
+ },
+ "WorkbooksList2": {
+ "$ref": "./examples/WorkbooksList2.json"
+ },
+ "WorkbooksManagedList": {
+ "$ref": "./examples/WorkbooksManagedList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/workbooks": {
+ "get": {
+ "description": "Get all Workbooks defined within a specified resource group and category.",
+ "operationId": "Workbooks_ListByResourceGroup",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CategoryParameter"
+ },
+ {
+ "$ref": "#/parameters/TagsParameter"
+ },
+ {
+ "$ref": "#/parameters/SourceIdParameter"
+ },
+ {
+ "$ref": "#/parameters/CanFetchWorkbookContentParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A list containing 0 or more workbook definitions.",
+ "schema": {
+ "$ref": "#/definitions/WorkbooksListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "WorkbooksList": {
+ "$ref": "./examples/WorkbooksList.json"
+ },
+ "WorkbooksManagedList": {
+ "$ref": "./examples/WorkbooksManagedList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/workbooks/{resourceName}": {
+ "get": {
+ "description": "Get a single workbook by its resourceName.",
+ "operationId": "Workbooks_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A workbook definition.",
+ "schema": {
+ "$ref": "#/definitions/Workbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookGet": {
+ "$ref": "./examples/WorkbookGet.json"
+ },
+ "WorkbookGet1": {
+ "$ref": "./examples/WorkbookGet1.json"
+ },
+ "WorkbookManagedGet": {
+ "$ref": "./examples/WorkbookManagedGet.json"
+ }
+ }
+ },
+ "delete": {
+ "description": "Delete a workbook.",
+ "operationId": "Workbooks_Delete",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The workbook has been successfully deleted."
+ },
+ "204": {
+ "description": "The resource doesn't exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookDelete": {
+ "$ref": "./examples/WorkbookDelete.json"
+ }
+ }
+ },
+ "put": {
+ "description": "Create a new workbook.",
+ "operationId": "Workbooks_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SourceIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "workbookProperties",
+ "description": "Properties that need to be specified to create a new workbook.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Workbook"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The newly created workbook.",
+ "schema": {
+ "$ref": "#/definitions/Workbook"
+ }
+ },
+ "201": {
+ "description": "The newly created workbook.",
+ "schema": {
+ "$ref": "#/definitions/Workbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookManagedAdd": {
+ "$ref": "./examples/WorkbookManagedAdd.json"
+ },
+ "WorkbookAdd": {
+ "$ref": "./examples/WorkbookAdd.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Updates a workbook that has already been added.",
+ "operationId": "Workbooks_Update",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SourceIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "WorkbookUpdateParameters",
+ "description": "Properties that need to be specified to create a new workbook.",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/WorkbookUpdateParameters"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The workbook definition updated.",
+ "schema": {
+ "$ref": "#/definitions/Workbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookManagedUpdate": {
+ "$ref": "./examples/WorkbookManagedUpdate.json"
+ },
+ "WorkbookUpdate": {
+ "$ref": "./examples/WorkbookUpdate.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/workbooks/{resourceName}/revisions": {
+ "get": {
+ "description": "Get the revisions for the workbook defined by its resourceName.",
+ "operationId": "Workbooks_RevisionsList",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A list containing 0 or more workbook definitions.",
+ "schema": {
+ "$ref": "#/definitions/WorkbooksListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "WorkbookRevisionsList": {
+ "$ref": "./examples/WorkbookRevisionsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/workbooks/{resourceName}/revisions/{revisionId}": {
+ "get": {
+ "description": "Get a single workbook revision defined by its revisionId.",
+ "operationId": "Workbooks_RevisionGet",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookRevisionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A workbook definition.",
+ "schema": {
+ "$ref": "#/definitions/Workbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/WorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookRevisionGet": {
+ "$ref": "./examples/WorkbookRevisionGet.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Resource": {
+ "properties": {
+ "identity": {
+ "description": "Identity used for BYOS",
+ "$ref": "#/definitions/WorkbookManagedIdentity"
+ },
+ "id": {
+ "type": "string",
+ "description": "Azure resource Id",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "name": {
+ "type": "string",
+ "description": "Azure resource name",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "type": {
+ "type": "string",
+ "description": "Azure resource type",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ },
+ "etag": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource etag"
+ }
+ },
+ "x-ms-azure-resource": true,
+ "description": "An azure resource object"
+ },
+ "WorkbooksListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/Workbook"
+ },
+ "description": "An array of workbooks."
+ },
+ "nextLink": {
+ "type": "string"
+ }
+ },
+ "description": "Workbook list result."
+ },
+ "Workbook": {
+ "description": "An Application Insights workbook definition.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "kind": {
+ "type": "string",
+ "description": "The kind of workbook. Choices are user and shared.",
+ "enum": [
+ "user",
+ "shared"
+ ],
+ "x-ms-enum": {
+ "name": "kind",
+ "modelAsString": true
+ }
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Metadata describing a workbook for an Azure resource.",
+ "$ref": "#/definitions/WorkbookProperties"
+ },
+ "systemData": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData",
+ "readOnly": true
+ }
+ }
+ },
+ "WorkbookProperties": {
+ "description": "Properties that contain a workbook.",
+ "required": [
+ "displayName",
+ "category",
+ "serializedData"
+ ],
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "The user-defined name (display name) of the workbook."
+ },
+ "serializedData": {
+ "type": "string",
+ "x-nullable": true,
+ "description": "Configuration of this particular workbook. Configuration data is a string containing valid JSON"
+ },
+ "version": {
+ "type": "string",
+ "description": "Workbook version"
+ },
+ "timeModified": {
+ "type": "string",
+ "description": "Date and time in UTC of the last modification that was made to this workbook definition.",
+ "readOnly": true
+ },
+ "category": {
+ "type": "string",
+ "description": "Workbook category, as defined by the user at creation time."
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of 0 or more tags that are associated with this workbook definition"
+ },
+ "userId": {
+ "type": "string",
+ "description": "Unique user id of the specific user that owns this workbook.",
+ "readOnly": true
+ },
+ "sourceId": {
+ "type": "string",
+ "description": "ResourceId for a source resource."
+ },
+ "storageUri": {
+ "type": "string",
+ "x-nullable": true,
+ "description": "BYOS Storage Account URI"
+ },
+ "description": {
+ "type": "string",
+ "x-nullable": true,
+ "description": "The description of the workbook."
+ },
+ "revision": {
+ "type": "string",
+ "x-nullable": true,
+ "description": "The unique revision id for this workbook definition"
+ }
+ }
+ },
+ "WorkbookUpdateParameters": {
+ "properties": {
+ "kind": {
+ "type": "string",
+ "description": "The kind of workbook. Choices are user and shared.",
+ "enum": [
+ "user",
+ "shared"
+ ],
+ "x-ms-enum": {
+ "name": "SharedTypeKind",
+ "modelAsString": true
+ }
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Metadata describing a workbook for an Azure resource.",
+ "$ref": "#/definitions/WorkbookPropertiesUpdateParameters"
+ }
+ },
+ "description": "The parameters that can be provided when updating workbook properties properties."
+ },
+ "WorkbookPropertiesUpdateParameters": {
+ "description": "Properties that contain a workbook for PATCH operation.",
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "The user-defined name (display name) of the workbook."
+ },
+ "serializedData": {
+ "type": "string",
+ "description": "Configuration of this particular workbook. Configuration data is a string containing valid JSON"
+ },
+ "category": {
+ "type": "string",
+ "description": "Workbook category, as defined by the user at creation time."
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of 0 or more tags that are associated with this workbook definition"
+ },
+ "description": {
+ "type": "string",
+ "x-nullable": true,
+ "description": "The description of the workbook."
+ },
+ "revision": {
+ "type": "string",
+ "x-nullable": true,
+ "description": "The unique revision id for this workbook definition"
+ }
+ }
+ },
+ "WorkbookError": {
+ "description": "Error response.",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/ErrorDefinition",
+ "description": "The error details."
+ }
+ }
+ },
+ "ErrorDefinition": {
+ "description": "Error definition.",
+ "properties": {
+ "code": {
+ "description": "Service specific error code which serves as the substatus for the HTTP error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Description of the error.",
+ "type": "string",
+ "readOnly": true
+ },
+ "innererror": {
+ "description": "Internal error details.",
+ "items": {
+ "$ref": "#/definitions/InnerErrorTrace"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "InnerErrorTrace": {
+ "description": "Error details",
+ "properties": {
+ "trace": {
+ "description": "detailed error trace",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "WorkbookManagedIdentity": {
+ "description": "Customer Managed Identity",
+ "properties": {
+ "userAssignedIdentities": {
+ "$ref": "#/definitions/WorkbookUserAssignedIdentities"
+ },
+ "type": {
+ "type": "string",
+ "description": "The identity type.",
+ "enum": [
+ "UserAssigned",
+ "None"
+ ]
+ }
+ }
+ },
+ "WorkbookUserAssignedIdentities": {
+ "description": "Customer Managed Identity",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal ID of resource identity."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant ID of resource."
+ },
+ "clientId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The client ID of resource."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "WorkbookResourceNameParameter": {
+ "name": "resourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Application Insights component resource.",
+ "x-ms-parameter-location": "method"
+ },
+ "CategoryParameter": {
+ "name": "category",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "workbook",
+ "TSG",
+ "performance",
+ "retention"
+ ],
+ "x-ms-enum": {
+ "name": "CategoryType",
+ "modelAsString": true
+ },
+ "description": "Category of workbook to return.",
+ "x-ms-parameter-location": "method"
+ },
+ "SourceIdParameter": {
+ "name": "sourceId",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Azure Resource Id that will fetch all linked workbooks.",
+ "x-ms-parameter-location": "method"
+ },
+ "CanFetchWorkbookContentParameter": {
+ "name": "canFetchContent",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Flag indicating whether or not to return the full content for each applicable workbook. If false, only return summary content for workbooks.",
+ "x-ms-parameter-location": "method"
+ },
+ "TagsParameter": {
+ "name": "tags",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "csv",
+ "description": "Tags presents on each workbook returned.",
+ "x-ms-parameter-location": "method"
+ },
+ "WorkbookRevisionIdParameter": {
+ "name": "revisionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The id of the workbook's revision.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/readme.azureresourceschema.md b/specification/applicationinsights/resource-manager/readme.azureresourceschema.md
index 6f0621c3b69f..15fdfa11ba7a 100644
--- a/specification/applicationinsights/resource-manager/readme.azureresourceschema.md
+++ b/specification/applicationinsights/resource-manager/readme.azureresourceschema.md
@@ -6,6 +6,7 @@ These settings apply only when `--azureresourceschema` is specified on the comma
``` yaml $(azureresourceschema) && $(multiapi)
batch:
+ - tag: schema-insights-2020-11-20
- tag: schema-insights-2020-10-20
- tag: schema-insights-2020-10-05-preview
- tag: schema-insights-2020-06-02-preview
@@ -22,6 +23,17 @@ batch:
Please also specify `--azureresourceschema-folder=`.
+### Tag: schema-insights-2020-11-20 and azureresourceschema
+
+``` yaml $(tag) == 'schema-insights-2020-11-20' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Insights/stable/2020-11-20/workbookTemplates_API.json
+
+```
+
### Tag: schema-insights-2020-10-20 and azureresourceschema
``` yaml $(tag) == 'schema-insights-2020-10-20' && $(azureresourceschema)
diff --git a/specification/applicationinsights/resource-manager/readme.md b/specification/applicationinsights/resource-manager/readme.md
index 0f95a970a1a7..cb387c80b6fd 100644
--- a/specification/applicationinsights/resource-manager/readme.md
+++ b/specification/applicationinsights/resource-manager/readme.md
@@ -28,7 +28,7 @@ These are the global settings for the ApplicationInsights API.
title: ApplicationInsightsManagementClient
description: Composite Swagger for Application Insights Management Client
openapi-type: arm
-tag: package-preview-2020-10
+tag: package-2020-11-only
```
### Suppression
@@ -133,6 +133,12 @@ directive:
- suppress: DefaultErrorResponseSchema
from: workbooks_API.json
reason: 'consistent with existing default error response'
+ - suppress: R4009
+ from: workbookTemplates_API.json
+ reason: Existing APIs don't have systemData attribute. Suppressing so don't have to make breaking change
+ - suppress: R4017
+ from: workbookTemplates_API.json
+ reason: Does not support list by subscription
- suppress: DefaultErrorResponseSchema
from: workbookOperations_API.json
reason: 'consistent with existing default error response'
@@ -206,6 +212,25 @@ directive:
where:
- $.definitions.DiagnosticServicesTokenResponse.properties.token
reason: 'Secrets are OK to return in a POST response.'
+ - suppress: DefaultErrorResponseSchema
+ from: aiOperations_API
+ reason: 'consistent with existing default error response | owned by another team'
+ - suppress: OperationsApiResponseSchema
+ from: aiOperations_API
+ reason: 'consistent with existing response schema | owned by another team'
+ - suppress: RequiredReadOnlySystemData
+
+```
+
+### Tag: package-2021-03-only
+
+These settings apply only when `--tag=package-2021-03-only` is specified on the command line.
+
+``` yaml $(tag) == 'package-2021-03-only'
+input-file:
+ - Microsoft.Insights/stable/2021-03-08/myworkbooks_API.json
+ - Microsoft.Insights/stable/2021-03-08/workbooks_API.json
+ - Microsoft.Insights/stable/2021-03-08/workbookOperations_API.json
```
### Tag: package-preview-2021-03-only
@@ -216,55 +241,32 @@ These settings apply only when `--tag=package-preview-2021-03-only` is specified
input-file:
- Microsoft.Insights/preview/2021-03-03-preview/diagnosticServicesToken_API.json
```
-### Tag: package-2020-02-12
-These settings apply only when `--tag=package-2020-02-12` is specified on the command line.
+### Tag: package-2020-11-only
-``` yaml $(tag) == 'package-2020-02-12'
+These settings apply only when `--tag=package-2020-11-only` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-11-only'
input-file:
- - Microsoft.Insights/stable/2015-05-01/analyticsItems_API.json
- - Microsoft.Insights/stable/2015-05-01/componentAnnotations_API.json
- - Microsoft.Insights/stable/2015-05-01/componentApiKeys_API.json
- - Microsoft.Insights/stable/2015-05-01/componentContinuousExport_API.json
- - Microsoft.Insights/stable/2015-05-01/componentFeaturesAndPricing_API.json
- - Microsoft.Insights/stable/2015-05-01/componentProactiveDetection_API.json
- - Microsoft.Insights/stable/2015-05-01/components_API.json
- - Microsoft.Insights/stable/2015-05-01/componentWorkItemConfigs_API.json
- - Microsoft.Insights/stable/2015-05-01/favorites_API.json
- - Microsoft.Insights/stable/2015-05-01/webTestLocations_API.json
- - Microsoft.Insights/stable/2015-05-01/webTests_API.json
- - Microsoft.Insights/stable/2020-10-20/myworkbooks_API.json
- - Microsoft.Insights/stable/2020-10-20/workbooks_API.json
- - Microsoft.Insights/stable/2020-10-20/workbookOperations_API.json
+ - Microsoft.Insights/stable/2020-11-20/workbookTemplates_API.json
```
-### Tag: package-2020-10-20
+### Tag: package-2020-10-only
-These settings apply only when `--tag=package-2020-10-20` is specified on the command line.
+These settings apply only when `--tag=package-2020-10-only` is specified on the command line.
-``` yaml $(tag) == 'package-2020-10-20'
+```yaml $(tag) == 'package-2020-10-only'
input-file:
- - Microsoft.Insights/stable/2015-05-01/analyticsItems_API.json
- - Microsoft.Insights/stable/2015-05-01/componentAnnotations_API.json
- - Microsoft.Insights/stable/2015-05-01/componentApiKeys_API.json
- - Microsoft.Insights/stable/2015-05-01/componentContinuousExport_API.json
- - Microsoft.Insights/stable/2015-05-01/componentFeaturesAndPricing_API.json
- - Microsoft.Insights/stable/2015-05-01/componentProactiveDetection_API.json
- - Microsoft.Insights/stable/2015-05-01/components_API.json
- - Microsoft.Insights/stable/2015-05-01/componentWorkItemConfigs_API.json
- - Microsoft.Insights/stable/2015-05-01/favorites_API.json
- - Microsoft.Insights/stable/2015-05-01/webTestLocations_API.json
- - Microsoft.Insights/stable/2015-05-01/webTests_API.json
+ - Microsoft.Insights/stable/2020-10-20/workbookOperations_API.json
- Microsoft.Insights/stable/2020-10-20/myworkbooks_API.json
- Microsoft.Insights/stable/2020-10-20/workbooks_API.json
- - Microsoft.Insights/stable/2020-10-20/workbookOperations_API.json
```
-### Tag: package-preview-2020-10
+### Tag: package-preview-2020-10-only
-These settings apply only when `--tag=package-preview-2020-10` is specified on the command line.
+These settings apply only when `--tag=package-preview-2020-10-only` is specified on the command line.
-```yaml $(tag) == 'package-preview-2020-10'
+```yaml $(tag) == 'package-preview-2020-10-only'
input-file:
- Microsoft.Insights/preview/2020-10-05-preview/webTests_API.json
```
@@ -302,20 +304,11 @@ input-file:
- Microsoft.Insights/preview/2020-06-02-preview/livetoken_API.json
```
-### Tag: package-preview-2020-02
-
-These settings apply only when `--tag=package-preview-2020-02` is specified on the command line.
-
-``` yaml $(tag) == 'package-preview-2020-02'
-input-file:
- - Microsoft.Insights/preview/2020-02-10-preview/WebTestResults_API.json
-```
-
-### Tag: package-2015-05
+### Tag: package-2020-04
-These settings apply only when `--tag=package-2015-05` is specified on the command line.
+These settings apply only when `--tag=package-2020-04` is specified on the command line. For Dotnet SDK generation.
-``` yaml $(tag) == 'package-2015-05'
+``` yaml $(tag) == 'package-2020-04'
input-file:
- Microsoft.Insights/stable/2015-05-01/aiOperations_API.json
- Microsoft.Insights/stable/2015-05-01/componentAnnotations_API.json
@@ -323,7 +316,6 @@ input-file:
- Microsoft.Insights/stable/2015-05-01/componentContinuousExport_API.json
- Microsoft.Insights/stable/2015-05-01/componentFeaturesAndPricing_API.json
- Microsoft.Insights/stable/2015-05-01/componentProactiveDetection_API.json
-- Microsoft.Insights/stable/2015-05-01/components_API.json
- Microsoft.Insights/stable/2015-05-01/componentWorkItemConfigs_API.json
- Microsoft.Insights/stable/2015-05-01/favorites_API.json
- Microsoft.Insights/stable/2015-05-01/webTestLocations_API.json
@@ -331,25 +323,44 @@ input-file:
- Microsoft.Insights/stable/2015-05-01/analyticsItems_API.json
- Microsoft.Insights/stable/2015-05-01/workbooks_API.json
- Microsoft.Insights/stable/2015-05-01/myworkbooks_API.json
+- Microsoft.Insights/preview/2018-05-01-preview/components_API.json
+- Microsoft.Insights/preview/2020-03-01-preview/componentLinkedStorageAccounts_API.json
```
-### Tag: package-2017-10
+### Tag: package-2020-03-01-preview
-These settings apply only when `--tag=package-2017-10` is specified on the command line.
+These settings apply only when `--tag=package-2020-03-01-preview` is specified on the command line.
-``` yaml $(tag) == 'package-2017-10'
+``` yaml $(tag) == 'package-2020-03-01-preview'
input-file:
-- Microsoft.Insights/preview/2017-10-01/eaSubscriptionMigration_API.json
-- Microsoft.Insights/preview/2017-10-01/componentFeaturesAndPricing_API.json
+- Microsoft.Insights/preview/2020-03-01-preview/componentLinkedStorageAccounts_API.json
```
-### Tag: package-2018-06-17-preview
+### Tag: package-preview-2020-02
-These settings apply only when `--tag=package-2018-06-17-preview` is specified on the command line.
+These settings apply only when `--tag=package-preview-2020-02` is specified on the command line.
-``` yaml $(tag) == 'package-2018-06-17-preview'
+``` yaml $(tag) == 'package-preview-2020-02'
input-file:
-- Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json
+ - Microsoft.Insights/preview/2020-02-10-preview/WebTestResults_API.json
+```
+
+### Tag: package-2020-02-02-preview
+
+These settings apply only when `--tag=package-2020-02-02-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-02-02-preview'
+input-file:
+- Microsoft.Insights/preview/2020-02-02-preview/components_API.json
+```
+
+### Tag: package-2020-02-02
+
+These settings apply only when `--tag=package-2020-02-02` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-02-02'
+input-file:
+- Microsoft.Insights/stable/2020-02-02/components_API.json
```
### Tag: package-2019-10-17-preview
@@ -361,39 +372,40 @@ input-file:
- Microsoft.Insights/preview/2019-10-17-preview/workbookTemplates_API.json
```
-### Tag: package-2018-05-01-preview
+### Tag: package-2018-06-17-preview
-These settings apply only when `--tag=package-2018-05-01-preview` is specified on the command line.
+These settings apply only when `--tag=package-2018-06-17-preview` is specified on the command line.
-``` yaml $(tag) == 'package-2018-05-01-preview'
+``` yaml $(tag) == 'package-2018-06-17-preview'
input-file:
-- Microsoft.Insights/preview/2018-05-01-preview/componentProactiveDetection_API.json
-- Microsoft.Insights/preview/2018-05-01-preview/components_API.json
+- Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json
```
-### Tag: package-2020-02-02-preview
+### Tag: package-2018-05-01-preview
-These settings apply only when `--tag=package-2020-02-02-preview` is specified on the command line.
+These settings apply only when `--tag=package-2018-05-01-preview` is specified on the command line.
-``` yaml $(tag) == 'package-2020-02-02-preview'
+``` yaml $(tag) == 'package-2018-05-01-preview'
input-file:
-- Microsoft.Insights/preview/2020-02-02-preview/components_API.json
+- Microsoft.Insights/preview/2018-05-01-preview/componentProactiveDetection_API.json
+- Microsoft.Insights/preview/2018-05-01-preview/components_API.json
```
-### Tag: package-2020-03-01-preview
+### Tag: package-2017-10
-These settings apply only when `--tag=package-2020-03-01-preview` is specified on the command line.
+These settings apply only when `--tag=package-2017-10` is specified on the command line.
-``` yaml $(tag) == 'package-2020-03-01-preview'
+``` yaml $(tag) == 'package-2017-10'
input-file:
-- Microsoft.Insights/preview/2020-03-01-preview/componentLinkedStorageAccounts_API.json
+- Microsoft.Insights/preview/2017-10-01/eaSubscriptionMigration_API.json
+- Microsoft.Insights/preview/2017-10-01/componentFeaturesAndPricing_API.json
```
-### Tag: package-2020-04
+### Tag: package-2015-05
-These settings apply only when `--tag=package-2020-04` is specified on the command line. For Dotnet SDK generation.
+These settings apply only when `--tag=package-2015-05` is specified on the command line.
-``` yaml $(tag) == 'package-2020-04'
+``` yaml $(tag) == 'package-2015-05'
input-file:
- Microsoft.Insights/stable/2015-05-01/aiOperations_API.json
- Microsoft.Insights/stable/2015-05-01/componentAnnotations_API.json
@@ -401,6 +413,7 @@ input-file:
- Microsoft.Insights/stable/2015-05-01/componentContinuousExport_API.json
- Microsoft.Insights/stable/2015-05-01/componentFeaturesAndPricing_API.json
- Microsoft.Insights/stable/2015-05-01/componentProactiveDetection_API.json
+- Microsoft.Insights/stable/2015-05-01/components_API.json
- Microsoft.Insights/stable/2015-05-01/componentWorkItemConfigs_API.json
- Microsoft.Insights/stable/2015-05-01/favorites_API.json
- Microsoft.Insights/stable/2015-05-01/webTestLocations_API.json
@@ -408,8 +421,6 @@ input-file:
- Microsoft.Insights/stable/2015-05-01/analyticsItems_API.json
- Microsoft.Insights/stable/2015-05-01/workbooks_API.json
- Microsoft.Insights/stable/2015-05-01/myworkbooks_API.json
-- Microsoft.Insights/preview/2018-05-01-preview/components_API.json
-- Microsoft.Insights/preview/2020-03-01-preview/componentLinkedStorageAccounts_API.json
```
---
@@ -433,8 +444,6 @@ swagger-to-sdk:
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js applicationinsights/resource-manager
```
## Go
@@ -503,6 +512,4 @@ input-file:
- Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json
```
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/applicationinsights/resource-manager/readme.python.md b/specification/applicationinsights/resource-manager/readme.python.md
index 913e69037551..45b5df9fa171 100644
--- a/specification/applicationinsights/resource-manager/readme.python.md
+++ b/specification/applicationinsights/resource-manager/readme.python.md
@@ -33,6 +33,7 @@ batch:
- tag: package-2018-06-17-preview
- tag: package-2019-10-17-preview
- tag: package-2020-02-02-preview
+ - tag: package-2020-02-02
- tag: package-2020-03-01-preview
- tag: package-preview-2020-06-only
```
@@ -44,6 +45,7 @@ batch:
- tag: package-2018-06-17-preview
- tag: package-2019-10-17-preview
- tag: package-2020-02-02-preview
+ - tag: package-2020-02-02
- tag: package-2020-03-01-preview
- tag: package-preview-2020-06-only
- multiapiscript: true
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/appplatform.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/appplatform.json
index 991c4729129d..4e06ef972f13 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/appplatform.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/appplatform.json
@@ -2470,23 +2470,43 @@
"properties": {
"serviceRuntimeSubnetId": {
"description": "Fully qualified resource Id of the subnet to host Azure Spring Cloud Service Runtime",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"appSubnetId": {
"description": "Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"serviceCidr": {
"description": "Azure Spring Cloud service reserved CIDR",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"serviceRuntimeNetworkResourceGroup": {
"description": "Name of the resource group containing network resources of Azure Spring Cloud Service Runtime",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"appNetworkResourceGroup": {
"description": "Name of the resource group containing network resources of Azure Spring Cloud Apps",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"outboundIPs": {
"description": "Desired outbound IP resources for Azure Spring Cloud instance.",
@@ -2818,11 +2838,16 @@
},
"fqdn": {
"description": "Fully qualified dns Name.",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"httpsOnly": {
"description": "Indicate if only https is allowed.",
- "type": "boolean"
+ "type": "boolean",
+ "default": false
},
"createdTime": {
"format": "date-time",
@@ -2832,7 +2857,8 @@
},
"temporaryDisk": {
"$ref": "#/definitions/TemporaryDisk",
- "description": "Temporary disk settings"
+ "description": "Temporary disk settings",
+ "default": "/tmp"
},
"persistentDisk": {
"$ref": "#/definitions/PersistentDisk",
@@ -3369,6 +3395,7 @@
},
"runtimeVersion": {
"description": "Runtime version",
+ "default": "Java_8",
"enum": [
"Java_8",
"Java_11",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2020-11-01-preview/appplatform.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2020-11-01-preview/appplatform.json
index b8af027e3cb6..75f29e4dfae3 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2020-11-01-preview/appplatform.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2020-11-01-preview/appplatform.json
@@ -3057,23 +3057,43 @@
"properties": {
"serviceRuntimeSubnetId": {
"description": "Fully qualified resource Id of the subnet to host Azure Spring Cloud Service Runtime",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"appSubnetId": {
"description": "Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"serviceCidr": {
"description": "Azure Spring Cloud service reserved CIDR",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"serviceRuntimeNetworkResourceGroup": {
"description": "Name of the resource group containing network resources of Azure Spring Cloud Service Runtime",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"appNetworkResourceGroup": {
"description": "Name of the resource group containing network resources of Azure Spring Cloud Apps",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"outboundIPs": {
"description": "Desired outbound IP resources for Azure Spring Cloud instance.",
@@ -3404,11 +3424,16 @@
},
"fqdn": {
"description": "Fully qualified dns Name.",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"httpsOnly": {
"description": "Indicate if only https is allowed.",
- "type": "boolean"
+ "type": "boolean",
+ "default": false
},
"createdTime": {
"format": "date-time",
@@ -3418,7 +3443,8 @@
},
"temporaryDisk": {
"$ref": "#/definitions/TemporaryDisk",
- "description": "Temporary disk settings"
+ "description": "Temporary disk settings",
+ "default": "/tmp"
},
"persistentDisk": {
"$ref": "#/definitions/PersistentDisk",
@@ -3426,7 +3452,8 @@
},
"enableEndToEndTLS": {
"description": "Indicate if end to end TLS is enabled.",
- "type": "boolean"
+ "type": "boolean",
+ "default": false
}
}
},
@@ -3952,6 +3979,7 @@
},
"runtimeVersion": {
"description": "Runtime version",
+ "default": "Java_8",
"enum": [
"Java_8",
"Java_11",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Operations_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Operations_List.json
deleted file mode 100644
index e32985643d57..000000000000
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Operations_List.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "parameters": {
- "api-version": "2021-03-03-preview"
- },
- "responses": {
- "200": {
- "body": {
- "value": [
- {
- "name": "Microsoft.AppPlatform/Spring/read",
- "isDataAction": false,
- "display": {
- "provider": "Microsoft Azure Distributed Managed Service for Spring",
- "resource": "Managed Applications",
- "operation": "Create or Update Managed Applications",
- "description": "Create or Update Managed Applications"
- },
- "origin": "user,system",
- "properties": {
- "serviceSpecification": null
- }
- }
- ],
- "nextLink": "providers/Microsoft.AppPlatform?$skipToken={opaqueString}"
- }
- }
- }
-}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/appplatform.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/appplatform.json
similarity index 98%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/appplatform.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/appplatform.json
index 0698ac690bf6..6a0cd41ee4e0 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/appplatform.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/appplatform.json
@@ -1,7 +1,7 @@
{
"swagger": "2.0",
"info": {
- "version": "2021-03-03-preview",
+ "version": "2021-06-01-preview",
"title": "AppPlatformManagementClient",
"description": "REST API for Azure Spring Cloud"
},
@@ -2034,6 +2034,9 @@
"x-ms-examples": {
"Deployments_Get": {
"$ref": "./examples/Deployments_Get.json"
+ },
+ "Deployments_Get_CustomContainer": {
+ "$ref": "./examples/Deployments_Get_CustomContainer.json"
}
}
},
@@ -2105,6 +2108,9 @@
"x-ms-examples": {
"Deployments_CreateOrUpdate": {
"$ref": "./examples/Deployments_CreateOrUpdate.json"
+ },
+ "Deployments_CreateOrUpdate_CustomContainer": {
+ "$ref": "./examples/Deployments_CreateOrUpdate_CustomContainer.json"
}
}
},
@@ -2223,6 +2229,9 @@
"x-ms-examples": {
"Deployments_Update": {
"$ref": "./examples/Deployments_Update.json"
+ },
+ "Deployments_Update_CustomContainer": {
+ "$ref": "./examples/Deployments_Update_CustomContainer.json"
}
}
}
@@ -3020,7 +3029,7 @@
"description": "Error when apply Monitoring Setting changes."
},
"traceEnabled": {
- "description": "Indicates whether enable the trace functionality, which will be deprecated since api version 2021-03-03-preview. Please leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not",
+ "description": "Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not",
"type": "boolean"
},
"appInsightsInstrumentationKey": {
@@ -3897,7 +3906,8 @@
"enum": [
"Jar",
"NetCoreZip",
- "Source"
+ "Source",
+ "Container"
],
"type": "string",
"x-ms-enum": {
@@ -3916,6 +3926,58 @@
"artifactSelector": {
"description": "Selector for the artifact to be used for the deployment for multi-module projects. This should be\r\nthe relative path to the target module/project.",
"type": "string"
+ },
+ "customContainer": {
+ "$ref": "#/definitions/CustomContainer",
+ "description": "Custom container payload"
+ }
+ }
+ },
+ "CustomContainer": {
+ "description": "Custom container payload",
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "string",
+ "description": "The name of the registry that contains the container image"
+ },
+ "containerImage": {
+ "type": "string",
+ "description": "Container image of the custom container. This should be in the form of : without the server name of the registry"
+ },
+ "command": {
+ "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "args": {
+ "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "imageRegistryCredential": {
+ "$ref": "#/definitions/ImageRegistryCredential",
+ "description": "Credential of the image registry"
+ }
+ }
+ },
+ "ImageRegistryCredential": {
+ "description": "Credential of the image registry",
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string",
+ "description": "The username of the image registry credential"
+ },
+ "password": {
+ "type": "string",
+ "description": "The password of the image registry credential"
}
}
},
@@ -3925,13 +3987,13 @@
"properties": {
"cpu": {
"format": "int32",
- "description": "Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from API version 2020-03-03-preview. Please use the resourceRequests field to set the CPU size.",
+ "description": "Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size.",
"default": 1,
"type": "integer"
},
"memoryInGB": {
"format": "int32",
- "description": "Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This is deprecated starting from API version 2020-03-03-preview. Please use the resourceRequests field to set the the memory size.",
+ "description": "Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory size.",
"default": 1,
"type": "integer"
},
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_CreateOrUpdate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_CreateOrUpdate.json
similarity index 98%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_CreateOrUpdate.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_CreateOrUpdate.json
index c1c50a36e417..7359f1fb4d42 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_CreateOrUpdate.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_CreateOrUpdate.json
@@ -19,7 +19,7 @@
"identity": null,
"location": "eastus"
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_Delete.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_Delete.json
similarity index 86%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_Delete.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_Delete.json
index 56994e15de88..2a83ec3052b6 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_Delete.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_Delete.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_Get.json
similarity index 96%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_Get.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_Get.json
index 14c291828505..de91aff81739 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_Get.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_Get.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_GetResourceUploadUrl.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_GetResourceUploadUrl.json
similarity index 94%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_GetResourceUploadUrl.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_GetResourceUploadUrl.json
index fec2ca331988..440dd309074f 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_GetResourceUploadUrl.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_GetResourceUploadUrl.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_List.json
similarity index 97%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_List.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_List.json
index 959f681573a8..ea87852b56fb 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_List.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_List.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_Update.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_Update.json
similarity index 98%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_Update.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_Update.json
index a65ba7427bac..a103ecf7dd33 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_Update.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_Update.json
@@ -23,7 +23,7 @@
},
"location": "eastus"
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_ValidateDomain.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_ValidateDomain.json
similarity index 91%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_ValidateDomain.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_ValidateDomain.json
index 6f513b271058..8225a28158c0 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Apps_ValidateDomain.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Apps_ValidateDomain.json
@@ -3,7 +3,7 @@
"validatePayload": {
"name": "mydomain.io"
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_CreateOrUpdate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_CreateOrUpdate.json
similarity index 98%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_CreateOrUpdate.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_CreateOrUpdate.json
index 3eb064ed1f90..af805b3241cf 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_CreateOrUpdate.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_CreateOrUpdate.json
@@ -13,7 +13,7 @@
"updatedAt": null
}
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_Delete.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_Delete.json
similarity index 87%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_Delete.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_Delete.json
index a5f826033221..829eec03d533 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_Delete.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_Delete.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_Get.json
similarity index 96%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_Get.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_Get.json
index fa3539a0c918..eacde307530c 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_Get.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_Get.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_List.json
similarity index 96%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_List.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_List.json
index 7bde8dbd5f56..60ffe4552b9b 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_List.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_List.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_Update.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_Update.json
similarity index 98%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_Update.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_Update.json
index bd36787abe82..bc32fbe3425c 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Bindings_Update.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Bindings_Update.json
@@ -12,7 +12,7 @@
"updatedAt": null
}
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Certificates_CreateOrUpdate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Certificates_CreateOrUpdate.json
similarity index 98%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Certificates_CreateOrUpdate.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Certificates_CreateOrUpdate.json
index 88c4e2449cc9..51c9800f8862 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Certificates_CreateOrUpdate.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Certificates_CreateOrUpdate.json
@@ -7,7 +7,7 @@
"certVersion": "08a219d06d874795a96db47e06fbb01e"
}
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Certificates_Delete.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Certificates_Delete.json
similarity index 86%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Certificates_Delete.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Certificates_Delete.json
index ce2fff238741..fbeb0c7a5329 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Certificates_Delete.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Certificates_Delete.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Certificates_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Certificates_Get.json
similarity index 96%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Certificates_Get.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Certificates_Get.json
index b2fc5bc6b7ce..359112afb9c1 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Certificates_Get.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Certificates_Get.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Certificates_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Certificates_List.json
similarity index 97%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Certificates_List.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Certificates_List.json
index 8824c259eb95..fa6156685750 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Certificates_List.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Certificates_List.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myService"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/ConfigServers_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/ConfigServers_Get.json
similarity index 95%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/ConfigServers_Get.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/ConfigServers_Get.json
index 1a017a21cf29..b6c38e511aed 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/ConfigServers_Get.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/ConfigServers_Get.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/ConfigServers_UpdatePatch.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/ConfigServers_UpdatePatch.json
similarity index 97%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/ConfigServers_UpdatePatch.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/ConfigServers_UpdatePatch.json
index 501482cb55c0..b973e1348d1a 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/ConfigServers_UpdatePatch.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/ConfigServers_UpdatePatch.json
@@ -13,7 +13,7 @@
}
}
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/ConfigServers_UpdatePut.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/ConfigServers_UpdatePut.json
similarity index 97%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/ConfigServers_UpdatePut.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/ConfigServers_UpdatePut.json
index 501482cb55c0..b973e1348d1a 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/ConfigServers_UpdatePut.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/ConfigServers_UpdatePut.json
@@ -13,7 +13,7 @@
}
}
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/ConfigServers_Validate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/ConfigServers_Validate.json
similarity index 92%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/ConfigServers_Validate.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/ConfigServers_Validate.json
index 039d1fca871c..f23c9eabc68d 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/ConfigServers_Validate.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/ConfigServers_Validate.json
@@ -9,7 +9,7 @@
]
}
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_CreateOrUpdate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_CreateOrUpdate.json
similarity index 97%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_CreateOrUpdate.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_CreateOrUpdate.json
index fae51371d506..8b0cb4adf521 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_CreateOrUpdate.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_CreateOrUpdate.json
@@ -6,7 +6,7 @@
"certName": "mycert"
}
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_Delete.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_Delete.json
similarity index 87%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_Delete.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_Delete.json
index 39f060b229aa..7fbf6cf41528 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_Delete.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_Delete.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_Get.json
similarity index 94%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_Get.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_Get.json
index 6e0341b92365..705fea6363e2 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_Get.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_Get.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_List.json
similarity index 95%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_List.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_List.json
index 11a7e99281b2..189f594e7e4d 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_List.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_List.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_Update.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_Update.json
similarity index 97%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_Update.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_Update.json
index 43c216b70b46..c4bd2d296b6e 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/CustomDomains_Update.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/CustomDomains_Update.json
@@ -6,7 +6,7 @@
"certName": "mycert"
}
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_CreateOrUpdate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_CreateOrUpdate.json
similarity index 99%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_CreateOrUpdate.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_CreateOrUpdate.json
index 7f9e0ff5f98b..7b00a461d09b 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_CreateOrUpdate.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_CreateOrUpdate.json
@@ -27,7 +27,7 @@
"tier": "Standard",
"capacity": 1
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_CreateOrUpdate_CustomContainer.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_CreateOrUpdate_CustomContainer.json
new file mode 100644
index 000000000000..dcfc365e5838
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_CreateOrUpdate_CustomContainer.json
@@ -0,0 +1,193 @@
+{
+ "parameters": {
+ "deploymentResource": {
+ "properties": {
+ "source": {
+ "type": "Container",
+ "customContainer": {
+ "server": "myacr.azurecr.io",
+ "containerImage": "myContainerImage:v1",
+ "command": [
+ "/bin/sh"
+ ],
+ "args": [
+ "-c",
+ "while true; do echo hello; sleep 10;done"
+ ],
+ "imageRegistryCredential": {
+ "username": "myUsername",
+ "password": "myPassword"
+ }
+ }
+ },
+ "deploymentSettings": {
+ "resourceRequests": {
+ "cpu": "1000m",
+ "memory": "3Gi"
+ },
+ "environmentVariables": {
+ "env": "test"
+ }
+ },
+ "instances": null
+ }
+ },
+ "sku": {
+ "name": "S0",
+ "tier": "Standard",
+ "capacity": 1
+ },
+ "api-version": "2021-06-01-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "deploymentName": "mydeployment"
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "properties": {
+ "source": {
+ "type": "Container",
+ "customContainer": {
+ "server": "myacr.azurecr.io",
+ "containerImage": "myContainerImage:v1",
+ "imageRegistryCredential": {
+ "username": "myUsername",
+ "password": ""
+ }
+ }
+ },
+ "appName": "myapp",
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "resourceRequests": {
+ "cpu": "1000m",
+ "memory": "3Gi"
+ },
+ "environmentVariables": {
+ "env": "test"
+ }
+ },
+ "provisioningState": "Creating",
+ "status": "Running",
+ "active": false,
+ "instances": [
+ {
+ "name": "instance1",
+ "status": "Running",
+ "discoveryStatus": "N/A",
+ "startTime": "2020-08-26T01:55:02Z"
+ }
+ ]
+ },
+ "sku": {
+ "name": "S0",
+ "tier": "Standard",
+ "capacity": 1
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/deployments",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/deployments/mydeployment",
+ "name": "mydeployment"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "source": {
+ "type": "Container",
+ "customContainer": {
+ "server": "myacr.azurecr.io",
+ "containerImage": "myContainerImage:v1",
+ "imageRegistryCredential": {
+ "username": "myUsername",
+ "password": ""
+ }
+ }
+ },
+ "appName": "myapp",
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "resourceRequests": {
+ "cpu": "1000m",
+ "memory": "3Gi"
+ },
+ "environmentVariables": {
+ "env": "test"
+ }
+ },
+ "provisioningState": "Succeeded",
+ "status": "Running",
+ "active": false,
+ "instances": [
+ {
+ "name": "instance1",
+ "status": "Running",
+ "discoveryStatus": "N/A",
+ "startTime": "2020-08-26T01:55:02Z"
+ }
+ ]
+ },
+ "sku": {
+ "name": "S0",
+ "tier": "Standard",
+ "capacity": 1
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/deployments",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/deployments/mydeployment",
+ "name": "mydeployment"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "source": {
+ "type": "Source",
+ "customContainer": {
+ "server": "myacr.azurecr.io",
+ "containerImage": "myContainerImage:v1",
+ "imageRegistryCredential": {
+ "username": "myUsername",
+ "password": ""
+ }
+ }
+ },
+ "appName": "myapp",
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "resourceRequests": {
+ "cpu": "1000m",
+ "memory": "3Gi"
+ },
+ "environmentVariables": {
+ "env": "test"
+ }
+ },
+ "provisioningState": "Updating",
+ "status": "Running",
+ "active": false,
+ "instances": [
+ {
+ "name": "instance1",
+ "status": "Running",
+ "discoveryStatus": "N/A",
+ "startTime": "2020-08-26T01:55:02Z"
+ }
+ ]
+ },
+ "sku": {
+ "name": "S0",
+ "tier": "Standard",
+ "capacity": 1
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/deployments",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/deployments/mydeployment",
+ "name": "mydeployment"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Delete.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Delete.json
similarity index 87%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Delete.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Delete.json
index 093e0442b733..9b38a0896f92 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Delete.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Delete.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Get.json
similarity index 97%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Get.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Get.json
index d588237de940..019b49f2d8d9 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Get.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Get.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_GetLogFileUrl.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_GetLogFileUrl.json
similarity index 93%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_GetLogFileUrl.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_GetLogFileUrl.json
index e0338c8801e8..2153466b71a3 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_GetLogFileUrl.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_GetLogFileUrl.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Get_CustomContainer.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Get_CustomContainer.json
new file mode 100644
index 000000000000..a58ecd0bee69
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Get_CustomContainer.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "api-version": "2021-06-01-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "deploymentName": "mydeployment"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "source": {
+ "type": "Container",
+ "customContainer": {
+ "server": "myacr.azurecr.io",
+ "containerImage": "myContainerImage:v1",
+ "command": [
+ "/bin/sh"
+ ],
+ "args": [
+ "-c",
+ "while true; do echo hello; sleep 10;done"
+ ],
+ "imageRegistryCredential": {
+ "username": "myUsername",
+ "password": ""
+ }
+ }
+ },
+ "appName": "myapp",
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "resourceRequests": {
+ "cpu": "1000m",
+ "memory": "3Gi"
+ },
+ "environmentVariables": {
+ "env": "test"
+ }
+ },
+ "provisioningState": "Succeeded",
+ "status": "Running",
+ "active": false,
+ "instances": [
+ {
+ "name": "instance1",
+ "status": "Running",
+ "discoveryStatus": "N/A",
+ "startTime": "2020-08-26T01:55:02Z"
+ }
+ ]
+ },
+ "sku": {
+ "name": "S0",
+ "tier": "Standard",
+ "capacity": 1
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/deployments",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/deployments/mydeployment",
+ "name": "mydeployment"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_List.json
similarity index 97%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_List.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_List.json
index 8c023b1668f4..98aaab7f19b7 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_List.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_List.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_ListForCluster.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_ListForCluster.json
similarity index 97%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_ListForCluster.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_ListForCluster.json
index 8c023b1668f4..98aaab7f19b7 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_ListForCluster.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_ListForCluster.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Restart.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Restart.json
similarity index 91%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Restart.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Restart.json
index 8aeb3677e801..1e748023262c 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Restart.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Restart.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Start.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Start.json
similarity index 91%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Start.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Start.json
index 8aeb3677e801..1e748023262c 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Start.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Start.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Stop.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Stop.json
similarity index 91%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Stop.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Stop.json
index 8aeb3677e801..1e748023262c 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Stop.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Stop.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Update.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Update.json
similarity index 98%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Update.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Update.json
index 936439ba96be..0494ba3034de 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Deployments_Update.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Update.json
@@ -11,7 +11,7 @@
"instances": null
}
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice",
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Update_CustomContainer.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Update_CustomContainer.json
new file mode 100644
index 000000000000..55f438aa3506
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Deployments_Update_CustomContainer.json
@@ -0,0 +1,131 @@
+{
+ "parameters": {
+ "deploymentResource": {
+ "properties": {
+ "source": {
+ "type": "Container",
+ "customContainer": {
+ "server": "mynewacr.azurecr.io",
+ "containerImage": "myNewContainerImage:v1",
+ "command": [
+ "/bin/sh"
+ ],
+ "args": [
+ "-c",
+ "while true; do echo hello; sleep 10;done"
+ ],
+ "imageRegistryCredential": {
+ "username": "myNewUsername",
+ "password": ""
+ }
+ }
+ },
+ "instances": null
+ }
+ },
+ "api-version": "2021-06-01-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "deploymentName": "mydeployment"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "source": {
+ "type": "Container",
+ "customContainer": {
+ "server": "mynewacr.azurecr.io",
+ "containerImage": "myNewContainerImage:v1",
+ "imageRegistryCredential": {
+ "username": "myNewUsername",
+ "password": ""
+ }
+ }
+ },
+ "appName": "myapp",
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "resourceRequests": {
+ "cpu": "1000m",
+ "memory": "3Gi"
+ },
+ "environmentVariables": {
+ "env": "test"
+ }
+ },
+ "provisioningState": "Succeeded",
+ "status": "Running",
+ "active": false,
+ "instances": [
+ {
+ "name": "instance1",
+ "status": "Running",
+ "discoveryStatus": "N/A",
+ "startTime": "2020-08-26T01:55:02Z"
+ }
+ ]
+ },
+ "sku": {
+ "name": "S0",
+ "tier": "Standard",
+ "capacity": 1
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/deployments",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/deployments/mydeployment",
+ "name": "mydeployment"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "source": {
+ "type": "Container",
+ "customContainer": {
+ "server": "mynewacr.azurecr.io",
+ "containerImage": "myNewContainerImage:v1",
+ "imageRegistryCredential": {
+ "username": "myNewUsername",
+ "password": ""
+ }
+ }
+ },
+ "appName": "myapp",
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "resourceRequests": {
+ "cpu": "1000m",
+ "memory": "3Gi"
+ },
+ "environmentVariables": {
+ "env": "test"
+ }
+ },
+ "provisioningState": "Updating",
+ "status": "Running",
+ "active": false,
+ "instances": [
+ {
+ "name": "instance1",
+ "status": "Running",
+ "discoveryStatus": "N/A",
+ "startTime": "2020-08-26T01:55:02Z"
+ }
+ ]
+ },
+ "sku": {
+ "name": "S0",
+ "tier": "Standard",
+ "capacity": 1
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/deployments",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/deployments/mydeployment",
+ "name": "mydeployment"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/MonitoringSettings_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/MonitoringSettings_Get.json
similarity index 95%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/MonitoringSettings_Get.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/MonitoringSettings_Get.json
index 62993393653f..ebdfa2968281 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/MonitoringSettings_Get.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/MonitoringSettings_Get.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/MonitoringSettings_UpdatePatch.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/MonitoringSettings_UpdatePatch.json
similarity index 97%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/MonitoringSettings_UpdatePatch.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/MonitoringSettings_UpdatePatch.json
index 073d4bb3b877..8afb0bb5f64c 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/MonitoringSettings_UpdatePatch.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/MonitoringSettings_UpdatePatch.json
@@ -7,7 +7,7 @@
"appInsightsSamplingRate": 10.0
}
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/MonitoringSettings_UpdatePut.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/MonitoringSettings_UpdatePut.json
similarity index 97%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/MonitoringSettings_UpdatePut.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/MonitoringSettings_UpdatePut.json
index 073d4bb3b877..8afb0bb5f64c 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/MonitoringSettings_UpdatePut.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/MonitoringSettings_UpdatePut.json
@@ -7,7 +7,7 @@
"appInsightsSamplingRate": 10.0
}
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Operations_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Operations_List.json
new file mode 100644
index 000000000000..39a498c8ad4a
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Operations_List.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2021-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.AppPlatform/Spring/read",
+ "isDataAction": false,
+ "display": {
+ "provider": "Microsoft Azure Distributed Managed Service for Spring",
+ "resource": "Managed Applications",
+ "operation": "Create or Update Managed Applications",
+ "description": "Create or Update Managed Applications"
+ },
+ "origin": "user,system",
+ "properties": {
+ "serviceSpecification": null
+ }
+ }
+ ],
+ "nextLink": "providers/Microsoft.AppPlatform?$skipToken={opaqueString}"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/RuntimeVersions_ListRuntimeVersions.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/RuntimeVersions_ListRuntimeVersions.json
similarity index 92%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/RuntimeVersions_ListRuntimeVersions.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/RuntimeVersions_ListRuntimeVersions.json
index e7d20f59b80a..19b6144f0f47 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/RuntimeVersions_ListRuntimeVersions.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/RuntimeVersions_ListRuntimeVersions.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview"
+ "api-version": "2021-06-01-preview"
},
"responses": {
"200": {
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_CheckNameAvailability.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_CheckNameAvailability.json
similarity index 90%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_CheckNameAvailability.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_CheckNameAvailability.json
index ff0c15ffcabd..ae019a3f24c8 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_CheckNameAvailability.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_CheckNameAvailability.json
@@ -5,7 +5,7 @@
"type": "Microsoft.AppPlatform/Spring",
"name": "myservice"
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_CreateOrUpdate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_CreateOrUpdate.json
similarity index 99%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_CreateOrUpdate.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_CreateOrUpdate.json
index f85a3740e515..a07a2ee47c29 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_CreateOrUpdate.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_CreateOrUpdate.json
@@ -11,7 +11,7 @@
"key1": "value1"
}
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_CreateOrUpdate_VNetInjection.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_CreateOrUpdate_VNetInjection.json
similarity index 99%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_CreateOrUpdate_VNetInjection.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_CreateOrUpdate_VNetInjection.json
index 2dc924fa71e5..9303cc5fa93c 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_CreateOrUpdate_VNetInjection.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_CreateOrUpdate_VNetInjection.json
@@ -19,7 +19,7 @@
"key1": "value1"
}
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_Delete.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_Delete.json
similarity index 90%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_Delete.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_Delete.json
index 2cc19bbcd096..486f5c38b2cc 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_Delete.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_Delete.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_DisableTestEndpoint.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_DisableTestEndpoint.json
similarity index 82%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_DisableTestEndpoint.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_DisableTestEndpoint.json
index f348166d4fea..fc1589aadf8a 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_DisableTestEndpoint.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_DisableTestEndpoint.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_EnableTestEndpoint.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_EnableTestEndpoint.json
similarity index 91%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_EnableTestEndpoint.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_EnableTestEndpoint.json
index 86e158b5cd63..60002b5803fd 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_EnableTestEndpoint.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_EnableTestEndpoint.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_Get.json
similarity index 97%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_Get.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_Get.json
index 300bae45ec66..97884ce1ffdc 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_Get.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_Get.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_List.json
similarity index 97%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_List.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_List.json
index fa1b79bb7ad4..dbd3643a4724 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_List.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_List.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup"
},
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_ListBySubscription.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_ListBySubscription.json
similarity index 97%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_ListBySubscription.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_ListBySubscription.json
index 3fd6a5034e7c..26a4f5de3737 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_ListBySubscription.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_ListBySubscription.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_ListTestKeys.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_ListTestKeys.json
similarity index 91%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_ListTestKeys.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_ListTestKeys.json
index 86e158b5cd63..60002b5803fd 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_ListTestKeys.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_ListTestKeys.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_RegenerateTestKey.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_RegenerateTestKey.json
similarity index 92%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_RegenerateTestKey.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_RegenerateTestKey.json
index 169f9a46390e..29133042d86a 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_RegenerateTestKey.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_RegenerateTestKey.json
@@ -3,7 +3,7 @@
"regenerateTestKeyRequest": {
"keyType": "Primary"
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_Update.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_Update.json
similarity index 98%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_Update.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_Update.json
index 9a9236326a01..8267bef0540d 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Services_Update.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Services_Update.json
@@ -11,7 +11,7 @@
"key1": "value1"
}
},
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "myResourceGroup",
"serviceName": "myservice"
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Skus_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Skus_List.json
similarity index 94%
rename from specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Skus_List.json
rename to specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Skus_List.json
index 5125a0c391ef..1621bdfa76cc 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-03-03-preview/examples/Skus_List.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2021-06-01-preview/examples/Skus_List.json
@@ -1,6 +1,6 @@
{
"parameters": {
- "api-version": "2021-03-03-preview",
+ "api-version": "2021-06-01-preview",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/appplatform.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/appplatform.json
index cd6d6d773c55..d873f13edda8 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/appplatform.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/appplatform.json
@@ -3033,23 +3033,43 @@
"properties": {
"serviceRuntimeSubnetId": {
"description": "Fully qualified resource Id of the subnet to host Azure Spring Cloud Service Runtime",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"appSubnetId": {
"description": "Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"serviceCidr": {
"description": "Azure Spring Cloud service reserved CIDR",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"serviceRuntimeNetworkResourceGroup": {
"description": "Name of the resource group containing network resources of Azure Spring Cloud Service Runtime",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"appNetworkResourceGroup": {
"description": "Name of the resource group containing network resources of Azure Spring Cloud Apps",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"outboundIPs": {
"description": "Desired outbound IP resources for Azure Spring Cloud instance.",
@@ -3380,11 +3400,16 @@
},
"fqdn": {
"description": "Fully qualified dns Name.",
- "type": "string"
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
},
"httpsOnly": {
"description": "Indicate if only https is allowed.",
- "type": "boolean"
+ "type": "boolean",
+ "default": false
},
"createdTime": {
"format": "date-time",
@@ -3394,7 +3419,8 @@
},
"temporaryDisk": {
"$ref": "#/definitions/TemporaryDisk",
- "description": "Temporary disk settings"
+ "description": "Temporary disk settings",
+ "default": "/tmp"
},
"persistentDisk": {
"$ref": "#/definitions/PersistentDisk",
@@ -3924,6 +3950,7 @@
},
"runtimeVersion": {
"description": "Runtime version",
+ "default": "Java_8",
"enum": [
"Java_8",
"Java_11",
diff --git a/specification/appplatform/resource-manager/readme.azureresourceschema.md b/specification/appplatform/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index ff1758e942f2..000000000000
--- a/specification/appplatform/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,60 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-appplatform-2021-03-03-preview
- - tag: schema-appplatform-2020-11-01-preview
- - tag: schema-appplatform-2020-07-01
- - tag: schema-appplatform-2019-05-01-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-appplatform-2021-03-03-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-appplatform-2021-03-03-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AppPlatform/preview/2021-03-03-preview/appplatform.json
-
-```
-
-### Tag: schema-appplatform-2020-11-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-appplatform-2020-11-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AppPlatform/preview/2020-11-01-preview/appplatform.json
-
-```
-
-### Tag: schema-appplatform-2020-07-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-appplatform-2020-07-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AppPlatform/stable/2020-07-01/appplatform.json
-
-```
-
-### Tag: schema-appplatform-2019-05-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-appplatform-2019-05-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AppPlatform/preview/2019-05-01-preview/appplatform.json
-
-```
diff --git a/specification/appplatform/resource-manager/readme.md b/specification/appplatform/resource-manager/readme.md
index 0bc78e01730f..11dd36545e4d 100644
--- a/specification/appplatform/resource-manager/readme.md
+++ b/specification/appplatform/resource-manager/readme.md
@@ -26,7 +26,7 @@ These are the global settings for the AppPlatform API.
``` yaml
openapi-type: arm
-tag: package-preview-2021-03
+tag: package-preview-2021-06
```
### Suppression
@@ -44,19 +44,19 @@ directive:
- suppress: R3021
from: appplatform.json
reason: The resource type name 'Spring' is a trademark so cannot be changed to be camel-case
- #where:
+ #where:
# - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configServers/default"]
# - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/monitoringSettings/default"]
```
-### Tag: package-preview-2021-03
+### Tag: package-preview-2021-06
-These settings apply only when `--tag=package-preview-2021-03` is specified on the command line.
+These settings apply only when `--tag=package-preview-2021-06` is specified on the command line.
-```yaml $(tag) == 'package-preview-2021-03'
+```yaml $(tag) == 'package-preview-2021-06'
input-file:
- - Microsoft.AppPlatform/preview/2021-03-03-preview/appplatform.json
+ - Microsoft.AppPlatform/preview/2021-06-01-preview/appplatform.json
```
### Tag: package-preview-2020-11
@@ -110,8 +110,6 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_appplatform']
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js appplatform/resource-manager
```
## Go
@@ -140,7 +138,3 @@ csharp:
output-folder: $(csharp-sdks-folder)/appplatform/Microsoft.Azure.Management.AppPlatform/src/Generated
clear-output-folder: true
```
-
-## AzureResourceSchema
-
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/attestation/resource-manager/readme.azureresourceschema.md b/specification/attestation/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index bd437a256b68..000000000000
--- a/specification/attestation/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,36 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-attestation-2020-10-01
- - tag: schema-attestation-2018-09-01-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-attestation-2020-10-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-attestation-2020-10-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Attestation/stable/2020-10-01/attestation.json
-
-```
-
-### Tag: schema-attestation-2018-09-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-attestation-2018-09-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Attestation/stable/2018-09-01-preview/attestation.json
-
-```
diff --git a/specification/attestation/resource-manager/readme.md b/specification/attestation/resource-manager/readme.md
index f2099cd924dd..3c736ccdf1dd 100644
--- a/specification/attestation/resource-manager/readme.md
+++ b/specification/attestation/resource-manager/readme.md
@@ -65,8 +65,6 @@ swagger-to-sdk:
- repo: azure-sdk-for-js
- repo: azure-sdk-for-java
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js attestation/resource-manager
```
## Python
@@ -96,7 +94,5 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.terraform.md](./readme.terraform.md)
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-04-01-preview/authorization-RoleAssignmentsCalls.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-04-01-preview/authorization-RoleAssignmentsCalls.json
index f887263b7292..3e0e3a787eee 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-04-01-preview/authorization-RoleAssignmentsCalls.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-04-01-preview/authorization-RoleAssignmentsCalls.json
@@ -83,6 +83,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -133,6 +136,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -185,6 +191,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -289,6 +298,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -330,6 +342,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -420,6 +435,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -463,6 +481,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -515,6 +536,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -753,6 +777,14 @@
"type": "string",
"description": "The namespace of the resource provider.",
"x-ms-parameter-location": "method"
+ },
+ "TenantIdQueryParameter": {
+ "name": "tenantId",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Tenant ID for cross-tenant request",
+ "x-ms-parameter-location": "method"
}
}
}
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-08-01-preview/authorization-RoleAssignmentsCalls.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-08-01-preview/authorization-RoleAssignmentsCalls.json
index b3782ecaf2e1..3dba0536d271 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-08-01-preview/authorization-RoleAssignmentsCalls.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-08-01-preview/authorization-RoleAssignmentsCalls.json
@@ -50,6 +50,9 @@
},
{
"$ref": "#/parameters/RoleAssignmentFilterParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -96,6 +99,9 @@
},
{
"$ref": "#/parameters/RoleAssignmentFilterParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -151,6 +157,9 @@
},
{
"$ref": "#/parameters/RoleAssignmentFilterParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -194,6 +203,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -283,6 +295,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -370,6 +385,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -410,6 +428,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -487,6 +508,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -770,6 +794,14 @@
},
"description": "Parameters for the role assignment.",
"x-ms-parameter-location": "method"
+ },
+ "TenantIdQueryParameter": {
+ "name": "tenantId",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Tenant ID for cross-tenant request",
+ "x-ms-parameter-location": "method"
}
}
}
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/EligibleChildResources.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/EligibleChildResources.json
new file mode 100644
index 000000000000..a2d955973b7d
--- /dev/null
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/EligibleChildResources.json
@@ -0,0 +1,159 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "AuthorizationManagementClient",
+ "version": "2020-10-01-preview",
+ "description": "Role based access control provides you a way to apply granular level policy administration down to individual resources or resource groups. These operations enable you to manage role assignments. A role assignment grants access to Azure Active Directory users."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/{scope}/providers/Microsoft.Authorization/eligibleChildResources": {
+ "get": {
+ "tags": [
+ "eligibleChildResources"
+ ],
+ "operationId": "EligibleChildResources_Get",
+ "description": "Get the child resources of a resource on which user has eligible access",
+ "parameters": [
+ {
+ "name": "scope",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The scope of the role management policy.",
+ "x-ms-skip-url-encoding": true
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The filter to apply on the operation. Use $filter=resourceType+eq+'Subscription' to filter on only resource of type = 'Subscription'. Use $filter=resourceType+eq+'subscription'+or+resourceType+eq+'resourcegroup' to filter on resource of type = 'Subscription' or 'ResourceGroup'"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - Returns information about the role management policy.",
+ "schema": {
+ "$ref": "#/definitions/EligibleChildResourcesListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetEligibleChildResourcesByScope": {
+ "$ref": "./examples/GetEligibleChildResourcesByScope.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "EligibleChildResourcesListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EligibleChildResource"
+ },
+ "description": "Eligible child resource list."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to use for getting the next set of results."
+ }
+ },
+ "description": "Eligible child resources list operation result."
+ },
+ "EligibleChildResource": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource scope Id."
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource name."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource type."
+ }
+ },
+ "description": "Eligible child resource"
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/CloudErrorBody"
+ }
+ },
+ "description": "An error response from the service."
+ },
+ "CloudErrorBody": {
+ "x-ms-external": true,
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "A message describing the error, intended to be suitable for display in a user interface."
+ }
+ },
+ "description": "An error response from the service."
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "The API version to use for this operation."
+ }
+ }
+}
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentSchedule.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentSchedule.json
index 3cd013219637..7e0a694c29fe 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentSchedule.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentSchedule.json
@@ -173,7 +173,15 @@
"enum": [
"User",
"Group",
- "ServicePrincipal"
+ "ServicePrincipal",
+ "Unknown",
+ "DirectoryRoleTemplate",
+ "ForeignGroup",
+ "Application",
+ "MSI",
+ "DirectoryObjectOrGroup",
+ "Everyone",
+ "Device"
],
"x-ms-enum": {
"name": "PrincipalType",
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentScheduleInstance.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentScheduleInstance.json
index 02e12ca0b41c..d778f0c65e76 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentScheduleInstance.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentScheduleInstance.json
@@ -177,7 +177,15 @@
"enum": [
"User",
"Group",
- "ServicePrincipal"
+ "ServicePrincipal",
+ "Unknown",
+ "DirectoryRoleTemplate",
+ "ForeignGroup",
+ "Application",
+ "MSI",
+ "DirectoryObjectOrGroup",
+ "Everyone",
+ "Device"
],
"x-ms-enum": {
"name": "PrincipalType",
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentScheduleRequest.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentScheduleRequest.json
index 27fe95288b0b..0c18a43bcdff 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentScheduleRequest.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentScheduleRequest.json
@@ -279,7 +279,15 @@
"enum": [
"User",
"Group",
- "ServicePrincipal"
+ "ServicePrincipal",
+ "Unknown",
+ "DirectoryRoleTemplate",
+ "ForeignGroup",
+ "Application",
+ "MSI",
+ "DirectoryObjectOrGroup",
+ "Everyone",
+ "Device"
],
"x-ms-enum": {
"name": "PrincipalType",
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilitySchedule.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilitySchedule.json
index af5c1a7f6e99..d3d3bbb7e834 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilitySchedule.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilitySchedule.json
@@ -173,7 +173,15 @@
"enum": [
"User",
"Group",
- "ServicePrincipal"
+ "ServicePrincipal",
+ "Unknown",
+ "DirectoryRoleTemplate",
+ "ForeignGroup",
+ "Application",
+ "MSI",
+ "DirectoryObjectOrGroup",
+ "Everyone",
+ "Device"
],
"x-ms-enum": {
"name": "PrincipalType",
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilityScheduleInstance.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilityScheduleInstance.json
index 55a772e0f5e2..30504594f0bd 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilityScheduleInstance.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilityScheduleInstance.json
@@ -177,7 +177,15 @@
"enum": [
"User",
"Group",
- "ServicePrincipal"
+ "ServicePrincipal",
+ "Unknown",
+ "DirectoryRoleTemplate",
+ "ForeignGroup",
+ "Application",
+ "MSI",
+ "DirectoryObjectOrGroup",
+ "Everyone",
+ "Device"
],
"x-ms-enum": {
"name": "PrincipalType",
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilityScheduleRequest.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilityScheduleRequest.json
index 9a4a45238118..1ed4bb81ed6e 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilityScheduleRequest.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilityScheduleRequest.json
@@ -279,7 +279,15 @@
"enum": [
"User",
"Group",
- "ServicePrincipal"
+ "ServicePrincipal",
+ "Unknown",
+ "DirectoryRoleTemplate",
+ "ForeignGroup",
+ "Application",
+ "MSI",
+ "DirectoryObjectOrGroup",
+ "Everyone",
+ "Device"
],
"x-ms-enum": {
"name": "PrincipalType",
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleManagementPolicy.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleManagementPolicy.json
index 2e59a4aa226f..32c1be6132fe 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleManagementPolicy.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/RoleManagementPolicy.json
@@ -558,9 +558,9 @@
"type": "string",
"description": "The notification level.",
"enum": [
- "NONE",
- "CRITICAL",
- "ALL"
+ "None",
+ "Critical",
+ "All"
],
"x-ms-enum": {
"name": "NotificationLevel",
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/authorization-RoleAssignmentsCalls.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/authorization-RoleAssignmentsCalls.json
index c723a1e60b81..04835777fcf4 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/authorization-RoleAssignmentsCalls.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/authorization-RoleAssignmentsCalls.json
@@ -50,6 +50,9 @@
},
{
"$ref": "#/parameters/RoleAssignmentFilterParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -96,6 +99,9 @@
},
{
"$ref": "#/parameters/RoleAssignmentFilterParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -151,6 +157,9 @@
},
{
"$ref": "#/parameters/RoleAssignmentFilterParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -194,6 +203,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -283,6 +295,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -370,6 +385,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -410,6 +428,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -487,6 +508,9 @@
},
{
"$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TenantIdQueryParameter"
}
],
"responses": {
@@ -771,6 +795,14 @@
},
"description": "Parameters for the role assignment.",
"x-ms-parameter-location": "method"
+ },
+ "TenantIdQueryParameter": {
+ "name": "tenantId",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Tenant ID for cross-tenant request",
+ "x-ms-parameter-location": "method"
}
}
}
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetEligibleChildResourcesByScope.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetEligibleChildResourcesByScope.json
new file mode 100644
index 000000000000..76cb6f443086
--- /dev/null
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetEligibleChildResourcesByScope.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "scope": "providers/Microsoft.Subscription/subscriptions/dfa2a084-766f-4003-8ae1-c4aeb893a99f",
+ "api-version": "2020-10-01-preview",
+ "$filter": "resourceType+eq+'resourcegroup'"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "RG-1",
+ "id": "/providers/Microsoft.Subscription/subscriptions/dfa2a084-766f-4003-8ae1-c4aeb893a99f/resourceGroups/RG-1",
+ "type": "resourcegroup"
+ },
+ {
+ "name": "RG-2",
+ "id": "/providers/Microsoft.Subscription/subscriptions/dfa2a084-766f-4003-8ae1-c4aeb893a99f/resourceGroups/RG-2",
+ "type": "resourcegroup"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleAssignmentScheduleRequestByName.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleAssignmentScheduleRequestByName.json
index 5a42f7c91c0b..a9f0442b637f 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleAssignmentScheduleRequestByName.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleAssignmentScheduleRequestByName.json
@@ -22,7 +22,7 @@
"expiration": {
"type": "AfterDuration",
"endDateTime": null,
- "duration": "08:00:00"
+ "duration": "PT8H"
}
},
"ticketInfo": {
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleAssignmentScheduleRequestByScope.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleAssignmentScheduleRequestByScope.json
index d2bf887f553e..648555c7b6db 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleAssignmentScheduleRequestByScope.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleAssignmentScheduleRequestByScope.json
@@ -23,7 +23,7 @@
"expiration": {
"type": "AfterDuration",
"endDateTime": null,
- "duration": "08:00:00"
+ "duration": "PT8H"
}
},
"ticketInfo": {
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleEligibilityScheduleRequestByName.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleEligibilityScheduleRequestByName.json
index ba545cb998d6..53f10851ec93 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleEligibilityScheduleRequestByName.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleEligibilityScheduleRequestByName.json
@@ -22,7 +22,7 @@
"expiration": {
"type": "AfterDuration",
"endDateTime": null,
- "duration": "365.00:00:00"
+ "duration": "P365D"
}
},
"ticketInfo": {
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleEligibilityScheduleRequestByScope.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleEligibilityScheduleRequestByScope.json
index 9c150f1442c5..9bfca5590185 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleEligibilityScheduleRequestByScope.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleEligibilityScheduleRequestByScope.json
@@ -24,7 +24,7 @@
"expiration": {
"type": "AfterDuration",
"endDateTime": null,
- "duration": "365.00:00:00"
+ "duration": "P365D"
}
},
"ticketInfo": {
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyAssignmentByName.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyAssignmentByName.json
index a90275e3d77d..95d0531850d9 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyAssignmentByName.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyAssignmentByName.json
@@ -10,7 +10,7 @@
"properties": {
"scope": "/subscriptions/129ff972-28f8-46b8-a726-e497be039368",
"roleDefinitionId": "/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleDefinitions/a1705bd2-3a8f-45a5-8683-466fcfd5cc24",
- "policyId": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/RoleManagementPolicies/b959d571-f0b5-4042-88a7-01be6cb22db9",
+ "policyId": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleManagementPolicies/b959d571-f0b5-4042-88a7-01be6cb22db9",
"policyAssignmentProperties": {
"scope": {
"id": "/subscriptions/129ff972-28f8-46b8-a726-e497be039368",
@@ -23,7 +23,7 @@
"type": "BuiltInRole"
},
"policy": {
- "id": "b959d571-f0b5-4042-88a7-01be6cb22db9",
+ "id": "/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleManagementPolicies/b959d571-f0b5-4042-88a7-01be6cb22db9",
"lastModifiedBy": {
"id": null,
"displayName": "Admin",
@@ -35,7 +35,7 @@
}
},
"name": "b959d571-f0b5-4042-88a7-01be6cb22db9_a1705bd2-3a8f-45a5-8683-466fcfd5cc24",
- "id": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/RoleManagementPolicyAssignment/b959d571-f0b5-4042-88a7-01be6cb22db9_a1705bd2-3a8f-45a5-8683-466fcfd5cc24",
+ "id": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleManagementPolicyAssignment/b959d571-f0b5-4042-88a7-01be6cb22db9_a1705bd2-3a8f-45a5-8683-466fcfd5cc24",
"type": "Microsoft.Authorization/RoleManagementPolicyAssignment"
}
}
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyAssignmentByScope.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyAssignmentByScope.json
index 9b8afdc2a135..37f17032cbb3 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyAssignmentByScope.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyAssignmentByScope.json
@@ -11,7 +11,7 @@
"properties": {
"scope": "/subscriptions/129ff972-28f8-46b8-a726-e497be039368",
"roleDefinitionId": "/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleDefinitions/a1705bd2-3a8f-45a5-8683-466fcfd5cc24",
- "policyId": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/RoleManagementPolicies/b959d571-f0b5-4042-88a7-01be6cb22db9",
+ "policyId": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleManagementPolicies/b959d571-f0b5-4042-88a7-01be6cb22db9",
"policyAssignmentProperties": {
"scope": {
"id": "/subscriptions/129ff972-28f8-46b8-a726-e497be039368",
@@ -24,7 +24,7 @@
"type": "BuiltInRole"
},
"policy": {
- "id": "b959d571-f0b5-4042-88a7-01be6cb22db9",
+ "id": "/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleManagementPolicies/b959d571-f0b5-4042-88a7-01be6cb22db9",
"lastModifiedBy": {
"id": null,
"displayName": "Admin",
@@ -36,7 +36,7 @@
}
},
"name": "b959d571-f0b5-4042-88a7-01be6cb22db9_a1705bd2-3a8f-45a5-8683-466fcfd5cc24",
- "id": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/RoleManagementPolicyAssignment/b959d571-f0b5-4042-88a7-01be6cb22db9_a1705bd2-3a8f-45a5-8683-466fcfd5cc24",
+ "id": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleManagementPolicyAssignment/b959d571-f0b5-4042-88a7-01be6cb22db9_a1705bd2-3a8f-45a5-8683-466fcfd5cc24",
"type": "Microsoft.Authorization/RoleManagementPolicyAssignment"
}
]
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyByName.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyByName.json
index 17412968b8db..24eb61daaa85 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyByName.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyByName.json
@@ -22,12 +22,12 @@
"rules": [
{
"enabledRules": [],
- "id": "Enablement_Admin_Eligible",
+ "id": "Enablement_Admin_Eligibility",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -38,12 +38,12 @@
{
"isExpirationRequired": true,
"maximumDuration": "P90D",
- "id": "Expiration_Admin_Eligible",
+ "id": "Expiration_Admin_Eligibility",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -55,16 +55,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_eligible@test.com"
],
- "id": "Notification_Admin_Admin_Eligible",
+ "id": "Notification_Admin_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -76,16 +76,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_eligible@test.com"
],
- "id": "Notification_Requestor_Admin_Eligible",
+ "id": "Notification_Requestor_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -97,16 +97,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_eligible@test.com"
],
- "id": "Notification_Approver_Admin_Eligible",
+ "id": "Notification_Approver_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -119,12 +119,12 @@
"MultiFactorAuthentication",
"Justification"
],
- "id": "Enablement_Admin_Member",
+ "id": "Enablement_Admin_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -135,12 +135,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P90D",
- "id": "Expiration_Admin_Member",
+ "id": "Expiration_Admin_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -152,16 +152,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_member@test.com"
],
- "id": "Notification_Admin_Admin_Member",
+ "id": "Notification_Admin_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -173,16 +173,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_member@test.com"
],
- "id": "Notification_Requestor_Admin_Member",
+ "id": "Notification_Requestor_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -194,16 +194,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_member@test.com"
],
- "id": "Notification_Approver_Admin_Member",
+ "id": "Notification_Approver_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -241,12 +241,12 @@
}
]
},
- "id": "Approval_EndUser_Member",
+ "id": "Approval_EndUser_Assignment",
"ruleType": "RoleManagementPolicyApprovalRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -257,12 +257,12 @@
{
"isEnabled": false,
"claimValue": "",
- "id": "AuthenticationContext_EndUser_Member",
+ "id": "AuthenticationContext_EndUser_Assignment",
"ruleType": "RoleManagementPolicyAuthenticationContextRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -276,12 +276,12 @@
"Justification",
"Ticketing"
],
- "id": "Enablement_EndUser_Member",
+ "id": "Enablement_EndUser_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -292,12 +292,12 @@
{
"isExpirationRequired": true,
"maximumDuration": "PT7H",
- "id": "Expiration_EndUser_Member",
+ "id": "Expiration_EndUser_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -309,16 +309,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_enduser_member@test.com"
],
- "id": "Notification_Admin_EndUser_Member",
+ "id": "Notification_Admin_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -330,16 +330,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_enduser_member@test.com"
],
- "id": "Notification_Requestor_EndUser_Member",
+ "id": "Notification_Requestor_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -351,14 +351,14 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": true,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": null,
- "id": "Notification_Approver_EndUser_Member",
+ "id": "Notification_Approver_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -370,12 +370,12 @@
"effectiveRules": [
{
"enabledRules": [],
- "id": "Enablement_Admin_Eligible",
+ "id": "Enablement_Admin_Eligibility",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -386,12 +386,12 @@
{
"isExpirationRequired": true,
"maximumDuration": "P90D",
- "id": "Expiration_Admin_Eligible",
+ "id": "Expiration_Admin_Eligibility",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -403,16 +403,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_eligible@test.com"
],
- "id": "Notification_Admin_Admin_Eligible",
+ "id": "Notification_Admin_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -424,16 +424,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_eligible@test.com"
],
- "id": "Notification_Requestor_Admin_Eligible",
+ "id": "Notification_Requestor_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -445,16 +445,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_eligible@test.com"
],
- "id": "Notification_Approver_Admin_Eligible",
+ "id": "Notification_Approver_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -467,12 +467,12 @@
"MultiFactorAuthentication",
"Justification"
],
- "id": "Enablement_Admin_Member",
+ "id": "Enablement_Admin_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -483,12 +483,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P90D",
- "id": "Expiration_Admin_Member",
+ "id": "Expiration_Admin_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -500,16 +500,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_member@test.com"
],
- "id": "Notification_Admin_Admin_Member",
+ "id": "Notification_Admin_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -521,16 +521,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_member@test.com"
],
- "id": "Notification_Requestor_Admin_Member",
+ "id": "Notification_Requestor_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -542,16 +542,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_member@test.com"
],
- "id": "Notification_Approver_Admin_Member",
+ "id": "Notification_Approver_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -589,12 +589,12 @@
}
]
},
- "id": "Approval_EndUser_Member",
+ "id": "Approval_EndUser_Assignment",
"ruleType": "RoleManagementPolicyApprovalRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -605,12 +605,12 @@
{
"isEnabled": false,
"claimValue": "",
- "id": "AuthenticationContext_EndUser_Member",
+ "id": "AuthenticationContext_EndUser_Assignment",
"ruleType": "RoleManagementPolicyAuthenticationContextRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -624,12 +624,12 @@
"Justification",
"Ticketing"
],
- "id": "Enablement_EndUser_Member",
+ "id": "Enablement_EndUser_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -640,12 +640,12 @@
{
"isExpirationRequired": true,
"maximumDuration": "PT7H",
- "id": "Expiration_EndUser_Member",
+ "id": "Expiration_EndUser_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -657,16 +657,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_enduser_member@test.com"
],
- "id": "Notification_Admin_EndUser_Member",
+ "id": "Notification_Admin_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -678,16 +678,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_enduser_member@test.com"
],
- "id": "Notification_Requestor_EndUser_Member",
+ "id": "Notification_Requestor_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -699,14 +699,14 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": true,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": null,
- "id": "Notification_Approver_EndUser_Member",
+ "id": "Notification_Approver_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -724,7 +724,7 @@
}
},
"name": "570c3619-7688-4b34-b290-2b8bb3ccab2a",
- "id": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/RoleManagementPolicies/570c3619-7688-4b34-b290-2b8bb3ccab2a",
+ "id": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleManagementPolicies/570c3619-7688-4b34-b290-2b8bb3ccab2a",
"type": "Microsoft.Authorization/RoleManagementPolicies"
}
}
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyByScope.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyByScope.json
index 4d146e6dfff5..7b12f8c8e2a0 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyByScope.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/GetRoleManagementPolicyByScope.json
@@ -23,12 +23,12 @@
"rules": [
{
"enabledRules": [],
- "id": "Enablement_Admin_Eligible",
+ "id": "Enablement_Admin_Eligibility",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -39,12 +39,12 @@
{
"isExpirationRequired": true,
"maximumDuration": "P90D",
- "id": "Expiration_Admin_Eligible",
+ "id": "Expiration_Admin_Eligibility",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -56,16 +56,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_eligible@test.com"
],
- "id": "Notification_Admin_Admin_Eligible",
+ "id": "Notification_Admin_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -77,16 +77,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_eligible@test.com"
],
- "id": "Notification_Requestor_Admin_Eligible",
+ "id": "Notification_Requestor_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -98,16 +98,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_eligible@test.com"
],
- "id": "Notification_Approver_Admin_Eligible",
+ "id": "Notification_Approver_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -120,12 +120,12 @@
"MultiFactorAuthentication",
"Justification"
],
- "id": "Enablement_Admin_Member",
+ "id": "Enablement_Admin_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -136,12 +136,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P90D",
- "id": "Expiration_Admin_Member",
+ "id": "Expiration_Admin_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -153,16 +153,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_member@test.com"
],
- "id": "Notification_Admin_Admin_Member",
+ "id": "Notification_Admin_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -174,16 +174,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_member@test.com"
],
- "id": "Notification_Requestor_Admin_Member",
+ "id": "Notification_Requestor_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -195,16 +195,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_member@test.com"
],
- "id": "Notification_Approver_Admin_Member",
+ "id": "Notification_Approver_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -242,12 +242,12 @@
}
]
},
- "id": "Approval_EndUser_Member",
+ "id": "Approval_EndUser_Assignment",
"ruleType": "RoleManagementPolicyApprovalRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -258,12 +258,12 @@
{
"isEnabled": false,
"claimValue": "",
- "id": "AuthenticationContext_EndUser_Member",
+ "id": "AuthenticationContext_EndUser_Assignment",
"ruleType": "RoleManagementPolicyAuthenticationContextRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -277,12 +277,12 @@
"Justification",
"Ticketing"
],
- "id": "Enablement_EndUser_Member",
+ "id": "Enablement_EndUser_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -293,12 +293,12 @@
{
"isExpirationRequired": true,
"maximumDuration": "PT7H",
- "id": "Expiration_EndUser_Member",
+ "id": "Expiration_EndUser_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -310,16 +310,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_enduser_member@test.com"
],
- "id": "Notification_Admin_EndUser_Member",
+ "id": "Notification_Admin_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -331,16 +331,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_enduser_member@test.com"
],
- "id": "Notification_Requestor_EndUser_Member",
+ "id": "Notification_Requestor_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -352,14 +352,14 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": true,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": null,
- "id": "Notification_Approver_EndUser_Member",
+ "id": "Notification_Approver_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -371,12 +371,12 @@
"effectiveRules": [
{
"enabledRules": [],
- "id": "Enablement_Admin_Eligible",
+ "id": "Enablement_Admin_Eligibility",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -387,12 +387,12 @@
{
"isExpirationRequired": true,
"maximumDuration": "P90D",
- "id": "Expiration_Admin_Eligible",
+ "id": "Expiration_Admin_Eligibility",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -404,16 +404,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_eligible@test.com"
],
- "id": "Notification_Admin_Admin_Eligible",
+ "id": "Notification_Admin_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -425,16 +425,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_eligible@test.com"
],
- "id": "Notification_Requestor_Admin_Eligible",
+ "id": "Notification_Requestor_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -446,16 +446,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_eligible@test.com"
],
- "id": "Notification_Approver_Admin_Eligible",
+ "id": "Notification_Approver_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -468,12 +468,12 @@
"MultiFactorAuthentication",
"Justification"
],
- "id": "Enablement_Admin_Member",
+ "id": "Enablement_Admin_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -484,12 +484,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P90D",
- "id": "Expiration_Admin_Member",
+ "id": "Expiration_Admin_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -501,16 +501,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_member@test.com"
],
- "id": "Notification_Admin_Admin_Member",
+ "id": "Notification_Admin_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -522,16 +522,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_member@test.com"
],
- "id": "Notification_Requestor_Admin_Member",
+ "id": "Notification_Requestor_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -543,16 +543,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_member@test.com"
],
- "id": "Notification_Approver_Admin_Member",
+ "id": "Notification_Approver_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -590,12 +590,12 @@
}
]
},
- "id": "Approval_EndUser_Member",
+ "id": "Approval_EndUser_Assignment",
"ruleType": "RoleManagementPolicyApprovalRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -606,12 +606,12 @@
{
"isEnabled": false,
"claimValue": "",
- "id": "AuthenticationContext_EndUser_Member",
+ "id": "AuthenticationContext_EndUser_Assignment",
"ruleType": "RoleManagementPolicyAuthenticationContextRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -625,12 +625,12 @@
"Justification",
"Ticketing"
],
- "id": "Enablement_EndUser_Member",
+ "id": "Enablement_EndUser_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -641,12 +641,12 @@
{
"isExpirationRequired": true,
"maximumDuration": "PT7H",
- "id": "Expiration_EndUser_Member",
+ "id": "Expiration_EndUser_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -658,16 +658,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_enduser_member@test.com"
],
- "id": "Notification_Admin_EndUser_Member",
+ "id": "Notification_Admin_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -679,16 +679,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_enduser_member@test.com"
],
- "id": "Notification_Requestor_EndUser_Member",
+ "id": "Notification_Requestor_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -700,14 +700,14 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": true,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": null,
- "id": "Notification_Approver_EndUser_Member",
+ "id": "Notification_Approver_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -725,7 +725,7 @@
}
},
"name": "570c3619-7688-4b34-b290-2b8bb3ccab2a",
- "id": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/RoleManagementPolicies/570c3619-7688-4b34-b290-2b8bb3ccab2a",
+ "id": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleManagementPolicies/570c3619-7688-4b34-b290-2b8bb3ccab2a",
"type": "Microsoft.Authorization/RoleManagementPolicies"
}
]
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PatchPartialRoleManagementPolicy.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PatchPartialRoleManagementPolicy.json
index 303110a5f1b1..6b8c3ce11adc 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PatchPartialRoleManagementPolicy.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PatchPartialRoleManagementPolicy.json
@@ -9,12 +9,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P180D",
- "id": "Expiration_Admin_Eligible",
+ "id": "Expiration_Admin_Eligibility",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -26,16 +26,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_eligible@test.com"
],
- "id": "Notification_Admin_Admin_Eligible",
+ "id": "Notification_Admin_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -66,12 +66,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P180D",
- "id": "Expiration_Admin_Eligible",
+ "id": "Expiration_Admin_Eligibility",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -83,16 +83,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_eligible@test.com"
],
- "id": "Notification_Admin_Admin_Eligible",
+ "id": "Notification_Admin_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -104,16 +104,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_eligible@test.com"
],
- "id": "Notification_Requestor_Admin_Eligible",
+ "id": "Notification_Requestor_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -125,16 +125,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_eligible@test.com"
],
- "id": "Notification_Approver_Admin_Eligible",
+ "id": "Notification_Approver_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -144,12 +144,12 @@
},
{
"enabledRules": [],
- "id": "Enablement_Admin_Eligible",
+ "id": "Enablement_Admin_Eligibility",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -160,12 +160,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P90D",
- "id": "Expiration_Admin_Member",
+ "id": "Expiration_Admin_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -178,12 +178,12 @@
"Justification",
"MultiFactorAuthentication"
],
- "id": "Enablement_Admin_Member",
+ "id": "Enablement_Admin_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -195,16 +195,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_member@test.com"
],
- "id": "Notification_Admin_Admin_Member",
+ "id": "Notification_Admin_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -216,16 +216,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_member@test.com"
],
- "id": "Notification_Requestor_Admin_Member",
+ "id": "Notification_Requestor_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -237,16 +237,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_member@test.com"
],
- "id": "Notification_Approver_Admin_Member",
+ "id": "Notification_Approver_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -257,12 +257,12 @@
{
"isExpirationRequired": true,
"maximumDuration": "PT7H",
- "id": "Expiration_EndUser_Member",
+ "id": "Expiration_EndUser_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -276,12 +276,12 @@
"MultiFactorAuthentication",
"Ticketing"
],
- "id": "Enablement_EndUser_Member",
+ "id": "Enablement_EndUser_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -319,12 +319,12 @@
}
]
},
- "id": "Approval_EndUser_Member",
+ "id": "Approval_EndUser_Assignment",
"ruleType": "RoleManagementPolicyApprovalRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -335,12 +335,12 @@
{
"isEnabled": false,
"claimValue": "",
- "id": "AuthenticationContext_EndUser_Member",
+ "id": "AuthenticationContext_EndUser_Assignment",
"ruleType": "RoleManagementPolicyAuthenticationContextRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -352,16 +352,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_enduser_member@test.com"
],
- "id": "Notification_Admin_EndUser_Member",
+ "id": "Notification_Admin_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -373,16 +373,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_enduser_member@test.com"
],
- "id": "Notification_Requestor_EndUser_Member",
+ "id": "Notification_Requestor_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -394,14 +394,14 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": true,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": null,
- "id": "Notification_Approver_EndUser_Member",
+ "id": "Notification_Approver_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -414,12 +414,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P180D",
- "id": "Expiration_Admin_Eligible",
+ "id": "Expiration_Admin_Eligibility",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -431,16 +431,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_eligible@test.com"
],
- "id": "Notification_Admin_Admin_Eligible",
+ "id": "Notification_Admin_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -452,16 +452,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_eligible@test.com"
],
- "id": "Notification_Requestor_Admin_Eligible",
+ "id": "Notification_Requestor_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -473,16 +473,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_eligible@test.com"
],
- "id": "Notification_Approver_Admin_Eligible",
+ "id": "Notification_Approver_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -492,12 +492,12 @@
},
{
"enabledRules": [],
- "id": "Enablement_Admin_Eligible",
+ "id": "Enablement_Admin_Eligibility",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -508,12 +508,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P90D",
- "id": "Expiration_Admin_Member",
+ "id": "Expiration_Admin_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -526,12 +526,12 @@
"Justification",
"MultiFactorAuthentication"
],
- "id": "Enablement_Admin_Member",
+ "id": "Enablement_Admin_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -543,16 +543,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_member@test.com"
],
- "id": "Notification_Admin_Admin_Member",
+ "id": "Notification_Admin_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -564,16 +564,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_member@test.com"
],
- "id": "Notification_Requestor_Admin_Member",
+ "id": "Notification_Requestor_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -585,16 +585,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_member@test.com"
],
- "id": "Notification_Approver_Admin_Member",
+ "id": "Notification_Approver_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -605,12 +605,12 @@
{
"isExpirationRequired": true,
"maximumDuration": "PT7H",
- "id": "Expiration_EndUser_Member",
+ "id": "Expiration_EndUser_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -624,12 +624,12 @@
"MultiFactorAuthentication",
"Ticketing"
],
- "id": "Enablement_EndUser_Member",
+ "id": "Enablement_EndUser_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -667,12 +667,12 @@
}
]
},
- "id": "Approval_EndUser_Member",
+ "id": "Approval_EndUser_Assignment",
"ruleType": "RoleManagementPolicyApprovalRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -683,12 +683,12 @@
{
"isEnabled": false,
"claimValue": "",
- "id": "AuthenticationContext_EndUser_Member",
+ "id": "AuthenticationContext_EndUser_Assignment",
"ruleType": "RoleManagementPolicyAuthenticationContextRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -700,16 +700,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_enduser_member@test.com"
],
- "id": "Notification_Admin_EndUser_Member",
+ "id": "Notification_Admin_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -721,16 +721,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_enduser_member@test.com"
],
- "id": "Notification_Requestor_EndUser_Member",
+ "id": "Notification_Requestor_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -742,14 +742,14 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": true,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": null,
- "id": "Notification_Approver_EndUser_Member",
+ "id": "Notification_Approver_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -767,7 +767,7 @@
}
},
"name": "570c3619-7688-4b34-b290-2b8bb3ccab2a",
- "id": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/RoleManagementPolicies/570c3619-7688-4b34-b290-2b8bb3ccab2a",
+ "id": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleManagementPolicies/570c3619-7688-4b34-b290-2b8bb3ccab2a",
"type": "Microsoft.Authorization/RoleManagementPolicies"
}
}
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PatchRoleManagementPolicy.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PatchRoleManagementPolicy.json
index a21a7cec9529..fa90678e6b8f 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PatchRoleManagementPolicy.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PatchRoleManagementPolicy.json
@@ -9,12 +9,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P180D",
- "id": "Expiration_Admin_Eligible",
+ "id": "Expiration_Admin_Eligibility",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -26,16 +26,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_eligible@test.com"
],
- "id": "Notification_Admin_Admin_Eligible",
+ "id": "Notification_Admin_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -47,16 +47,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_eligible@test.com"
],
- "id": "Notification_Requestor_Admin_Eligible",
+ "id": "Notification_Requestor_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -68,16 +68,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_eligible@test.com"
],
- "id": "Notification_Approver_Admin_Eligible",
+ "id": "Notification_Approver_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -87,12 +87,12 @@
},
{
"enabledRules": [],
- "id": "Enablement_Admin_Eligible",
+ "id": "Enablement_Admin_Eligibility",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -103,12 +103,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P90D",
- "id": "Expiration_Admin_Member",
+ "id": "Expiration_Admin_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -121,12 +121,12 @@
"Justification",
"MultiFactorAuthentication"
],
- "id": "Enablement_Admin_Member",
+ "id": "Enablement_Admin_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -138,16 +138,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_member@test.com"
],
- "id": "Notification_Admin_Admin_Member",
+ "id": "Notification_Admin_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -159,16 +159,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_member@test.com"
],
- "id": "Notification_Requestor_Admin_Member",
+ "id": "Notification_Requestor_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -180,16 +180,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_member@test.com"
],
- "id": "Notification_Approver_Admin_Member",
+ "id": "Notification_Approver_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -200,12 +200,12 @@
{
"isExpirationRequired": true,
"maximumDuration": "PT7H",
- "id": "Expiration_EndUser_Member",
+ "id": "Expiration_EndUser_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -219,12 +219,12 @@
"MultiFactorAuthentication",
"Ticketing"
],
- "id": "Enablement_EndUser_Member",
+ "id": "Enablement_EndUser_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -262,12 +262,12 @@
}
]
},
- "id": "Approval_EndUser_Member",
+ "id": "Approval_EndUser_Assignment",
"ruleType": "RoleManagementPolicyApprovalRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -278,12 +278,12 @@
{
"isEnabled": false,
"claimValue": "",
- "id": "AuthenticationContext_EndUser_Member",
+ "id": "AuthenticationContext_EndUser_Assignment",
"ruleType": "RoleManagementPolicyAuthenticationContextRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -295,16 +295,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_enduser_member@test.com"
],
- "id": "Notification_Admin_EndUser_Member",
+ "id": "Notification_Admin_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -316,16 +316,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_enduser_member@test.com"
],
- "id": "Notification_Requestor_EndUser_Member",
+ "id": "Notification_Requestor_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -337,14 +337,14 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": true,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": null,
- "id": "Notification_Approver_EndUser_Member",
+ "id": "Notification_Approver_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -375,12 +375,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P180D",
- "id": "Expiration_Admin_Eligible",
+ "id": "Expiration_Admin_Eligibility",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -392,16 +392,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_eligible@test.com"
],
- "id": "Notification_Admin_Admin_Eligible",
+ "id": "Notification_Admin_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -413,16 +413,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_eligible@test.com"
],
- "id": "Notification_Requestor_Admin_Eligible",
+ "id": "Notification_Requestor_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -434,16 +434,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_eligible@test.com"
],
- "id": "Notification_Approver_Admin_Eligible",
+ "id": "Notification_Approver_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -453,12 +453,12 @@
},
{
"enabledRules": [],
- "id": "Enablement_Admin_Eligible",
+ "id": "Enablement_Admin_Eligibility",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -469,12 +469,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P90D",
- "id": "Expiration_Admin_Member",
+ "id": "Expiration_Admin_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -487,12 +487,12 @@
"Justification",
"MultiFactorAuthentication"
],
- "id": "Enablement_Admin_Member",
+ "id": "Enablement_Admin_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -504,16 +504,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_member@test.com"
],
- "id": "Notification_Admin_Admin_Member",
+ "id": "Notification_Admin_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -525,16 +525,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_member@test.com"
],
- "id": "Notification_Requestor_Admin_Member",
+ "id": "Notification_Requestor_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -546,16 +546,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_member@test.com"
],
- "id": "Notification_Approver_Admin_Member",
+ "id": "Notification_Approver_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -566,12 +566,12 @@
{
"isExpirationRequired": true,
"maximumDuration": "PT7H",
- "id": "Expiration_EndUser_Member",
+ "id": "Expiration_EndUser_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -585,12 +585,12 @@
"MultiFactorAuthentication",
"Ticketing"
],
- "id": "Enablement_EndUser_Member",
+ "id": "Enablement_EndUser_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -628,12 +628,12 @@
}
]
},
- "id": "Approval_EndUser_Member",
+ "id": "Approval_EndUser_Assignment",
"ruleType": "RoleManagementPolicyApprovalRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -644,12 +644,12 @@
{
"isEnabled": false,
"claimValue": "",
- "id": "AuthenticationContext_EndUser_Member",
+ "id": "AuthenticationContext_EndUser_Assignment",
"ruleType": "RoleManagementPolicyAuthenticationContextRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -661,16 +661,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_enduser_member@test.com"
],
- "id": "Notification_Admin_EndUser_Member",
+ "id": "Notification_Admin_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -682,16 +682,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_enduser_member@test.com"
],
- "id": "Notification_Requestor_EndUser_Member",
+ "id": "Notification_Requestor_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -703,14 +703,14 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": true,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": null,
- "id": "Notification_Approver_EndUser_Member",
+ "id": "Notification_Approver_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -723,12 +723,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P180D",
- "id": "Expiration_Admin_Eligible",
+ "id": "Expiration_Admin_Eligibility",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -740,16 +740,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_eligible@test.com"
],
- "id": "Notification_Admin_Admin_Eligible",
+ "id": "Notification_Admin_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -761,16 +761,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_eligible@test.com"
],
- "id": "Notification_Requestor_Admin_Eligible",
+ "id": "Notification_Requestor_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -782,16 +782,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_eligible@test.com"
],
- "id": "Notification_Approver_Admin_Eligible",
+ "id": "Notification_Approver_Admin_Eligibility",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -801,12 +801,12 @@
},
{
"enabledRules": [],
- "id": "Enablement_Admin_Eligible",
+ "id": "Enablement_Admin_Eligibility",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Eligibility",
"targetObjects": null,
@@ -817,12 +817,12 @@
{
"isExpirationRequired": false,
"maximumDuration": "P90D",
- "id": "Expiration_Admin_Member",
+ "id": "Expiration_Admin_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -835,12 +835,12 @@
"Justification",
"MultiFactorAuthentication"
],
- "id": "Enablement_Admin_Member",
+ "id": "Enablement_Admin_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -852,16 +852,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_admin_member@test.com"
],
- "id": "Notification_Admin_Admin_Member",
+ "id": "Notification_Admin_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -873,16 +873,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_admin_member@test.com"
],
- "id": "Notification_Requestor_Admin_Member",
+ "id": "Notification_Requestor_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -894,16 +894,16 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"approver_admin_member@test.com"
],
- "id": "Notification_Approver_Admin_Member",
+ "id": "Notification_Approver_Admin_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "Admin",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -914,12 +914,12 @@
{
"isExpirationRequired": true,
"maximumDuration": "PT7H",
- "id": "Expiration_EndUser_Member",
+ "id": "Expiration_EndUser_Assignment",
"ruleType": "RoleManagementPolicyExpirationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -933,12 +933,12 @@
"MultiFactorAuthentication",
"Ticketing"
],
- "id": "Enablement_EndUser_Member",
+ "id": "Enablement_EndUser_Assignment",
"ruleType": "RoleManagementPolicyEnablementRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -976,12 +976,12 @@
}
]
},
- "id": "Approval_EndUser_Member",
+ "id": "Approval_EndUser_Assignment",
"ruleType": "RoleManagementPolicyApprovalRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -992,12 +992,12 @@
{
"isEnabled": false,
"claimValue": "",
- "id": "AuthenticationContext_EndUser_Member",
+ "id": "AuthenticationContext_EndUser_Assignment",
"ruleType": "RoleManagementPolicyAuthenticationContextRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -1009,16 +1009,16 @@
"notificationType": "Email",
"recipientType": "Admin",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"admin_enduser_member@test.com"
],
- "id": "Notification_Admin_EndUser_Member",
+ "id": "Notification_Admin_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -1030,16 +1030,16 @@
"notificationType": "Email",
"recipientType": "Requestor",
"isDefaultRecipientsEnabled": false,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": [
"requestor_enduser_member@test.com"
],
- "id": "Notification_Requestor_EndUser_Member",
+ "id": "Notification_Requestor_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -1051,14 +1051,14 @@
"notificationType": "Email",
"recipientType": "Approver",
"isDefaultRecipientsEnabled": true,
- "notificationLevel": "CRITICAL",
+ "notificationLevel": "Critical",
"notificationRecipients": null,
- "id": "Notification_Approver_EndUser_Member",
+ "id": "Notification_Approver_EndUser_Assignment",
"ruleType": "RoleManagementPolicyNotificationRule",
"target": {
"caller": "EndUser",
"operations": [
- "ALL"
+ "All"
],
"level": "Assignment",
"targetObjects": null,
@@ -1076,7 +1076,7 @@
}
},
"name": "570c3619-7688-4b34-b290-2b8bb3ccab2a",
- "id": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/RoleManagementPolicies/570c3619-7688-4b34-b290-2b8bb3ccab2a",
+ "id": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleManagementPolicies/570c3619-7688-4b34-b290-2b8bb3ccab2a",
"type": "Microsoft.Authorization/RoleManagementPolicies"
}
}
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PutRoleAssignmentScheduleRequest.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PutRoleAssignmentScheduleRequest.json
index 68331340cf0a..e374bb892137 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PutRoleAssignmentScheduleRequest.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PutRoleAssignmentScheduleRequest.json
@@ -13,7 +13,7 @@
"expiration": {
"type": "AfterDuration",
"endDateTime": null,
- "duration": "08:00:00"
+ "duration": "PT8H"
}
},
"condition": "@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName] StringEqualsIgnoreCase 'foo_storage_container'",
@@ -40,7 +40,7 @@
"expiration": {
"type": "AfterDuration",
"endDateTime": null,
- "duration": "08:00:00"
+ "duration": "PT8H"
}
},
"ticketInfo": {
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PutRoleEligibilityScheduleRequest.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PutRoleEligibilityScheduleRequest.json
index 062fcd509928..5d8dc971105d 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PutRoleEligibilityScheduleRequest.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PutRoleEligibilityScheduleRequest.json
@@ -12,7 +12,7 @@
"expiration": {
"type": "AfterDuration",
"endDateTime": null,
- "duration": "365.00:00:00"
+ "duration": "P365D"
}
},
"condition": "@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName] StringEqualsIgnoreCase 'foo_storage_container'",
@@ -39,7 +39,7 @@
"expiration": {
"type": "AfterDuration",
"endDateTime": null,
- "duration": "365.00:00:00"
+ "duration": "P365D"
}
},
"ticketInfo": {
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PutRoleManagementPolicyAssignment.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PutRoleManagementPolicyAssignment.json
index 4fc4bcad414e..54fd4ac29539 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PutRoleManagementPolicyAssignment.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2020-10-01-preview/examples/PutRoleManagementPolicyAssignment.json
@@ -7,7 +7,7 @@
"properties": {
"scope": "/subscriptions/129ff972-28f8-46b8-a726-e497be039368",
"roleDefinitionId": "/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleDefinitions/a1705bd2-3a8f-45a5-8683-466fcfd5cc24",
- "policyId": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/RoleManagementPolicies/b959d571-f0b5-4042-88a7-01be6cb22db9"
+ "policyId": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleManagementPolicies/b959d571-f0b5-4042-88a7-01be6cb22db9"
}
}
},
@@ -17,7 +17,7 @@
"properties": {
"scope": "/subscriptions/129ff972-28f8-46b8-a726-e497be039368",
"roleDefinitionId": "/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleDefinitions/a1705bd2-3a8f-45a5-8683-466fcfd5cc24",
- "policyId": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/RoleManagementPolicies/b959d571-f0b5-4042-88a7-01be6cb22db9",
+ "policyId": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleManagementPolicies/b959d571-f0b5-4042-88a7-01be6cb22db9",
"policyAssignmentProperties": {
"scope": {
"id": "/subscriptions/129ff972-28f8-46b8-a726-e497be039368",
@@ -30,14 +30,14 @@
"type": "BuiltInRole"
},
"policy": {
- "id": "b959d571-f0b5-4042-88a7-01be6cb22db9",
+ "id": "/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleManagementPolicies/b959d571-f0b5-4042-88a7-01be6cb22db9",
"lastModifiedBy": null,
"lastModifiedDateTime": null
}
}
},
"name": "b959d571-f0b5-4042-88a7-01be6cb22db9_a1705bd2-3a8f-45a5-8683-466fcfd5cc24",
- "id": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/RoleManagementPolicyAssignment/b959d571-f0b5-4042-88a7-01be6cb22db9_a1705bd2-3a8f-45a5-8683-466fcfd5cc24",
+ "id": "/providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368/providers/Microsoft.Authorization/roleManagementPolicyAssignment/b959d571-f0b5-4042-88a7-01be6cb22db9_a1705bd2-3a8f-45a5-8683-466fcfd5cc24",
"type": "Microsoft.Authorization/RoleManagementPolicyAssignment"
}
}
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/authorization-AccessReviewCalls.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/authorization-AccessReviewCalls.json
index 49df2a165880..15e3c1facb30 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/authorization-AccessReviewCalls.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/authorization-AccessReviewCalls.json
@@ -81,6 +81,9 @@
},
{
"$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/AccessReviewsFilterParameter"
}
],
"responses": {
@@ -301,6 +304,9 @@
},
{
"$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/AccessReviewsFilterParameter"
}
],
"responses": {
@@ -592,6 +598,9 @@
},
{
"$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/AccessReviewsFilterParameter"
}
],
"responses": {
@@ -707,6 +716,9 @@
"parameters": [
{
"$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/AccessReviewsFilterParameter"
}
],
"responses": {
@@ -750,6 +762,9 @@
},
{
"$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/AccessReviewsFilterParameter"
}
],
"responses": {
@@ -891,6 +906,9 @@
},
{
"$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/AccessReviewsFilterParameter"
}
],
"responses": {
@@ -1386,6 +1404,24 @@
"name": "AccessReviewScopePrincipalType",
"modelAsString": true
}
+ },
+ "assignmentState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The role assignment state eligible/active to review",
+ "enum": [
+ "eligible",
+ "active"
+ ],
+ "x-ms-enum": {
+ "name": "AccessReviewScopeAssignmentState",
+ "modelAsString": true
+ }
+ },
+ "inactiveDuration": {
+ "type": "string",
+ "format": "duration",
+ "description": "Duration users are inactive for. The value should be in ISO 8601 format (http://en.wikipedia.org/wiki/ISO_8601#Durations).This code can be used to convert TimeSpan to a valid interval string: XmlConvert.ToString(new TimeSpan(hours, minutes, seconds))"
}
},
"description": "Descriptor for what needs to be reviewed"
@@ -1824,6 +1860,15 @@
"required": true,
"type": "string",
"description": "The API version to be used with the HTTP request."
+ },
+ "AccessReviewsFilterParameter": {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The filter to apply on the operation. Other than standard filters, one custom filter option is supported : 'assignedToMeToReview()'. When one specified $filter=assignedToMeToReview(), only items that are assigned to the calling user to review are returned",
+ "x-ms-skip-url-encoding": true,
+ "x-ms-parameter-location": "method"
}
}
}
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/examples/GetAccessReviewInstanceAssignedForMyApproval.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/examples/GetAccessReviewInstanceAssignedForMyApproval.json
index 21c7b4f65958..6a31c9a623a6 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/examples/GetAccessReviewInstanceAssignedForMyApproval.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/examples/GetAccessReviewInstanceAssignedForMyApproval.json
@@ -2,7 +2,8 @@
"parameters": {
"api-version": "2021-03-01-preview",
"scheduleDefinitionId": "488a6d0e-0a63-4946-86e3-1f5bbc934661",
- "id": "4135f961-be78-4005-8101-c72a5af307a2"
+ "id": "4135f961-be78-4005-8101-c72a5af307a2",
+ "$filter": "assignedToMeToReview()"
},
"responses": {
"200": {
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/examples/GetAccessReviewInstancesAssignedForMyApproval.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/examples/GetAccessReviewInstancesAssignedForMyApproval.json
index ecde1dabf322..106c6b99a13f 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/examples/GetAccessReviewInstancesAssignedForMyApproval.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/examples/GetAccessReviewInstancesAssignedForMyApproval.json
@@ -1,7 +1,8 @@
{
"parameters": {
"api-version": "2021-03-01-preview",
- "scheduleDefinitionId": "488a6d0e-0a63-4946-86e3-1f5bbc934661"
+ "scheduleDefinitionId": "488a6d0e-0a63-4946-86e3-1f5bbc934661",
+ "$filter": "assignedToMeToReview()"
},
"responses": {
"200": {
diff --git a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/examples/GetAccessReviewScheduleDefinitionsAssignedForMyApproval.json b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/examples/GetAccessReviewScheduleDefinitionsAssignedForMyApproval.json
index e4225ed1bb8c..c45aa036bb0c 100644
--- a/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/examples/GetAccessReviewScheduleDefinitionsAssignedForMyApproval.json
+++ b/specification/authorization/resource-manager/Microsoft.Authorization/preview/2021-03-01-preview/examples/GetAccessReviewScheduleDefinitionsAssignedForMyApproval.json
@@ -1,6 +1,7 @@
{
"parameters": {
- "api-version": "2021-03-01-preview"
+ "api-version": "2021-03-01-preview",
+ "$filter": "assignedToMeToReview()"
},
"responses": {
"200": {
diff --git a/specification/authorization/resource-manager/readme.azureresourceschema.md b/specification/authorization/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 374bf0279fc0..000000000000
--- a/specification/authorization/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,194 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-authorization-2021-03-01-preview
- - tag: schema-authorization-2021-01-01-preview
- - tag: schema-authorization-2020-10-01-preview
- - tag: schema-authorization-2020-08-01-preview
- - tag: schema-authorization-2020-04-01-preview
- - tag: schema-authorization-2020-03-01-preview
- - tag: schema-authorization-2019-08-01-preview
- - tag: schema-authorization-2018-09-01-preview
- - tag: schema-authorization-2018-07-01-preview
- - tag: schema-authorization-2018-05-01-preview
- - tag: schema-authorization-2018-01-01-preview
- - tag: schema-authorization-2017-10-01-preview
- - tag: schema-authorization-2015-07-01
- - tag: schema-authorization-2015-06-01
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-authorization-2021-03-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-authorization-2021-03-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Authorization/preview/2021-03-01-preview/authorization-AccessReviewCalls.json
-
-```
-
-### Tag: schema-authorization-2021-01-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-authorization-2021-01-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Authorization/preview/2021-01-01-preview/authorization-RoleAssignmentApprovalCalls.json
-
-```
-
-### Tag: schema-authorization-2020-10-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-authorization-2020-10-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentSchedule.json
- - Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentScheduleInstance.json
- - Microsoft.Authorization/preview/2020-10-01-preview/RoleAssignmentScheduleRequest.json
- - Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilitySchedule.json
- - Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilityScheduleInstance.json
- - Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilityScheduleRequest.json
- - Microsoft.Authorization/preview/2020-10-01-preview/RoleManagementPolicy.json
- - Microsoft.Authorization/preview/2020-10-01-preview/RoleManagementPolicyAssignment.json
- - Microsoft.Authorization/preview/2020-10-01-preview/authorization-RoleAssignmentsCalls.json
-
-```
-
-### Tag: schema-authorization-2020-08-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-authorization-2020-08-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Authorization/preview/2020-08-01-preview/authorization-RoleAssignmentsCalls.json
-
-```
-
-### Tag: schema-authorization-2020-04-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-authorization-2020-04-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Authorization/preview/2020-04-01-preview/authorization-RoleAssignmentsCalls.json
-
-```
-
-### Tag: schema-authorization-2020-03-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-authorization-2020-03-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Authorization/preview/2020-03-01-preview/authorization-RoleAssignmentsCalls.json
-
-```
-
-### Tag: schema-authorization-2019-08-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-authorization-2019-08-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Authorization/preview/2019-08-01-preview/authorization-UsageMetricsCalls.json
-
-```
-
-### Tag: schema-authorization-2018-09-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-authorization-2018-09-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Authorization/preview/2018-09-01-preview/authorization-RoleAssignmentsCalls.json
-
-```
-
-### Tag: schema-authorization-2018-07-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-authorization-2018-07-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Authorization/preview/2018-07-01-preview/authorization-DenyAssignmentGetCalls.json
-
-```
-
-### Tag: schema-authorization-2018-05-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-authorization-2018-05-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Authorization/preview/2018-05-01-preview/authorization-AccessReviewCalls.json
-
-```
-
-### Tag: schema-authorization-2018-01-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-authorization-2018-01-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Authorization/preview/2018-01-01-preview/authorization-ProviderOperationsCalls.json
- - Microsoft.Authorization/preview/2018-01-01-preview/authorization-RoleDefinitionsCalls.json
- - Microsoft.Authorization/preview/2018-01-01-preview/authorization-RoleAssignmentsCalls.json
-
-```
-
-### Tag: schema-authorization-2017-10-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-authorization-2017-10-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Authorization/preview/2017-10-01-preview/authorization-RoleAssignmentsCalls.json
-
-```
-
-### Tag: schema-authorization-2015-07-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-authorization-2015-07-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Authorization/stable/2015-07-01/authorization-ElevateAccessCalls.json
- - Microsoft.Authorization/stable/2015-07-01/authorization-RoleDefinitionsCalls.json
- - Microsoft.Authorization/stable/2015-07-01/authorization-ProviderOperationsCalls.json
- - Microsoft.Authorization/stable/2015-07-01/authorization-RoleAssignmentsCalls.json
- - Microsoft.Authorization/stable/2015-07-01/authorization-ClassicAdminCalls.json
-
-```
-
-### Tag: schema-authorization-2015-06-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-authorization-2015-06-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Authorization/preview/2015-06-01/authorization-ClassicAdminCalls.json
-
-```
diff --git a/specification/authorization/resource-manager/readme.csharp.md b/specification/authorization/resource-manager/readme.csharp.md
index 98672bc03bc6..b2467c1c74d4 100644
--- a/specification/authorization/resource-manager/readme.csharp.md
+++ b/specification/authorization/resource-manager/readme.csharp.md
@@ -110,7 +110,7 @@ batch:
- tag: profile-hybrid-2019-03-01
```
- ### Profile: hybrid_2020_09_01
+### Profile: hybrid_2020_09_01
These settings apply only when `--csharp-profile=hybrid_2020_09_01` is specified on the command line.
@@ -121,3 +121,15 @@ output-folder: $(csharp-sdks-folder)/$(csharp-profile)/Authorization/Management.
batch:
- tag: profile-hybrid-2020-09-01
```
+
+### Profile: profile_2020_10_01_preview
+
+These settings apply only when `--csharp-profile=profile_2020_10_01_preview` is specified on the command line.
+
+ ``` yaml $(csharp-profile)=='profile_2020_10_01_preview'
+namespace: Microsoft.Azure.Management.Profiles.$(csharp-profile).Authorization
+output-folder: $(csharp-sdks-folder)/Authorization/Management.Authorization/$(csharp-profile)/Generated
+
+batch:
+ - tag: package-2020-10-01-preview
+ ```
\ No newline at end of file
diff --git a/specification/authorization/resource-manager/readme.go.md b/specification/authorization/resource-manager/readme.go.md
index 7d09139d9502..5fc1395ba05f 100644
--- a/specification/authorization/resource-manager/readme.go.md
+++ b/specification/authorization/resource-manager/readme.go.md
@@ -19,6 +19,7 @@ batch:
- tag: package-2018-07-01-preview
- tag: package-2018-09-01-preview
- tag: package-2020-04-01-preview
+ - tag: package-2020-10-01-preview
```
### Tag: package-2015-07-01 and go
@@ -74,3 +75,12 @@ Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-10-01-preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-10-01-preview/$(namespace)
+```
diff --git a/specification/authorization/resource-manager/readme.java.md b/specification/authorization/resource-manager/readme.java.md
index 5ee034dfdb6e..be6d12d76089 100644
--- a/specification/authorization/resource-manager/readme.java.md
+++ b/specification/authorization/resource-manager/readme.java.md
@@ -20,6 +20,7 @@ batch:
- tag: package-2018-07-01-preview-only
- tag: package-2015-06-01-preview
- tag: package-2018-05-01-preview
+ - tag: package-2020-10-01-preview
- tag: package-2021-01-01-preview-only
- tag: package-2021-03-01-preview-only
```
@@ -114,3 +115,16 @@ java:
regenerate-manager: true
generate-interface: true
```
+
+### Tag: package-2020-10-01-preview and java
+
+These settings apply only when `--tag=package-2020-10-01-preview --java` is specified on he command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2020-10-01-preview' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.authorization.v2020_10_01_preview
+ output-folder: $(azure-libraries-for-java-folder)/sdk/authorization/mgmt-v2020_10_01_preview
+regenerate-manager: true
+generate-interface: true
+```
diff --git a/specification/authorization/resource-manager/readme.md b/specification/authorization/resource-manager/readme.md
index b12cfed1deb6..b5b24935109a 100644
--- a/specification/authorization/resource-manager/readme.md
+++ b/specification/authorization/resource-manager/readme.md
@@ -82,6 +82,12 @@ directive:
- suppress: XmsPathsMustOverloadPaths
from: authorization-RoleDefinitionsCalls.json
reason: x-ms-paths extension was previously required. Suppressing so that we don't have to make changes to existing APIs.
+ - suppress: AddedPropertyInResponse
+ from: authorization-AccessReviewCalls.json
+ reason: API documentation is not exposed yet. We're making some small changes before publishing documentation.
+ - suppress: AddingOptionalProperty
+ from: authorization-AccessReviewCalls.json
+ reason: API documentation is not exposed yet. We're making some small changes before publishing documentation.
```
### Tag: package-2021-03-01-preview-only
@@ -107,6 +113,7 @@ input-file:
- Microsoft.Authorization/preview/2020-10-01-preview/RoleEligibilityScheduleRequest.json
- Microsoft.Authorization/preview/2020-10-01-preview/RoleManagementPolicy.json
- Microsoft.Authorization/preview/2020-10-01-preview/RoleManagementPolicyAssignment.json
+- Microsoft.Authorization/preview/2020-10-01-preview/EligibleChildResources.json
- Microsoft.Authorization/preview/2020-10-01-preview/authorization-RoleAssignmentsCalls.json
```
@@ -345,8 +352,6 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_authorization']
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js authorization/resource-manager
```
## Go
@@ -357,7 +362,5 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/authorization/resource-manager/readme.python.md b/specification/authorization/resource-manager/readme.python.md
index abe572efba2c..f43554d6a8ea 100644
--- a/specification/authorization/resource-manager/readme.python.md
+++ b/specification/authorization/resource-manager/readme.python.md
@@ -24,6 +24,7 @@ batch:
- tag: package-2021-03-01-preview-only
- tag: package-2021-01-01-preview-only
- tag: package-2020-04-01-preview-only
+ - tag: package-2020-10-01-preview
- tag: package-2018-09-01-preview-only
- tag: package-2018-07-01-preview-only
- tag: package-2018-05-01-preview
@@ -121,3 +122,12 @@ python:
namespace: azure.mgmt.authorization.v2021_01_01_preview
output-folder: $(python-sdks-folder)/authorization/azure-mgmt-authorization/azure/mgmt/authorization/v2021_01_01_preview
```
+### Tag: package-2020-10-01-preview and python
+
+These settings apply only when `--tag=package-2020-10-01-preview --python` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-10-01-preview' && $(python)
+python:
+ namespace: azure.mgmt.authorization.v2020_10_01_preview
+ output-folder: $(python-sdks-folder)/authorization/azure-mgmt-authorization/azure/mgmt/authorization/v2020_10_01_preview
+```
\ No newline at end of file
diff --git a/specification/authorization/resource-manager/readme.ruby.md b/specification/authorization/resource-manager/readme.ruby.md
index 17e0ca5f7794..f51bc0959efd 100644
--- a/specification/authorization/resource-manager/readme.ruby.md
+++ b/specification/authorization/resource-manager/readme.ruby.md
@@ -17,6 +17,7 @@ batch:
- tag: package-2017-10-01-preview-only
- tag: package-2018-01-01-preview-only
- tag: package-2018-05-01-preview-only
+ - tag: package-2020-10-01-preview
- tag: package-2021-01-01-preview-only
- tag: package-2021-03-01-preview-only
```
@@ -72,6 +73,16 @@ namespace: "Azure::Authorization::Mgmt::V2018_05_01_preview"
output-folder: $(ruby-sdks-folder)/management/azure_mgmt_authorization/lib
```
+### Tag: package-2020-10-01-preview and ruby
+
+These settings apply only when `--tag=package-2020-10-01-preview --ruby` is specified on the command line.
+Please also specify `--ruby-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-10-01-preview' && $(ruby)
+namespace: "Azure::Authorization::Mgmt::V2020_10_01_preview"
+output-folder: $(ruby-sdks-folder)/management/azure_mgmt_authorization/lib
+```
+
### Tag: package-2021-01-01-preview-only and ruby
These settings apply only when `--tag=package-2021-01-01-preview-only --ruby` is specified on the command line.
diff --git a/specification/authorization/resource-manager/readme.typescript.md b/specification/authorization/resource-manager/readme.typescript.md
index 83a6872c020c..f491412a6532 100644
--- a/specification/authorization/resource-manager/readme.typescript.md
+++ b/specification/authorization/resource-manager/readme.typescript.md
@@ -44,3 +44,16 @@ typescript:
batch:
- tag: profile-hybrid-2020-09-01
```
+
+### Profile: package-2020-10-01-preview
+
+These settings apply only when `--profile=package-2020-10-01-preview` is specified on the command line.
+
+``` yaml $(profile)=='package-2020-10-01-preview'
+typescript:
+ package-name: "@azure/arm-authorization-package-2020-10-01-preview"
+ output-folder: "$(typescript-sdks-folder)/sdk/authorization/arm-authorization-package-2020-10-01-preview"
+ clear-output-folder: true
+ batch:
+ - tag: package-2020-10-01-preview
+```
diff --git a/specification/automanage/resource-manager/readme.azureresourceschema.md b/specification/automanage/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 4a51ecd85b66..000000000000
--- a/specification/automanage/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,24 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-automanage-2020-06-30-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-automanage-2020-06-30-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-automanage-2020-06-30-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Automanage/preview/2020-06-30-preview/automanage.json
-
-```
diff --git a/specification/automanage/resource-manager/readme.md b/specification/automanage/resource-manager/readme.md
index 4e54a1d44f3c..c2b15407698e 100644
--- a/specification/automanage/resource-manager/readme.md
+++ b/specification/automanage/resource-manager/readme.md
@@ -62,7 +62,6 @@ This is not used by Autorest itself.
``` yaml $(swagger-to-sdk)
swagger-to-sdk:
- repo: azure-sdk-for-net
- - repo: azure-sdk-for-python
- repo: azure-sdk-for-python-track2
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
@@ -72,6 +71,10 @@ swagger-to-sdk:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_automanage']
```
+## Python
+
+See configuration in [readme.python.md](./readme.python.md)
+
## C#
These settings apply only when `--csharp` is specified on the command line.
diff --git a/specification/automanage/resource-manager/readme.python.md b/specification/automanage/resource-manager/readme.python.md
index caf9a094f45f..31f326689f7f 100644
--- a/specification/automanage/resource-manager/readme.python.md
+++ b/specification/automanage/resource-manager/readme.python.md
@@ -4,19 +4,8 @@ These settings apply only when `--python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
-``` yaml $(python) && !$(track2)
-python-mode: create
-python:
- azure-arm: true
- license-header: MICROSOFT_MIT_NO_VERSION
- payload-flattening-threshold: 2
- namespace: azure.mgmt.automanage
- package-name: azure-mgmt-automanage
- package-version: 0.1.0
- clear-output-folder: true
-```
-```yaml $(python) && $(track2)
+```yaml $(python)
azure-arm: true
license-header: MICROSOFT_MIT_NO_VERSION
package-name: azure-mgmt-automanage
@@ -26,15 +15,11 @@ no-namespace-folders: true
```
``` yaml $(python) && $(python-mode) == 'update'
-python:
- no-namespace-folders: true
- output-folder: $(python-sdks-folder)/automanage/azure-mgmt-automanage/azure/mgmt/automanage
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/automanage/azure-mgmt-automanage/azure/mgmt/automanage
```
``` yaml $(python) && $(python-mode) == 'create'
-python:
- basic-setup-py: true
- output-folder: $(python-sdks-folder)/automanage/azure-mgmt-automanage
basic-setup-py: true
output-folder: $(python-sdks-folder)/automanage/azure-mgmt-automanage
```
diff --git a/specification/automation/resource-manager/readme.azureresourceschema.md b/specification/automation/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index f6041cfc7032..000000000000
--- a/specification/automation/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,159 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-automation-2020-01-13-preview
- - tag: schema-automation-2019-06-01
- - tag: schema-automation-2018-06-30
- - tag: schema-automation-2018-01-15
- - tag: schema-automation-2017-05-15-preview
- - tag: schema-automation-2015-10-31
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-automation-2020-01-13-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-automation-2020-01-13-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Automation/preview/2020-01-13-preview/privateEndpointConnection.json
- - Microsoft.Automation/preview/2020-01-13-preview/privateLinkResources.json
- - Microsoft.Automation/preview/2020-01-13-preview/python2package.json
- - Microsoft.Automation/preview/2020-01-13-preview/dscNode.json
- - Microsoft.Automation/preview/2020-01-13-preview/dscNodeConfiguration.json
- - Microsoft.Automation/preview/2020-01-13-preview/dscCompilationJob.json
- - Microsoft.Automation/preview/2020-01-13-preview/dscNodeCounts.json
- - Microsoft.Automation/preview/2020-01-13-preview/sourceControl.json
- - Microsoft.Automation/preview/2020-01-13-preview/sourceControlSyncJob.json
- - Microsoft.Automation/preview/2020-01-13-preview/sourceControlSyncJobStreams.json
- - Microsoft.Automation/preview/2020-01-13-preview/account.json
- - Microsoft.Automation/preview/2020-01-13-preview/certificate.json
- - Microsoft.Automation/preview/2020-01-13-preview/connection.json
- - Microsoft.Automation/preview/2020-01-13-preview/connectionType.json
- - Microsoft.Automation/preview/2020-01-13-preview/credential.json
- - Microsoft.Automation/preview/2020-01-13-preview/hybridRunbookWorkerGroup.json
- - Microsoft.Automation/preview/2020-01-13-preview/jobSchedule.json
- - Microsoft.Automation/preview/2020-01-13-preview/linkedWorkspace.json
- - Microsoft.Automation/preview/2020-01-13-preview/module.json
- - Microsoft.Automation/preview/2020-01-13-preview/schedule.json
- - Microsoft.Automation/preview/2020-01-13-preview/variable.json
- - Microsoft.Automation/preview/2020-01-13-preview/watcher.json
-
-```
-
-### Tag: schema-automation-2019-06-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-automation-2019-06-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Automation/stable/2019-06-01/runbook.json
- - Microsoft.Automation/stable/2019-06-01/python2package.json
- - Microsoft.Automation/stable/2019-06-01/dscNode.json
- - Microsoft.Automation/stable/2019-06-01/dscCompilationJob.json
- - Microsoft.Automation/stable/2019-06-01/dscNodeConfiguration.json
- - Microsoft.Automation/stable/2019-06-01/dscNodeCounts.json
- - Microsoft.Automation/stable/2019-06-01/softwareUpdateConfigurationRun.json
- - Microsoft.Automation/stable/2019-06-01/softwareUpdateConfigurationMachineRun.json
- - Microsoft.Automation/stable/2019-06-01/sourceControl.json
- - Microsoft.Automation/stable/2019-06-01/sourceControlSyncJob.json
- - Microsoft.Automation/stable/2019-06-01/sourceControlSyncJobStreams.json
- - Microsoft.Automation/stable/2019-06-01/job.json
- - Microsoft.Automation/stable/2019-06-01/account.json
- - Microsoft.Automation/stable/2019-06-01/certificate.json
- - Microsoft.Automation/stable/2019-06-01/connection.json
- - Microsoft.Automation/stable/2019-06-01/connectionType.json
- - Microsoft.Automation/stable/2019-06-01/credential.json
- - Microsoft.Automation/stable/2019-06-01/dscConfiguration.json
- - Microsoft.Automation/stable/2019-06-01/softwareUpdateConfiguration.json
- - Microsoft.Automation/stable/2019-06-01/hybridRunbookWorkerGroup.json
- - Microsoft.Automation/stable/2019-06-01/jobSchedule.json
- - Microsoft.Automation/stable/2019-06-01/linkedWorkspace.json
- - Microsoft.Automation/stable/2019-06-01/module.json
- - Microsoft.Automation/stable/2019-06-01/operations.json
- - Microsoft.Automation/stable/2019-06-01/schedule.json
- - Microsoft.Automation/stable/2019-06-01/variable.json
- - Microsoft.Automation/stable/2019-06-01/watcher.json
-
-```
-
-### Tag: schema-automation-2018-06-30 and azureresourceschema
-
-``` yaml $(tag) == 'schema-automation-2018-06-30' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Automation/stable/2018-06-30/runbook.json
- - Microsoft.Automation/stable/2018-06-30/python2package.json
-
-```
-
-### Tag: schema-automation-2018-01-15 and azureresourceschema
-
-``` yaml $(tag) == 'schema-automation-2018-01-15' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Automation/stable/2018-01-15/dscNode.json
- - Microsoft.Automation/stable/2018-01-15/dscCompilationJob.json
- - Microsoft.Automation/stable/2018-01-15/dscNodeConfiguration.json
- - Microsoft.Automation/stable/2018-01-15/dscNodeCounts.json
-
-```
-
-### Tag: schema-automation-2017-05-15-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-automation-2017-05-15-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Automation/preview/2017-05-15-preview/softwareUpdateConfiguration.json
- - Microsoft.Automation/preview/2017-05-15-preview/softwareUpdateConfigurationRun.json
- - Microsoft.Automation/preview/2017-05-15-preview/softwareUpdateConfigurationMachineRun.json
- - Microsoft.Automation/preview/2017-05-15-preview/sourceControl.json
- - Microsoft.Automation/preview/2017-05-15-preview/sourceControlSyncJob.json
- - Microsoft.Automation/preview/2017-05-15-preview/sourceControlSyncJobStreams.json
- - Microsoft.Automation/preview/2017-05-15-preview/job.json
-
-```
-
-### Tag: schema-automation-2015-10-31 and azureresourceschema
-
-``` yaml $(tag) == 'schema-automation-2015-10-31' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Automation/stable/2015-10-31/account.json
- - Microsoft.Automation/stable/2015-10-31/certificate.json
- - Microsoft.Automation/stable/2015-10-31/connection.json
- - Microsoft.Automation/stable/2015-10-31/connectionType.json
- - Microsoft.Automation/stable/2015-10-31/credential.json
- - Microsoft.Automation/stable/2015-10-31/dscCompilationJob.json
- - Microsoft.Automation/stable/2015-10-31/dscConfiguration.json
- - Microsoft.Automation/stable/2015-10-31/dscNode.json
- - Microsoft.Automation/stable/2015-10-31/dscNodeConfiguration.json
- - Microsoft.Automation/stable/2015-10-31/hybridRunbookWorkerGroup.json
- - Microsoft.Automation/stable/2015-10-31/job.json
- - Microsoft.Automation/stable/2015-10-31/jobSchedule.json
- - Microsoft.Automation/stable/2015-10-31/linkedWorkspace.json
- - Microsoft.Automation/stable/2015-10-31/module.json
- - Microsoft.Automation/stable/2015-10-31/runbook.json
- - Microsoft.Automation/stable/2015-10-31/schedule.json
- - Microsoft.Automation/stable/2015-10-31/variable.json
- - Microsoft.Automation/stable/2015-10-31/watcher.json
- - Microsoft.Automation/stable/2015-10-31/webhook.json
-
-```
diff --git a/specification/automation/resource-manager/readme.md b/specification/automation/resource-manager/readme.md
index a6d6cffc732e..333ec8249cba 100644
--- a/specification/automation/resource-manager/readme.md
+++ b/specification/automation/resource-manager/readme.md
@@ -279,8 +279,6 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_automation']
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js automation/resource-manager
```
@@ -342,7 +340,5 @@ generate-interface: true
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/AzureBridge.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/AzureBridge.json
index fda858d423a4..905307916692 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/AzureBridge.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/AzureBridge.json
@@ -13,7 +13,7 @@
"/providers/Microsoft.AzureBridge.Admin/operations": {
"get": {
"x-ms-examples": {
- "Returns the list of support REST operations.": {
+ "Returns the list of supported REST operations.": {
"$ref": "./examples/Operations/List.json"
}
},
@@ -85,15 +85,26 @@
},
"Operation": {
"description": "Describes the supported REST operation.",
+ "type": "object",
"properties": {
+ "display": {
+ "description": "Contains the localized display information for this particular operation / action.",
+ "$ref": "#/definitions/Display",
+ "readOnly": true
+ },
+ "isDataAction": {
+ "description": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for ARM/control-plane operations.",
+ "type": "boolean",
+ "readOnly": true
+ },
"name": {
"description": "The name of the operation being performed on this particular object. This name should match the name that appears in RBAC or the event service.",
"type": "string",
"readOnly": true
},
- "display": {
- "description": "Contains the localized display information for this particular operation / action.",
- "$ref": "#/definitions/Display",
+ "origin": {
+ "description": "Origin for the operation.",
+ "type": "string",
"readOnly": true
}
}
diff --git a/specification/azsadmin/resource-manager/commerce/Microsoft.Commerce.Admin/preview/2015-06-01-preview/Commerce.json b/specification/azsadmin/resource-manager/commerce/Microsoft.Commerce.Admin/preview/2015-06-01-preview/Commerce.json
index 890c3b5b8fda..1cad4428fcff 100644
--- a/specification/azsadmin/resource-manager/commerce/Microsoft.Commerce.Admin/preview/2015-06-01-preview/Commerce.json
+++ b/specification/azsadmin/resource-manager/commerce/Microsoft.Commerce.Admin/preview/2015-06-01-preview/Commerce.json
@@ -39,6 +39,12 @@
"schema": {
"$ref": "#/definitions/OperationList"
}
+ },
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedErrorInfo"
+ }
}
},
"x-ms-pageable": {
@@ -82,6 +88,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedErrorInfo"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -105,7 +117,7 @@
"tags": [
"Commerce"
],
- "operationId": "UpdateEncryption",
+ "operationId": "Commerce_UpdateEncryption",
"parameters": [
{
"$ref": "#/parameters/SubscriptionIdParameter"
@@ -115,6 +127,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedErrorInfo"
+ }
+ },
"200": {
"description": "OK"
}
@@ -225,14 +243,27 @@
},
"Operation": {
"description": "Describes the supported REST operation.",
+ "type": "object",
"properties": {
+ "display": {
+ "description": "Contains the localized display information for this particular operation or action.",
+ "$ref": "#/definitions/Display",
+ "readOnly": true
+ },
+ "isDataAction": {
+ "description": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for ARM/control-plane operations.",
+ "type": "boolean",
+ "readOnly": true
+ },
"name": {
"description": "The name of the operation performed on the object. The name should match the action name that appears in RBAC or the event service.",
- "type": "string"
+ "type": "string",
+ "readOnly": true
},
- "display": {
- "description": "Contains the localized display information for this particular operation or action.",
- "$ref": "#/definitions/Display"
+ "origin": {
+ "description": "Origin for the operation.",
+ "type": "string",
+ "readOnly": true
}
}
},
@@ -240,20 +271,24 @@
"description": "Contains the localized display information for this particular operation / action.",
"properties": {
"provider": {
- "description": "The localized, friendly version of the resource provider name. The provider name is expected to include the name of the publisher or company responsible. The provider name format should use title case and begin with \"Microsoft\" for first-party services. For example, the provider name may be\"Microsoft Monitoring Insights\" or \"Microsoft Compute\".",
- "type": "string"
+ "description": "The localized friendly form of the resource provider name – it is expected to also include the publisher/company responsible. It should use Title Casing and begin with \"Microsoft\" for 1st party services. e.g. \"Microsoft Monitoring Insights\" or \"Microsoft Compute.\"",
+ "type": "string",
+ "readOnly": true
},
"resource": {
"description": "The localized, friendly version of the resource type related to this action or operation; the resource type should match the public documentation for the resource provider.",
- "type": "string"
+ "type": "string",
+ "readOnly": true
},
"operation": {
- "description": "The localized, friendly name for the operation. Use the name as it will be displayed to the user.",
- "type": "string"
+ "description": "The localized, friendly name for the operation. Use the name as it will displayed to the user.",
+ "type": "string",
+ "readOnly": true
},
"description": {
"description": "The localized, friendly description for the operation. The description will be displayed to the user. It should be thorough and concise for used in both tooltips and detailed views.",
- "type": "string"
+ "type": "string",
+ "readOnly": true
}
}
},
@@ -272,6 +307,40 @@
"type": "string"
}
}
+ },
+ "ExtendedErrorInfo": {
+ "type": "object",
+ "description": "Error response.",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/ErrorDefinition",
+ "description": "The error details."
+ }
+ }
+ },
+ "ErrorDefinition": {
+ "type": "object",
+ "description": "Error definition.",
+ "properties": {
+ "code": {
+ "description": "Service specific error code which serves as the substatus for the HTTP error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Description of the error.",
+ "type": "string",
+ "readOnly": true
+ },
+ "details": {
+ "description": "Internal error details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDefinition"
+ },
+ "readOnly": true
+ }
+ }
}
},
"parameters": {
diff --git a/specification/azsadmin/resource-manager/commerce/readme.md b/specification/azsadmin/resource-manager/commerce/readme.md
index 7e36302807ea..907e67cbbf52 100644
--- a/specification/azsadmin/resource-manager/commerce/readme.md
+++ b/specification/azsadmin/resource-manager/commerce/readme.md
@@ -2,7 +2,7 @@
> see https://aka.ms/autorest
-This is the AutoRest configuration file for Commerce Admin.
+This is the AutoRest configuration file for Commerce Admin. We do not ship any language SDKs for AzureStack Administrator APIs and these APIs do not exist in azure.
---
## Getting Started
@@ -39,16 +39,6 @@ input-file:
---
# Code Generation
-## Swagger to SDK
-
-This section describes what SDK should be generated by the automatic system.
-This is not used by Autorest itself. Currently only the C# SDK is supported.
-
-``` yaml $(swagger-to-sdk)
-swagger-to-sdk:
- - repo: azure-sdk-for-sdk
-```
-
## C#
``` yaml $(csharp)
diff --git a/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/preview/2015-12-01-preview/Compute.json b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/preview/2015-12-01-preview/Compute.json
index 7a3968f659a9..2629d4674821 100644
--- a/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/preview/2015-12-01-preview/Compute.json
+++ b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/preview/2015-12-01-preview/Compute.json
@@ -94,8 +94,9 @@
"type": "string"
},
"isDataAction": {
- "description": "Gets or sets a value indicating whether the operation is a data action or not.",
- "type": "boolean"
+ "description": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for ARM/control-plane operations.",
+ "type": "boolean",
+ "readOnly": true
},
"display": {
"description": "Contains the localized display information for this particular operation or action.",
diff --git a/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/preview/2015-12-01-preview/examples/Operations/List.json b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/preview/2015-12-01-preview/examples/Operations/List.json
index 023347b494d8..ed7fc4ebeeb6 100644
--- a/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/preview/2015-12-01-preview/examples/Operations/List.json
+++ b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/preview/2015-12-01-preview/examples/Operations/List.json
@@ -116,7 +116,6 @@
},
{
"name": "Microsoft.Compute.Admin/locations/Disks/read",
- "isDataAction": false,
"display": {
"provider": "Microsoft Compute Admin",
"resource": "Disks",
@@ -126,7 +125,6 @@
},
{
"name": "Microsoft.Compute.Admin/locations/DiskMigrationJobs/read",
- "isDataAction": false,
"display": {
"provider": "Microsoft Compute Admin",
"resource": "DiskMigrationJobs",
@@ -136,7 +134,6 @@
},
{
"name": "Microsoft.Compute.Admin/locations/DiskMigrationJobs/write",
- "isDataAction": false,
"display": {
"provider": "Microsoft Compute Admin",
"resource": "DiskMigrationJobs",
@@ -146,7 +143,6 @@
},
{
"name": "Microsoft.Compute.Admin/locations/DiskMigrationJobs/cancel/action",
- "isDataAction": false,
"display": {
"provider": "Microsoft Compute Admin",
"resource": "DiskMigrationJobs",
diff --git a/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/DiskMigrationJobs.json b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/DiskMigrationJobs.json
new file mode 100644
index 000000000000..ebf93493cbd8
--- /dev/null
+++ b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/DiskMigrationJobs.json
@@ -0,0 +1,489 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2021-04-01",
+ "title": "ComputeDiskAdminManagementClient",
+ "description": "The Admin Compute Disk Management Client."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute.Admin/locations/{location}/diskmigrationjobs": {
+ "get": {
+ "x-ms-examples": {
+ "Returns a list of disk migration jobs.": {
+ "$ref": "./examples/DiskMigrationJobs/List.json"
+ }
+ },
+ "tags": [
+ "DiskMigrationJobs"
+ ],
+ "operationId": "DiskMigrationJobs_List",
+ "description": "Returns a list of disk migration jobs.",
+ "parameters": [
+ {
+ "$ref": "Disks.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "DiskMigrationJobs.json#/parameters/MigrationJobStatusParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ },
+ "200": {
+ "description": "OK -- The list of disk migration jobs has been returned.",
+ "schema": {
+ "$ref": "DiskMigrationJobs.json#/definitions/DiskMigrationJobList"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute.Admin/locations/{location}/diskmigrationjobs/{migrationId}": {
+ "get": {
+ "x-ms-examples": {
+ "Returns the requested disk migration job.": {
+ "$ref": "./examples/DiskMigrationJobs/Get.json"
+ }
+ },
+ "tags": [
+ "DiskMigrationJobs"
+ ],
+ "operationId": "DiskMigrationJobs_Get",
+ "description": "Returns the requested disk migration job.",
+ "parameters": [
+ {
+ "$ref": "Disks.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "DiskMigrationJobs.json#/parameters/MigrationIdParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ },
+ "200": {
+ "description": "OK -- The disk migration job has been returned.",
+ "schema": {
+ "$ref": "DiskMigrationJobs.json#/definitions/DiskMigrationJob"
+ }
+ }
+ }
+ },
+ "put": {
+ "x-ms-examples": {
+ "Create a disk migration job.": {
+ "$ref": "./examples/DiskMigrationJobs/Create.json"
+ }
+ },
+ "tags": [
+ "DiskMigrationJobs"
+ ],
+ "operationId": "DiskMigrationJobs_Create",
+ "description": "Create a disk migration job.",
+ "parameters": [
+ {
+ "$ref": "Disks.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "DiskMigrationJobs.json#/parameters/MigrationIdParameter"
+ },
+ {
+ "$ref": "DiskMigrationJobs.json#/parameters/TargetShareParameter"
+ },
+ {
+ "$ref": "DiskMigrationJobs.json#/parameters/TargetScaleUnitParameter"
+ },
+ {
+ "$ref": "DiskMigrationJobs.json#/parameters/TargetVolumeLabelParameter"
+ },
+ {
+ "$ref": "DiskMigrationJobs.json#/parameters/DiskListParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ },
+ "200": {
+ "description": "OK -- Disk migration job is created successfully.",
+ "schema": {
+ "$ref": "DiskMigrationJobs.json#/definitions/DiskMigrationJob"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute.Admin/locations/{location}/diskMigrationJobs/{migrationId}/cancel": {
+ "post": {
+ "x-ms-examples": {
+ "Cancel a disk migration job.": {
+ "$ref": "./examples/DiskMigrationJobs/Cancel.json"
+ }
+ },
+ "tags": [
+ "DiskMigrationJobs"
+ ],
+ "operationId": "DiskMigrationJobs_Cancel",
+ "description": "Cancel a disk migration job.",
+ "parameters": [
+ {
+ "$ref": "Disks.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "DiskMigrationJobs.json#/parameters/MigrationIdParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ },
+ "200": {
+ "description": "OK -- Disk migration job cancellation is called.",
+ "schema": {
+ "$ref": "DiskMigrationJobs.json#/definitions/DiskMigrationJob"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ErrorResponse": {
+ "description": "Error response.",
+ "properties": {
+ "error": {
+ "description": "Error definition.",
+ "$ref": "#/definitions/ErrorDefinition"
+ }
+ }
+ },
+ "ErrorDefinition": {
+ "description": "Error definition.",
+ "readOnly": true,
+ "required": [
+ "message",
+ "code"
+ ],
+ "properties": {
+ "code": {
+ "description": "Service specific error code which serves as the substatus for the HTTP error code.",
+ "type": "string",
+ "minimum": 100,
+ "maximum": 600
+ },
+ "message": {
+ "description": "Description of the error.",
+ "type": "string"
+ }
+ }
+ },
+ "MigrationJobStatus": {
+ "description": "Migration job status.",
+ "type": "string",
+ "enum": [
+ "Undefined",
+ "Running",
+ "Succeeded",
+ "Failed",
+ "Canceled",
+ "Pending"
+ ],
+ "x-ms-enum": {
+ "name": "MigrationJobStatus",
+ "modelAsString": true
+ }
+ },
+ "MigrationSubTaskStatus": {
+ "description": "Migration child task status.",
+ "type": "string",
+ "enum": [
+ "Undefined",
+ "Running",
+ "Succeeded",
+ "Failed",
+ "Canceled",
+ "Pending",
+ "Skipped"
+ ],
+ "x-ms-enum": {
+ "name": "MigrationSubTaskStatus",
+ "modelAsString": true
+ }
+ },
+ "MigrationSubTaskProperties": {
+ "description": "Disk migration child task properties.",
+ "type": "object",
+ "properties": {
+ "migrationSubtaskStatus": {
+ "description": "The disk migration child task status.",
+ "$ref": "DiskMigrationJobs.json#/definitions/MigrationSubTaskStatus",
+ "readOnly": true
+ },
+ "reason": {
+ "description": "The reason of task failure.",
+ "type": "string",
+ "readOnly": true
+ },
+ "startTime": {
+ "description": "The task start time.",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "endTime": {
+ "description": "The task end time.",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "targetShare": {
+ "description": "The target share of migration task.",
+ "type": "string",
+ "readOnly": true
+ },
+ "sourceShare": {
+ "description": "The source share of migration task.",
+ "type": "string",
+ "readOnly": true
+ },
+ "targetDiskStateForMigration": {
+ "description": "The disk status.",
+ "$ref": "Disks.json#/definitions/DiskState",
+ "readOnly": true
+ },
+ "diskId": {
+ "description": "The id of disk.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "MigrationSubTaskList": {
+ "description": "List of disk migration tasks.",
+ "type": "array",
+ "items": {
+ "$ref": "DiskMigrationJobs.json#/definitions/MigrationSubTask"
+ }
+ },
+ "MigrationSubTask": {
+ "description": "Disk migration child task.",
+ "type": "object",
+ "properties": {
+ "migrationSubTaskId": {
+ "description": "The id of migration child task.",
+ "type": "string",
+ "readOnly": true
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "DiskMigrationJobs.json#/definitions/MigrationSubTaskProperties",
+ "description": "Disk migration child task properties."
+ }
+ }
+ },
+ "DiskMigrationJobProperties": {
+ "description": "Disk migration job properties.",
+ "type": "object",
+ "properties": {
+ "migrationId": {
+ "description": "The disk migration id.",
+ "type": "string"
+ },
+ "status": {
+ "description": "The current status of disk migration job.",
+ "$ref": "DiskMigrationJobs.json#/definitions/MigrationJobStatus",
+ "readOnly": true
+ },
+ "subtasks": {
+ "description": "The list of child migration tasks.",
+ "$ref": "DiskMigrationJobs.json#/definitions/MigrationSubTaskList",
+ "readOnly": true
+ },
+ "creationTime": {
+ "description": "The job creation time.",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "startTime": {
+ "description": "The job start time.",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "endTime": {
+ "description": "The job end time.",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "targetShare": {
+ "description": "The target share of migration job.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "DiskMigrationJob": {
+ "description": "Disk migration job.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "DiskMigrationJobs.json#/definitions/DiskMigrationJobProperties",
+ "description": "Disk migration properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../preview/2015-12-01-preview/Compute.json#/definitions/Resource"
+ }
+ ]
+ },
+ "DiskMigrationJobList": {
+ "type": "object",
+ "description": "List of disk migration jobs.",
+ "properties": {
+ "value": {
+ "description": "List of disk migration jobs.",
+ "type": "array",
+ "items": {
+ "$ref": "DiskMigrationJobs.json#/definitions/DiskMigrationJob"
+ }
+ },
+ "nextLink": {
+ "description": "URI to the next page.",
+ "type": "string"
+ }
+ }
+ },
+ "DiskListInput": {
+ "type": "array",
+ "description": "List of disks.",
+ "items": {
+ "$ref": "Disks.json#/definitions/Disk"
+ }
+ }
+ },
+ "parameters": {
+ "MigrationJobStatusParameter": {
+ "description": "The parameters of disk migration job status.",
+ "name": "status",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "MigrationIdParameter": {
+ "description": "The migration job guid name.",
+ "name": "migrationId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "TargetShareParameter": {
+ "description": "The target share name.",
+ "name": "targetShare",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "TargetScaleUnitParameter": {
+ "description": "The target scale unit name.",
+ "name": "targetScaleUnit",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "TargetVolumeLabelParameter": {
+ "description": "The target volume label.",
+ "name": "targetVolumeLabel",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "DiskListParameter": {
+ "description": "The parameters of disk list.",
+ "name": "disks",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "DiskMigrationJobs.json#/definitions/DiskListInput"
+ },
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Authorization uses an Azure Active Directory OAuth2 flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/Disks.json b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/Disks.json
new file mode 100644
index 000000000000..575505b8c72d
--- /dev/null
+++ b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/Disks.json
@@ -0,0 +1,447 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2021-04-01",
+ "title": "ComputeDiskAdminManagementClient",
+ "description": "The Admin Compute Disk Management Client."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute.Admin/locations/{location}/disks": {
+ "get": {
+ "x-ms-examples": {
+ "Returns a list of disks.": {
+ "$ref": "./examples/Disks/List.json"
+ }
+ },
+ "tags": [
+ "Disks"
+ ],
+ "operationId": "Disks_List",
+ "description": "Returns a list of disks.",
+ "parameters": [
+ {
+ "$ref": "Disks.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/UserSubscriptionIdParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/DiskStateParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/SourceSharePathParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/SourceScaleUnitParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/SourceVolumeLabelParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/DiskCountParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/DiskStartParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ },
+ "200": {
+ "description": "OK -- The list of disks has been returned.",
+ "schema": {
+ "$ref": "Disks.json#/definitions/DiskList"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute.Admin/locations/{location}/disks/{diskId}": {
+ "get": {
+ "x-ms-examples": {
+ "Returns the requested disk.": {
+ "$ref": "./examples/Disks/Get.json"
+ }
+ },
+ "tags": [
+ "Disks"
+ ],
+ "operationId": "Disks_Get",
+ "description": "Returns the disk.",
+ "parameters": [
+ {
+ "$ref": "Disks.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/LocationParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/DiskIdParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/DiskSizeDetailParameter"
+ },
+ {
+ "$ref": "Disks.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ },
+ "200": {
+ "description": "OK -- The disk has been returned.",
+ "schema": {
+ "$ref": "Disks.json#/definitions/Disk"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ErrorResponse": {
+ "description": "Error response.",
+ "properties": {
+ "error": {
+ "description": "Error definition.",
+ "$ref": "#/definitions/ErrorDefinition"
+ }
+ }
+ },
+ "ErrorDefinition": {
+ "description": "Error definition.",
+ "readOnly": true,
+ "required": [
+ "message",
+ "code"
+ ],
+ "properties": {
+ "code": {
+ "description": "Service specific error code which serves as the substatus for the HTTP error code.",
+ "type": "string",
+ "minimum": 100,
+ "maximum": 600
+ },
+ "message": {
+ "description": "Description of the error.",
+ "type": "string"
+ }
+ }
+ },
+ "DiskProperties": {
+ "description": "Managed disk properties.",
+ "type": "object",
+ "properties": {
+ "diskId": {
+ "description": "The disk id.",
+ "type": "string"
+ },
+ "status": {
+ "description": "The disk status.",
+ "$ref": "Disks.json#/definitions/DiskState"
+ },
+ "sharePath": {
+ "description": "The disk share path.",
+ "type": "string"
+ },
+ "actualSizeGB": {
+ "description": "The actual size of disk in GB.",
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true
+ },
+ "provisionSizeGB": {
+ "description": "The provision size of disk in GB.",
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true
+ },
+ "managedBy": {
+ "description": "Compute resource Uri which owns this disk.",
+ "type": "string",
+ "readOnly": true
+ },
+ "userResourceId": {
+ "description": "The disk resource Uri from user view.",
+ "type": "string",
+ "readOnly": true
+ },
+ "diskType": {
+ "description": "The type of the disk resource.",
+ "$ref": "Disks.json#/definitions/DiskResourceType",
+ "readOnly": true
+ },
+ "diskSku": {
+ "description": "the disk sku.",
+ "$ref": "Disks.json#/definitions/AccountType",
+ "readOnly": true
+ },
+ "creationSourceUri": {
+ "description": "The disk creation source uri.",
+ "type": "string",
+ "readOnly": true
+ },
+ "creationOption": {
+ "description": "The disk creation option.",
+ "$ref": "Disks.json#/definitions/DiskCreationOption",
+ "readOnly": true
+ },
+ "exclusiveAllocatedSize": {
+ "description": "The exclusive allocated size for the disk.",
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true
+ }
+ }
+ },
+ "Disk": {
+ "description": "Managed Disk.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "Disks.json#/definitions/DiskProperties",
+ "description": "Disk properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../preview/2015-12-01-preview/Compute.json#/definitions/Resource"
+ }
+ ]
+ },
+ "DiskList": {
+ "type": "object",
+ "description": "List of disks.",
+ "properties": {
+ "value": {
+ "description": "List of disks.",
+ "type": "array",
+ "items": {
+ "$ref": "Disks.json#/definitions/Disk"
+ }
+ },
+ "nextLink": {
+ "description": "URI to the next page.",
+ "type": "string"
+ }
+ }
+ },
+ "DiskState": {
+ "description": "Disk State.",
+ "type": "string",
+ "enum": [
+ "Undefined",
+ "Unattached",
+ "Attached",
+ "Reserved",
+ "ActiveSAS",
+ "Unknown",
+ "All",
+ "Recommended",
+ "OfflineMigration",
+ "OnlineMigration"
+ ],
+ "x-ms-enum": {
+ "name": "DiskState",
+ "modelAsString": true
+ }
+ },
+ "DiskResourceType": {
+ "description": "Disk resource type.",
+ "type": "string",
+ "enum": [
+ "Undefined",
+ "Disk",
+ "Snapshot",
+ "RestorePoint",
+ "ManagedBlob"
+ ],
+ "x-ms-enum": {
+ "name": "DiskResourceType",
+ "modelAsString": true
+ }
+ },
+ "AccountType": {
+ "description": "Disk Sku.",
+ "type": "string",
+ "enum": [
+ "Standard_LRS",
+ "Standard_ZRS",
+ "Standard_GRS",
+ "Standard_RAGRS",
+ "Premium_LRS",
+ "StandardSSD_LRS",
+ "UltraSSD_LRS"
+ ],
+ "x-ms-enum": {
+ "name": "AccountType",
+ "modelAsString": true
+ }
+ },
+ "DiskCreationOption": {
+ "description": "Disk creation option.",
+ "type": "string",
+ "enum": [
+ "Empty",
+ "FromImage",
+ "Import",
+ "Copy",
+ "Restore",
+ "FromPreprovisioned",
+ "Undelete",
+ "Upload",
+ "RecoverFromBlob"
+ ],
+ "x-ms-enum": {
+ "name": "DiskCreationOption",
+ "modelAsString": true
+ }
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "Subscription credentials that uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
+ "required": true,
+ "type": "string"
+ },
+ "LocationParameter": {
+ "description": "Location of the resource.",
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "description": "Client API Version.",
+ "required": true,
+ "type": "string",
+ "default": "2021-04-01"
+ },
+ "UserSubscriptionIdParameter": {
+ "description": "User Subscription Id which the resource belongs to.",
+ "name": "userSubscriptionId",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "DiskStateParameter": {
+ "description": "The parameters of disk state.",
+ "name": "status",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "SourceSharePathParameter": {
+ "description": "The share which the resource belongs to.",
+ "name": "sharePath",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "SourceScaleUnitParameter": {
+ "description": "The scale unit which the resource belongs to.",
+ "name": "scaleUnit",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "SourceVolumeLabelParameter": {
+ "description": "The volume label of the volume which the resource belongs to.",
+ "name": "volumeLabel",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "DiskCountParameter": {
+ "description": "The maximum number of disks to return.",
+ "name": "count",
+ "in": "query",
+ "type": "integer",
+ "format": "int32",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "DiskStartParameter": {
+ "description": "The start index of disks in query.",
+ "name": "start",
+ "in": "query",
+ "type": "integer",
+ "format": "int32",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "DiskIdParameter": {
+ "description": "The disk guid as identity.",
+ "name": "diskId",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "DiskSizeDetailParameter": {
+ "description": "Switch for whether summary or detailed disk size information is returned.",
+ "name": "showSizeDetail",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "x-ms-parameter-location": "method",
+ "default": false
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Authorization uses an Azure Active Directory OAuth2 flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/DiskMigrationJobs/Cancel.json b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/DiskMigrationJobs/Cancel.json
new file mode 100644
index 000000000000..7b856e0967ec
--- /dev/null
+++ b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/DiskMigrationJobs/Cancel.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "subscriptionId": "04666444-56f0-4d4f-afc5-dbd6b134b084",
+ "location": "redmond",
+ "migrationId": "ec9f79cf-e4d7-4d37-926a-e69c2198be8a",
+ "api-version": "2021-04-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/04666444-56f0-4d4f-afc5-dbd6b134b084/providers/Microsoft.Compute.Admin/locations/redmond/diskmigrationjobs/ec9f79cf-e4d7-4d37-926a-e69c2198be8a",
+ "name": "redmond/ec9f79cf-e4d7-4d37-926a-e69c2198be8a",
+ "type": "Microsoft.Compute.Admin/locations/diskmigrationjobs",
+ "location": "redmond",
+ "properties": {
+ "migrationId": "ec9f79cf-e4d7-4d37-926a-e69c2198be8a",
+ "status": "Canceled",
+ "subtasks": [
+ {
+ "migrationSubTaskId": "726dff1c-e765-44c6-b16d-f66f2c28e730",
+ "properties": {
+ "migrationSubtaskStatus": "Canceled",
+ "startTime": "2018-05-17T08:26:54.57146Z",
+ "endTime": "2018-05-17T08:27:35.0559255Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_1",
+ "sourceShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_4",
+ "targetDiskStateForMigration": "Unattached",
+ "diskId": "423e4eb4-f791-4d13-ad5b-4d415733b0d6"
+ }
+ },
+ {
+ "migrationSubTaskId": "d6ab496c-4a76-474f-9ee2-9031053f06e8",
+ "properties": {
+ "migrationSubtaskStatus": "Succeeded",
+ "startTime": "2018-05-17T08:27:35.0871773Z",
+ "endTime": "2018-05-17T08:28:15.2842678Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_1",
+ "sourceShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_2",
+ "targetDiskStateForMigration": "Unattached",
+ "diskId": "48dc9b56-5883-4011-9dc3-0e527f33e6ab"
+ }
+ }
+ ],
+ "creationTime": "2018-05-17T08:26:54.4777279Z",
+ "startTime": "2018-05-17T08:26:54.5402097Z",
+ "endTime": "0001-01-01T08:00:00Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/DiskMigrationJobs/Create.json b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/DiskMigrationJobs/Create.json
new file mode 100644
index 000000000000..846f93895812
--- /dev/null
+++ b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/DiskMigrationJobs/Create.json
@@ -0,0 +1,71 @@
+{
+ "parameters": {
+ "subscriptionId": "04666444-56f0-4d4f-afc5-dbd6b134b084",
+ "location": "redmond",
+ "migrationId": "ec9f79cf-e4d7-4d37-926a-e69c2198be8a",
+ "api-version": "2021-04-01",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_1",
+ "disks": [
+ {
+ "location": "redmond",
+ "properties": {
+ "diskId": "423e4eb4-f791-4d13-ad5b-4d415733b0d6",
+ "status": "Unattached",
+ "sharePath": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_4"
+ }
+ },
+ {
+ "location": "redmond",
+ "properties": {
+ "diskId": "48dc9b56-5883-4011-9dc3-0e527f33e6ab",
+ "status": "Unattached",
+ "sharePath": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_2"
+ }
+ }
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/04666444-56f0-4d4f-afc5-dbd6b134b084/providers/Microsoft.Compute.Admin/locations/redmond/diskmigrationjobs/ec9f79cf-e4d7-4d37-926a-e69c2198be8a",
+ "name": "redmond/ec9f79cf-e4d7-4d37-926a-e69c2198be8a",
+ "type": "Microsoft.Compute.Admin/locations/diskmigrationjobs",
+ "location": "redmond",
+ "properties": {
+ "migrationId": "ec9f79cf-e4d7-4d37-926a-e69c2198be8a",
+ "status": "Pending",
+ "subtasks": [
+ {
+ "migrationSubTaskId": "726dff1c-e765-44c6-b16d-f66f2c28e730",
+ "properties": {
+ "migrationSubtaskStatus": "Pending",
+ "startTime": "0001-01-01T08:00:00Z",
+ "endTime": "0001-01-01T08:00:00Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_1",
+ "sourceShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_4",
+ "targetDiskStateForMigration": "Unattached",
+ "diskId": "423e4eb4-f791-4d13-ad5b-4d415733b0d6"
+ }
+ },
+ {
+ "migrationSubTaskId": "d6ab496c-4a76-474f-9ee2-9031053f06e8",
+ "properties": {
+ "migrationSubtaskStatus": "Pending",
+ "startTime": "0001-01-01T08:00:00Z",
+ "endTime": "0001-01-01T08:00:00Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_1",
+ "sourceShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_2",
+ "targetDiskStateForMigration": "Unattached",
+ "diskId": "48dc9b56-5883-4011-9dc3-0e527f33e6ab"
+ }
+ }
+ ],
+ "creationTime": "2018-05-17T08:26:54.4777279Z",
+ "startTime": "0001-01-01T08:00:00Z",
+ "endTime": "0001-01-01T08:00:00Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/DiskMigrationJobs/Get.json b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/DiskMigrationJobs/Get.json
new file mode 100644
index 000000000000..ea906e370aeb
--- /dev/null
+++ b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/DiskMigrationJobs/Get.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "subscriptionId": "04666444-56f0-4d4f-afc5-dbd6b134b084",
+ "location": "redmond",
+ "migrationId": "ec9f79cf-e4d7-4d37-926a-e69c2198be8a",
+ "api-version": "2021-04-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/04666444-56f0-4d4f-afc5-dbd6b134b084/providers/Microsoft.Compute.Admin/locations/redmond/diskmigrationjobs/ec9f79cf-e4d7-4d37-926a-e69c2198be8a",
+ "name": "redmond/ec9f79cf-e4d7-4d37-926a-e69c2198be8a",
+ "type": "Microsoft.Compute.Admin/locations/diskmigrationjobs",
+ "location": "redmond",
+ "properties": {
+ "migrationId": "ec9f79cf-e4d7-4d37-926a-e69c2198be8a",
+ "status": "Running",
+ "subtasks": [
+ {
+ "migrationSubTaskId": "726dff1c-e765-44c6-b16d-f66f2c28e730",
+ "properties": {
+ "migrationSubtaskStatus": "Succeeded",
+ "startTime": "2018-05-17T08:26:54.57146Z",
+ "endTime": "2018-05-17T08:27:35.0559255Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_1",
+ "sourceShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_4",
+ "targetDiskStateForMigration": "Unattached",
+ "diskId": "423e4eb4-f791-4d13-ad5b-4d415733b0d6"
+ }
+ },
+ {
+ "migrationSubTaskId": "d6ab496c-4a76-474f-9ee2-9031053f06e8",
+ "properties": {
+ "migrationSubtaskStatus": "Running",
+ "startTime": "2018-05-17T08:27:35.0871773Z",
+ "endTime": "0001-01-01T08:00:00Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_1",
+ "sourceShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_2",
+ "targetDiskStateForMigration": "Unattached",
+ "diskId": "48dc9b56-5883-4011-9dc3-0e527f33e6ab"
+ }
+ }
+ ],
+ "creationTime": "2018-05-17T08:26:54.4777279Z",
+ "startTime": "2018-05-17T08:26:54.5402097Z",
+ "endTime": "0001-01-01T08:00:00Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/DiskMigrationJobs/List.json b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/DiskMigrationJobs/List.json
new file mode 100644
index 000000000000..63a0dd10ed85
--- /dev/null
+++ b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/DiskMigrationJobs/List.json
@@ -0,0 +1,95 @@
+{
+ "parameters": {
+ "subscriptionId": "04666444-56f0-4d4f-afc5-dbd6b134b084",
+ "location": "redmond",
+ "api-version": "2021-04-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/04666444-56f0-4d4f-afc5-dbd6b134b084/providers/Microsoft.Compute.Admin/locations/redmond/diskmigrationjobs/0050e481-63cd-4ad1-9c49-b8cbb992b75e",
+ "name": "redmond/0050e481-63cd-4ad1-9c49-b8cbb992b75e",
+ "type": "Microsoft.Compute.Admin/locations/diskmigrationjobs",
+ "location": "redmond",
+ "properties": {
+ "migrationId": "0050e481-63cd-4ad1-9c49-b8cbb992b75e",
+ "status": "Succeeded",
+ "subtasks": [
+ {
+ "migrationSubTaskId": "607d1e44-48f5-418e-a263-ec60fb35d285",
+ "properties": {
+ "migrationSubtaskStatus": "Succeeded",
+ "startTime": "2018-05-17T09:29:36.1290315Z",
+ "endTime": "2018-05-17T09:30:16.3566829Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_2",
+ "sourceShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_2",
+ "targetDiskStateForMigration": "Unattached",
+ "diskId": "5018f340-c41b-4e82-a553-248431c4df64"
+ }
+ },
+ {
+ "migrationSubTaskId": "cfe7b95e-d45c-4515-af2a-3a889e70559a",
+ "properties": {
+ "migrationSubtaskStatus": "Succeeded",
+ "startTime": "2018-05-17T09:30:16.3723117Z",
+ "endTime": "2018-05-17T09:30:56.5945261Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_2",
+ "sourceShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_4",
+ "targetDiskStateForMigration": "Unattached",
+ "diskId": "4d9c7dd9-50ea-473d-87be-f7a57acd8aae"
+ }
+ }
+ ],
+ "creationTime": "2018-05-17T09:29:36.0351498Z",
+ "startTime": "2018-05-17T09:29:36.0976561Z",
+ "endTime": "2018-05-17T09:31:06.6187954Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_2"
+ }
+ },
+ {
+ "id": "/subscriptions/04666444-56f0-4d4f-afc5-dbd6b134b084/providers/Microsoft.Compute.Admin/locations/redmond/diskmigrationjobs/9fbb98b2-fe81-449a-9d71-61bccb0d0489",
+ "name": "redmond/9fbb98b2-fe81-449a-9d71-61bccb0d0489",
+ "type": "Microsoft.Compute.Admin/locations/diskmigrationjobs",
+ "location": "redmond",
+ "properties": {
+ "migrationId": "9fbb98b2-fe81-449a-9d71-61bccb0d0489",
+ "status": "Succeeded",
+ "subtasks": [
+ {
+ "migrationSubTaskId": "5a76680f-3788-492c-9840-ffb4c9f95729",
+ "properties": {
+ "migrationSubtaskStatus": "Succeeded",
+ "startTime": "2018-05-18T02:18:49.1442797Z",
+ "endTime": "2018-05-18T02:19:29.4948624Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_2",
+ "sourceShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_1",
+ "targetDiskStateForMigration": "Unattached",
+ "diskId": "48dc9b56-5883-4011-9dc3-0e527f33e6ab"
+ }
+ },
+ {
+ "migrationSubTaskId": "c302a235-9e8c-431d-8a5e-8b1fc984b7ab",
+ "properties": {
+ "migrationSubtaskStatus": "Succeeded",
+ "startTime": "2018-05-18T02:19:29.5104777Z",
+ "endTime": "2018-05-18T02:20:09.7263314Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_2",
+ "sourceShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_1",
+ "targetDiskStateForMigration": "Unattached",
+ "diskId": "423e4eb4-f791-4d13-ad5b-4d415733b0d6"
+ }
+ }
+ ],
+ "creationTime": "2018-05-18T02:18:49.0978853Z",
+ "startTime": "2018-05-18T02:18:49.1286583Z",
+ "endTime": "2018-05-18T02:20:19.7823733Z",
+ "targetShare": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_2"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/Disks/Get.json b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/Disks/Get.json
new file mode 100644
index 000000000000..0ff2b0d190d3
--- /dev/null
+++ b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/Disks/Get.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "04666444-56f0-4d4f-afc5-dbd6b134b084",
+ "location": "redmond",
+ "diskId": "423e4eb4-f791-4d13-ad5b-4d415733b0d6",
+ "api-version": "2021-04-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/04666444-56f0-4d4f-afc5-dbd6b134b084/providers/Microsoft.Compute.Admin/locations/redmond/disks/423e4eb4-f791-4d13-ad5b-4d415733b0d6",
+ "name": "redmond/423e4eb4-f791-4d13-ad5b-4d415733b0d6",
+ "type": "Microsoft.Compute.Admin/locations/disks",
+ "location": "redmond",
+ "properties": {
+ "diskId": "423e4eb4-f791-4d13-ad5b-4d415733b0d6",
+ "status": "Unattached",
+ "sharePath": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_4",
+ "actualSizeGB": 183,
+ "provisionSizeGB": 200,
+ "userResourceId": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/DISKRG6ECD14E6/providers/Microsoft.Compute/Disks/diskrptest9vb55sb15w",
+ "diskType": "Disk",
+ "diskSku": "Standard_LRS",
+ "creationSourceUri": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/diskrptest/providers/Microsoft.Compute/disks/testmd01",
+ "creationOption": "Copy",
+ "exclusiveAllocatedSize": 1073741824
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/Disks/List.json b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/Disks/List.json
new file mode 100644
index 000000000000..77605b095156
--- /dev/null
+++ b/specification/azsadmin/resource-manager/compute/Microsoft.Compute.Admin/stable/2021-04-01/examples/Disks/List.json
@@ -0,0 +1,143 @@
+{
+ "parameters": {
+ "subscriptionId": "04666444-56f0-4d4f-afc5-dbd6b134b084",
+ "location": "redmond",
+ "api-version": "2021-04-01",
+ "start": 1,
+ "count": 100,
+ "status": "Unattached"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/04666444-56f0-4d4f-afc5-dbd6b134b084/providers/Microsoft.Compute.Admin/locations/redmond/disks/423e4eb4-f791-4d13-ad5b-4d415733b0d6",
+ "name": "redmond/423e4eb4-f791-4d13-ad5b-4d415733b0d6",
+ "type": "Microsoft.Compute.Admin/locations/disks",
+ "location": "redmond",
+ "properties": {
+ "diskId": "423e4eb4-f791-4d13-ad5b-4d415733b0d6",
+ "status": "Unattached",
+ "sharePath": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_4",
+ "actualSizeGB": 183,
+ "provisionSizeGB": 200,
+ "userResourceId": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/DISKRG6ECD14E6/providers/Microsoft.Compute/Disks/diskrptest9vb55sb15w",
+ "diskType": "Disk",
+ "diskSku": "Standard_LRS",
+ "creationSourceUri": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/diskrptest/providers/Microsoft.Compute/disks/testmd01",
+ "creationOption": "Copy"
+ }
+ },
+ {
+ "id": "/subscriptions/04666444-56f0-4d4f-afc5-dbd6b134b084/providers/Microsoft.Compute.Admin/locations/redmond/disks/48dc9b56-5883-4011-9dc3-0e527f33e6ab",
+ "name": "redmond/48dc9b56-5883-4011-9dc3-0e527f33e6ab",
+ "type": "Microsoft.Compute.Admin/locations/disks",
+ "location": "redmond",
+ "properties": {
+ "diskId": "48dc9b56-5883-4011-9dc3-0e527f33e6ab",
+ "status": "Unattached",
+ "sharePath": "\\\\SU1FileServer.mydomain.com\\SU1_ObjStore_2",
+ "actualSizeGB": 1,
+ "provisionSizeGB": 200,
+ "userResourceId": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/DISKRG6ECD14E6/providers/Microsoft.Compute/Snapshots/diskrptestjrlt133h5g8t",
+ "diskType": "Snapshot",
+ "diskSku": "Standard_LRS",
+ "creationSourceUri": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/diskrptest/providers/Microsoft.Compute/disks/testmd01",
+ "creationOption": "Copy"
+ }
+ },
+ {
+ "id": "/subscriptions/04666444-56f0-4d4f-afc5-dbd6b134b084/providers/Microsoft.Compute.Admin/locations/redmond/disks/5018f340-c41b-4e82-a553-248431c4df64",
+ "name": "redmond/5018f340-c41b-4e82-a553-248431c4df64",
+ "type": "Microsoft.Compute.Admin/locations/disks",
+ "location": "redmond",
+ "properties": {
+ "diskId": "5018f340-c41b-4e82-a553-248431c4df64",
+ "status": "Unattached",
+ "sharePath": "",
+ "actualSizeGB": 0,
+ "provisionSizeGB": 200,
+ "userResourceId": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/DISKRG6ECD14E6/providers/Microsoft.Compute/Snapshots/diskrptestlhy3gmrez379",
+ "diskType": "Snapshot",
+ "diskSku": "Standard_LRS",
+ "creationSourceUri": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/diskrptest/providers/Microsoft.Compute/disks/testmd01",
+ "creationOption": "Copy"
+ }
+ },
+ {
+ "id": "/subscriptions/04666444-56f0-4d4f-afc5-dbd6b134b084/providers/Microsoft.Compute.Admin/locations/redmond/disks/8b5a40f9-c5d0-4273-a5b2-7ec4be371e30",
+ "name": "redmond/8b5a40f9-c5d0-4273-a5b2-7ec4be371e30",
+ "type": "Microsoft.Compute.Admin/locations/disks",
+ "location": "redmond",
+ "properties": {
+ "diskId": "8b5a40f9-c5d0-4273-a5b2-7ec4be371e30",
+ "status": "Unattached",
+ "sharePath": "",
+ "actualSizeGB": 0,
+ "provisionSizeGB": 200,
+ "userResourceId": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/DISKRG6ECD14E6/providers/Microsoft.Compute/Disks/diskrptest5wnmxirn",
+ "diskType": "Disk",
+ "diskSku": "Standard_LRS",
+ "creationSourceUri": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/diskrptest/providers/Microsoft.Compute/disks/testmd01",
+ "creationOption": "Copy"
+ }
+ },
+ {
+ "id": "/subscriptions/04666444-56f0-4d4f-afc5-dbd6b134b084/providers/Microsoft.Compute.Admin/locations/redmond/disks/9664bba5-dcc1-4481-a85d-8a2dfca26c55",
+ "name": "redmond/9664bba5-dcc1-4481-a85d-8a2dfca26c55",
+ "type": "Microsoft.Compute.Admin/locations/disks",
+ "location": "redmond",
+ "properties": {
+ "diskId": "9664bba5-dcc1-4481-a85d-8a2dfca26c55",
+ "status": "Unattached",
+ "sharePath": "",
+ "actualSizeGB": 0,
+ "userResourceId": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/DISKRG6ECD14E6/providers/Microsoft.Compute/Snapshots/diskrptestj32ckp6df9v",
+ "diskType": "Snapshot",
+ "diskSku": "Standard_LRS",
+ "creationSourceUri": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/diskrptest/providers/Microsoft.Compute/disks/testmd01",
+ "creationOption": "Copy"
+ }
+ },
+ {
+ "id": "/subscriptions/04666444-56f0-4d4f-afc5-dbd6b134b084/providers/Microsoft.Compute.Admin/locations/redmond/disks/cc79941f-5f42-4ac7-8428-7553f5e47e4b",
+ "name": "redmond/cc79941f-5f42-4ac7-8428-7553f5e47e4b",
+ "type": "Microsoft.Compute.Admin/locations/disks",
+ "location": "redmond",
+ "properties": {
+ "diskId": "cc79941f-5f42-4ac7-8428-7553f5e47e4b",
+ "status": "Unattached",
+ "sharePath": "",
+ "actualSizeGB": 0,
+ "provisionSizeGB": 200,
+ "userResourceId": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/DISKRG6ECD14E6/providers/Microsoft.Compute/Snapshots/diskrptestthml7uzd3hs2",
+ "diskType": "Snapshot",
+ "diskSku": "Standard_LRS",
+ "creationSourceUri": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/diskrptest/providers/Microsoft.Compute/disks/testmd01",
+ "creationOption": "Copy"
+ }
+ },
+ {
+ "id": "/subscriptions/04666444-56f0-4d4f-afc5-dbd6b134b084/providers/Microsoft.Compute.Admin/locations/redmond/disks/dfee6038-fc35-4e0f-acd9-597b097a0b52",
+ "name": "redmond/dfee6038-fc35-4e0f-acd9-597b097a0b52",
+ "type": "Microsoft.Compute.Admin/locations/disks",
+ "location": "redmond",
+ "properties": {
+ "diskId": "dfee6038-fc35-4e0f-acd9-597b097a0b52",
+ "status": "Unattached",
+ "sharePath": "",
+ "actualSizeGB": 0,
+ "provisionSizeGB": 200,
+ "userResourceId": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/DISKRG6ECD14E6/providers/Microsoft.Compute/Snapshots/diskrptestn9wefmbaqiu",
+ "diskType": "Snapshot",
+ "diskSku": "Standard_LRS",
+ "creationSourceUri": "/subscriptions/4496690e-348e-4dc0-addc-17395c3966ba/resourceGroups/diskrptest/providers/Microsoft.Compute/disks/testmd01",
+ "creationOption": "Copy"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azsadmin/resource-manager/compute/readme.azsautogen.md b/specification/azsadmin/resource-manager/compute/readme.azsautogen.md
index 7376b5eb69c3..e37ff2fce66c 100644
--- a/specification/azsadmin/resource-manager/compute/readme.azsautogen.md
+++ b/specification/azsadmin/resource-manager/compute/readme.azsautogen.md
@@ -10,4 +10,6 @@ input-file:
- Microsoft.Compute.Admin/preview/2015-12-01-preview/VMExtensions.json
- Microsoft.Compute.Admin/preview/2018-07-30-preview/Disks.json
- Microsoft.Compute.Admin/preview/2018-07-30-preview/DiskMigrationJobs.json
+ - Microsoft.Compute.Admin/stable/2021-04-01/Disks.json
+ - Microsoft.Compute.Admin/stable/2021-04-01/DiskMigrationJobs.json
```
diff --git a/specification/azsadmin/resource-manager/compute/readme.md b/specification/azsadmin/resource-manager/compute/readme.md
index dfbaaaa82be7..deeed7be84a1 100644
--- a/specification/azsadmin/resource-manager/compute/readme.md
+++ b/specification/azsadmin/resource-manager/compute/readme.md
@@ -24,22 +24,22 @@ These are the global settings for the Compute API.
title: ComputeAdminClient
description: Compute Admin Client
openapi-type: arm
-tag: package-2021-01-01
+tag: package-2021-04-01
```
### Tag: package-2021-01-01
-These settings apply only when `--tag=package-2021-01-01` is specified on the command line.
+These settings apply only when `--tag=package-2021-04-01` is specified on the command line.
``` yaml $(tag) == 'package-2021-01-01'
input-file:
- Microsoft.Compute.Admin/preview/2015-12-01-preview/Compute.json
- Microsoft.Compute.Admin/preview/2015-12-01-preview/PlatformImages.json
- Microsoft.Compute.Admin/preview/2015-12-01-preview/VMExtensions.json
- - Microsoft.Compute.Admin/preview/2018-07-30-preview/Disks.json
- - Microsoft.Compute.Admin/preview/2018-07-30-preview/DiskMigrationJobs.json
- Microsoft.Compute.Admin/stable/2020-11-01/Features.json
- Microsoft.Compute.Admin/stable/2021-01-01/Quotas.json
+ - Microsoft.Compute.Admin/stable/2021-04-01/Disks.json
+ - Microsoft.Compute.Admin/stable/2021-04-01/DiskMigrationJobs.json
```
---
@@ -66,10 +66,10 @@ input-file:
- Microsoft.Compute.Admin/preview/2015-12-01-preview/Compute.json
- Microsoft.Compute.Admin/preview/2015-12-01-preview/PlatformImages.json
- Microsoft.Compute.Admin/preview/2015-12-01-preview/VMExtensions.json
- - Microsoft.Compute.Admin/preview/2018-07-30-preview/Disks.json
- - Microsoft.Compute.Admin/preview/2018-07-30-preview/DiskMigrationJobs.json
- Microsoft.Compute.Admin/stable/2020-11-01/Features.json
- Microsoft.Compute.Admin/stable/2021-01-01/Quotas.json
+ - Microsoft.Compute.Admin/stable/2021-04-01/Disks.json
+ - Microsoft.Compute.Admin/stable/2021-04-01/DiskMigrationJobs.json
```
## Multi-API/Profile support for AutoRest v3 generators
@@ -90,6 +90,8 @@ input-file:
- $(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
+ - $(this-folder)/Microsoft.Compute.Admin/stable/2021-04-01/Disks.json
+ - $(this-folder)/Microsoft.Compute.Admin/stable/2021-04-01/DiskMigrationJobs.json
```
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/AcquiredPlan.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/AcquiredPlan.json
index 04acfa702958..b13dded3cdc6 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/AcquiredPlan.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/AcquiredPlan.json
@@ -40,6 +40,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -79,6 +85,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -113,6 +125,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK"
},
@@ -150,6 +168,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/DelegatedProvider.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/DelegatedProvider.json
index a9eeb6578fb2..e5cf8a300e4d 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/DelegatedProvider.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/DelegatedProvider.json
@@ -37,6 +37,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -73,6 +79,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/DelegatedProviderOffer.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/DelegatedProviderOffer.json
index 11d3af7323ad..d196362ac6b4 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/DelegatedProviderOffer.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/DelegatedProviderOffer.json
@@ -40,6 +40,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -79,6 +85,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -132,7 +144,8 @@
},
"subscriptionCount": {
"description": "Current subscription count.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
}
}
},
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/DirectoryTenant.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/DirectoryTenant.json
index 0c672375780e..4fd33ebd1858 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/DirectoryTenant.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/DirectoryTenant.json
@@ -40,6 +40,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -79,6 +85,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -113,6 +125,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK"
},
@@ -150,6 +168,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Location.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Location.json
index 434d8d0351fb..f562fca58111 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Location.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Location.json
@@ -37,6 +37,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -73,6 +79,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -107,6 +119,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -143,6 +161,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -156,7 +180,8 @@
"description": "Not Content"
},
"404": {
- "description": "Not Found"
+ "description": "Not Found",
+ "x-ms-error-response": true
}
}
}
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Manifest.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Manifest.json
index 7745eb8e3f9b..0686534cfe04 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Manifest.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Manifest.json
@@ -37,6 +37,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -73,6 +79,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -278,7 +290,8 @@
},
"obsoleteBundlesBitmask": {
"description": "The obsolete bundles bitmask.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"resourceAccess": {
"description": "The resource access.",
@@ -827,7 +840,8 @@
},
"maxChildResourceConsistencyJobLimit": {
"description": "The next child resource consistency job limit.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
}
}
},
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Offer.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Offer.json
index 7bc9a7d831c5..7441a772afb3 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Offer.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Offer.json
@@ -37,6 +37,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -73,6 +79,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -112,6 +124,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -149,6 +167,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"201": {
"description": "Created",
"schema": {
@@ -189,6 +213,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK"
},
@@ -225,6 +255,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -261,6 +297,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -300,6 +342,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -339,6 +387,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -392,11 +446,13 @@
},
"subscriptionCount": {
"description": "Current subscription count.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"maxSubscriptionsPerAccount": {
"description": "Maximum subscriptions per account.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"basePlanIds": {
"description": "Identifiers of the base plans that become available to the tenant immediately when a tenant subscribes to the offer.",
@@ -454,7 +510,8 @@
},
"maxAcquisitionCount": {
"description": "Maximum number of instances that can be acquired by a single subscription. If not specified, the assumed value is 1.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
}
}
},
@@ -489,7 +546,8 @@
},
"maxAcquisitionCount": {
"description": "The maximum acquisition count by subscribers",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
}
}
},
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/OfferDelegation.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/OfferDelegation.json
index 5835126620fc..e80068449932 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/OfferDelegation.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/OfferDelegation.json
@@ -43,6 +43,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -85,6 +91,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -125,6 +137,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"201": {
"description": "Created",
"schema": {
@@ -168,6 +186,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK"
},
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Plan.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Plan.json
index b07d900df529..03fc51e8a24d 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Plan.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Plan.json
@@ -37,6 +37,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -73,6 +79,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -112,6 +124,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -149,6 +167,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"201": {
"description": "Created",
"schema": {
@@ -189,6 +213,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK"
},
@@ -225,6 +255,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -261,6 +297,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -317,7 +359,8 @@
},
"subscriptionCount": {
"description": "Subscription count.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"skuIds": {
"description": "SKU identifiers.",
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Quota.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Quota.json
index d1e97460e3cb..b84e366919a5 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Quota.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Quota.json
@@ -40,6 +40,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -79,6 +85,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Subscriptions.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Subscriptions.json
index 144731619848..ea4e02c98122 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Subscriptions.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/Subscriptions.json
@@ -34,6 +34,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -54,7 +60,7 @@
"tags": [
"Subscriptions"
],
- "operationId": "UpdateEncryption",
+ "operationId": "Subscriptions_UpdateEncryption",
"parameters": [
{
"$ref": "#/parameters/SubscriptionIdParameter"
@@ -64,6 +70,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK"
}
@@ -81,7 +93,7 @@
"tags": [
"Subscriptions"
],
- "operationId": "RestoreData",
+ "operationId": "Subscriptions_RestoreData",
"parameters": [
{
"$ref": "#/parameters/SubscriptionIdParameter"
@@ -91,6 +103,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -111,7 +129,7 @@
"tags": [
"Subscriptions"
],
- "operationId": "CheckIdentityHealth",
+ "operationId": "Subscriptions_CheckIdentityHealth",
"parameters": [
{
"$ref": "#/parameters/SubscriptionIdParameter"
@@ -121,6 +139,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -157,6 +181,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"204": {
"description": "No Content -- The subscriptions were successfully moved to the target delegated provider offer."
},
@@ -194,6 +224,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"204": {
"description": "No Content -- The subscriptions can be moved to the target delegated provider offer."
},
@@ -228,6 +264,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -265,6 +307,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -298,6 +346,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK",
"schema": {
@@ -332,6 +386,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"201": {
"description": "Created",
"schema": {
@@ -369,6 +429,12 @@
}
],
"responses": {
+ "default": {
+ "description": "Unexpected Error",
+ "schema": {
+ "$ref": "Subscriptions.json#/definitions/Error"
+ }
+ },
"200": {
"description": "OK"
},
@@ -414,35 +480,78 @@
},
"x-ms-azure-resource": true
},
+ "Error": {
+ "type": "object",
+ "description": "Error response.",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/ErrorDefinition",
+ "description": "The error details."
+ }
+ }
+ },
+ "ErrorDefinition": {
+ "type": "object",
+ "description": "Error definition.",
+ "properties": {
+ "code": {
+ "description": "Service specific error code which serves as the substatus for the HTTP error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Description of the error.",
+ "type": "string",
+ "readOnly": true
+ },
+ "details": {
+ "description": "Internal error details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDefinition"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "Display": {
+ "description": "Contains the localized display information for this particular operation / action.",
+ "properties": {
+ "provider": {
+ "description": "The localized friendly form of the resource provider name – it is expected to also include the publisher/company responsible. It should use Title Casing and begin with \"Microsoft\" for 1st party services. e.g. \"Microsoft Monitoring Insights\" or \"Microsoft Compute.\"",
+ "type": "string",
+ "readOnly": true
+ },
+ "resource": {
+ "description": "The localized, friendly version of the resource type related to this action or operation; the resource type should match the public documentation for the resource provider.",
+ "type": "string",
+ "readOnly": true
+ },
+ "operation": {
+ "description": "The localized, friendly name for the operation. Use the name as it will displayed to the user.",
+ "type": "string",
+ "readOnly": true
+ },
+ "description": {
+ "description": "The localized, friendly description for the operation. The description will be displayed to the user. It should be thorough and concise for used in both tooltips and detailed views.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
"Operation": {
"description": "Supported REST operation.",
"type": "object",
"properties": {
"display": {
"description": "Display information for the operation.",
- "type": "object",
- "properties": {
- "description": {
- "description": "Description for the operation.",
- "type": "string",
- "readOnly": true
- },
- "operation": {
- "description": "Display name of the operation.",
- "type": "string",
- "readOnly": true
- },
- "provider": {
- "description": "Resource provider display name.",
- "type": "string",
- "readOnly": true
- },
- "resource": {
- "description": "Resource type display name related to the operation.",
- "type": "string",
- "readOnly": true
- }
- }
+ "$ref": "#/definitions/Display",
+ "readOnly": true
+ },
+ "isDataAction": {
+ "description": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for ARM/control-plane operations.",
+ "type": "boolean",
+ "readOnly": true
},
"name": {
"description": "Name of the operation being performed on an object.",
@@ -811,7 +920,8 @@
"description": "Directory tenant identifier.",
"type": "string"
}
- }
+ },
+ "x-ms-azure-resource": true
},
"SubscriptionList": {
"description": "List of subscriptions.",
@@ -990,7 +1100,8 @@
},
"count": {
"description": "Number of measurements for metric sample period.",
- "type": "integer"
+ "type": "integer",
+ "format": "int32"
},
"properties": {
"x-ms-client-name": "extendedProperties",
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/AcquiredPlan/Create.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/AcquiredPlan/Create.json
index 09af66ca6cf8..faf9a37f4911 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/AcquiredPlan/Create.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/AcquiredPlan/Create.json
@@ -6,11 +6,9 @@
"targetSubscriptionId": "8158498d-27b1-4ccf-9aa1-de0f925731e6",
"planAcquisitionId": "718c7f7c-4868-479a-98ce-5caaa8f158c8",
"acquiredPlanDefinition": {
- "properties": {
- "acquisitionId": "718c7f7c-4868-479a-98ce-5caaa8f158c8",
- "id": "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/acquiredPlans/718c7f7c-4868-479a-98ce-5caaa8f158c8",
- "planId": "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions/plans/balaplan"
- }
+ "acquisitionId": "718c7f7c-4868-479a-98ce-5caaa8f158c8",
+ "id": "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/acquiredPlans/718c7f7c-4868-479a-98ce-5caaa8f158c8",
+ "planId": "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions/plans/balaplan"
}
},
"responses": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/DirectoryTenant/Create.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/DirectoryTenant/Create.json
index 89ba4e050b7c..3bc372838c80 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/DirectoryTenant/Create.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/DirectoryTenant/Create.json
@@ -4,7 +4,11 @@
"location": "local",
"api-version": "2015-11-01",
"tenant": "azurestackci05.onmicrosoft.in",
- "tenantDefinition": "eb90516e-65d7-4bf6-8537-8322e9172832",
+ "tenantDefinition": {
+ "properties": {
+ "tenantId": "eb90516e-65d7-4bf6-8537-8322e9172832"
+ }
+ },
"resourceGroupName": "system.local"
},
"responses": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Offer/Link.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Offer/Link.json
index ab0c8034d565..e86bc763c83f 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Offer/Link.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Offer/Link.json
@@ -6,10 +6,8 @@
"offer": "sampleoffer1",
"resourceGroupName": "RG1",
"planLink": {
- "properties": {
- "planName": "sampleplan1",
- "planLinkType": "Addon"
- }
+ "planName": "sampleplan1",
+ "planLinkType": "Addon"
}
},
"responses": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Offer/Unlink.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Offer/Unlink.json
index 65bb4749f2b6..3a3de0b91bfc 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Offer/Unlink.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Offer/Unlink.json
@@ -6,10 +6,8 @@
"offer": "sampleoffer1",
"resourceGroupName": "RG1",
"planLink": {
- "properties": {
- "planName": "SamplePlan",
- "planLinkType": "Addon"
- }
+ "planName": "SamplePlan",
+ "planLinkType": "Addon"
}
},
"responses": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/OfferDelegation/Create.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/OfferDelegation/Create.json
index 7efb2b09b1e1..5ad01f1cee1e 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/OfferDelegation/Create.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/OfferDelegation/Create.json
@@ -6,7 +6,11 @@
"resourceGroupName": "cnur9852subscrrg374",
"offer": "cnur9852tenantoffer374",
"offerDelegationName": "testOfferDelegation",
- "offerDelegationDefinition": "newDelegationName"
+ "offerDelegationDefinition": {
+ "properties": {
+ "subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23"
+ }
+ }
},
"responses": {
"200": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/CheckNameAvailability.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/CheckNameAvailability.json
index 418132807c68..3017713eb279 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/CheckNameAvailability.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/CheckNameAvailability.json
@@ -5,10 +5,8 @@
"api-version": "2015-11-01",
"name": "subname",
"nameAvailabilityDefinition": {
- "properties": {
- "name": "subname",
- "resourceType": "type"
- }
+ "name": "subname",
+ "resourceType": "type"
}
},
"responses": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/Create.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/Create.json
index f41b199e3eeb..7399b850fb03 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/Create.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/Create.json
@@ -6,15 +6,13 @@
"api-version": "2015-11-01",
"subscription": "test",
"subscriptionDefinition": {
- "properties": {
- "delegatedProviderSubscriptionId": "d16dfcf0-44cc-4498-9937-08b94159d27b",
- "displayName": "Test Subscription",
- "id": "/subscriptions/d16dfcf0-44cc-4498-9937-08b94159d27b/providers/Microsoft.Subscriptions.Admin/subscriptions/c79389af-4480-48cc-8fa2-ee8ced8e843d",
- "offerId": "/subscriptions/d16dfcf0-44cc-4498-9937-08b94159d27b/resourceGroups/planrg/providers/Microsoft.Subscriptions.Admin/offers/testoffer",
- "owner": "tenantadmin1@msazurestack.onmicrosoft.com",
- "routingResourceManagerType": "Default",
- "state": "Enabled"
- }
+ "delegatedProviderSubscriptionId": "d16dfcf0-44cc-4498-9937-08b94159d27b",
+ "displayName": "Test Subscription",
+ "id": "/subscriptions/d16dfcf0-44cc-4498-9937-08b94159d27b/providers/Microsoft.Subscriptions.Admin/subscriptions/c79389af-4480-48cc-8fa2-ee8ced8e843d",
+ "offerId": "/subscriptions/d16dfcf0-44cc-4498-9937-08b94159d27b/resourceGroups/planrg/providers/Microsoft.Subscriptions.Admin/offers/testoffer",
+ "owner": "tenantadmin1@msazurestack.onmicrosoft.com",
+ "routingResourceManagerType": "Default",
+ "state": "Enabled"
}
},
"responses": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/MoveSubscriptionsToDefaultProvider.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/MoveSubscriptionsToDefaultProvider.json
index 5e09aaad2bc0..6a37a44de4d8 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/MoveSubscriptionsToDefaultProvider.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/MoveSubscriptionsToDefaultProvider.json
@@ -3,13 +3,11 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"api-version": "2015-11-01",
"moveSubscriptionsDefinition": {
- "properties": {
- "targetDelegatedProviderOffer": null,
- "resources": [
- "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/5144634d-7e4d-443b-a304-d27e44220fc6",
- "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/55049d1c-9727-4f79-95b6-50d1f3ee2b28"
- ]
- }
+ "targetDelegatedProviderOffer": null,
+ "resources": [
+ "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/5144634d-7e4d-443b-a304-d27e44220fc6",
+ "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/55049d1c-9727-4f79-95b6-50d1f3ee2b28"
+ ]
}
},
"responses": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/MoveSubscriptionsToDelegatedProvider.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/MoveSubscriptionsToDelegatedProvider.json
index e3f47f51a33a..9e350aae7bed 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/MoveSubscriptionsToDelegatedProvider.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/MoveSubscriptionsToDelegatedProvider.json
@@ -3,13 +3,11 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"api-version": "2015-11-01",
"moveSubscriptionsDefinition": {
- "properties": {
- "targetDelegatedProviderOffer": "/subscriptions/36a6bf33-6df4-4acd-a30e-7b92c1c7b322/providers/Microsoft.Subscriptions.Admin/delegatedProviders/8bb14c82-7b09-40f4-ade3-e5c71308cfcd/offers/del1",
- "resources": [
- "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/5144634d-7e4d-443b-a304-d27e44220fc6",
- "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/55049d1c-9727-4f79-95b6-50d1f3ee2b28"
- ]
- }
+ "targetDelegatedProviderOffer": "/subscriptions/36a6bf33-6df4-4acd-a30e-7b92c1c7b322/providers/Microsoft.Subscriptions.Admin/delegatedProviders/8bb14c82-7b09-40f4-ade3-e5c71308cfcd/offers/del1",
+ "resources": [
+ "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/5144634d-7e4d-443b-a304-d27e44220fc6",
+ "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/55049d1c-9727-4f79-95b6-50d1f3ee2b28"
+ ]
}
},
"responses": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/ValidateMoveSubscriptionsToDefaultProvider.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/ValidateMoveSubscriptionsToDefaultProvider.json
index 5e09aaad2bc0..6a37a44de4d8 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/ValidateMoveSubscriptionsToDefaultProvider.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/ValidateMoveSubscriptionsToDefaultProvider.json
@@ -3,13 +3,11 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"api-version": "2015-11-01",
"moveSubscriptionsDefinition": {
- "properties": {
- "targetDelegatedProviderOffer": null,
- "resources": [
- "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/5144634d-7e4d-443b-a304-d27e44220fc6",
- "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/55049d1c-9727-4f79-95b6-50d1f3ee2b28"
- ]
- }
+ "targetDelegatedProviderOffer": null,
+ "resources": [
+ "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/5144634d-7e4d-443b-a304-d27e44220fc6",
+ "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/55049d1c-9727-4f79-95b6-50d1f3ee2b28"
+ ]
}
},
"responses": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/ValidateMoveSubscriptionsToDelegatedProvider.json b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/ValidateMoveSubscriptionsToDelegatedProvider.json
index e3f47f51a33a..9e350aae7bed 100644
--- a/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/ValidateMoveSubscriptionsToDelegatedProvider.json
+++ b/specification/azsadmin/resource-manager/subscriptions/Microsoft.Subscriptions.Admin/preview/2015-11-01/examples/Subscriptions/ValidateMoveSubscriptionsToDelegatedProvider.json
@@ -3,13 +3,11 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"api-version": "2015-11-01",
"moveSubscriptionsDefinition": {
- "properties": {
- "targetDelegatedProviderOffer": "/subscriptions/36a6bf33-6df4-4acd-a30e-7b92c1c7b322/providers/Microsoft.Subscriptions.Admin/delegatedProviders/8bb14c82-7b09-40f4-ade3-e5c71308cfcd/offers/del1",
- "resources": [
- "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/5144634d-7e4d-443b-a304-d27e44220fc6",
- "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/55049d1c-9727-4f79-95b6-50d1f3ee2b28"
- ]
- }
+ "targetDelegatedProviderOffer": "/subscriptions/36a6bf33-6df4-4acd-a30e-7b92c1c7b322/providers/Microsoft.Subscriptions.Admin/delegatedProviders/8bb14c82-7b09-40f4-ade3-e5c71308cfcd/offers/del1",
+ "resources": [
+ "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/5144634d-7e4d-443b-a304-d27e44220fc6",
+ "/subscriptions/8158498d-27b1-4ccf-9aa1-de0f925731e6/providers/Microsoft.Subscriptions.Admin/subscriptions/55049d1c-9727-4f79-95b6-50d1f3ee2b28"
+ ]
}
},
"responses": {
diff --git a/specification/azsadmin/resource-manager/subscriptions/readme.md b/specification/azsadmin/resource-manager/subscriptions/readme.md
index 4909aff7c0fd..2a61441dfc61 100644
--- a/specification/azsadmin/resource-manager/subscriptions/readme.md
+++ b/specification/azsadmin/resource-manager/subscriptions/readme.md
@@ -2,7 +2,8 @@
> see https://aka.ms/autorest
-This is the AutoRest configuration file for Subscriptions Admin.
+This is the AutoRest configuration file for Subscriptions Admin. We do not ship any language SDKs for AzureStack Administrator APIs and these APIs do not exist in azure.
+
---
## Getting Started
@@ -105,12 +106,6 @@ csharp:
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
-# 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.Subscriptions.Admin/preview/2015-11-01/Subscriptions.json
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoAttachedDatabaseConfigurationsCreateOrUpdate.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoAttachedDatabaseConfigurationsCreateOrUpdate.json
new file mode 100644
index 000000000000..b61d98ac4c88
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoAttachedDatabaseConfigurationsCreateOrUpdate.json
@@ -0,0 +1,141 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "attachedDatabaseConfigurationName": "attachedDatabaseConfigurations1",
+ "api-version": "2021-01-01",
+ "parameters": {
+ "location": "westus",
+ "properties": {
+ "clusterResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterLeader",
+ "databaseName": "kustodatabase",
+ "defaultPrincipalsModificationKind": "Union",
+ "tableLevelSharingProperties": {
+ "tablesToInclude": [
+ "Table1"
+ ],
+ "tablesToExclude": [
+ "Table2"
+ ],
+ "externalTablesToInclude": [
+ "ExternalTable1"
+ ],
+ "externalTablesToExclude": [
+ "ExternalTable2"
+ ],
+ "materializedViewsToInclude": [
+ "MaterializedViewTable1"
+ ],
+ "materializedViewsToExclude": [
+ "MaterializedViewTable2"
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/attachedDatabaseConfigurations/attachedDatabaseConfigurations1",
+ "name": "KustoClusterRPTest4/attachedDatabaseConfigurations1",
+ "type": "Microsoft.Kusto/Clusters/AttachedDatabaseConfigurations",
+ "location": "westus",
+ "properties": {
+ "clusterResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterLeader",
+ "databaseName": "db1",
+ "defaultPrincipalsModificationKind": "Union",
+ "tableLevelSharingProperties": {
+ "tablesToInclude": [
+ "Table1"
+ ],
+ "tablesToExclude": [
+ "Table2"
+ ],
+ "externalTablesToInclude": [
+ "ExternalTable1"
+ ],
+ "externalTablesToExclude": [
+ "ExternalTable2"
+ ],
+ "materializedViewsToInclude": [
+ "MaterializedViewTable1"
+ ],
+ "materializedViewsToExclude": [
+ "MaterializedViewTable2"
+ ]
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/attachedDatabaseConfigurations/attachedDatabaseConfigurations1",
+ "name": "KustoClusterRPTest4/attachedDatabaseConfigurations1",
+ "type": "Microsoft.Kusto/Clusters/AttachedDatabaseConfigurations",
+ "location": "westus",
+ "properties": {
+ "clusterResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterLeader",
+ "databaseName": "db1",
+ "defaultPrincipalsModificationKind": "Union",
+ "tableLevelSharingProperties": {
+ "tablesToInclude": [
+ "Table1"
+ ],
+ "tablesToExclude": [
+ "Table2"
+ ],
+ "externalTablesToInclude": [
+ "ExternalTable1"
+ ],
+ "externalTablesToExclude": [
+ "ExternalTable2"
+ ],
+ "materializedViewsToInclude": [
+ "MaterializedViewTable1"
+ ],
+ "materializedViewsToExclude": [
+ "MaterializedViewTable2"
+ ]
+ },
+ "provisioningState": "Creating"
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/attachedDatabaseConfigurations/attachedDatabaseConfigurations1",
+ "name": "KustoClusterRPTest4/attachedDatabaseConfigurations1",
+ "type": "Microsoft.Kusto/Clusters/AttachedDatabaseConfigurations",
+ "location": "westus",
+ "properties": {
+ "clusterResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterLeader",
+ "databaseName": "db1",
+ "defaultPrincipalsModificationKind": "Union",
+ "tableLevelSharingProperties": {
+ "tablesToInclude": [
+ "Table1"
+ ],
+ "tablesToExclude": [
+ "Table2"
+ ],
+ "externalTablesToInclude": [
+ "ExternalTable1"
+ ],
+ "externalTablesToExclude": [
+ "ExternalTable2"
+ ],
+ "materializedViewsToInclude": [
+ "MaterializedViewTable1"
+ ],
+ "materializedViewsToExclude": [
+ "MaterializedViewTable2"
+ ]
+ },
+ "provisioningState": "Creating"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoAttachedDatabaseConfigurationsDelete.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoAttachedDatabaseConfigurationsDelete.json
new file mode 100644
index 000000000000..1dcf499b34f4
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoAttachedDatabaseConfigurationsDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "attachedDatabaseConfigurationName": "attachedDatabaseConfigurations1",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoAttachedDatabaseConfigurationsGet.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoAttachedDatabaseConfigurationsGet.json
new file mode 100644
index 000000000000..c29f359ec919
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoAttachedDatabaseConfigurationsGet.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "attachedDatabaseConfigurationName": "attachedDatabaseConfigurations1",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/AttachedDatabaseConfigurations/attachedDatabaseConfigurations1",
+ "name": "KustoClusterRPTest4/attachedDatabaseConfigurations1",
+ "type": "Microsoft.Kusto/Clusters/AttachedDatabaseConfigurations",
+ "location": "westus",
+ "properties": {
+ "clusterResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4",
+ "databaseName": "*",
+ "defaultPrincipalsModificationKind": "Union",
+ "tableLevelSharingProperties": {
+ "tablesToInclude": [
+ "Table1"
+ ],
+ "tablesToExclude": [
+ "Table2"
+ ],
+ "externalTablesToInclude": [
+ "ExternalTable1"
+ ],
+ "externalTablesToExclude": [
+ "ExternalTable2"
+ ],
+ "materializedViewsToInclude": [
+ "MaterializedViewTable1"
+ ],
+ "materializedViewsToExclude": [
+ "MaterializedViewTable2"
+ ]
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoAttachedDatabaseConfigurationsListByCluster.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoAttachedDatabaseConfigurationsListByCluster.json
new file mode 100644
index 000000000000..a8aa3ab033c7
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoAttachedDatabaseConfigurationsListByCluster.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/AttachedDatabaseConfigurations/KustoDatabase8",
+ "name": "KustoClusterRPTest4/KustoDatabase8",
+ "type": "Microsoft.Kusto/Clusters/AttachedDatabaseConfigurations",
+ "location": "westus",
+ "properties": {
+ "clusterResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterLeader",
+ "databaseName": "db1",
+ "defaultPrincipalsModificationKind": "Union",
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/AttachedDatabaseConfigurations/KustoDatabase9",
+ "name": "KustoClusterRPTest4/KustoDatabase9",
+ "type": "Microsoft.Kusto/Clusters/AttachedDatabaseConfigurations",
+ "location": "westus",
+ "properties": {
+ "clusterResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterLeader",
+ "databaseName": "db1",
+ "defaultPrincipalsModificationKind": "Union",
+ "tableLevelSharingProperties": {
+ "tablesToInclude": [
+ "Table1"
+ ],
+ "tablesToExclude": [
+ "Table2"
+ ],
+ "externalTablesToInclude": [
+ "ExternalTable1"
+ ],
+ "externalTablesToExclude": [
+ "ExternalTable2"
+ ],
+ "materializedViewsToInclude": [
+ "MaterializedViewTable1"
+ ],
+ "materializedViewsToExclude": [
+ "MaterializedViewTable2"
+ ]
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterAddLanguageExtensions.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterAddLanguageExtensions.json
new file mode 100644
index 000000000000..1a98a6c15a14
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterAddLanguageExtensions.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01",
+ "languageExtensionsToAdd": {
+ "value": [
+ {
+ "languageExtensionName": "PYTHON"
+ },
+ {
+ "languageExtensionName": "R"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterDetachFollowerDatabases.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterDetachFollowerDatabases.json
new file mode 100644
index 000000000000..ed6ab4256957
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterDetachFollowerDatabases.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01",
+ "followerDatabaseToRemove": {
+ "clusterResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/clusters/leader4",
+ "attachedDatabaseConfigurationName": "myAttachedDatabaseConfiguration"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterListFollowerDatabases.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterListFollowerDatabases.json
new file mode 100644
index 000000000000..c6f3f3514d23
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterListFollowerDatabases.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "attachedDatabaseConfigurationName": "attachedDbConfiguration",
+ "clusterResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/clusters/follower1",
+ "databaseName": "*"
+ },
+ {
+ "attachedDatabaseConfigurationName": "attachedDbConfiguration2",
+ "clusterResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/clusters/follower4",
+ "databaseName": "db1"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterListLanguageExtensions.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterListLanguageExtensions.json
new file mode 100644
index 000000000000..65dce448ceae
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterListLanguageExtensions.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "languageExtensionName": "PYTHON"
+ },
+ {
+ "languageExtensionName": "R"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsCheckNameAvailability.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsCheckNameAvailability.json
new file mode 100644
index 000000000000..4b7b0e60934b
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsCheckNameAvailability.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "principalAssignmentName": {
+ "name": "kustoprincipal1",
+ "type": "Microsoft.Kusto/clusters/principalAssignments"
+ },
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "kustoprincipal1",
+ "nameAvailable": false,
+ "message": "Name 'kustoprincipal1' is already taken. Please specify a different name"
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsCreateOrUpdate.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsCreateOrUpdate.json
new file mode 100644
index 000000000000..7da3f78af218
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsCreateOrUpdate.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "principalAssignmentName": "kustoprincipal1",
+ "api-version": "2021-01-01",
+ "parameters": {
+ "properties": {
+ "role": "AllDatabasesAdmin",
+ "principalId": "87654321-1234-1234-1234-123456789123",
+ "principalType": "App",
+ "tenantId": "12345678-1234-1234-1234-123456789123"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoclusterrptest4/PrincipalAssignments/kustoprincipal1",
+ "name": "kustoclusterrptest4/kustoprincipal1",
+ "type": "Microsoft.Kusto/Clusters/PrincipalAssignments",
+ "properties": {
+ "role": "Admin",
+ "principalId": "87654321-1234-1234-1234-123456789123",
+ "principalType": "App",
+ "tenantId": "12345678-1234-1234-1234-123456789123",
+ "tenantName": "tenantName",
+ "principalName": "TestApp",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoclusterrptest4/PrincipalAssignments/kustoprincipal1",
+ "name": "kustoclusterrptest4/kustoprincipal1",
+ "type": "Microsoft.Kusto/Clusters/PrincipalAssignments",
+ "properties": {
+ "role": "Admin",
+ "principalId": "87654321-1234-1234-1234-123456789123",
+ "principalType": "App",
+ "tenantId": "12345678-1234-1234-1234-123456789123",
+ "tenantName": "tenantName",
+ "principalName": "TestApp",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsDelete.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsDelete.json
new file mode 100644
index 000000000000..cef58f6587a0
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "principalAssignmentName": "kustoprincipal1",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsGet.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsGet.json
new file mode 100644
index 000000000000..89ddc92f8807
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsGet.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "principalAssignmentName": "kustoprincipal1",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoclusterrptest4/PrincipalAssignments/kustoprincipal1",
+ "name": "kustoclusterrptest4/kustoprincipal1",
+ "type": "Microsoft.Kusto/Clusters/PrincipalAssignments",
+ "properties": {
+ "role": "Admin",
+ "principalId": "87654321-1234-1234-1234-123456789123",
+ "principalType": "App",
+ "tenantId": "12345678-1234-1234-1234-123456789123",
+ "tenantName": "tenantName",
+ "principalName": "TestApp",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsList.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsList.json
new file mode 100644
index 000000000000..653625bbbdc5
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterPrincipalAssignmentsList.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "Kustodatabase8",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoclusterrptest4/Databases/Kustodatabase8/PrincipalAssignments/kustoprincipal1",
+ "name": "kustoclusterrptest4/Kustodatabase8/kustoprincipal1",
+ "type": "Microsoft.Kusto/Clusters/Databases/PrincipalAssignments",
+ "properties": {
+ "role": "Admin",
+ "principalId": "87654321-1234-1234-1234-123456789123",
+ "principalType": "App",
+ "tenantId": "12345678-1234-1234-1234-123456789123",
+ "tenantName": "tenantName",
+ "principalName": "TestApp",
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoclusterrptest4/Databases/Kustodatabase8/PrincipalAssignments/kustoprincipal1",
+ "name": "kustoclusterrptest4/Kustodatabase8/kustoprincipal2",
+ "type": "Microsoft.Kusto/Clusters/Databases/PrincipalAssignments",
+ "properties": {
+ "role": "Admin",
+ "principalId": "87654321-1234-1234-1234-123456789123",
+ "principalType": "App",
+ "tenantId": "12345678-1234-1234-1234-123456789123",
+ "tenantName": "tenantName",
+ "principalName": "TestApp",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterRemoveLanguageExtensions.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterRemoveLanguageExtensions.json
new file mode 100644
index 000000000000..a39763ab5a51
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClusterRemoveLanguageExtensions.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01",
+ "languageExtensionsToRemove": {
+ "value": [
+ {
+ "languageExtensionName": "PYTHON"
+ },
+ {
+ "languageExtensionName": "R"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersCheckNameAvailability.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersCheckNameAvailability.json
new file mode 100644
index 000000000000..44f208718f3d
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersCheckNameAvailability.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "api-version": "2021-01-01",
+ "location": "westus",
+ "clusterName": {
+ "name": "kustoclusterrptest4",
+ "type": "Microsoft.Kusto/clusters"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "kuskusprod",
+ "nameAvailable": false,
+ "message": "Name 'kuskusprod' is already taken. Please specify a different name"
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersCreateOrUpdate.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersCreateOrUpdate.json
new file mode 100644
index 000000000000..0fc47abfdd8c
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersCreateOrUpdate.json
@@ -0,0 +1,92 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01",
+ "parameters": {
+ "location": "westus",
+ "sku": {
+ "name": "Standard_L8s",
+ "capacity": 2,
+ "tier": "Standard"
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "enableStreamingIngest": true,
+ "enablePurge": true,
+ "enableDoubleEncryption": false
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4",
+ "name": "KustoClusterRPTest4",
+ "type": "Microsoft.Kusto/Clusters",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "enableDiskEncryption": false,
+ "enableStreamingIngest": true,
+ "enablePurge": true,
+ "enableDoubleEncryption": false,
+ "keyVaultProperties": {
+ "keyVaultUri": "https://dummy.keyvault.com",
+ "keyName": "keyName",
+ "keyVersion": "keyVersion"
+ },
+ "engineType": "V2"
+ },
+ "sku": {
+ "name": "Standard_L8s",
+ "capacity": 2,
+ "tier": "Standard"
+ },
+ "identity": {
+ "type": "SystemAssigned",
+ "tenantId": "b932977f-6277-4ab7-a2cd-5bd21f07aaf4",
+ "principalId": "faabad1f-4876-463c-af9d-6ba2d2d2394c",
+ "userAssignedIdentities": {}
+ },
+ "etag": "abcd"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4",
+ "name": "KustoClusterRPTest4",
+ "type": "Microsoft.Kusto/Clusters",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "enableDiskEncryption": false,
+ "enableStreamingIngest": true,
+ "enablePurge": true,
+ "enableDoubleEncryption": false,
+ "keyVaultProperties": {
+ "keyVaultUri": "https://dummy.keyvault.com",
+ "keyName": "keyName",
+ "keyVersion": "keyVersion"
+ },
+ "engineType": "V2"
+ },
+ "sku": {
+ "name": "Standard_L8s",
+ "capacity": 2,
+ "tier": "Standard"
+ },
+ "identity": {
+ "type": "SystemAssigned",
+ "tenantId": "b932977f-6277-4ab7-a2cd-5bd21f07aaf4",
+ "principalId": "faabad1f-4876-463c-af9d-6ba2d2d2394c",
+ "userAssignedIdentities": {}
+ },
+ "etag": "abcd123"
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersDelete.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersDelete.json
new file mode 100644
index 000000000000..9a8ef60227a4
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersDiagnoseVirtualNetwork.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersDiagnoseVirtualNetwork.json
new file mode 100644
index 000000000000..035a6ed45a64
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersDiagnoseVirtualNetwork.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "findings": [
+ "Outbound dependency 'Storage:443' might not be satisfied (Outbound)"
+ ]
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersGet.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersGet.json
new file mode 100644
index 000000000000..6fec1ce678d6
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersGet.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4",
+ "name": "KustoClusterRPTest4",
+ "type": "Microsoft.Kusto/Clusters",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "enableDiskEncryption": false,
+ "enableStreamingIngest": true,
+ "enablePurge": false,
+ "keyVaultProperties": {
+ "keyVaultUri": "https://dummy.keyvault.com",
+ "keyName": "keyName",
+ "keyVersion": "keyVersion"
+ },
+ "engineType": "V3"
+ },
+ "sku": {
+ "name": "Standard_L8s",
+ "capacity": 2,
+ "tier": "Standard"
+ },
+ "identity": {
+ "type": "SystemAssigned",
+ "tenantId": "b932977f-6277-4ab7-a2cd-5bd21f07aaf4",
+ "principalId": "faabad1f-4876-463c-af9d-6ba2d2d2394c",
+ "userAssignedIdentities": {}
+ },
+ "etag": "abcd123"
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersList.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersList.json
new file mode 100644
index 000000000000..d678a14f63c3
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersList.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4",
+ "name": "KustoClusterRPTest4",
+ "type": "Microsoft.Kusto/Clusters",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "enableDiskEncryption": false,
+ "enableStreamingIngest": true,
+ "keyVaultProperties": {
+ "keyVaultUri": "https://dummy.keyvault.com",
+ "keyName": "keyName",
+ "keyVersion": "keyVersion"
+ },
+ "engineType": "V3"
+ },
+ "sku": {
+ "name": "Standard_L8s",
+ "capacity": 2,
+ "tier": "Standard"
+ },
+ "etag": "abcd123"
+ },
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest3",
+ "name": "KustoClusterRPTest3",
+ "type": "Microsoft.Kusto/Clusters",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "enableDiskEncryption": true,
+ "enableStreamingIngest": true,
+ "engineType": "V2"
+ },
+ "sku": {
+ "name": "Standard_L8s",
+ "capacity": 2,
+ "tier": "Standard"
+ },
+ "etag": "abcd123"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersListByResourceGroup.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersListByResourceGroup.json
new file mode 100644
index 000000000000..c6458b49ecbb
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersListByResourceGroup.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4",
+ "name": "KustoClusterRPTest4",
+ "type": "Microsoft.Kusto/Clusters",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "enableDiskEncryption": false,
+ "enableStreamingIngest": true,
+ "keyVaultProperties": {
+ "keyVaultUri": "https://dummy.keyvault.com",
+ "keyName": "keyName",
+ "keyVersion": "keyVersion"
+ },
+ "engineType": "V2"
+ },
+ "sku": {
+ "name": "Standard_L8s",
+ "capacity": 2,
+ "tier": "Standard"
+ },
+ "etag": "abcd123"
+ },
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest3",
+ "name": "KustoClusterRPTest3",
+ "type": "Microsoft.Kusto/Clusters",
+ "location": "westus",
+ "properties": {
+ "enableDiskEncryption": true,
+ "enableStreamingIngest": true,
+ "engineType": "V3",
+ "provisioningState": "Succeeded"
+ },
+ "sku": {
+ "name": "Standard_L8s",
+ "capacity": 2,
+ "tier": "Standard"
+ },
+ "etag": "abcd123"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersListResourceSkus.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersListResourceSkus.json
new file mode 100644
index 000000000000..e1b679b3ceef
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersListResourceSkus.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "resourceType": "clusters",
+ "sku": {
+ "name": "Standard_D13_v2",
+ "tier": "Standard"
+ },
+ "capacity": {
+ "minimum": 2,
+ "maximum": 100,
+ "default": 2,
+ "scaleType": "automatic"
+ }
+ },
+ {
+ "resourceType": "clusters",
+ "sku": {
+ "name": "Standard_D14_v2",
+ "tier": "Standard"
+ },
+ "capacity": {
+ "minimum": 2,
+ "maximum": 100,
+ "default": 2,
+ "scaleType": "automatic"
+ }
+ },
+ {
+ "resourceType": "clusters",
+ "sku": {
+ "name": "Standard_L8s",
+ "tier": "Standard"
+ },
+ "capacity": {
+ "minimum": 2,
+ "maximum": 100,
+ "default": 2,
+ "scaleType": "automatic"
+ }
+ },
+ {
+ "resourceType": "clusters",
+ "sku": {
+ "name": "Standard_L16s",
+ "tier": "Standard"
+ },
+ "capacity": {
+ "minimum": 2,
+ "maximum": 100,
+ "default": 2,
+ "scaleType": "automatic"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersListSkus.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersListSkus.json
new file mode 100644
index 000000000000..8d436ea814b1
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersListSkus.json
@@ -0,0 +1,103 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Standard_D13_v2",
+ "tier": "Standard",
+ "locations": [
+ "West US",
+ "West Europe"
+ ],
+ "locationInfo": [
+ {
+ "location": "West US",
+ "zones": [
+ "1",
+ "2",
+ "3"
+ ]
+ },
+ {
+ "location": "West Europe",
+ "zones": []
+ }
+ ]
+ },
+ {
+ "name": "Standard_D14_v2",
+ "tier": "Standard",
+ "locations": [
+ "West US",
+ "West Europe"
+ ],
+ "locationInfo": [
+ {
+ "location": "West US",
+ "zones": [
+ "1",
+ "2",
+ "3"
+ ]
+ },
+ {
+ "location": "West Europe",
+ "zones": []
+ }
+ ]
+ },
+ {
+ "name": "L8",
+ "tier": "Standard",
+ "locations": [
+ "West US",
+ "West Europe"
+ ],
+ "locationInfo": [
+ {
+ "location": "West US",
+ "zones": [
+ "1",
+ "2",
+ "3"
+ ]
+ },
+ {
+ "location": "West Europe",
+ "zones": []
+ }
+ ]
+ },
+ {
+ "name": "L16",
+ "tier": "Standard",
+ "locations": [
+ "West US",
+ "West Europe"
+ ],
+ "locationInfo": [
+ {
+ "location": "West US",
+ "zones": [
+ "1",
+ "2",
+ "3"
+ ]
+ },
+ {
+ "location": "West Europe",
+ "zones": []
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersStart.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersStart.json
new file mode 100644
index 000000000000..a9aa10a71f03
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersStart.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersStop.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersStop.json
new file mode 100644
index 000000000000..a9aa10a71f03
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersStop.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersUpdate.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersUpdate.json
new file mode 100644
index 000000000000..9b00a82d64f1
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoClustersUpdate.json
@@ -0,0 +1,118 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01",
+ "If-Match": "*",
+ "parameters": {
+ "location": "westus"
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "enableStreamingIngest": true,
+ "enablePurge": true,
+ "keyVaultProperties": {
+ "keyVaultUri": "https://dummy.keyvault.com",
+ "keyName": "keyName",
+ "keyVersion": "keyVersion"
+ },
+ "engineType": "V2"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4",
+ "name": "KustoClusterRPTest4",
+ "type": "Microsoft.Kusto/Clusters",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "enableDiskEncryption": false,
+ "enableStreamingIngest": true,
+ "enablePurge": true,
+ "keyVaultProperties": {
+ "keyVaultUri": "https://dummy.keyvault.com",
+ "keyName": "keyName",
+ "keyVersion": "keyVersion"
+ },
+ "engineType": "V2"
+ },
+ "sku": {
+ "name": "Standard_L8s",
+ "capacity": 2,
+ "tier": "Standard"
+ },
+ "identity": {
+ "type": "SystemAssigned",
+ "tenantId": "b932977f-6277-4ab7-a2cd-5bd21f07aaf4",
+ "principalId": "faabad1f-4876-463c-af9d-6ba2d2d2394c",
+ "userAssignedIdentities": {}
+ },
+ "etag": "abcd123"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4",
+ "name": "KustoClusterRPTest4",
+ "type": "Microsoft.Kusto/Clusters",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "enableDiskEncryption": false,
+ "enableStreamingIngest": true,
+ "enablePurge": true,
+ "keyVaultProperties": {
+ "keyVaultUri": "https://dummy.keyvault.com",
+ "keyName": "keyName",
+ "keyVersion": "keyVersion"
+ },
+ "engineType": "V2"
+ },
+ "sku": {
+ "name": "Standard_L8s",
+ "capacity": 2,
+ "tier": "Standard"
+ },
+ "identity": {
+ "type": "SystemAssigned",
+ "tenantId": "b932977f-6277-4ab7-a2cd-5bd21f07aaf4",
+ "principalId": "faabad1f-4876-463c-af9d-6ba2d2d2394c",
+ "userAssignedIdentities": {}
+ },
+ "etag": "abcd123"
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4",
+ "name": "KustoClusterRPTest4",
+ "type": "Microsoft.Kusto/Clusters",
+ "location": "westus",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "enableDiskEncryption": false,
+ "enableStreamingIngest": true,
+ "enablePurge": true,
+ "engineType": "V2"
+ },
+ "sku": {
+ "name": "Standard_L8s",
+ "capacity": 2,
+ "tier": "Standard"
+ },
+ "identity": {
+ "type": "SystemAssigned",
+ "tenantId": "b932977f-6277-4ab7-a2cd-5bd21f07aaf4",
+ "principalId": "faabad1f-4876-463c-af9d-6ba2d2d2394c",
+ "userAssignedIdentities": {}
+ },
+ "etag": "abcd123"
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionValidationAsync.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionValidationAsync.json
new file mode 100644
index 000000000000..aaffbd065ee5
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionValidationAsync.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "api-version": "2021-01-01",
+ "parameters": {
+ "dataConnectionName": "DataConnections8",
+ "properties": {
+ "kind": "EventHub",
+ "eventHubResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.EventHub/namespaces/eventhubTestns1/eventhubs/eventhubTest1",
+ "managedIdentityResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/managedidentityTest1",
+ "consumerGroup": "testConsumerGroup1"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "errorMessage": "Event hub's namespace does not exist"
+ },
+ {
+ "errorMessage": "Database does not exist"
+ }
+ ]
+ },
+ "202": {}
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsCheckNameAvailability.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsCheckNameAvailability.json
new file mode 100644
index 000000000000..3723219abdfa
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsCheckNameAvailability.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "api-version": "2021-01-01",
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "dataConnectionName": {
+ "name": "DataConnections8",
+ "type": "Microsoft.Kusto/clusters/databases/dataConnections"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "DataConnections8",
+ "nameAvailable": false,
+ "message": "Name 'DataConnections8' is already taken. Please specify a different name.",
+ "reason": "AlreadyExists"
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsCreateOrUpdate.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsCreateOrUpdate.json
new file mode 100644
index 000000000000..c5743460891f
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsCreateOrUpdate.json
@@ -0,0 +1,66 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "api-version": "2021-01-01",
+ "dataConnectionName": "DataConnections8",
+ "parameters": {
+ "location": "westus",
+ "kind": "EventHub",
+ "properties": {
+ "eventHubResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.EventHub/namespaces/eventhubTestns1/eventhubs/eventhubTest1",
+ "managedIdentityResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/managedidentityTest1",
+ "consumerGroup": "testConsumerGroup1"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8/DataConnections/DataConnections8",
+ "name": "KustoClusterRPTest4/KustoDatabase8/DataConnections8",
+ "type": "Microsoft.Kusto/Clusters/Databases/DataConnections",
+ "location": "westus",
+ "kind": "EventHub",
+ "properties": {
+ "eventHubResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.EventHub/namespaces/eventhubTestns1/eventhubs/eventhubTest1",
+ "managedIdentityResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/managedidentityTest1",
+ "consumerGroup": "testConsumerGroup1",
+ "compression": "None"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8/DataConnections/DataConnections8",
+ "name": "KustoClusterRPTest4/KustoDatabase8/DataConnections8",
+ "type": "Microsoft.Kusto/Clusters/Databases/DataConnections",
+ "location": "westus",
+ "kind": "EventHub",
+ "properties": {
+ "eventHubResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.EventHub/namespaces/eventhubTestns1/eventhubs/eventhubTest1",
+ "managedIdentityResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/managedidentityTest1",
+ "consumerGroup": "testConsumerGroup1",
+ "compression": "None"
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8/DataConnections/DataConnections8",
+ "name": "KustoClusterRPTest4/KustoDatabase8/DataConnections8",
+ "type": "Microsoft.Kusto/Clusters/Databases/DataConnections",
+ "location": "westus",
+ "kind": "EventHub",
+ "properties": {
+ "eventHubResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.EventHub/namespaces/eventhubTestns1/eventhubs/eventhubTest1",
+ "managedIdentityResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/managedidentityTest1",
+ "consumerGroup": "testConsumerGroup1",
+ "compression": "None"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsDelete.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsDelete.json
new file mode 100644
index 000000000000..6dfdcd5972b1
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsDelete.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "api-version": "2021-01-01",
+ "dataConnectionName": "kustoeventhubconnection1"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsGet.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsGet.json
new file mode 100644
index 000000000000..f7badd34886e
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsGet.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "api-version": "2021-01-01",
+ "dataConnectionName": "DataConnections8"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8/DataConnections/DataConnections8",
+ "name": "KustoClusterRPTest4/KustoDatabase8/DataConnections8",
+ "type": "Microsoft.Kusto/Clusters/Databases/DataConnections",
+ "location": "westus",
+ "kind": "EventHub",
+ "properties": {
+ "eventHubResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.EventHub/namespaces/eventhubTestns1/eventhubs/eventhubTest1",
+ "managedIdentityResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/managedidentityTest1",
+ "consumerGroup": "testConsumerGroup1",
+ "compression": "None"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsListByDatabase.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsListByDatabase.json
new file mode 100644
index 000000000000..62377ddc0872
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsListByDatabase.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8/DataConnections/KustoDataConnection8",
+ "name": "KustoClusterRPTest4/KustoDatabase8/KustoDataConnection8",
+ "type": "Microsoft.Kusto/Clusters/Databases/DataConnections",
+ "location": "westus",
+ "kind": "EventHub",
+ "properties": {
+ "eventHubResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.EventHub/namespaces/eventhubTestns1/eventhubs/eventhubTest1",
+ "managedIdentityResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/managedidentityTest1",
+ "consumerGroup": "testConsumerGroup1",
+ "compression": "None"
+ }
+ },
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase9/DataConnections/KustoDataConnection9",
+ "name": "KustoClusterRPTest4/KustoDatabase9/KustoDataConnection9",
+ "type": "Microsoft.Kusto/Clusters/Databases/DataConnections",
+ "location": "westus",
+ "kind": "EventHub",
+ "properties": {
+ "eventHubResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.EventHub/namespaces/eventhubTestns2/eventhubs/eventhubTest2",
+ "managedIdentityResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/managedidentityTest1",
+ "consumerGroup": "testConsumerGroup2",
+ "compression": "None"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsUpdate.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsUpdate.json
new file mode 100644
index 000000000000..c5743460891f
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDataConnectionsUpdate.json
@@ -0,0 +1,66 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "api-version": "2021-01-01",
+ "dataConnectionName": "DataConnections8",
+ "parameters": {
+ "location": "westus",
+ "kind": "EventHub",
+ "properties": {
+ "eventHubResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.EventHub/namespaces/eventhubTestns1/eventhubs/eventhubTest1",
+ "managedIdentityResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/managedidentityTest1",
+ "consumerGroup": "testConsumerGroup1"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8/DataConnections/DataConnections8",
+ "name": "KustoClusterRPTest4/KustoDatabase8/DataConnections8",
+ "type": "Microsoft.Kusto/Clusters/Databases/DataConnections",
+ "location": "westus",
+ "kind": "EventHub",
+ "properties": {
+ "eventHubResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.EventHub/namespaces/eventhubTestns1/eventhubs/eventhubTest1",
+ "managedIdentityResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/managedidentityTest1",
+ "consumerGroup": "testConsumerGroup1",
+ "compression": "None"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8/DataConnections/DataConnections8",
+ "name": "KustoClusterRPTest4/KustoDatabase8/DataConnections8",
+ "type": "Microsoft.Kusto/Clusters/Databases/DataConnections",
+ "location": "westus",
+ "kind": "EventHub",
+ "properties": {
+ "eventHubResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.EventHub/namespaces/eventhubTestns1/eventhubs/eventhubTest1",
+ "managedIdentityResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/managedidentityTest1",
+ "consumerGroup": "testConsumerGroup1",
+ "compression": "None"
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8/DataConnections/DataConnections8",
+ "name": "KustoClusterRPTest4/KustoDatabase8/DataConnections8",
+ "type": "Microsoft.Kusto/Clusters/Databases/DataConnections",
+ "location": "westus",
+ "kind": "EventHub",
+ "properties": {
+ "eventHubResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.EventHub/namespaces/eventhubTestns1/eventhubs/eventhubTest1",
+ "managedIdentityResourceId": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/managedidentityTest1",
+ "consumerGroup": "testConsumerGroup1",
+ "compression": "None"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabaseAddPrincipals.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabaseAddPrincipals.json
new file mode 100644
index 000000000000..55d0e1fa0cba
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabaseAddPrincipals.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "api-version": "2021-01-01",
+ "databasePrincipalsToAdd": {
+ "value": [
+ {
+ "name": "Some User",
+ "role": "Admin",
+ "type": "User",
+ "fqn": "aaduser=some_guid",
+ "email": "user@microsoft.com",
+ "appId": ""
+ },
+ {
+ "name": "Kusto",
+ "role": "Viewer",
+ "type": "Group",
+ "fqn": "aadgroup=some_guid",
+ "email": "kusto@microsoft.com",
+ "appId": ""
+ },
+ {
+ "name": "SomeApp",
+ "role": "Admin",
+ "type": "App",
+ "fqn": "aadapp=some_guid_app_id",
+ "email": "",
+ "appId": "some_guid_app_id"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Some User",
+ "role": "Admin",
+ "type": "User",
+ "fqn": "aaduser=some_guid",
+ "email": "user@microsoft.com",
+ "appId": ""
+ },
+ {
+ "name": "Kusto",
+ "role": "Viewer",
+ "type": "Group",
+ "fqn": "aadgroup=some_guid",
+ "email": "kusto@microsoft.com",
+ "appId": ""
+ },
+ {
+ "name": "SomeApp",
+ "role": "Admin",
+ "type": "App",
+ "fqn": "aadapp=some_guid_app_id",
+ "email": "",
+ "appId": "some_guid_app_id"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabaseListPrincipals.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabaseListPrincipals.json
new file mode 100644
index 000000000000..c75aba18fc31
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabaseListPrincipals.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Some User",
+ "role": "Admin",
+ "type": "User",
+ "fqn": "aaduser=some_guid",
+ "email": "user@microsoft.com",
+ "appId": ""
+ },
+ {
+ "name": "Kusto",
+ "role": "Viewer",
+ "type": "Group",
+ "fqn": "aadgroup=some_guid",
+ "email": "kusto@microsoft.com",
+ "appId": ""
+ },
+ {
+ "name": "SomeApp",
+ "role": "Admin",
+ "type": "App",
+ "fqn": "aadapp=some_guid_app_id",
+ "email": "",
+ "appId": "some_guid_app_id"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsCheckNameAvailability.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsCheckNameAvailability.json
new file mode 100644
index 000000000000..800c11e08b09
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsCheckNameAvailability.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "Kustodatabase8",
+ "principalAssignmentName": {
+ "name": "kustoprincipal1",
+ "type": "Microsoft.Kusto/clusters/databases/principalAssignments"
+ },
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "kustoprincipal1",
+ "nameAvailable": false,
+ "message": "Name 'kustoprincipal1' is already taken. Please specify a different name"
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsCreateOrUpdate.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsCreateOrUpdate.json
new file mode 100644
index 000000000000..be4b391dbde5
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsCreateOrUpdate.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "Kustodatabase8",
+ "principalAssignmentName": "kustoprincipal1",
+ "api-version": "2021-01-01",
+ "parameters": {
+ "properties": {
+ "role": "Admin",
+ "principalId": "87654321-1234-1234-1234-123456789123",
+ "principalType": "App",
+ "tenantId": "12345678-1234-1234-1234-123456789123"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoclusterrptest4/Databases/Kustodatabase8/PrincipalAssignments/kustoprincipal1",
+ "name": "kustoclusterrptest4/Kustodatabase8/kustoprincipal1",
+ "type": "Microsoft.Kusto/Clusters/Databases/PrincipalAssignments",
+ "properties": {
+ "role": "Admin",
+ "principalId": "87654321-1234-1234-1234-123456789123",
+ "principalType": "App",
+ "tenantId": "12345678-1234-1234-1234-123456789123",
+ "tenantName": "tenantName",
+ "principalName": "TestApp",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoclusterrptest4/Databases/Kustodatabase8/PrincipalAssignments/kustoprincipal1",
+ "name": "kustoclusterrptest4/Kustodatabase8/kustoprincipal1",
+ "type": "Microsoft.Kusto/Clusters/Databases/PrincipalAssignments",
+ "properties": {
+ "role": "Admin",
+ "principalId": "87654321-1234-1234-1234-123456789123",
+ "principalType": "App",
+ "tenantId": "12345678-1234-1234-1234-123456789123",
+ "tenantName": "tenantName",
+ "principalName": "TestApp",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsDelete.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsDelete.json
new file mode 100644
index 000000000000..a4760e4090db
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsDelete.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "Kustodatabase8",
+ "principalAssignmentName": "kustoprincipal1",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsGet.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsGet.json
new file mode 100644
index 000000000000..6d21c07b7e41
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsGet.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "Kustodatabase8",
+ "principalAssignmentName": "kustoprincipal1",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoclusterrptest4/Databases/Kustodatabase8/PrincipalAssignments/kustoprincipal1",
+ "name": "kustoclusterrptest4/Kustodatabase8/kustoprincipal1",
+ "type": "Microsoft.Kusto/Clusters/Databases/PrincipalAssignments",
+ "properties": {
+ "role": "Admin",
+ "principalId": "87654321-1234-1234-1234-123456789123",
+ "principalType": "App",
+ "tenantId": "12345678-1234-1234-1234-123456789123",
+ "tenantName": "tenantName",
+ "principalName": "TestApp",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsList.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsList.json
new file mode 100644
index 000000000000..653625bbbdc5
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasePrincipalAssignmentsList.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "Kustodatabase8",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoclusterrptest4/Databases/Kustodatabase8/PrincipalAssignments/kustoprincipal1",
+ "name": "kustoclusterrptest4/Kustodatabase8/kustoprincipal1",
+ "type": "Microsoft.Kusto/Clusters/Databases/PrincipalAssignments",
+ "properties": {
+ "role": "Admin",
+ "principalId": "87654321-1234-1234-1234-123456789123",
+ "principalType": "App",
+ "tenantId": "12345678-1234-1234-1234-123456789123",
+ "tenantName": "tenantName",
+ "principalName": "TestApp",
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoclusterrptest4/Databases/Kustodatabase8/PrincipalAssignments/kustoprincipal1",
+ "name": "kustoclusterrptest4/Kustodatabase8/kustoprincipal2",
+ "type": "Microsoft.Kusto/Clusters/Databases/PrincipalAssignments",
+ "properties": {
+ "role": "Admin",
+ "principalId": "87654321-1234-1234-1234-123456789123",
+ "principalType": "App",
+ "tenantId": "12345678-1234-1234-1234-123456789123",
+ "tenantName": "tenantName",
+ "principalName": "TestApp",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabaseReadonlyUpdate.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabaseReadonlyUpdate.json
new file mode 100644
index 000000000000..a39942b53be3
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabaseReadonlyUpdate.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoreadOnlyDatabase",
+ "api-version": "2021-01-01",
+ "parameters": {
+ "location": "westus",
+ "kind": "ReadOnlyFollowing",
+ "properties": {
+ "hotCachePeriod": "P1D"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoreadOnlyDatabase",
+ "name": "KustoClusterRPTest4/KustoreadOnlyDatabase",
+ "type": "Microsoft.Kusto/Clusters/Databases",
+ "kind": "ReadOnlyFollowing",
+ "location": "westus"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoreadOnlyDatabase",
+ "name": "KustoClusterRPTest4/KustoreadOnlyDatabase",
+ "type": "Microsoft.Kusto/Clusters/Databases",
+ "location": "westus",
+ "kind": "ReadOnlyFollowing",
+ "properties": {
+ "hotCachePeriod": "P1D",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoreadOnlyDatabase",
+ "name": "KustoClusterRPTest4/KustoreadOnlyDatabase",
+ "type": "Microsoft.Kusto/Clusters/Databases",
+ "location": "westus",
+ "kind": "ReadOnlyFollowing",
+ "properties": {
+ "hotCachePeriod": "P1D",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabaseRemovePrincipals.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabaseRemovePrincipals.json
new file mode 100644
index 000000000000..51c428d756ae
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabaseRemovePrincipals.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "api-version": "2021-01-01",
+ "databasePrincipalsToRemove": {
+ "value": [
+ {
+ "name": "Some User",
+ "role": "Admin",
+ "type": "User",
+ "fqn": "aaduser=some_guid",
+ "email": "user@microsoft.com",
+ "appId": ""
+ },
+ {
+ "name": "Kusto",
+ "role": "Viewer",
+ "type": "Group",
+ "fqn": "aadgroup=some_guid",
+ "email": "kusto@microsoft.com",
+ "appId": ""
+ },
+ {
+ "name": "SomeApp",
+ "role": "Admin",
+ "type": "App",
+ "fqn": "aadapp=some_guid_app_id",
+ "email": "",
+ "appId": "some_guid_app_id"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Some User",
+ "role": "Admin",
+ "type": "User",
+ "fqn": "aaduser=some_guid",
+ "email": "user@microsoft.com",
+ "appId": ""
+ },
+ {
+ "name": "Kusto",
+ "role": "Viewer",
+ "type": "Group",
+ "fqn": "aadgroup=some_guid",
+ "email": "kusto@microsoft.com",
+ "appId": ""
+ },
+ {
+ "name": "SomeApp",
+ "role": "Admin",
+ "type": "App",
+ "fqn": "aadapp=some_guid_app_id",
+ "email": "",
+ "appId": "some_guid_app_id"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesCheckNameAvailability.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesCheckNameAvailability.json
new file mode 100644
index 000000000000..667a957ad9a7
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesCheckNameAvailability.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "api-version": "2021-01-01",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "resourceName": {
+ "name": "kustoresourcename1",
+ "type": "Microsoft.Kusto/clusters/databases"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "kustoresourcename1",
+ "nameAvailable": false,
+ "message": "Name 'kuskus' is already taken. Please specify a different name"
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesCreateOrUpdate.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesCreateOrUpdate.json
new file mode 100644
index 000000000000..13cca8dc50bc
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesCreateOrUpdate.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "api-version": "2021-01-01",
+ "parameters": {
+ "location": "westus",
+ "properties": {
+ "softDeletePeriod": "P1D"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8",
+ "name": "KustoClusterRPTest4/KustoDatabase8",
+ "type": "Microsoft.Kusto/Clusters/Databases",
+ "kind": "ReadWrite",
+ "location": "westus"
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8",
+ "name": "KustoClusterRPTest4/KustoDatabase8",
+ "type": "Microsoft.Kusto/Clusters/Databases",
+ "location": "westus",
+ "kind": "ReadWrite",
+ "properties": {
+ "softDeletePeriod": "P1D",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8",
+ "name": "KustoClusterRPTest4/KustoDatabase8",
+ "type": "Microsoft.Kusto/Clusters/Databases",
+ "location": "westus",
+ "kind": "ReadWrite",
+ "properties": {
+ "softDeletePeriod": "P1D",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesDelete.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesDelete.json
new file mode 100644
index 000000000000..234ccea1ad10
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesGet.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesGet.json
new file mode 100644
index 000000000000..654e328070e0
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesGet.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8",
+ "name": "KustoClusterRPTest4/KustoDatabase8",
+ "type": "Microsoft.Kusto/Clusters/Databases",
+ "kind": "ReadWrite",
+ "location": "westus",
+ "properties": {
+ "softDeletePeriod": "P1D",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesListByCluster.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesListByCluster.json
new file mode 100644
index 000000000000..0b583c40863c
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesListByCluster.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8",
+ "name": "KustoClusterRPTest4/KustoDatabase8",
+ "type": "Microsoft.Kusto/Clusters/Databases",
+ "location": "westus",
+ "kind": "ReadWrite",
+ "properties": {
+ "softDeletePeriod": "P1D",
+ "hotCachePeriod": "P1D",
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase9",
+ "name": "KustoClusterRPTest4/KustoDatabase9",
+ "type": "Microsoft.Kusto/Clusters/Databases",
+ "location": "westus",
+ "kind": "ReadOnlyFollowing",
+ "properties": {
+ "softDeletePeriod": "P1D",
+ "hotCachePeriod": "P1D",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesUpdate.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesUpdate.json
new file mode 100644
index 000000000000..b98fc04174b1
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoDatabasesUpdate.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "api-version": "2021-01-01",
+ "parameters": {
+ "properties": {
+ "hotCachePeriod": "P1D"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8",
+ "name": "KustoClusterRPTest4/KustoDatabase8",
+ "type": "Microsoft.Kusto/Clusters/Databases",
+ "kind": "ReadWrite",
+ "location": "westus",
+ "properties": {
+ "hotCachePeriod": "P1D",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8",
+ "name": "KustoClusterRPTest4/KustoDatabase8",
+ "type": "Microsoft.Kusto/Clusters/Databases",
+ "kind": "ReadWrite",
+ "location": "westus",
+ "properties": {
+ "hotCachePeriod": "P1D",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8",
+ "name": "KustoClusterRPTest4/KustoDatabase8",
+ "type": "Microsoft.Kusto/Clusters/Databases",
+ "location": "westus",
+ "kind": "ReadWrite",
+ "properties": {
+ "hotCachePeriod": "P1D",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoOperationResultsGet.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoOperationResultsGet.json
new file mode 100644
index 000000000000..e7379093974c
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoOperationResultsGet.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "location": "westus",
+ "operationId": "30972f1b-b61d-4fd8-bd34-3dcfa24670f3",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/providers/Microsoft.Kusto/locations/westus/operationresults/30972f1b-b61d-4fd8-bd34-3dcfa24670f3",
+ "name": "30972f1b-b61d-4fd8-bd34-3dcfa24670f3",
+ "status": "Failed",
+ "startTime": "2020-10-26T13:45:39.6554616Z",
+ "endTime": "2020-10-26T13:45:42.7025301Z",
+ "percentComplete": 1.0,
+ "properties": {
+ "operationKind": "FollowerDatabaseCreate",
+ "operationState": "BadInput"
+ },
+ "error": {
+ "code": "CannotAlterFollowerDatabase",
+ "message": "[BadRequest] Cannot alter leader cluster 'test' for resource name 'adc'."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoOperationsList.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoOperationsList.json
new file mode 100644
index 000000000000..46064541b996
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoOperationsList.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "operationName",
+ "display": {
+ "provider": "providerName",
+ "resource": "resourceName",
+ "operation": "operationName",
+ "description": "operation description"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsCheckNameAvailability.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsCheckNameAvailability.json
new file mode 100644
index 000000000000..649488514407
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsCheckNameAvailability.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "api-version": "2021-01-01",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "db",
+ "scriptName": {
+ "name": "kustoScriptName1",
+ "type": "Microsoft.Kusto/clusters/databases/scripts"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "kustoScriptName1",
+ "nameAvailable": false,
+ "message": "Name 'kustoScriptName1' is already taken. Please specify a different name"
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsCreateOrUpdate.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsCreateOrUpdate.json
new file mode 100644
index 000000000000..e6f823171526
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsCreateOrUpdate.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "scriptName": "kustoScript1",
+ "api-version": "2021-01-01",
+ "parameters": {
+ "properties": {
+ "scriptUrl": "https://mysa.blob.core.windows.net/container/script.txt",
+ "scriptUrlSasToken": "?sv=2019-02-02&st=2019-04-29T22%3A18%3A26Z&se=2019-04-30T02%3A23%3A26Z&sr=b&sp=rw&sip=168.1.5.60-168.1.5.70&spr=https&sig=********************************",
+ "forceUpdateTag": "2bcf3c21-ffd1-4444-b9dd-e52e00ee53fe",
+ "continueOnErrors": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8/Scripts/kustoScript1",
+ "name": "KustoClusterRPTest4/KustoDatabase8/kustoScript1",
+ "type": "Microsoft.Kusto/Clusters/Databases/Scripts",
+ "properties": {
+ "scriptUrl": "https://mysa.blob.core.windows.net/container/script.txt",
+ "forceUpdateTag": "2bcf3c21-ffd1-4444-b9dd-e52e00ee53fe",
+ "continueOnErrors": true
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8/Scripts/kustoScript1",
+ "name": "KustoClusterRPTest4/KustoDatabase8/kustoScript1",
+ "type": "Microsoft.Kusto/Clusters/Databases/Scripts",
+ "properties": {
+ "scriptUrl": "https://mysa.blob.core.windows.net/container/script.txt",
+ "forceUpdateTag": "2bcf3c21-ffd1-4444-b9dd-e52e00ee53fe",
+ "continueOnErrors": true
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8/Scripts/kustoScript1",
+ "name": "KustoClusterRPTest4/KustoDatabase8/kustoScript1",
+ "type": "Microsoft.Kusto/Clusters/Databases/Scripts",
+ "properties": {
+ "scriptUrl": "https://mysa.blob.core.windows.net/container/script.txt",
+ "forceUpdateTag": "2bcf3c21-ffd1-4444-b9dd-e52e00ee53fe",
+ "continueOnErrors": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsDelete.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsDelete.json
new file mode 100644
index 000000000000..0d970154f8af
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsDelete.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "scriptName": "kustoScript1",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsGet.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsGet.json
new file mode 100644
index 000000000000..8714ff58807e
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsGet.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "Kustodatabase8",
+ "scriptName": "kustoScript1",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoclusterrptest4/Databases/Kustodatabase8/Scripts/kustoScript1",
+ "name": "kustoclusterrptest4/Kustodatabase8/kustoScript1",
+ "type": "Microsoft.Kusto/Clusters/Databases/Scripts",
+ "properties": {
+ "scriptUrl": "https://mysa.blob.core.windows.net/container/script.txt",
+ "forceUpdateTag": "2bcf3c21-ffd1-4444-b9dd-e52e00ee53fe",
+ "continueOnErrors": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsListByDatabase.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsListByDatabase.json
new file mode 100644
index 000000000000..83a617fb2889
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsListByDatabase.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "Kustodatabase8",
+ "api-version": "2021-01-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoclusterrptest4/Databases/Kustodatabase8/Scripts/kustoScript1",
+ "name": "kustoclusterrptest4/Kustodatabase8/kustoScript1",
+ "type": "Microsoft.Kusto/Clusters/Databases/Scripts",
+ "properties": {
+ "scriptUrl": "https://mysa.blob.core.windows.net/container/script.txt",
+ "forceUpdateTag": "2bcf3c21-ffd1-4444-b9dd-e52e00ee53fe",
+ "continueOnErrors": true
+ }
+ },
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoclusterrptest4/Databases/Kustodatabase8/Scripts/kustoScript2",
+ "name": "kustoclusterrptest4/Kustodatabase8/kustoScript2",
+ "type": "Microsoft.Kusto/Clusters/Databases/Scripts",
+ "properties": {
+ "scriptUrl": "https://mysa.blob.core.windows.net/container/script2.txt",
+ "forceUpdateTag": "2bcf3c21-ffd1-4444-b9dd-e52e00ee53fe",
+ "continueOnErrors": true
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsUpdate.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsUpdate.json
new file mode 100644
index 000000000000..b7b89b654455
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/examples/KustoScriptsUpdate.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-123456789098",
+ "resourceGroupName": "kustorptest",
+ "clusterName": "kustoclusterrptest4",
+ "databaseName": "KustoDatabase8",
+ "scriptName": "kustoScript1",
+ "api-version": "2021-01-01",
+ "parameters": {
+ "properties": {
+ "scriptUrl": "https://mysa.blob.core.windows.net/container/script.txt",
+ "scriptUrlSasToken": "?sv=2019-02-02&st=2019-04-29T22%3A18%3A26Z&se=2019-04-30T02%3A23%3A26Z&sr=b&sp=rw&sip=168.1.5.60-168.1.5.70&spr=https&sig=********************************",
+ "forceUpdateTag": "2bcf3c21-ffd1-4444-b9dd-e52e00ee53fe",
+ "continueOnErrors": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8/Scripts/kustoScript1",
+ "name": "KustoClusterRPTest4/KustoDatabase8/kustoScript1",
+ "type": "Microsoft.Kusto/Clusters/Databases/Scripts",
+ "properties": {
+ "scriptUrl": "https://mysa.blob.core.windows.net/container/script.txt",
+ "forceUpdateTag": "2bcf3c21-ffd1-4444-b9dd-e52e00ee53fe",
+ "continueOnErrors": true
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/KustoClusterRPTest4/Databases/KustoDatabase8/Scripts/kustoScript1",
+ "name": "KustoClusterRPTest4/KustoDatabase8/kustoScript1",
+ "type": "Microsoft.Kusto/Clusters/Databases/Scripts",
+ "properties": {
+ "scriptUrl": "https://mysa.blob.core.windows.net/container/script.txt",
+ "forceUpdateTag": "2bcf3c21-ffd1-4444-b9dd-e52e00ee53fe",
+ "continueOnErrors": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/kusto.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/kusto.json
new file mode 100644
index 000000000000..c28870abff65
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2021-01-01/kusto.json
@@ -0,0 +1,4935 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "KustoManagementClient",
+ "version": "2021-01-01"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}": {
+ "get": {
+ "tags": [
+ "Clusters"
+ ],
+ "operationId": "Clusters_Get",
+ "x-ms-examples": {
+ "KustoClustersGet": {
+ "$ref": "./examples/KustoClustersGet.json"
+ }
+ },
+ "description": "Gets a Kusto cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Kusto cluster.",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Clusters"
+ ],
+ "operationId": "Clusters_CreateOrUpdate",
+ "x-ms-examples": {
+ "KustoClustersCreateOrUpdate": {
+ "$ref": "./examples/KustoClustersCreateOrUpdate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Create or update a Kusto cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ },
+ "description": "The Kusto cluster parameters supplied to the CreateOrUpdate operation."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "x-ms-client-name": "IfMatch",
+ "description": "The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes."
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "x-ms-client-name": "IfNoneMatch",
+ "description": "Set to '*' to allow a new cluster to be created, but to prevent updating an existing cluster. Other values will result in a 412 Pre-condition Failed response."
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the Cluster.",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "201": {
+ "description": "Successfully created the cluster.",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Clusters"
+ ],
+ "operationId": "Clusters_Update",
+ "x-ms-examples": {
+ "KustoClustersUpdate": {
+ "$ref": "./examples/KustoClustersUpdate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Update a Kusto cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ClusterUpdate"
+ },
+ "description": "The Kusto cluster parameters supplied to the Update operation."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "x-ms-client-name": "IfMatch",
+ "description": "The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes."
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the Cluster.",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "201": {
+ "description": "Successfully updated the cluster.",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "202": {
+ "description": "Successfully updated the cluster.",
+ "schema": {
+ "$ref": "#/definitions/Cluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Clusters"
+ ],
+ "operationId": "Clusters_Delete",
+ "x-ms-examples": {
+ "KustoClustersDelete": {
+ "$ref": "./examples/KustoClustersDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Deletes a Kusto cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- cluster deleted successfully."
+ },
+ "202": {
+ "description": "Accepted the delete cluster request."
+ },
+ "204": {
+ "description": "NoContent -- cluster does not exist in the subscription."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/stop": {
+ "post": {
+ "tags": [
+ "Clusters"
+ ],
+ "operationId": "Clusters_Stop",
+ "x-ms-examples": {
+ "KustoClustersStop": {
+ "$ref": "./examples/KustoClustersStop.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Stops a Kusto cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/start": {
+ "post": {
+ "tags": [
+ "Clusters"
+ ],
+ "operationId": "Clusters_Start",
+ "x-ms-examples": {
+ "KustoClustersStart": {
+ "$ref": "./examples/KustoClustersStart.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Starts a Kusto cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/checkPrincipalAssignmentNameAvailability": {
+ "post": {
+ "tags": [
+ "ClusterPrincipalAssignments"
+ ],
+ "operationId": "ClusterPrincipalAssignments_CheckNameAvailability",
+ "x-ms-examples": {
+ "KustoClusterPrincipalAssignmentsCheckNameAvailability": {
+ "$ref": "./examples/KustoClusterPrincipalAssignmentsCheckNameAvailability.json"
+ }
+ },
+ "description": "Checks that the principal assignment name is valid and is not already in use.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "principalAssignmentName",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ClusterPrincipalAssignmentCheckNameRequest"
+ },
+ "description": "The name of the principal assignment."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Operation to check the kusto resource name availability was successful.",
+ "schema": {
+ "$ref": "#/definitions/CheckNameResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/principalAssignments/{principalAssignmentName}": {
+ "get": {
+ "tags": [
+ "ClusterPrincipalAssignments"
+ ],
+ "operationId": "ClusterPrincipalAssignments_Get",
+ "x-ms-examples": {
+ "KustoClusterPrincipalAssignmentsGet": {
+ "$ref": "./examples/KustoClusterPrincipalAssignmentsGet.json"
+ }
+ },
+ "description": "Gets a Kusto cluster principalAssignment.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrincipalAssignmentNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Kusto cluster principal assignment object.",
+ "schema": {
+ "$ref": "#/definitions/ClusterPrincipalAssignment"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ClusterPrincipalAssignments"
+ ],
+ "operationId": "ClusterPrincipalAssignments_CreateOrUpdate",
+ "x-ms-examples": {
+ "KustoClusterPrincipalAssignmentsCreateOrUpdate": {
+ "$ref": "./examples/KustoClusterPrincipalAssignmentsCreateOrUpdate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Create a Kusto cluster principalAssignment.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrincipalAssignmentNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ClusterPrincipalAssignment"
+ },
+ "description": "The Kusto cluster principalAssignment's parameters supplied for the operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the PrincipalAssignment.",
+ "schema": {
+ "$ref": "#/definitions/ClusterPrincipalAssignment"
+ }
+ },
+ "201": {
+ "description": "Successfully created the principalAssignment.",
+ "schema": {
+ "$ref": "#/definitions/ClusterPrincipalAssignment"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ClusterPrincipalAssignments"
+ ],
+ "operationId": "ClusterPrincipalAssignments_Delete",
+ "x-ms-examples": {
+ "KustoClusterPrincipalAssignmentsDelete": {
+ "$ref": "./examples/KustoClusterPrincipalAssignmentsDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Deletes a Kusto cluster principalAssignment.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrincipalAssignmentNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- principalAssignments deleted successfully."
+ },
+ "202": {
+ "description": "Accepted the delete principalAssignments request."
+ },
+ "204": {
+ "description": "NoContent -- principalAssignments does not exist in the subscription."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/principalAssignments": {
+ "get": {
+ "tags": [
+ "ClusterPrincipalAssignments"
+ ],
+ "operationId": "ClusterPrincipalAssignments_List",
+ "x-ms-examples": {
+ "KustoPrincipalAssignmentsList": {
+ "$ref": "./examples/KustoClusterPrincipalAssignmentsList.json"
+ }
+ },
+ "description": "Lists all Kusto cluster principalAssignments.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/ClusterPrincipalAssignmentListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/listFollowerDatabases": {
+ "post": {
+ "tags": [
+ "Clusters"
+ ],
+ "description": "Returns a list of databases that are owned by this cluster and were followed by another cluster.",
+ "operationId": "Clusters_ListFollowerDatabases",
+ "x-ms-examples": {
+ "KustoClusterListFollowerDatabases": {
+ "$ref": "./examples/KustoClusterListFollowerDatabases.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the list of followed databases.",
+ "schema": {
+ "$ref": "#/definitions/FollowerDatabaseListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/detachFollowerDatabases": {
+ "post": {
+ "tags": [
+ "Clusters"
+ ],
+ "description": "Detaches all followers of a database owned by this cluster.",
+ "operationId": "Clusters_DetachFollowerDatabases",
+ "x-ms-examples": {
+ "KustoClusterDetachFollowerDatabases": {
+ "$ref": "./examples/KustoClusterDetachFollowerDatabases.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "followerDatabaseToRemove",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/FollowerDatabaseDefinition"
+ },
+ "description": "The follower databases properties to remove."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/diagnoseVirtualNetwork": {
+ "post": {
+ "tags": [
+ "Clusters"
+ ],
+ "description": "Diagnoses network connectivity status for external resources on which the service is dependent on.",
+ "operationId": "Clusters_DiagnoseVirtualNetwork",
+ "x-ms-examples": {
+ "KustoClusterDiagnoseVirtualNetwork": {
+ "$ref": "./examples/KustoClustersDiagnoseVirtualNetwork.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/DiagnoseVirtualNetworkResult"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters": {
+ "get": {
+ "tags": [
+ "Clusters"
+ ],
+ "operationId": "Clusters_ListByResourceGroup",
+ "x-ms-examples": {
+ "KustoClustersListByResourceGroup": {
+ "$ref": "./examples/KustoClustersListByResourceGroup.json"
+ }
+ },
+ "description": "Lists all Kusto clusters within a resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/ClusterListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/clusters": {
+ "get": {
+ "tags": [
+ "Clusters"
+ ],
+ "operationId": "Clusters_List",
+ "x-ms-examples": {
+ "KustoClustersList": {
+ "$ref": "./examples/KustoClustersList.json"
+ }
+ },
+ "description": "Lists all Kusto clusters within a subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/ClusterListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/skus": {
+ "get": {
+ "description": "Lists eligible SKUs for Kusto resource provider.",
+ "x-ms-examples": {
+ "KustoClustersListSkus": {
+ "$ref": "./examples/KustoClustersListSkus.json"
+ }
+ },
+ "operationId": "Clusters_ListSkus",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/SkuDescriptionList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/locations/{location}/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "Clusters"
+ ],
+ "operationId": "Clusters_CheckNameAvailability",
+ "x-ms-examples": {
+ "KustoClustersCheckNameAvailability": {
+ "$ref": "./examples/KustoClustersCheckNameAvailability.json"
+ }
+ },
+ "description": "Checks that the cluster name is valid and is not already in use.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/LocationNameParameter"
+ },
+ {
+ "name": "clusterName",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ClusterCheckNameRequest"
+ },
+ "description": "The name of the cluster."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Operation to check the kusto resource name availability was successful.",
+ "schema": {
+ "$ref": "#/definitions/CheckNameResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "Databases"
+ ],
+ "operationId": "Databases_CheckNameAvailability",
+ "x-ms-examples": {
+ "KustoDatabaseCheckNameAvailability": {
+ "$ref": "./examples/KustoDatabasesCheckNameAvailability.json"
+ }
+ },
+ "description": "Checks that the database name is valid and is not already in use.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceName",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CheckNameRequest"
+ },
+ "description": "The name of the resource."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Operation to check the kusto resource name availability was successful.",
+ "schema": {
+ "$ref": "#/definitions/CheckNameResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/skus": {
+ "get": {
+ "tags": [
+ "Clusters"
+ ],
+ "operationId": "Clusters_ListSkusByResource",
+ "x-ms-examples": {
+ "KustoClustersListResourceSkus": {
+ "$ref": "./examples/KustoClustersListResourceSkus.json"
+ }
+ },
+ "description": "Returns the SKUs available for the provided resource.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/ListResourceSkusResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases": {
+ "get": {
+ "tags": [
+ "Databases"
+ ],
+ "description": "Returns the list of databases of the given Kusto cluster.",
+ "operationId": "Databases_ListByCluster",
+ "x-ms-examples": {
+ "KustoDatabasesListByCluster": {
+ "$ref": "./examples/KustoDatabasesListByCluster.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the list of databases.",
+ "schema": {
+ "$ref": "#/definitions/DatabaseListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}": {
+ "get": {
+ "tags": [
+ "Databases"
+ ],
+ "description": "Returns a database.",
+ "operationId": "Databases_Get",
+ "x-ms-examples": {
+ "KustoDatabasesGet": {
+ "$ref": "./examples/KustoDatabasesGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the specified database.",
+ "schema": {
+ "$ref": "#/definitions/Database"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Databases"
+ ],
+ "description": "Creates or updates a database.",
+ "operationId": "Databases_CreateOrUpdate",
+ "x-ms-examples": {
+ "Kusto ReadWrite database create or update": {
+ "$ref": "./examples/KustoDatabasesCreateOrUpdate.json"
+ },
+ "Kusto ReadOnly database update": {
+ "$ref": "./examples/KustoDatabaseReadonlyUpdate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Database"
+ },
+ "description": "The database parameters supplied to the CreateOrUpdate operation."
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the database.",
+ "schema": {
+ "$ref": "#/definitions/Database"
+ }
+ },
+ "201": {
+ "description": "Successfully created the database.",
+ "schema": {
+ "$ref": "#/definitions/Database"
+ }
+ },
+ "202": {
+ "description": "Accepted the create database request.",
+ "schema": {
+ "$ref": "#/definitions/Database"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "Databases"
+ ],
+ "description": "Updates a database.",
+ "operationId": "Databases_Update",
+ "x-ms-examples": {
+ "KustoDatabasesUpdate": {
+ "$ref": "./examples/KustoDatabasesUpdate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Database"
+ },
+ "description": "The database parameters supplied to the Update operation."
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the database.",
+ "schema": {
+ "$ref": "#/definitions/Database"
+ }
+ },
+ "201": {
+ "description": "Successfully updated the database.",
+ "schema": {
+ "$ref": "#/definitions/Database"
+ }
+ },
+ "202": {
+ "description": "Accepted the update database request.",
+ "schema": {
+ "$ref": "#/definitions/Database"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "Databases"
+ ],
+ "description": "Deletes the database with the given name.",
+ "operationId": "Databases_Delete",
+ "x-ms-examples": {
+ "KustoDatabasesDelete": {
+ "$ref": "./examples/KustoDatabasesDelete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the database."
+ },
+ "202": {
+ "description": "Accepted."
+ },
+ "204": {
+ "description": "The specified database does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/checkPrincipalAssignmentNameAvailability": {
+ "post": {
+ "tags": [
+ "DatabasePrincipalAssignments"
+ ],
+ "operationId": "DatabasePrincipalAssignments_CheckNameAvailability",
+ "x-ms-examples": {
+ "KustoDatabaseCheckNameAvailability": {
+ "$ref": "./examples/KustoDatabasePrincipalAssignmentsCheckNameAvailability.json"
+ }
+ },
+ "description": "Checks that the database principal assignment is valid and is not already in use.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "principalAssignmentName",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DatabasePrincipalAssignmentCheckNameRequest"
+ },
+ "description": "The name of the resource."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Operation to check the kusto resource name availability was successful.",
+ "schema": {
+ "$ref": "#/definitions/CheckNameResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/principalAssignments/{principalAssignmentName}": {
+ "get": {
+ "tags": [
+ "DatabasePrincipalAssignments"
+ ],
+ "operationId": "DatabasePrincipalAssignments_Get",
+ "x-ms-examples": {
+ "KustoDatabasePrincipalAssignmentsGet": {
+ "$ref": "./examples/KustoDatabasePrincipalAssignmentsGet.json"
+ }
+ },
+ "description": "Gets a Kusto cluster database principalAssignment.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrincipalAssignmentNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Kusto cluster database principal assignment object.",
+ "schema": {
+ "$ref": "#/definitions/DatabasePrincipalAssignment"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "DatabasePrincipalAssignments"
+ ],
+ "operationId": "DatabasePrincipalAssignments_CreateOrUpdate",
+ "x-ms-examples": {
+ "KustoDatabasePrincipalAssignmentsCreateOrUpdate": {
+ "$ref": "./examples/KustoDatabasePrincipalAssignmentsCreateOrUpdate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Creates a Kusto cluster database principalAssignment.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrincipalAssignmentNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DatabasePrincipalAssignment"
+ },
+ "description": "The Kusto principalAssignments parameters supplied for the operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the PrincipalAssignments.",
+ "schema": {
+ "$ref": "#/definitions/DatabasePrincipalAssignment"
+ }
+ },
+ "201": {
+ "description": "Successfully created the principalAssignments.",
+ "schema": {
+ "$ref": "#/definitions/DatabasePrincipalAssignment"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DatabasePrincipalAssignments"
+ ],
+ "operationId": "DatabasePrincipalAssignments_Delete",
+ "x-ms-examples": {
+ "KustoDatabasePrincipalAssignmentsDelete": {
+ "$ref": "./examples/KustoDatabasePrincipalAssignmentsDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Deletes a Kusto principalAssignment.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrincipalAssignmentNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- principalAssignments deleted successfully."
+ },
+ "202": {
+ "description": "Accepted the delete principalAssignments request."
+ },
+ "204": {
+ "description": "NoContent -- principalAssignments does not exist in the subscription."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/principalAssignments": {
+ "get": {
+ "tags": [
+ "DatabasePrincipalAssignments"
+ ],
+ "operationId": "DatabasePrincipalAssignments_List",
+ "x-ms-examples": {
+ "KustoPrincipalAssignmentsList": {
+ "$ref": "./examples/KustoDatabasePrincipalAssignmentsList.json"
+ }
+ },
+ "description": "Lists all Kusto cluster database principalAssignments.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/DatabasePrincipalAssignmentListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/listPrincipals": {
+ "post": {
+ "tags": [
+ "Databases"
+ ],
+ "description": "Returns a list of database principals of the given Kusto cluster and database.",
+ "operationId": "Databases_ListPrincipals",
+ "x-ms-examples": {
+ "KustoDatabaseListPrincipals": {
+ "$ref": "./examples/KustoDatabaseListPrincipals.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the list of database principals.",
+ "schema": {
+ "$ref": "#/definitions/DatabasePrincipalListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/addPrincipals": {
+ "post": {
+ "tags": [
+ "Databases"
+ ],
+ "operationId": "Databases_AddPrincipals",
+ "x-ms-examples": {
+ "KustoDatabaseAddPrincipals": {
+ "$ref": "./examples/KustoDatabaseAddPrincipals.json"
+ }
+ },
+ "description": "Add Database principals permissions.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "databasePrincipalsToAdd",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DatabasePrincipalListRequest"
+ },
+ "description": "List of database principals to add."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Successfully added the list of database principals. Returns the updated list of principals.",
+ "schema": {
+ "$ref": "#/definitions/DatabasePrincipalListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts": {
+ "get": {
+ "tags": [
+ "scripts"
+ ],
+ "operationId": "Scripts_ListByDatabase",
+ "x-ms-examples": {
+ "KustoScriptsList": {
+ "$ref": "./examples/KustoScriptsListByDatabase.json"
+ }
+ },
+ "description": "Returns the list of database scripts for given database.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The list result of Kusto database scripts.",
+ "schema": {
+ "$ref": "#/definitions/ScriptListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts/{scriptName}": {
+ "get": {
+ "tags": [
+ "Scripts"
+ ],
+ "operationId": "Scripts_Get",
+ "x-ms-examples": {
+ "KustoScriptsGet": {
+ "$ref": "./examples/KustoScriptsGet.json"
+ }
+ },
+ "description": "Gets a Kusto cluster database script.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ScriptNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Kusto cluster database script object.",
+ "schema": {
+ "$ref": "#/definitions/Script"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Scripts"
+ ],
+ "operationId": "Scripts_CreateOrUpdate",
+ "x-ms-examples": {
+ "KustoScriptsCreateOrUpdate": {
+ "$ref": "./examples/KustoScriptsCreateOrUpdate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Creates a Kusto database script.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ScriptNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Script"
+ },
+ "description": "The Kusto Script parameters contains the KQL to run."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the Script.",
+ "schema": {
+ "$ref": "#/definitions/Script"
+ }
+ },
+ "201": {
+ "description": "Successfully created the script.",
+ "schema": {
+ "$ref": "#/definitions/Script"
+ }
+ },
+ "202": {
+ "description": "Successfully accepted the Script.",
+ "schema": {
+ "$ref": "#/definitions/Script"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Scripts"
+ ],
+ "operationId": "Scripts_Update",
+ "x-ms-examples": {
+ "KustoScriptsUpdate": {
+ "$ref": "./examples/KustoScriptsUpdate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Updates a database script.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ScriptNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Script"
+ },
+ "description": "The Kusto Script parameters contains to the KQL to run."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the database script.",
+ "schema": {
+ "$ref": "#/definitions/Script"
+ }
+ },
+ "202": {
+ "description": "Accepted the update request of the database script.",
+ "schema": {
+ "$ref": "#/definitions/Script"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Scripts"
+ ],
+ "operationId": "Scripts_Delete",
+ "x-ms-examples": {
+ "KustoScriptsDelete": {
+ "$ref": "./examples/KustoScriptsDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Deletes a Kusto principalAssignment.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ScriptNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Script deleted successfully."
+ },
+ "202": {
+ "description": "Accepted the delete Script request."
+ },
+ "204": {
+ "description": "NoContent -- If the Script resource is already deleted, this is the expected status code."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurations": {
+ "get": {
+ "tags": [
+ "AttachedDatabaseConfigurations"
+ ],
+ "description": "Returns the list of attached database configurations of the given Kusto cluster.",
+ "operationId": "AttachedDatabaseConfigurations_ListByCluster",
+ "x-ms-examples": {
+ "KustoAttachedDatabaseConfigurationsListByCluster": {
+ "$ref": "./examples/KustoAttachedDatabaseConfigurationsListByCluster.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the list of attached database configurations.",
+ "schema": {
+ "$ref": "#/definitions/AttachedDatabaseConfigurationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurations/{attachedDatabaseConfigurationName}": {
+ "get": {
+ "tags": [
+ "AttachedDatabaseConfigurations"
+ ],
+ "description": "Returns an attached database configuration.",
+ "operationId": "AttachedDatabaseConfigurations_Get",
+ "x-ms-examples": {
+ "AttachedDatabaseConfigurationsGet": {
+ "$ref": "./examples/KustoAttachedDatabaseConfigurationsGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AttachedDatabaseConfigurationNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the specified attached database configuration.",
+ "schema": {
+ "$ref": "#/definitions/AttachedDatabaseConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "AttachedDatabaseConfigurations"
+ ],
+ "description": "Creates or updates an attached database configuration.",
+ "operationId": "AttachedDatabaseConfigurations_CreateOrUpdate",
+ "x-ms-examples": {
+ "AttachedDatabaseConfigurationsCreateOrUpdate": {
+ "$ref": "./examples/KustoAttachedDatabaseConfigurationsCreateOrUpdate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AttachedDatabaseConfigurationNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AttachedDatabaseConfiguration"
+ },
+ "description": "The database parameters supplied to the CreateOrUpdate operation."
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the database.",
+ "schema": {
+ "$ref": "#/definitions/AttachedDatabaseConfiguration"
+ }
+ },
+ "201": {
+ "description": "Successfully created the database.",
+ "schema": {
+ "$ref": "#/definitions/AttachedDatabaseConfiguration"
+ }
+ },
+ "202": {
+ "description": "Accepted the create database request.",
+ "schema": {
+ "$ref": "#/definitions/AttachedDatabaseConfiguration"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "AttachedDatabaseConfigurations"
+ ],
+ "description": "Deletes the attached database configuration with the given name.",
+ "operationId": "AttachedDatabaseConfigurations_Delete",
+ "x-ms-examples": {
+ "AttachedDatabaseConfigurationsDelete": {
+ "$ref": "./examples/KustoAttachedDatabaseConfigurationsDelete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AttachedDatabaseConfigurationNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the database."
+ },
+ "202": {
+ "description": "Accepted."
+ },
+ "204": {
+ "description": "The specified database does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/removePrincipals": {
+ "post": {
+ "tags": [
+ "Databases"
+ ],
+ "operationId": "Databases_RemovePrincipals",
+ "x-ms-examples": {
+ "KustoDatabaseRemovePrincipals": {
+ "$ref": "./examples/KustoDatabaseRemovePrincipals.json"
+ }
+ },
+ "description": "Remove Database principals permissions.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "databasePrincipalsToRemove",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DatabasePrincipalListRequest"
+ },
+ "description": "List of database principals to remove."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Successfully removed the list of database principals. Returns the updated list of principals.",
+ "schema": {
+ "$ref": "#/definitions/DatabasePrincipalListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections": {
+ "get": {
+ "tags": [
+ "DataConnections"
+ ],
+ "description": "Returns the list of data connections of the given Kusto database.",
+ "operationId": "DataConnections_ListByDatabase",
+ "x-ms-examples": {
+ "KustoDatabasesListByCluster": {
+ "$ref": "./examples/KustoDataConnectionsListByDatabase.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the list of data connections.",
+ "schema": {
+ "$ref": "#/definitions/DataConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnectionValidation": {
+ "post": {
+ "tags": [
+ "DataConnections"
+ ],
+ "operationId": "DataConnections_dataConnectionValidation",
+ "x-ms-examples": {
+ "KustoDataConnectionValidation": {
+ "$ref": "./examples/KustoDataConnectionValidationAsync.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "description": "Checks that the data connection parameters are valid.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DataConnectionValidation"
+ },
+ "description": "The data connection parameters supplied to the CreateOrUpdate operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Operation to check the kusto resource name availability was successful.",
+ "schema": {
+ "$ref": "#/definitions/DataConnectionValidationListResult"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "DataConnections"
+ ],
+ "operationId": "DataConnections_CheckNameAvailability",
+ "x-ms-examples": {
+ "KustoDataConnectionsCheckNameAvailability": {
+ "$ref": "./examples/KustoDataConnectionsCheckNameAvailability.json"
+ }
+ },
+ "description": "Checks that the data connection name is valid and is not already in use.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "dataConnectionName",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DataConnectionCheckNameRequest"
+ },
+ "description": "The name of the data connection."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Operation to check the Kusto resource name availability was successful.",
+ "schema": {
+ "$ref": "#/definitions/CheckNameResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scriptsCheckNameAvailability": {
+ "post": {
+ "tags": [
+ "Scripts"
+ ],
+ "operationId": "Scripts_CheckNameAvailability",
+ "x-ms-examples": {
+ "KustoScriptsCheckNameAvailability": {
+ "$ref": "./examples/KustoScriptsCheckNameAvailability.json"
+ }
+ },
+ "description": "Checks that the script name is valid and is not already in use.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "scriptName",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ScriptCheckNameRequest"
+ },
+ "description": "The name of the script."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Operation to check the Kusto resource name availability was successful.",
+ "schema": {
+ "$ref": "#/definitions/CheckNameResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections/{dataConnectionName}": {
+ "get": {
+ "tags": [
+ "DataConnections"
+ ],
+ "description": "Returns a data connection.",
+ "operationId": "DataConnections_Get",
+ "x-ms-examples": {
+ "KustoDataConnectionsGet": {
+ "$ref": "./examples/KustoDataConnectionsGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DataConnectionNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the specified data connection.",
+ "schema": {
+ "$ref": "#/definitions/DataConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "DataConnections"
+ ],
+ "description": "Creates or updates a data connection.",
+ "operationId": "DataConnections_CreateOrUpdate",
+ "x-ms-examples": {
+ "KustoDataConnectionsCreateOrUpdate": {
+ "$ref": "./examples/KustoDataConnectionsCreateOrUpdate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DataConnectionNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DataConnection"
+ },
+ "description": "The data connection parameters supplied to the CreateOrUpdate operation."
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the data connection.",
+ "schema": {
+ "$ref": "#/definitions/DataConnection"
+ }
+ },
+ "201": {
+ "description": "Successfully created the data connection.",
+ "schema": {
+ "$ref": "#/definitions/DataConnection"
+ }
+ },
+ "202": {
+ "description": "Accepted the create data connection request.",
+ "schema": {
+ "$ref": "#/definitions/DataConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "DataConnections"
+ ],
+ "description": "Updates a data connection.",
+ "operationId": "DataConnections_Update",
+ "x-ms-examples": {
+ "KustoDataConnectionsUpdate": {
+ "$ref": "./examples/KustoDataConnectionsUpdate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DataConnectionNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DataConnection"
+ },
+ "description": "The data connection parameters supplied to the Update operation."
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully updated the data connection.",
+ "schema": {
+ "$ref": "#/definitions/DataConnection"
+ }
+ },
+ "201": {
+ "description": "Successfully updated the data connection.",
+ "schema": {
+ "$ref": "#/definitions/DataConnection"
+ }
+ },
+ "202": {
+ "description": "Accepted the update data connection request.",
+ "schema": {
+ "$ref": "#/definitions/DataConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "DataConnections"
+ ],
+ "description": "Deletes the data connection with the given name.",
+ "operationId": "DataConnections_Delete",
+ "x-ms-examples": {
+ "KustoDataConnectionsDelete": {
+ "$ref": "./examples/KustoDataConnectionsDelete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatabaseNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DataConnectionNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the data connection."
+ },
+ "202": {
+ "description": "Accepted."
+ },
+ "204": {
+ "description": "The specified data connection does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/providers/Microsoft.Kusto/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "operationId": "Operations_List",
+ "x-ms-examples": {
+ "KustoOperationsList": {
+ "$ref": "./examples/KustoOperationsList.json"
+ }
+ },
+ "description": "Lists available operations for the Microsoft.Kusto provider.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the list of available operations.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/listLanguageExtensions": {
+ "post": {
+ "tags": [
+ "Clusters"
+ ],
+ "description": "Returns a list of language extensions that can run within KQL queries.",
+ "operationId": "Clusters_ListLanguageExtensions",
+ "x-ms-examples": {
+ "KustoClusterListLanguageExtensions": {
+ "$ref": "./examples/KustoClusterListLanguageExtensions.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the list of language extensions.",
+ "schema": {
+ "$ref": "#/definitions/LanguageExtensionsList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/addLanguageExtensions": {
+ "post": {
+ "tags": [
+ "Clusters"
+ ],
+ "description": "Add a list of language extensions that can run within KQL queries.",
+ "operationId": "Clusters_AddLanguageExtensions",
+ "x-ms-examples": {
+ "KustoClusterAddLanguageExtensions": {
+ "$ref": "./examples/KustoClusterAddLanguageExtensions.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "languageExtensionsToAdd",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/LanguageExtensionsList"
+ },
+ "description": "The language extensions to add."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/removeLanguageExtensions": {
+ "post": {
+ "tags": [
+ "Clusters"
+ ],
+ "description": "Remove a list of language extensions that can run within KQL queries.",
+ "operationId": "Clusters_RemoveLanguageExtensions",
+ "x-ms-examples": {
+ "KustoClusterRemoveLanguageExtensions": {
+ "$ref": "./examples/KustoClusterRemoveLanguageExtensions.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/ClusterNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "languageExtensionsToRemove",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/LanguageExtensionsList"
+ },
+ "description": "The language extensions to remove."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/locations/{location}/operationresults/{operationId}": {
+ "get": {
+ "tags": [
+ "OperationResults"
+ ],
+ "description": "Returns operation results.",
+ "operationId": "OperationsResults_Get",
+ "x-ms-examples": {
+ "KustoOperationResultsGet": {
+ "$ref": "./examples/KustoOperationResultsGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/LocationNameParameter"
+ },
+ {
+ "$ref": "#/parameters/OperationIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the operation result.",
+ "schema": {
+ "$ref": "#/definitions/OperationResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ClusterProperties": {
+ "properties": {
+ "state": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The state of the resource.",
+ "enum": [
+ "Creating",
+ "Unavailable",
+ "Running",
+ "Deleting",
+ "Deleted",
+ "Stopping",
+ "Stopped",
+ "Starting",
+ "Updating"
+ ],
+ "x-ms-enum": {
+ "name": "State",
+ "modelAsString": true
+ }
+ },
+ "provisioningState": {
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
+ },
+ "uri": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The cluster URI."
+ },
+ "dataIngestionUri": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The cluster data ingestion URI."
+ },
+ "stateReason": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The reason for the cluster's current state."
+ },
+ "trustedExternalTenants": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TrustedExternalTenant"
+ },
+ "description": "The cluster's external tenants."
+ },
+ "optimizedAutoscale": {
+ "type": "object",
+ "$ref": "#/definitions/OptimizedAutoscale",
+ "description": "Optimized auto scale definition."
+ },
+ "enableDiskEncryption": {
+ "description": "A boolean value that indicates if the cluster's disks are encrypted.",
+ "default": false,
+ "type": "boolean"
+ },
+ "enableStreamingIngest": {
+ "description": "A boolean value that indicates if the streaming ingest is enabled.",
+ "default": false,
+ "type": "boolean"
+ },
+ "virtualNetworkConfiguration": {
+ "type": "object",
+ "$ref": "#/definitions/VirtualNetworkConfiguration",
+ "description": "Virtual network definition."
+ },
+ "keyVaultProperties": {
+ "type": "object",
+ "$ref": "#/definitions/KeyVaultProperties",
+ "description": "KeyVault properties for the cluster encryption."
+ },
+ "enablePurge": {
+ "description": "A boolean value that indicates if the purge operations are enabled.",
+ "default": false,
+ "type": "boolean"
+ },
+ "languageExtensions": {
+ "type": "object",
+ "$ref": "#/definitions/LanguageExtensionsList",
+ "readOnly": true,
+ "description": "List of the cluster's language extensions."
+ },
+ "enableDoubleEncryption": {
+ "description": "A boolean value that indicates if double encryption is enabled.",
+ "default": false,
+ "type": "boolean"
+ },
+ "engineType": {
+ "type": "string",
+ "description": "The engine type",
+ "enum": [
+ "V2",
+ "V3"
+ ],
+ "x-ms-enum": {
+ "name": "EngineType",
+ "modelAsString": true
+ },
+ "default": "V3"
+ }
+ },
+ "description": "Class representing the Kusto cluster properties."
+ },
+ "TrustedExternalTenant": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "GUID representing an external tenant."
+ }
+ },
+ "description": "Represents a tenant ID that is trusted by the cluster."
+ },
+ "AzureResourceSku": {
+ "properties": {
+ "resourceType": {
+ "type": "string",
+ "description": "Resource Namespace and Type."
+ },
+ "sku": {
+ "$ref": "#/definitions/AzureSku",
+ "description": "The SKU details."
+ },
+ "capacity": {
+ "$ref": "#/definitions/AzureCapacity",
+ "description": "The number of instances of the cluster."
+ }
+ },
+ "description": "Azure resource SKU definition."
+ },
+ "AzureCapacity": {
+ "type": "object",
+ "required": [
+ "minimum",
+ "maximum",
+ "default",
+ "scaleType"
+ ],
+ "properties": {
+ "scaleType": {
+ "description": "Scale type.",
+ "type": "string",
+ "enum": [
+ "automatic",
+ "manual",
+ "none"
+ ],
+ "x-ms-enum": {
+ "name": "AzureScaleType",
+ "modelAsString": true
+ }
+ },
+ "minimum": {
+ "description": "Minimum allowed capacity.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "maximum": {
+ "description": "Maximum allowed capacity.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "default": {
+ "description": "The default capacity that would be used.",
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "description": "Azure capacity definition."
+ },
+ "SkuDescriptionList": {
+ "description": "The list of the EngagementFabric SKU descriptions",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "SKU descriptions",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SkuDescription"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "SkuDescription": {
+ "description": "The Kusto SKU description of given resource type",
+ "type": "object",
+ "properties": {
+ "resourceType": {
+ "description": "The resource type",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "The name of the SKU",
+ "type": "string",
+ "readOnly": true
+ },
+ "tier": {
+ "description": "The tier of the SKU",
+ "type": "string",
+ "readOnly": true
+ },
+ "locations": {
+ "description": "The set of locations that the SKU is available",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "locationInfo": {
+ "description": "Locations and zones",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SkuLocationInfoItem"
+ },
+ "readOnly": true
+ },
+ "restrictions": {
+ "description": "The restrictions because of which SKU cannot be used",
+ "type": "array",
+ "items": {
+ "type": "object"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "SkuLocationInfoItem": {
+ "description": "The locations and zones info for SKU.",
+ "type": "object",
+ "required": [
+ "location"
+ ],
+ "properties": {
+ "location": {
+ "description": "The available location of the SKU.",
+ "type": "string"
+ },
+ "zones": {
+ "description": "The available zone of the SKU.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "AzureSku": {
+ "type": "object",
+ "required": [
+ "name",
+ "tier"
+ ],
+ "properties": {
+ "name": {
+ "description": "SKU name.",
+ "type": "string",
+ "enum": [
+ "Standard_DS13_v2+1TB_PS",
+ "Standard_DS13_v2+2TB_PS",
+ "Standard_DS14_v2+3TB_PS",
+ "Standard_DS14_v2+4TB_PS",
+ "Standard_D13_v2",
+ "Standard_D14_v2",
+ "Standard_L8s",
+ "Standard_L16s",
+ "Standard_L8s_v2",
+ "Standard_L16s_v2",
+ "Standard_D11_v2",
+ "Standard_D12_v2",
+ "Standard_L4s",
+ "Dev(No SLA)_Standard_D11_v2",
+ "Standard_E64i_v3",
+ "Standard_E80ids_v4",
+ "Standard_E2a_v4",
+ "Standard_E4a_v4",
+ "Standard_E8a_v4",
+ "Standard_E16a_v4",
+ "Standard_E8as_v4+1TB_PS",
+ "Standard_E8as_v4+2TB_PS",
+ "Standard_E16as_v4+3TB_PS",
+ "Standard_E16as_v4+4TB_PS",
+ "Dev(No SLA)_Standard_E2a_v4"
+ ],
+ "x-ms-enum": {
+ "name": "AzureSkuName",
+ "modelAsString": true
+ }
+ },
+ "capacity": {
+ "description": "The number of instances of the cluster.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "tier": {
+ "description": "SKU tier.",
+ "type": "string",
+ "enum": [
+ "Basic",
+ "Standard"
+ ],
+ "x-ms-enum": {
+ "name": "AzureSkuTier",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Azure SKU definition."
+ },
+ "Zones": {
+ "description": "An array represents the availability zones of the cluster.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "OptimizedAutoscale": {
+ "type": "object",
+ "required": [
+ "version",
+ "isEnabled",
+ "minimum",
+ "maximum"
+ ],
+ "properties": {
+ "version": {
+ "description": "The version of the template defined, for instance 1.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "isEnabled": {
+ "description": "A boolean value that indicate if the optimized autoscale feature is enabled or not.",
+ "type": "boolean"
+ },
+ "minimum": {
+ "description": "Minimum allowed instances count.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "maximum": {
+ "description": "Maximum allowed instances count.",
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "description": "A class that contains the optimized auto scale definition."
+ },
+ "VirtualNetworkConfiguration": {
+ "type": "object",
+ "required": [
+ "subnetId",
+ "enginePublicIpId",
+ "dataManagementPublicIpId"
+ ],
+ "properties": {
+ "subnetId": {
+ "description": "The subnet resource id.",
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "enginePublicIpId": {
+ "description": "Engine service's public IP address resource id.",
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "dataManagementPublicIpId": {
+ "description": "Data management's service public IP address resource id.",
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ }
+ },
+ "description": "A class that contains virtual network definition."
+ },
+ "DatabaseStatistics": {
+ "type": "object",
+ "readOnly": true,
+ "properties": {
+ "size": {
+ "type": "number",
+ "description": "The database size - the total size of compressed data and index in bytes."
+ }
+ },
+ "description": "A class that contains database statistics information."
+ },
+ "AttachedDatabaseConfigurationProperties": {
+ "properties": {
+ "provisioningState": {
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
+ },
+ "databaseName": {
+ "type": "string",
+ "description": "The name of the database which you would like to attach, use * if you want to follow all current and future databases."
+ },
+ "clusterResourceId": {
+ "type": "string",
+ "description": "The resource id of the cluster where the databases you would like to attach reside."
+ },
+ "attachedDatabaseNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true,
+ "description": "The list of databases from the clusterResourceId which are currently attached to the cluster."
+ },
+ "defaultPrincipalsModificationKind": {
+ "type": "string",
+ "enum": [
+ "Union",
+ "Replace",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "DefaultPrincipalsModificationKind",
+ "modelAsString": true
+ },
+ "description": "The default principals modification kind"
+ },
+ "tableLevelSharingProperties": {
+ "type": "object",
+ "$ref": "#/definitions/TableLevelSharingProperties",
+ "description": "Table level sharing specifications"
+ }
+ },
+ "description": "Class representing the an attached database configuration properties of kind specific.",
+ "required": [
+ "databaseName",
+ "clusterResourceId",
+ "defaultPrincipalsModificationKind"
+ ]
+ },
+ "ReadWriteDatabaseProperties": {
+ "properties": {
+ "provisioningState": {
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
+ },
+ "softDeletePeriod": {
+ "type": "string",
+ "format": "duration",
+ "description": "The time the data should be kept before it stops being accessible to queries in TimeSpan."
+ },
+ "hotCachePeriod": {
+ "type": "string",
+ "format": "duration",
+ "description": "The time the data should be kept in cache for fast queries in TimeSpan."
+ },
+ "statistics": {
+ "$ref": "#/definitions/DatabaseStatistics",
+ "description": "The statistics of the database."
+ },
+ "isFollowed": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "Indicates whether the database is followed."
+ }
+ },
+ "description": "Class representing the Kusto database properties."
+ },
+ "ReadOnlyFollowingDatabaseProperties": {
+ "properties": {
+ "provisioningState": {
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
+ },
+ "softDeletePeriod": {
+ "type": "string",
+ "readOnly": true,
+ "format": "duration",
+ "description": "The time the data should be kept before it stops being accessible to queries in TimeSpan."
+ },
+ "hotCachePeriod": {
+ "type": "string",
+ "format": "duration",
+ "description": "The time the data should be kept in cache for fast queries in TimeSpan."
+ },
+ "statistics": {
+ "$ref": "#/definitions/DatabaseStatistics",
+ "description": "The statistics of the database."
+ },
+ "leaderClusterResourceId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the leader cluster"
+ },
+ "attachedDatabaseConfigurationName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the attached database configuration cluster"
+ },
+ "principalsModificationKind": {
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Union",
+ "Replace",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "PrincipalsModificationKind",
+ "modelAsString": true
+ },
+ "description": "The principals modification kind of the database"
+ }
+ },
+ "description": "Class representing the Kusto database properties."
+ },
+ "EventHubConnectionProperties": {
+ "properties": {
+ "eventHubResourceId": {
+ "type": "string",
+ "description": "The resource ID of the event hub to be used to create a data connection."
+ },
+ "consumerGroup": {
+ "type": "string",
+ "description": "The event hub consumer group."
+ },
+ "tableName": {
+ "type": "string",
+ "description": "The table where the data should be ingested. Optionally the table information can be added to each message."
+ },
+ "mappingRuleName": {
+ "type": "string",
+ "description": "The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message."
+ },
+ "dataFormat": {
+ "$ref": "#/definitions/EventHubDataFormat",
+ "description": "The data format of the message. Optionally the data format can be added to each message."
+ },
+ "eventSystemProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "System properties of the event hub"
+ },
+ "compression": {
+ "$ref": "#/definitions/Compression",
+ "description": "The event hub messages compression type"
+ },
+ "provisioningState": {
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
+ },
+ "managedIdentityResourceId": {
+ "type": "string",
+ "description": "The resource ID of a managed identity (system or user assigned) to be used to authenticate with event hub."
+ }
+ },
+ "required": [
+ "eventHubResourceId",
+ "consumerGroup"
+ ],
+ "description": "Class representing the Kusto event hub connection properties."
+ },
+ "IotHubConnectionProperties": {
+ "properties": {
+ "iotHubResourceId": {
+ "type": "string",
+ "description": "The resource ID of the Iot hub to be used to create a data connection."
+ },
+ "consumerGroup": {
+ "type": "string",
+ "description": "The iot hub consumer group."
+ },
+ "tableName": {
+ "type": "string",
+ "description": "The table where the data should be ingested. Optionally the table information can be added to each message."
+ },
+ "mappingRuleName": {
+ "type": "string",
+ "description": "The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message."
+ },
+ "dataFormat": {
+ "$ref": "#/definitions/IotHubDataFormat",
+ "description": "The data format of the message. Optionally the data format can be added to each message."
+ },
+ "eventSystemProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "System properties of the iot hub"
+ },
+ "sharedAccessPolicyName": {
+ "type": "string",
+ "description": "The name of the share access policy"
+ },
+ "provisioningState": {
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
+ }
+ },
+ "required": [
+ "iotHubResourceId",
+ "consumerGroup",
+ "sharedAccessPolicyName"
+ ],
+ "description": "Class representing the Kusto Iot hub connection properties."
+ },
+ "EventHubDataFormat": {
+ "description": "The data format of the message. Optionally the data format can be added to each message.",
+ "type": "string",
+ "enum": [
+ "MULTIJSON",
+ "JSON",
+ "CSV",
+ "TSV",
+ "SCSV",
+ "SOHSV",
+ "PSV",
+ "TXT",
+ "RAW",
+ "SINGLEJSON",
+ "AVRO",
+ "TSVE",
+ "PARQUET",
+ "ORC",
+ "APACHEAVRO",
+ "W3CLOGFILE"
+ ],
+ "x-ms-enum": {
+ "name": "eventHubDataFormat",
+ "modelAsString": true
+ }
+ },
+ "IotHubDataFormat": {
+ "description": "The data format of the message. Optionally the data format can be added to each message.",
+ "type": "string",
+ "enum": [
+ "MULTIJSON",
+ "JSON",
+ "CSV",
+ "TSV",
+ "SCSV",
+ "SOHSV",
+ "PSV",
+ "TXT",
+ "RAW",
+ "SINGLEJSON",
+ "AVRO",
+ "TSVE",
+ "PARQUET",
+ "ORC",
+ "APACHEAVRO",
+ "W3CLOGFILE"
+ ],
+ "x-ms-enum": {
+ "name": "iotHubDataFormat",
+ "modelAsString": true
+ }
+ },
+ "EventGridDataFormat": {
+ "description": "The data format of the message. Optionally the data format can be added to each message.",
+ "type": "string",
+ "enum": [
+ "MULTIJSON",
+ "JSON",
+ "CSV",
+ "TSV",
+ "SCSV",
+ "SOHSV",
+ "PSV",
+ "TXT",
+ "RAW",
+ "SINGLEJSON",
+ "AVRO",
+ "TSVE",
+ "PARQUET",
+ "ORC",
+ "APACHEAVRO",
+ "W3CLOGFILE"
+ ],
+ "x-ms-enum": {
+ "name": "eventGridDataFormat",
+ "modelAsString": true
+ }
+ },
+ "BlobStorageEventType": {
+ "description": "The name of blob storage event type to process.",
+ "type": "string",
+ "enum": [
+ "Microsoft.Storage.BlobCreated",
+ "Microsoft.Storage.BlobRenamed"
+ ],
+ "x-ms-enum": {
+ "name": "blobStorageEventType",
+ "modelAsString": true
+ }
+ },
+ "Compression": {
+ "description": "The compression type",
+ "type": "string",
+ "enum": [
+ "None",
+ "GZip"
+ ],
+ "x-ms-enum": {
+ "name": "compression",
+ "modelAsString": true
+ },
+ "default": "None"
+ },
+ "EventGridConnectionProperties": {
+ "properties": {
+ "storageAccountResourceId": {
+ "type": "string",
+ "description": "The resource ID of the storage account where the data resides."
+ },
+ "eventHubResourceId": {
+ "type": "string",
+ "description": "The resource ID where the event grid is configured to send events."
+ },
+ "consumerGroup": {
+ "type": "string",
+ "description": "The event hub consumer group."
+ },
+ "tableName": {
+ "type": "string",
+ "description": "The table where the data should be ingested. Optionally the table information can be added to each message."
+ },
+ "mappingRuleName": {
+ "type": "string",
+ "description": "The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message."
+ },
+ "dataFormat": {
+ "$ref": "#/definitions/EventGridDataFormat",
+ "description": "The data format of the message. Optionally the data format can be added to each message."
+ },
+ "ignoreFirstRecord": {
+ "type": "boolean",
+ "description": "A Boolean value that, if set to true, indicates that ingestion should ignore the first record of every file"
+ },
+ "blobStorageEventType": {
+ "$ref": "#/definitions/BlobStorageEventType",
+ "description": "The name of blob storage event type to process."
+ },
+ "provisioningState": {
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
+ }
+ },
+ "required": [
+ "storageAccountResourceId",
+ "eventHubResourceId",
+ "consumerGroup"
+ ],
+ "description": "Class representing the Kusto event grid connection properties."
+ },
+ "Cluster": {
+ "required": [
+ "sku"
+ ],
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/AzureSku",
+ "description": "The SKU of the cluster."
+ },
+ "zones": {
+ "$ref": "#/definitions/Zones",
+ "description": "The availability zones of the cluster."
+ },
+ "identity": {
+ "$ref": "#/definitions/Identity",
+ "description": "The identity of the cluster, if configured."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ClusterProperties",
+ "description": "The cluster properties."
+ },
+ "etag": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique read-only string that changes whenever the resource is updated."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "description": "Class representing a Kusto cluster."
+ },
+ "ClusterUpdate": {
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "x-ms-mutability": [
+ "read",
+ "create",
+ "update"
+ ],
+ "description": "Resource tags."
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location."
+ },
+ "sku": {
+ "$ref": "#/definitions/AzureSku",
+ "description": "The SKU of the cluster."
+ },
+ "identity": {
+ "$ref": "#/definitions/Identity",
+ "description": "The identity of the cluster, if configured."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "The cluster properties.",
+ "$ref": "#/definitions/ClusterProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ],
+ "description": "Class representing an update to a Kusto cluster."
+ },
+ "AttachedDatabaseConfigurationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AttachedDatabaseConfiguration"
+ },
+ "description": "The list of attached database configurations."
+ }
+ },
+ "description": "The list attached database configurations operation response."
+ },
+ "AttachedDatabaseConfiguration": {
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "The properties of the attached database configuration.",
+ "$ref": "#/definitions/AttachedDatabaseConfigurationProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Class representing an attached database configuration."
+ },
+ "Database": {
+ "required": [
+ "kind"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location."
+ },
+ "kind": {
+ "description": "Kind of the database",
+ "enum": [
+ "ReadWrite",
+ "ReadOnlyFollowing"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "Kind",
+ "modelAsString": true
+ }
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Class representing a Kusto database.",
+ "discriminator": "kind"
+ },
+ "ReadWriteDatabase": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "The database properties.",
+ "$ref": "#/definitions/ReadWriteDatabaseProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Database"
+ }
+ ],
+ "description": "Class representing a read write database.",
+ "x-ms-discriminator-value": "ReadWrite"
+ },
+ "ReadOnlyFollowingDatabase": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "The database properties.",
+ "$ref": "#/definitions/ReadOnlyFollowingDatabaseProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Database"
+ }
+ ],
+ "description": "Class representing a read only following database.",
+ "x-ms-discriminator-value": "ReadOnlyFollowing"
+ },
+ "DatabasePrincipal": {
+ "type": "object",
+ "required": [
+ "name",
+ "role",
+ "type"
+ ],
+ "properties": {
+ "role": {
+ "description": "Database principal role.",
+ "type": "string",
+ "enum": [
+ "Admin",
+ "Ingestor",
+ "Monitor",
+ "User",
+ "UnrestrictedViewer",
+ "Viewer"
+ ],
+ "x-ms-enum": {
+ "name": "DatabasePrincipalRole",
+ "modelAsString": true
+ }
+ },
+ "name": {
+ "description": "Database principal name.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Database principal type.",
+ "type": "string",
+ "enum": [
+ "App",
+ "Group",
+ "User"
+ ],
+ "x-ms-enum": {
+ "name": "DatabasePrincipalType",
+ "modelAsString": true
+ }
+ },
+ "fqn": {
+ "description": "Database principal fully qualified name.",
+ "type": "string"
+ },
+ "email": {
+ "description": "Database principal email if exists.",
+ "type": "string"
+ },
+ "appId": {
+ "description": "Application id - relevant only for application principal type.",
+ "type": "string"
+ },
+ "tenantName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The tenant name of the principal"
+ }
+ },
+ "description": "A class representing database principal entity."
+ },
+ "DatabasePrincipalProperties": {
+ "type": "object",
+ "required": [
+ "principalId",
+ "role",
+ "principalType"
+ ],
+ "properties": {
+ "principalId": {
+ "description": "The principal ID assigned to the database principal. It can be a user email, application ID, or security group name.",
+ "type": "string"
+ },
+ "role": {
+ "description": "Database principal role.",
+ "type": "string",
+ "enum": [
+ "Admin",
+ "Ingestor",
+ "Monitor",
+ "User",
+ "UnrestrictedViewer",
+ "Viewer"
+ ],
+ "x-ms-enum": {
+ "name": "DatabasePrincipalRole",
+ "modelAsString": true
+ }
+ },
+ "tenantId": {
+ "type": "string",
+ "description": "The tenant id of the principal"
+ },
+ "principalType": {
+ "description": "Principal type.",
+ "type": "string",
+ "enum": [
+ "App",
+ "Group",
+ "User"
+ ],
+ "x-ms-enum": {
+ "name": "PrincipalType",
+ "modelAsString": true
+ }
+ },
+ "tenantName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The tenant name of the principal"
+ },
+ "principalName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The principal name"
+ },
+ "provisioningState": {
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
+ }
+ },
+ "description": "A class representing database principal property."
+ },
+ "ClusterPrincipalProperties": {
+ "type": "object",
+ "required": [
+ "principalId",
+ "role",
+ "principalType"
+ ],
+ "properties": {
+ "principalId": {
+ "description": "The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name.",
+ "type": "string"
+ },
+ "role": {
+ "description": "Cluster principal role.",
+ "type": "string",
+ "enum": [
+ "AllDatabasesAdmin",
+ "AllDatabasesViewer"
+ ],
+ "x-ms-enum": {
+ "name": "ClusterPrincipalRole",
+ "modelAsString": true
+ }
+ },
+ "tenantId": {
+ "type": "string",
+ "description": "The tenant id of the principal"
+ },
+ "principalType": {
+ "description": "Principal type.",
+ "type": "string",
+ "enum": [
+ "App",
+ "Group",
+ "User"
+ ],
+ "x-ms-enum": {
+ "name": "PrincipalType",
+ "modelAsString": true
+ }
+ },
+ "tenantName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The tenant name of the principal"
+ },
+ "principalName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The principal name"
+ },
+ "provisioningState": {
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
+ }
+ },
+ "description": "A class representing cluster principal property."
+ },
+ "ScriptProperties": {
+ "type": "object",
+ "required": [
+ "scriptUrl",
+ "scriptUrlSasToken"
+ ],
+ "properties": {
+ "scriptUrl": {
+ "description": "The url to the KQL script blob file.",
+ "type": "string"
+ },
+ "scriptUrlSasToken": {
+ "description": "The SaS token.",
+ "type": "string",
+ "x-ms-mutability": [
+ "create"
+ ],
+ "x-ms-secret": true
+ },
+ "forceUpdateTag": {
+ "description": "A unique string. If changed the script will be applied again.",
+ "type": "string"
+ },
+ "continueOnErrors": {
+ "description": "Flag that indicates whether to continue if one of the command fails.",
+ "type": "boolean",
+ "default": false
+ },
+ "provisioningState": {
+ "$ref": "#/definitions/ProvisioningState",
+ "description": "The provisioned state of the resource."
+ }
+ },
+ "description": "A class representing database script property."
+ },
+ "DatabasePrincipalAssignment": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DatabasePrincipalProperties",
+ "description": "The database principal."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Class representing a database principal assignment."
+ },
+ "ClusterPrincipalAssignment": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ClusterPrincipalProperties",
+ "description": "The cluster principal."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Class representing a cluster principal assignment."
+ },
+ "ScriptListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Script"
+ },
+ "description": "The list of Kusto scripts."
+ }
+ },
+ "description": "The list Kusto database script operation response."
+ },
+ "Script": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ScriptProperties",
+ "description": "The database script."
+ },
+ "systemData": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData",
+ "readOnly": true
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Class representing a database script."
+ },
+ "ClusterListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Cluster"
+ },
+ "description": "The list of Kusto clusters."
+ }
+ },
+ "description": "The list Kusto clusters operation response."
+ },
+ "DatabaseListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Database"
+ },
+ "description": "The list of Kusto databases."
+ }
+ },
+ "description": "The list Kusto databases operation response."
+ },
+ "DatabasePrincipalAssignmentListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DatabasePrincipalAssignment"
+ },
+ "description": "The list of Kusto database principal assignments."
+ }
+ },
+ "description": "The list Kusto database principal assignments operation response."
+ },
+ "ClusterPrincipalAssignmentListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ClusterPrincipalAssignment"
+ },
+ "description": "The list of Kusto cluster principal assignments."
+ }
+ },
+ "description": "The list Kusto cluster principal assignments operation response."
+ },
+ "DatabasePrincipalListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DatabasePrincipal"
+ },
+ "description": "The list of Kusto database principals."
+ }
+ },
+ "description": "The list Kusto database principals operation response."
+ },
+ "FollowerDatabaseListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FollowerDatabaseDefinition"
+ },
+ "description": "The list of follower database result."
+ }
+ },
+ "description": "The list Kusto database principals operation response."
+ },
+ "DataConnection": {
+ "required": [
+ "kind"
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location."
+ },
+ "kind": {
+ "description": "Kind of the endpoint for the data connection",
+ "enum": [
+ "EventHub",
+ "EventGrid",
+ "IotHub"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "DataConnectionKind",
+ "modelAsString": true
+ }
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Class representing an data connection.",
+ "discriminator": "kind"
+ },
+ "DataConnectionValidationResult": {
+ "type": "object",
+ "properties": {
+ "errorMessage": {
+ "type": "string",
+ "description": "A message which indicates a problem in data connection validation."
+ }
+ },
+ "description": "The result returned from a data connection validation request."
+ },
+ "DatabasePrincipalListRequest": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DatabasePrincipal"
+ },
+ "description": "The list of Kusto database principals."
+ }
+ },
+ "description": "The list Kusto database principals operation request."
+ },
+ "FollowerDatabaseDefinition": {
+ "type": "object",
+ "required": [
+ "clusterResourceId",
+ "attachedDatabaseConfigurationName"
+ ],
+ "properties": {
+ "clusterResourceId": {
+ "type": "string",
+ "description": "Resource id of the cluster that follows a database owned by this cluster."
+ },
+ "attachedDatabaseConfigurationName": {
+ "type": "string",
+ "description": "Resource name of the attached database configuration in the follower cluster."
+ },
+ "databaseName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The database name owned by this cluster that was followed. * in case following all databases."
+ }
+ },
+ "description": "A class representing follower database request."
+ },
+ "DiagnoseVirtualNetworkResult": {
+ "properties": {
+ "findings": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The list of network connectivity diagnostic finding"
+ }
+ }
+ },
+ "DataConnectionValidation": {
+ "properties": {
+ "dataConnectionName": {
+ "type": "string",
+ "description": "The name of the data connection."
+ },
+ "properties": {
+ "$ref": "#/definitions/DataConnection",
+ "description": "The data connection properties to validate."
+ }
+ },
+ "description": "Class representing an data connection validation."
+ },
+ "EventHubDataConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "The Event Hub data connection properties to validate.",
+ "$ref": "#/definitions/EventHubConnectionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataConnection"
+ }
+ ],
+ "description": "Class representing an event hub data connection.",
+ "x-ms-discriminator-value": "EventHub"
+ },
+ "IotHubDataConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "The Iot Hub data connection properties.",
+ "$ref": "#/definitions/IotHubConnectionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataConnection"
+ }
+ ],
+ "description": "Class representing an iot hub data connection.",
+ "x-ms-discriminator-value": "IotHub"
+ },
+ "EventGridDataConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "The properties of the Event Grid data connection.",
+ "$ref": "#/definitions/EventGridConnectionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataConnection"
+ }
+ ],
+ "description": "Class representing an Event Grid data connection.",
+ "x-ms-discriminator-value": "EventGrid"
+ },
+ "DataConnectionValidationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataConnectionValidationResult"
+ },
+ "description": "The list of Kusto data connection validation errors."
+ }
+ },
+ "description": "The list Kusto data connection validation result."
+ },
+ "DataConnectionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataConnection"
+ },
+ "description": "The list of Kusto data connections."
+ }
+ },
+ "description": "The list Kusto data connections operation response."
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/CloudErrorBody",
+ "description": "An error response from Kusto."
+ }
+ },
+ "description": "An error response from Kusto."
+ },
+ "ClusterCheckNameRequest": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Cluster name."
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "Microsoft.Kusto/clusters"
+ ],
+ "x-ms-enum": {
+ "name": "ClusterType",
+ "modelAsString": false
+ },
+ "description": "The type of resource, Microsoft.Kusto/clusters."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "description": "The result returned from a cluster check name availability request."
+ },
+ "CheckNameRequest": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Resource name."
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "Microsoft.Kusto/clusters/databases",
+ "Microsoft.Kusto/clusters/attachedDatabaseConfigurations"
+ ],
+ "x-ms-enum": {
+ "name": "Type",
+ "modelAsString": false
+ },
+ "description": "The type of resource, for instance Microsoft.Kusto/clusters/databases."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "description": "The result returned from a database check name availability request."
+ },
+ "ClusterPrincipalAssignmentCheckNameRequest": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Principal Assignment resource name."
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "Microsoft.Kusto/clusters/principalAssignments"
+ ],
+ "x-ms-enum": {
+ "name": "PrincipalAssignmentType",
+ "modelAsString": false
+ },
+ "description": "The type of resource, Microsoft.Kusto/clusters/principalAssignments."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "description": "A principal assignment check name availability request."
+ },
+ "DataConnectionCheckNameRequest": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Data Connection name."
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "Microsoft.Kusto/clusters/databases/dataConnections"
+ ],
+ "x-ms-enum": {
+ "name": "DataConnectionType",
+ "modelAsString": false
+ },
+ "description": "The type of resource, Microsoft.Kusto/clusters/databases/dataConnections."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "description": "A data connection check name availability request."
+ },
+ "ScriptCheckNameRequest": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Script name."
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "Microsoft.Kusto/clusters/databases/scripts"
+ ],
+ "x-ms-enum": {
+ "name": "ScriptType",
+ "modelAsString": false
+ },
+ "description": "The type of resource, Microsoft.Kusto/clusters/databases/scripts."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "description": "A script name availability request."
+ },
+ "DatabasePrincipalAssignmentCheckNameRequest": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Principal Assignment resource name."
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "Microsoft.Kusto/clusters/databases/principalAssignments"
+ ],
+ "x-ms-enum": {
+ "name": "DatabasePrincipalAssignmentType",
+ "modelAsString": false
+ },
+ "description": "The type of resource, Microsoft.Kusto/clusters/databases/principalAssignments."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "description": "A principal assignment check name availability request."
+ },
+ "CheckNameResult": {
+ "type": "object",
+ "properties": {
+ "nameAvailable": {
+ "type": "boolean",
+ "description": "Specifies a Boolean value that indicates if the name is available."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name that was checked."
+ },
+ "message": {
+ "type": "string",
+ "description": "Message indicating an unavailable name due to a conflict, or a description of the naming rules that are violated."
+ },
+ "reason": {
+ "type": "string",
+ "enum": [
+ "Invalid",
+ "AlreadyExists"
+ ],
+ "x-ms-enum": {
+ "name": "reason",
+ "modelAsString": true
+ },
+ "description": "Message providing the reason why the given name is invalid."
+ }
+ },
+ "description": "The result returned from a check name availability request."
+ },
+ "ListResourceSkusResult": {
+ "description": "List of available SKUs for a Kusto Cluster.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureResourceSku"
+ },
+ "description": "The collection of available SKUs for an existing resource."
+ }
+ }
+ },
+ "CloudErrorBody": {
+ "x-ms-external": true,
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "A message describing the error, intended to be suitable for displaying in a user interface."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the particular error. For example, the name of the property in error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudErrorBody"
+ },
+ "description": "A list of additional details about the error."
+ }
+ },
+ "description": "An error response from Kusto."
+ },
+ "OperationListResult": {
+ "title": "Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "title": "The list of operations supported by the resource provider."
+ },
+ "nextLink": {
+ "type": "string",
+ "title": "The URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "Operation": {
+ "title": "A REST API operation",
+ "type": "object",
+ "properties": {
+ "name": {
+ "title": "The operation name.",
+ "description": "This is of the format {provider}/{resource}/{operation}.",
+ "type": "string"
+ },
+ "display": {
+ "title": "The object that describes the operation.",
+ "properties": {
+ "provider": {
+ "title": "Friendly name of the resource provider.",
+ "type": "string"
+ },
+ "operation": {
+ "title": "The operation type.",
+ "description": "For example: read, write, delete.",
+ "type": "string"
+ },
+ "resource": {
+ "title": "The resource type on which the operation is performed.",
+ "type": "string"
+ },
+ "description": {
+ "title": "The friendly name of the operation.",
+ "type": "string"
+ }
+ }
+ },
+ "origin": {
+ "title": "The intended executor of the operation.",
+ "type": "string"
+ },
+ "properties": {
+ "title": "Properties of the operation.",
+ "type": "object",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "Identity": {
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal ID of resource identity."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant ID of resource."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove all identities.",
+ "enum": [
+ "None",
+ "SystemAssigned",
+ "UserAssigned",
+ "SystemAssigned, UserAssigned"
+ ],
+ "x-ms-enum": {
+ "name": "IdentityType",
+ "modelAsString": true
+ }
+ },
+ "userAssignedIdentities": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of user assigned identity."
+ },
+ "clientId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The client id of user assigned identity."
+ }
+ }
+ },
+ "description": "The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'."
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "description": "Identity for the resource."
+ },
+ "KeyVaultProperties": {
+ "description": "Properties of the key vault.",
+ "required": [
+ "keyName",
+ "keyVaultUri"
+ ],
+ "properties": {
+ "keyName": {
+ "type": "string",
+ "description": "The name of the key vault key.",
+ "x-ms-client-name": "KeyName"
+ },
+ "keyVersion": {
+ "type": "string",
+ "description": "The version of the key vault key.",
+ "x-ms-client-name": "KeyVersion"
+ },
+ "keyVaultUri": {
+ "type": "string",
+ "description": "The Uri of the key vault.",
+ "x-ms-client-name": "KeyVaultUri"
+ },
+ "userIdentity": {
+ "type": "string",
+ "description": "The user assigned identity (ARM resource id) that has access to the key.",
+ "x-ms-client-name": "UserIdentity"
+ }
+ }
+ },
+ "LanguageExtensionName": {
+ "description": "Language extension that can run within KQL query.",
+ "type": "string",
+ "enum": [
+ "PYTHON",
+ "R"
+ ],
+ "x-ms-enum": {
+ "name": "languageExtensionName",
+ "modelAsString": true
+ }
+ },
+ "LanguageExtension": {
+ "type": "object",
+ "description": "The language extension object.",
+ "properties": {
+ "languageExtensionName": {
+ "$ref": "#/definitions/LanguageExtensionName",
+ "description": "The language extension name."
+ }
+ }
+ },
+ "LanguageExtensionsList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LanguageExtension"
+ },
+ "description": "The list of language extensions."
+ }
+ },
+ "description": "The list of language extension objects."
+ },
+ "ProvisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The provisioned state of the resource.",
+ "enum": [
+ "Running",
+ "Creating",
+ "Deleting",
+ "Succeeded",
+ "Failed",
+ "Moving"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "OperationResult": {
+ "description": "Operation Result Entity.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "description": "ID of the resource.",
+ "type": "string"
+ },
+ "name": {
+ "readOnly": true,
+ "description": "Name of the resource.",
+ "type": "string"
+ },
+ "status": {
+ "description": "status of the Operation result.",
+ "$ref": "#/definitions/Status"
+ },
+ "startTime": {
+ "description": "The operation start time",
+ "type": "string",
+ "format": "date-time"
+ },
+ "endTime": {
+ "description": "The operation end time",
+ "type": "string",
+ "format": "date-time"
+ },
+ "percentComplete": {
+ "type": "number",
+ "format": "double",
+ "minimum": 0,
+ "maximum": 100,
+ "description": "Percentage completed."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/OperationResultProperties",
+ "description": "Properties of the operation results"
+ },
+ "error": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/OperationResultErrorProperties",
+ "description": "Object that contains the error code and message if the operation failed."
+ }
+ }
+ },
+ "Status": {
+ "readOnly": true,
+ "description": "The status of operation.",
+ "type": "string",
+ "enum": [
+ "Succeeded",
+ "Canceled",
+ "Failed",
+ "Running"
+ ],
+ "x-ms-enum": {
+ "name": "Status",
+ "modelAsString": true
+ }
+ },
+ "OperationResultProperties": {
+ "properties": {
+ "operationKind": {
+ "type": "string",
+ "description": "The kind of the operation."
+ },
+ "operationState": {
+ "type": "string",
+ "description": "The state of the operation."
+ }
+ },
+ "description": "Operation result properties"
+ },
+ "OperationResultErrorProperties": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "The code of the error."
+ },
+ "message": {
+ "type": "string",
+ "description": "The error message."
+ }
+ },
+ "description": "Operation result error properties"
+ },
+ "TableLevelSharingProperties": {
+ "properties": {
+ "tablesToInclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of tables to include in the follower database"
+ },
+ "tablesToExclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of tables to exclude from the follower database"
+ },
+ "externalTablesToInclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of external tables to include in the follower database"
+ },
+ "externalTablesToExclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of external tables exclude from the follower database"
+ },
+ "materializedViewsToInclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of materialized views to include in the follower database"
+ },
+ "materializedViewsToExclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of materialized views exclude from the follower database"
+ }
+ },
+ "description": "Tables that will be included and excluded in the follower database"
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client API Version."
+ },
+ "ClusterNameParameter": {
+ "name": "clusterName",
+ "in": "path",
+ "description": "The name of the Kusto cluster.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "LocationNameParameter": {
+ "name": "location",
+ "in": "path",
+ "description": "Azure location (region) name.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "AttachedDatabaseConfigurationNameParameter": {
+ "name": "attachedDatabaseConfigurationName",
+ "in": "path",
+ "description": "The name of the attached database configuration.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "ResourceGroupParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "description": "The name of the resource group containing the Kusto cluster.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "DatabaseNameParameter": {
+ "name": "databaseName",
+ "in": "path",
+ "description": "The name of the database in the Kusto cluster.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "DataConnectionNameParameter": {
+ "name": "dataConnectionName",
+ "in": "path",
+ "description": "The name of the data connection.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "PrincipalAssignmentNameParameter": {
+ "name": "principalAssignmentName",
+ "in": "path",
+ "description": "The name of the Kusto principalAssignment.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "ScriptNameParameter": {
+ "name": "scriptName",
+ "in": "path",
+ "description": "The name of the Kusto database script.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "OperationIdParameter": {
+ "name": "operationId",
+ "in": "path",
+ "description": "The Guid of the operation ID",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ }
+}
diff --git a/specification/azure-kusto/resource-manager/readme.azureresourceschema.md b/specification/azure-kusto/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 46ee42dcd92b..000000000000
--- a/specification/azure-kusto/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,108 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-kusto-2020-09-18
- - tag: schema-kusto-2020-06-14
- - tag: schema-kusto-2020-02-15
- - tag: schema-kusto-2019-11-09
- - tag: schema-kusto-2019-09-07
- - tag: schema-kusto-2019-05-15
- - tag: schema-kusto-2019-01-21
- - tag: schema-kusto-2018-09-07-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-kusto-2020-09-18 and azureresourceschema
-
-``` yaml $(tag) == 'schema-kusto-2020-09-18' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Kusto/stable/2020-09-18/kusto.json
-
-```
-
-### Tag: schema-kusto-2020-06-14 and azureresourceschema
-
-``` yaml $(tag) == 'schema-kusto-2020-06-14' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Kusto/stable/2020-06-14/kusto.json
-
-```
-
-### Tag: schema-kusto-2020-02-15 and azureresourceschema
-
-``` yaml $(tag) == 'schema-kusto-2020-02-15' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Kusto/stable/2020-02-15/kusto.json
-
-```
-
-### Tag: schema-kusto-2019-11-09 and azureresourceschema
-
-``` yaml $(tag) == 'schema-kusto-2019-11-09' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Kusto/stable/2019-11-09/kusto.json
-
-```
-
-### Tag: schema-kusto-2019-09-07 and azureresourceschema
-
-``` yaml $(tag) == 'schema-kusto-2019-09-07' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Kusto/stable/2019-09-07/kusto.json
-
-```
-
-### Tag: schema-kusto-2019-05-15 and azureresourceschema
-
-``` yaml $(tag) == 'schema-kusto-2019-05-15' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Kusto/stable/2019-05-15/kusto.json
-
-```
-
-### Tag: schema-kusto-2019-01-21 and azureresourceschema
-
-``` yaml $(tag) == 'schema-kusto-2019-01-21' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Kusto/stable/2019-01-21/kusto.json
-
-```
-
-### Tag: schema-kusto-2018-09-07-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-kusto-2018-09-07-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Kusto/preview/2018-09-07-preview/kusto.json
-
-```
diff --git a/specification/azure-kusto/resource-manager/readme.go.md b/specification/azure-kusto/resource-manager/readme.go.md
index e8b24722e1c3..54358207664f 100644
--- a/specification/azure-kusto/resource-manager/readme.go.md
+++ b/specification/azure-kusto/resource-manager/readme.go.md
@@ -13,6 +13,7 @@ go:
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-2021-01
- tag: package-2020-09-18
- tag: package-2018-09-07-preview
- tag: package-2019-01-21
@@ -22,6 +23,14 @@ batch:
- tag: package-2020-02-15
- tag: package-2020-06-14
```
+### Tag: package-2021-01 and go
+
+These settings apply only when `--tag=package-2021-01 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2021-01' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2021-01-01/$(namespace)
+```
### Tag: package-2020-09-18 and go
diff --git a/specification/azure-kusto/resource-manager/readme.md b/specification/azure-kusto/resource-manager/readme.md
index c02cb62ac581..3df94ea80244 100644
--- a/specification/azure-kusto/resource-manager/readme.md
+++ b/specification/azure-kusto/resource-manager/readme.md
@@ -28,18 +28,27 @@ These are the global settings for the Kusto API.
title: KustoManagementClient
description: 'The Azure Kusto management API provides a RESTful set of web services that interact with Azure Kusto services to manage your clusters and databases. The API enables you to create, update, and delete clusters and databases.'
openapi-type: arm
-tag: package-2020-09-18
+tag: package-2021-01
```
+### Tag: package-2021-01
+
+These settings apply only when `--tag=package-2021-01` is specified on the command line.
+
+```yaml $(tag) == 'package-2021-01'
+input-file:
+ - Microsoft.Kusto/stable/2021-01-01/kusto.json
+```
### Tag: package-2020-09-18
These settings apply only when `--tag=package-2020-09-18` is specified on the command line.
-```yaml $(tag) == 'package-2020-09-18'
+``` yaml $(tag) == 'package-2020-09-18'
input-file:
- Microsoft.Kusto/stable/2020-09-18/kusto.json
```
+
### Tag: package-2020-06-14
These settings apply only when `--tag=package-2020-06-14` is specified on the command line.
@@ -185,8 +194,6 @@ swagger-to-sdk:
- repo: azure-sdk-for-java
- repo: azure-cli-extensions
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js azure-kusto/resource-manager
```
## C#
@@ -207,9 +214,7 @@ csharp:
See configuration in [readme.java.md](./readme.java.md)
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
## Suppression
diff --git a/specification/azureactivedirectory/resource-manager/readme.azureresourceschema.md b/specification/azureactivedirectory/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index b6bab336b329..000000000000
--- a/specification/azureactivedirectory/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,49 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-aadiam-2020-07-01-preview
- - tag: schema-aadiam-2020-03-01-preview
- - tag: schema-aadiam-2017-04-01
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-aadiam-2020-07-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-aadiam-2020-07-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Aadiam/preview/2020-07-01-preview/azureADMetrics.json
-
-```
-
-### Tag: schema-aadiam-2020-03-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-aadiam-2020-03-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Aadiam/preview/2020-03-01-preview/privateLinkForAzureAD.json
- - Microsoft.Aadiam/preview/2020-03-01-preview/privateLinkResources.json
-
-```
-
-### Tag: schema-aadiam-2017-04-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-aadiam-2017-04-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Aadiam/stable/2017-04-01/azureactivedirectory.json
-
-```
diff --git a/specification/azureactivedirectory/resource-manager/readme.md b/specification/azureactivedirectory/resource-manager/readme.md
index b84ecea4a6f7..d9d75520edba 100644
--- a/specification/azureactivedirectory/resource-manager/readme.md
+++ b/specification/azureactivedirectory/resource-manager/readme.md
@@ -96,8 +96,6 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_azureactivedirectory']
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js azureactivedirectory/resource-manager
```
## Go
@@ -120,7 +118,5 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
See configuration in [readme.csharp.md](./readme.csharp.md)
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/azuredata/resource-manager/readme.azureresourceschema.md b/specification/azuredata/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 9e9e3a071f7d..000000000000
--- a/specification/azuredata/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,24 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-azuredata-2019-07-24-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-azuredata-2019-07-24-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-azuredata-2019-07-24-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AzureData/preview/2019-07-24-preview/azuredata.json
-
-```
diff --git a/specification/azuredata/resource-manager/readme.md b/specification/azuredata/resource-manager/readme.md
index c2582d6cd618..197ce3a68cca 100644
--- a/specification/azuredata/resource-manager/readme.md
+++ b/specification/azuredata/resource-manager/readme.md
@@ -66,8 +66,6 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_azuredata']
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js azuredata/resource-manager
```
## Go
@@ -90,7 +88,5 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
See configuration in [readme.csharp.md](./readme.csharp.md)
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/azurestack/resource-manager/readme.azureresourceschema.md b/specification/azurestack/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 9ea18acc5c17..000000000000
--- a/specification/azurestack/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,57 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-azurestack-2020-06-01-preview
- - tag: schema-azurestack-2017-06-01
- - tag: schema-azurestack-2016-01-01
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-azurestack-2020-06-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-azurestack-2020-06-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AzureStack/preview/2020-06-01-preview/AzureStack.json
- - Microsoft.AzureStack/preview/2020-06-01-preview/CustomerSubscription.json
- - Microsoft.AzureStack/preview/2020-06-01-preview/Product.json
- - Microsoft.AzureStack/preview/2020-06-01-preview/Registration.json
- - Microsoft.AzureStack/preview/2020-06-01-preview/LinkedSubscription.json
-
-```
-
-### Tag: schema-azurestack-2017-06-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-azurestack-2017-06-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AzureStack/stable/2017-06-01/AzureStack.json
- - Microsoft.AzureStack/stable/2017-06-01/Product.json
- - Microsoft.AzureStack/stable/2017-06-01/Registration.json
- - Microsoft.AzureStack/stable/2017-06-01/CustomerSubscription.json
-
-```
-
-### Tag: schema-azurestack-2016-01-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-azurestack-2016-01-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AzureStack/stable/2016-01-01/AzureStack.json
- - Microsoft.AzureStack/stable/2016-01-01/Product.json
- - Microsoft.AzureStack/stable/2016-01-01/Registration.json
-
-```
diff --git a/specification/azurestack/resource-manager/readme.md b/specification/azurestack/resource-manager/readme.md
index a829d15139f3..1a330200bcbd 100644
--- a/specification/azurestack/resource-manager/readme.md
+++ b/specification/azurestack/resource-manager/readme.md
@@ -103,8 +103,6 @@ swagger-to-sdk:
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js azurestack/resource-manager
```
## C#
@@ -165,6 +163,4 @@ generate-interface: true
See configuration in [readme.python.md](./readme.python.md)
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/azurestackhci/resource-manager/readme.azureresourceschema.md b/specification/azurestackhci/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 0997ca43ee8d..000000000000
--- a/specification/azurestackhci/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,36 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-azurestackhci-2020-10-01
- - tag: schema-azurestackhci-2020-03-01-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-azurestackhci-2020-10-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-azurestackhci-2020-10-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AzureStackHCI/stable/2020-10-01/azurestackhci.json
-
-```
-
-### Tag: schema-azurestackhci-2020-03-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-azurestackhci-2020-03-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.AzureStackHCI/preview/2020-03-01-preview/azurestackhci.json
-
-```
diff --git a/specification/azurestackhci/resource-manager/readme.md b/specification/azurestackhci/resource-manager/readme.md
index a11a60730b25..db260de2b2ec 100644
--- a/specification/azurestackhci/resource-manager/readme.md
+++ b/specification/azurestackhci/resource-manager/readme.md
@@ -70,7 +70,7 @@ This is not used by Autorest itself.
``` yaml $(swagger-to-sdk)
swagger-to-sdk:
- - repo: azure-sdk-for-python
+ - repo: azure-sdk-for-python-track2
- repo: azure-sdk-for-java
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
@@ -78,8 +78,6 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_azurestackhci']
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js azurestackhci/resource-manager
```
## Go
@@ -106,6 +104,4 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
See configuration in [readme.csharp.md](./readme.csharp.md)
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/azurestackhci/resource-manager/readme.python.md b/specification/azurestackhci/resource-manager/readme.python.md
index af60fd690f3c..60ef8a5dcc18 100644
--- a/specification/azurestackhci/resource-manager/readme.python.md
+++ b/specification/azurestackhci/resource-manager/readme.python.md
@@ -3,24 +3,19 @@
These settings apply only when `--python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
-```yaml $(python)
-python-mode: create
-python:
- azure-arm: true
- license-header: MICROSOFT_MIT_NO_VERSION
- payload-flattening-threshold: 2
- namespace: azure.mgmt.azurestackhci
- package-name: azure-mgmt-azurestackhci
- package-version: 1.0.0rc1
- clear-output-folder: true
+```yaml $(python) && $(track2)
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+package-name: azure-mgmt-azurestackhci
+no-namespace-folders: true
+package-version: 1.0.0b1
+clear-output-folder: true
```
-``` yaml $(python) && $(python-mode) == 'update'
-python:
- no-namespace-folders: true
- output-folder: $(python-sdks-folder)/azurestackhci/azure-mgmt-azurestackhci/azure/mgmt/azurestackhci
+``` yaml $(python) && $(python-mode) == 'update' && $(track2)
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/azurestackhci/azure-mgmt-azurestackhci/azure/mgmt/azurestackhci
```
-``` yaml $(python) && $(python-mode) == 'create'
-python:
- basic-setup-py: true
- output-folder: $(python-sdks-folder)/azurestackhci/azure-mgmt-azurestackhci
+``` yaml $(python) && $(python-mode) == 'create' && $(track2)
+basic-setup-py: true
+output-folder: $(python-sdks-folder)/azurestackhci/azure-mgmt-azurestackhci
```
diff --git a/specification/baremetalinfrastructure/resource-manager/readme.azureresourceschema.md b/specification/baremetalinfrastructure/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 0228f0a806a3..000000000000
--- a/specification/baremetalinfrastructure/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,24 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-baremetalinfrastructure-2020-08-06-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-baremetalinfrastructure-2020-08-06-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-baremetalinfrastructure-2020-08-06-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/baremetalinfrastructure.json
-
-```
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/BatchService.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/BatchService.json
index 2e43550bd55e..4319673b393b 100644
--- a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/BatchService.json
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/BatchService.json
@@ -7679,7 +7679,7 @@
}
},
"summary": "Removes Compute Nodes from the specified Pool.",
- "description": "This operation can only run when the allocation state of the Pool is steady. When this operation runs, the allocation state changes from steady to resizing.",
+ "description": "This operation can only run when the allocation state of the Pool is steady. When this operation runs, the allocation state changes from steady to resizing. Each request may remove up to 100 nodes.",
"x-ms-request-id": "request-id",
"parameters": [
{
@@ -15862,7 +15862,8 @@
"items": {
"type": "string"
},
- "title": "A list containing the IDs of the Compute Nodes to be removed from the specified Pool."
+ "title": "A list containing the IDs of the Compute Nodes to be removed from the specified Pool.",
+ "description": "A maximum of 100 nodes may be removed per request."
},
"resizeTimeout": {
"type": "string",
diff --git a/specification/batch/data-plane/readme.md b/specification/batch/data-plane/readme.md
index d3d4c786623f..e5301ce18278 100644
--- a/specification/batch/data-plane/readme.md
+++ b/specification/batch/data-plane/readme.md
@@ -4,10 +4,10 @@
This is the AutoRest configuration file for Batch.
-
-
---
+
## Getting Started
+
To build the SDK for Batch, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run:
> `autorest`
@@ -15,13 +15,13 @@ To build the SDK for Batch, simply [Install AutoRest](https://aka.ms/autorest/in
To see additional help and options, run:
> `autorest --help`
+
---
## Configuration
-
-
### Basic Information
+
These are the global settings for the Batch API.
``` yaml
@@ -113,6 +113,7 @@ input-file:
## Suppression
Note that this setting should be removed once [this GitHub bug](https://github.com/Azure/azure-openapi-validator/issues/68) is fixed.
+
``` yaml
directive:
- suppress: R2063
@@ -121,6 +122,7 @@ directive:
```
Note that this setting should be removed once [this GitHub bug](https://github.com/Azure/azure-openapi-validator/issues/69) is fixed.
+
``` yaml
directive:
- suppress: R2064
@@ -216,6 +218,20 @@ directive:
reason: The suggested casing of this property is worse than the casing that we're using
```
+``` yaml
+ - suppress: DefinitionsPropertiesNamesCamelCase
+ where: $.definitions.ImageInformation.properties.nodeAgentSKUId
+ from: BatchService.json
+ reason: Changing the casing of this property would be a breaking change
+```
+
+``` yaml
+ - suppress: AvoidNestedProperties
+ where: $.definitions.NodeFile.properties.properties
+ from: BatchService.json
+ reason: Switching to x-ms-client-flatten would be a breaking change to the SDKs
+```
+
### Tag: package-2017-05.5.0
These settings apply only when `--tag=package-2017-05.5.0` is specified on the command line.
@@ -225,7 +241,6 @@ input-file:
- Microsoft.Batch/stable/2017-05-01.5.0/BatchService.json
```
-
### Tag: package-2017-01.4.0
These settings apply only when `--tag=package-2017-01.4.0` is specified on the command line.
@@ -262,10 +277,9 @@ input-file:
- Microsoft.Batch/stable/2015-12-01.2.2/BatchService.json
```
-
---
-# Code Generation
+# Code Generation
## Swagger to SDK
@@ -311,11 +325,13 @@ python:
package-name: azure-batch
clear-output-folder: true
```
+
``` yaml $(python) && $(python-mode) == 'update'
python:
no-namespace-folders: true
output-folder: $(python-sdks-folder)/azure-batch/azure/batch
```
+
``` yaml $(python) && $(python-mode) == 'create'
python:
basic-setup-py: true
@@ -357,7 +373,7 @@ java:
output-folder: $(azure-libraries-for-java-folder)/azure-batch
```
-## Multi-API/Profile support for AutoRest v3 generators
+## Multi-API/Profile support for AutoRest v3 generators
AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
@@ -386,11 +402,10 @@ input-file:
```
-If there are files that should not be in the `all-api-versions` set,
+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/batch/resource-manager/readme.azureresourceschema.md b/specification/batch/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 5cbf338ceb18..000000000000
--- a/specification/batch/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,144 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-batch-2021-01-01
- - tag: schema-batch-2020-09-01
- - tag: schema-batch-2020-05-01
- - tag: schema-batch-2020-03-01
- - tag: schema-batch-2019-08-01
- - tag: schema-batch-2019-04-01
- - tag: schema-batch-2018-12-01
- - tag: schema-batch-2017-09-01
- - tag: schema-batch-2017-05-01
- - tag: schema-batch-2017-01-01
- - tag: schema-batch-2015-12-01
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-batch-2021-01-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-batch-2021-01-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Batch/stable/2021-01-01/BatchManagement.json
-
-```
-
-### Tag: schema-batch-2020-09-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-batch-2020-09-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Batch/stable/2020-09-01/BatchManagement.json
-
-```
-
-### Tag: schema-batch-2020-05-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-batch-2020-05-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Batch/stable/2020-05-01/BatchManagement.json
-
-```
-
-### Tag: schema-batch-2020-03-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-batch-2020-03-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Batch/stable/2020-03-01/BatchManagement.json
-
-```
-
-### Tag: schema-batch-2019-08-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-batch-2019-08-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Batch/stable/2019-08-01/BatchManagement.json
-
-```
-
-### Tag: schema-batch-2019-04-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-batch-2019-04-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Batch/stable/2019-04-01/BatchManagement.json
-
-```
-
-### Tag: schema-batch-2018-12-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-batch-2018-12-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Batch/stable/2018-12-01/BatchManagement.json
-
-```
-
-### Tag: schema-batch-2017-09-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-batch-2017-09-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Batch/stable/2017-09-01/BatchManagement.json
-
-```
-
-### Tag: schema-batch-2017-05-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-batch-2017-05-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Batch/stable/2017-05-01/BatchManagement.json
-
-```
-
-### Tag: schema-batch-2017-01-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-batch-2017-01-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Batch/stable/2017-01-01/BatchManagement.json
-
-```
-
-### Tag: schema-batch-2015-12-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-batch-2015-12-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Batch/stable/2015-12-01/BatchManagement.json
-
-```
diff --git a/specification/batch/resource-manager/readme.md b/specification/batch/resource-manager/readme.md
index 998011198f19..6f8b4e786064 100644
--- a/specification/batch/resource-manager/readme.md
+++ b/specification/batch/resource-manager/readme.md
@@ -187,8 +187,6 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_batch']
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js batch/resource-manager
```
## C#
@@ -289,7 +287,5 @@ generate-interface: true
`
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/BatchAI.json b/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/BatchAI.json
index 413ea519953c..2d368c2751f1 100644
--- a/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/BatchAI.json
+++ b/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/BatchAI.json
@@ -997,96 +997,6 @@
"$ref": "./examples/PutFileServer.json"
}
}
- },
- "delete": {
- "tags": [
- "FileServer"
- ],
- "operationId": "FileServers_Delete",
- "description": "Deletes a File Server.",
- "parameters": [
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/WorkspaceNameParameter"
- },
- {
- "$ref": "#/parameters/FileServerNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "The operation was successful."
- },
- "202": {
- "description": "The operation will be completed asynchronously."
- },
- "204": {
- "description": "No content."
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/CloudError"
- }
- }
- },
- "x-ms-long-running-operation": true,
- "x-ms-examples": {
- "Delete a file server": {
- "$ref": "./examples/DeleteFileServer.json"
- }
- }
- },
- "get": {
- "tags": [
- "FileServer"
- ],
- "operationId": "FileServers_Get",
- "description": "Gets information about a File Server.",
- "parameters": [
- {
- "$ref": "#/parameters/ResourceGroupNameParameter"
- },
- {
- "$ref": "#/parameters/WorkspaceNameParameter"
- },
- {
- "$ref": "#/parameters/FileServerNameParameter"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "#/parameters/SubscriptionIdParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "The operation was successful. The response contains information about the FileServer.",
- "schema": {
- "$ref": "#/definitions/FileServer"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/CloudError"
- }
- }
- },
- "x-ms-examples": {
- "Get a file server's information": {
- "$ref": "./examples/GetFileServer.json"
- }
- }
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BatchAI/workspaces/{workspaceName}/fileServers": {
diff --git a/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/DeleteFileServer.json b/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/DeleteFileServer.json
deleted file mode 100644
index 741481e08307..000000000000
--- a/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/DeleteFileServer.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "parameters": {
- "resourceGroupName": "demo_resource_group",
- "workspaceName": "demo_workspace",
- "fileServerName": "demo_nfs",
- "subscriptionId": "00000000-0000-0000-0000-000000000000",
- "api-version": "2018-05-01"
- },
- "responses": {
- "202": {
- "headers": {
- "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.BatchAI/locations/eastus/operationresults/7e69f371-db62-4183-bba0-5ee577d43bd7?api-version=2018-05-01",
- "Retry-After": 15
- }
- },
- "200": {},
- "204": {}
- }
-}
diff --git a/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/GetCluster.json b/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/GetCluster.json
index bd49ded30a3d..2f6ebeb7d966 100644
--- a/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/GetCluster.json
+++ b/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/GetCluster.json
@@ -56,15 +56,6 @@
"fileMode": "0777",
"directoryMode": "0777"
}
- ],
- "fileServers": [
- {
- "fileServer": {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/workspaces/demo_workspace/fileservers/fileservercedd134b"
- },
- "relativeMountPath": "nfs",
- "mountOptions": "rw"
- }
]
}
},
diff --git a/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/GetFileServer.json b/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/GetFileServer.json
deleted file mode 100644
index 26728a96f575..000000000000
--- a/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/GetFileServer.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "parameters": {
- "resourceGroupName": "demo_resource_group",
- "workspaceName": "demo_workspace",
- "fileServerName": "demo_nfs",
- "subscriptionId": "00000000-0000-0000-0000-000000000000",
- "api-version": "2018-05-01"
- },
- "responses": {
- "200": {
- "body": {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/workspaces/demo_workspace/fileservers/fileservercedd134b",
- "name": "fileservercedd134b",
- "type": "Microsoft.BatchAI/FileServers",
- "properties": {
- "provisioningState": "succeeded",
- "creationTime": "2017-09-27T21:45:28.159Z",
- "provisioningStateTransitionTime": "2017-09-27T21:49:25.416Z",
- "vmSize": "STANDARD_NC6",
- "sshConfiguration": {
- "userAccountSettings": {
- "adminUserName": "admin_user_name"
- }
- },
- "dataDisks": {
- "diskSizeInGB": 10,
- "cachingType": "none",
- "diskCount": 2,
- "storageAccountType": "Standard_LRS"
- },
- "subnet": {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.Network/virtualNetworks/7feb1976-8c31-4f1f-bea2-86cb1839a7bavnet/subnets/Subnet-1"
- },
- "mountSettings": {
- "mountPoint": "/mnt/data",
- "fileServerPublicIP": "13.90.141.66",
- "fileServerInternalIP": "10.0.0.4"
- }
- }
- }
- }
- }
-}
diff --git a/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/ListOperation.json b/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/ListOperation.json
index c5831fbdd03e..39c6ee54cbed 100644
--- a/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/ListOperation.json
+++ b/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/ListOperation.json
@@ -193,50 +193,6 @@
"origin": "user,system",
"properties": null
},
- {
- "display": {
- "description": "Lists Batch AI fileservers or gets the properties of a Batch AI fileserver",
- "operation": "List or get Batch AI fileservers",
- "provider": "Microsoft Batch AI",
- "resource": "Batch AI Fileservers"
- },
- "name": "Microsoft.BatchAI/fileservers/read",
- "origin": "user,system",
- "properties": null
- },
- {
- "display": {
- "description": "Lists Batch AI fileservers or gets the properties of a Batch AI fileserver",
- "operation": "List or get Batch AI fileservers",
- "provider": "Microsoft Batch AI",
- "resource": "Batch AI Fileservers"
- },
- "name": "Microsoft.BatchAI/workspaces/fileservers/read",
- "origin": "user,system",
- "properties": null
- },
- {
- "display": {
- "description": "Creates a new Batch AI fileserver or updates an existing Batch AI fileserver",
- "operation": "Create or update Batch AI fileserver",
- "provider": "Microsoft Batch AI",
- "resource": "Batch AI Fileservers"
- },
- "name": "Microsoft.BatchAI/workspaces/fileservers/write",
- "origin": "user,system",
- "properties": null
- },
- {
- "display": {
- "description": "Deletes a Batch AI fileserver",
- "operation": "Delete Batch AI filserver",
- "provider": "Microsoft Batch AI",
- "resource": "Batch AI Fileservers"
- },
- "name": "Microsoft.BatchAI/workspaces/fileservers/delete",
- "origin": "user,system",
- "properties": null
- },
{
"display": {
"description": "Gets Batch AI usages of the specified subscription at the specified Azure region",
diff --git a/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/PutCluster.json b/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/PutCluster.json
index f650ae903133..5bd81f4ee174 100644
--- a/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/PutCluster.json
+++ b/specification/batchai/resource-manager/Microsoft.BatchAI/stable/2018-05-01/examples/PutCluster.json
@@ -20,15 +20,6 @@
},
"nodeSetup": {
"mountVolumes": {
- "fileServers": [
- {
- "fileServer": {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/workspaces/demo_workspaces/fileservers/fileservercedd134b"
- },
- "mountOptions": "rw",
- "relativeMountPath": "nfs"
- }
- ],
"azureFileShares": [
{
"relativeMountPath": "azfiles",
@@ -104,15 +95,6 @@
"fileMode": "0777",
"directoryMode": "0777"
}
- ],
- "fileServers": [
- {
- "fileServer": {
- "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/workspaces/demo_workspaces/fileservers/fileservercedd134b"
- },
- "relativeMountPath": "nfs",
- "mountOptions": "rw"
- }
]
}
},
diff --git a/specification/batchai/resource-manager/readme.azureresourceschema.md b/specification/batchai/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index da50d317d24b..000000000000
--- a/specification/batchai/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,48 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-batchai-2018-05-01
- - tag: schema-batchai-2018-03-01
- - tag: schema-batchai-2017-09-01-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-batchai-2018-05-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-batchai-2018-05-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.BatchAI/stable/2018-05-01/BatchAI.json
-
-```
-
-### Tag: schema-batchai-2018-03-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-batchai-2018-03-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.BatchAI/stable/2018-03-01/BatchAI.json
-
-```
-
-### Tag: schema-batchai-2017-09-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-batchai-2017-09-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.BatchAI/preview/2017-09-01-preview/BatchAI.json
-
-```
diff --git a/specification/batchai/resource-manager/readme.md b/specification/batchai/resource-manager/readme.md
index 6c29bae8f5b6..5167bc9667aa 100644
--- a/specification/batchai/resource-manager/readme.md
+++ b/specification/batchai/resource-manager/readme.md
@@ -73,8 +73,6 @@ swagger-to-sdk:
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js batchai/resource-manager
```
@@ -186,7 +184,5 @@ regenerate-manager: true
generate-interface: true
```
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/billingPromotions.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/billingPromotions.json
new file mode 100644
index 000000000000..71d5830f954e
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/billingPromotions.json
@@ -0,0 +1,454 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-11-01-preview",
+ "title": "BillingManagementClient",
+ "description": "Billing client provides access to billing resources for Azure subscriptions."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/providers/Microsoft.Billing/promotions/{promotionId}": {
+ "put": {
+ "summary": "Activate promotion",
+ "description": "Activate promotion and create promotion resource.",
+ "operationId": "Activate_Promotion",
+ "x-ms-examples": {
+ "PromotionActivation": {
+ "$ref": "./examples/PromotionActivation.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/promotionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PromotionCreateRequest"
+ },
+ "description": "Request parameters that are provided to activate the promotion."
+ }
+ ],
+ "tags": [
+ "Promotion, Activate"
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource has been created",
+ "schema": {
+ "$ref": "#/definitions/PromotionResponse"
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "get": {
+ "summary": "Get a specific Promotion.",
+ "description": "Get the details of the `Promotion`.",
+ "operationId": "Promotion_Get",
+ "x-ms-examples": {
+ "GetPromotion": {
+ "$ref": "./examples/PromotionDetails.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/promotionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "tags": [
+ "Promotion"
+ ],
+ "responses": {
+ "200": {
+ "description": "Details of the `Promotion`.",
+ "schema": {
+ "$ref": "#/definitions/PromotionResponse"
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Billing/promotions": {
+ "get": {
+ "summary": "Get all `Promotion`s.",
+ "description": "List of all the `Promotion`s that the user has access.",
+ "operationId": "Promotions_List",
+ "x-ms-examples": {
+ "PromotionList": {
+ "$ref": "./examples/GetPromotions.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "tags": [
+ "Promotion"
+ ],
+ "responses": {
+ "200": {
+ "description": "List of `Promotion`s",
+ "schema": {
+ "$ref": "#/definitions/PromotionList"
+ }
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Billing/promotions/{promotionSkuId}/checkEligibility": {
+ "get": {
+ "tags": [
+ "Promotion_CheckEligibility"
+ ],
+ "operationId": "Promotion_CheckEligibility",
+ "description": "Checks the eligibility of a subscription for all active promotions.",
+ "x-ms-examples": {
+ "PromotionCheckEligibility": {
+ "$ref": "./examples/PromotionCheckEligibility.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/promotionSkuId"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/PromotionCheckEligibilityResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "PromotionCreateRequest": {
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "sku": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PromotionCreateSkuNameRequestProperties"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PromotionCreateRequestProperties"
+ }
+ }
+ },
+ "PromotionCreateSkuNameRequestProperties": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "SKU Name of the promotion to activate"
+ }
+ }
+ },
+ "PromotionCreateRequestProperties": {
+ "type": "object",
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Friendly name for user to easily identified the promotion."
+ },
+ "appliedScopes": {
+ "$ref": "#/definitions/AppliedScopes",
+ "description": "List of subscriptions getting the benefit of the promotion."
+ },
+ "orderId": {
+ "type": "string",
+ "description": "Unique Id for the promotion order."
+ }
+ }
+ },
+ "PromotionList": {
+ "description": "The list of promotions.",
+ "properties": {
+ "value": {
+ "description": "The list of promotions.",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/PromotionResponse"
+ }
+ },
+ "nextLink": {
+ "description": "The link (url) to the next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "PromotionResponse": {
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "etag": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Identifier of the promotion"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Name of the promotion"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PromotionResponseProperties"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Type of resource. \"Microsoft.Billing/Promotions\""
+ }
+ }
+ },
+ "PromotionResponseProperties": {
+ "type": "object",
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Friendly name for user to easily identified the promotion."
+ },
+ "effectiveDateTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "This is the DateTime when the promotion would come in effect"
+ },
+ "lastUpdatedDateTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Last update time of the promotion resource."
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date",
+ "description": "This is the date when the Reservation will expire."
+ },
+ "provisioningState": {
+ "type": "string",
+ "description": "Current state of the promotion."
+ },
+ "appliedScopes": {
+ "$ref": "#/definitions/AppliedScopes",
+ "description": "List of subscriptions getting the benefit of the promotion."
+ }
+ }
+ },
+ "AppliedScopes": {
+ "type": "array",
+ "description": "List of the subscriptions that the benefit will be applied.",
+ "items": {
+ "type": "string",
+ "minItems": 1,
+ "maxItems": 1
+ }
+ },
+ "PromotionCheckEligibilityResponse": {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PromotionCheckEligibilityResponseProperties"
+ }
+ }
+ },
+ "PromotionCheckEligibilityResponseProperties": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Name of the promotion"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the promotion"
+ },
+ "eligible": {
+ "type": "boolean",
+ "description": "Specifies whether the subscription is eligible for the promotion"
+ },
+ "reason": {
+ "type": "string",
+ "description": "Reason in case the subscription is not eligible for promotion."
+ },
+ "eligibilitySubscriptionId": {
+ "type": "string",
+ "description": "Subscription Id on which the eligibility check was performed."
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date",
+ "description": "Date till when the promotion is available."
+ }
+ }
+ },
+ "ErrorResponse": {
+ "description": "Error response indicates that the service is not able to process the incoming request. The reason is provided in the error message.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "description": "The details of the error.",
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "ErrorDetails": {
+ "description": "The details of the error.",
+ "properties": {
+ "code": {
+ "description": "Error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "type": "string",
+ "readOnly": true
+ },
+ "target": {
+ "description": "The target of the particular error.",
+ "type": "string",
+ "readOnly": true
+ },
+ "details": {
+ "description": "The sub details of the error.",
+ "readOnly": true,
+ "$ref": "#/definitions/ErrorSubDetails"
+ }
+ }
+ },
+ "ErrorSubDetails": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "type": "string",
+ "readOnly": true
+ },
+ "target": {
+ "description": "The target of the particular error.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "apiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "The version of the API to be used with the client request. The current version is 2019-10-01-preview."
+ },
+ "subscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "The ID that uniquely identifies an Azure subscription.",
+ "required": true,
+ "type": "string"
+ },
+ "promotionIdParameter": {
+ "name": "promotionId",
+ "x-ms-parameter-location": "method",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Promotion Id"
+ },
+ "promotionSkuId": {
+ "name": "promotionSkuId",
+ "x-ms-parameter-location": "method",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Promotion Sku Id"
+ }
+ },
+ "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"
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/examples/GetPromotions.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/examples/GetPromotions.json
new file mode 100644
index 000000000000..b3661f72cdc0
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/examples/GetPromotions.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "api-version": "2020-11-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "/providers/Microsoft.Billing/promotions/105363ba-c9e4-421e-a630-4968bdc3f217",
+ "type": "Microsoft.Billing/promotions",
+ "name": "105363ba-c9e4-421e-a630-4968bdc3f217",
+ "etag": 1,
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/a4f60096-7846-4c87-9143-771e73ae26ce"
+ ],
+ "provisioningState": "Creating",
+ "displayName": "test-promo1",
+ "effectiveDateTime": "2020-10-19T21:03:19.9905904Z",
+ "lastUpdatedDateTime": "2020-10-19T21:03:19.9905904Z",
+ "expiryDate": "2021-01-31"
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/examples/PromotionActivation.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/examples/PromotionActivation.json
new file mode 100644
index 000000000000..0c6e578d3e2f
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/examples/PromotionActivation.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "api-version": "2020-11-01-preview",
+ "promotionId": "ff0f1add-122a-43c1-a2ec-c2277781667d",
+ "parameters": {
+ "sku": {
+ "name": "wvd_promo_30p"
+ },
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/f6dc64c8-34bb-43d3-96b0-fd2b8c94f1c3"
+ ],
+ "displayName": "promotion-displayname",
+ "orderId": "ff0f1add-122a-43c1-a2ec-c2277781667d"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/providers/Microsoft.Billing/promotions/ff0f1add-122a-43c1-a2ec-c2277781667d",
+ "type": "Microsoft.Billing/promotions",
+ "name": "ff0f1add-122a-43c1-a2ec-c2277781667d",
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/a4f60096-7846-4c87-9143-771e73ae26ce"
+ ],
+ "provisioningState": "Succeeded",
+ "expiryDate": "2021-02-01",
+ "displayName": "promotion-displayname",
+ "effectiveDateTime": "2020-11-03T02:26:53.0006733Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/examples/PromotionCheckEligibility.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/examples/PromotionCheckEligibility.json
new file mode 100644
index 000000000000..dff19b032a57
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/examples/PromotionCheckEligibility.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "api-version": "2020-11-01-preview",
+ "promotionSkuId": "wvd_promo_30p",
+ "subscriptionId": "f6dc64c8-34bb-43d3-96b0-fd2b8c94f1c3"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "id": "wvd_promo_30p",
+ "name": "WVD 30 percent off",
+ "eligible": true,
+ "reason": "None",
+ "eligibilitySubscriptionId": "f6dc64c8-34bb-43d3-96b0-fd2b8c94f1c3",
+ "expiryDate": "2021-10-01"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/examples/PromotionDetails.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/examples/PromotionDetails.json
new file mode 100644
index 000000000000..28d606d89469
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/examples/PromotionDetails.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-11-01-preview",
+ "promotionId": "{promotionId}"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/providers/Microsoft.Billing/promotions/105363ba-c9e4-421e-a630-4968bdc3f217",
+ "type": "Microsoft.Billing/promotions",
+ "name": "105363ba-c9e4-421e-a630-4968bdc3f217",
+ "etag": 1,
+ "properties": {
+ "appliedScopes": [
+ "/subscriptions/a4f60096-7846-4c87-9143-771e73ae26ce"
+ ],
+ "provisioningState": "Creating",
+ "displayName": "test-promo1",
+ "effectiveDateTime": "2020-10-19T21:03:19.9905904Z",
+ "lastUpdatedDateTime": "2020-10-19T21:03:19.9905904Z",
+ "expiryDate": "2020-10-19"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/readme.azureresourceschema.md b/specification/billing/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index e7e163b7b60e..000000000000
--- a/specification/billing/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,85 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-billing-2020-05-01
- - tag: schema-billing-2019-10-01-preview
- - tag: schema-billing-2018-11-01-preview
- - tag: schema-billing-2018-03-01-preview
- - tag: schema-billing-2017-04-24-preview
- - tag: schema-billing-2017-02-27-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-billing-2020-05-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-billing-2020-05-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Billing/stable/2020-05-01/billing.json
-
-```
-
-### Tag: schema-billing-2019-10-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-billing-2019-10-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Billing/preview/2019-10-01-preview/billing.json
-
-```
-
-### Tag: schema-billing-2018-11-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-billing-2018-11-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Billing/preview/2018-11-01-preview/billing.json
-
-```
-
-### Tag: schema-billing-2018-03-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-billing-2018-03-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Billing/preview/2018-03-01-preview/billingV2.json
- - Microsoft.Billing/preview/2018-03-01-preview/billing.json
-
-```
-
-### Tag: schema-billing-2017-04-24-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-billing-2017-04-24-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Billing/preview/2017-04-24-preview/billing.json
-
-```
-
-### Tag: schema-billing-2017-02-27-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-billing-2017-02-27-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Billing/preview/2017-02-27-preview/billing.json
-
-```
diff --git a/specification/billing/resource-manager/readme.go.md b/specification/billing/resource-manager/readme.go.md
index 76cf35414ed7..3168650648d3 100644
--- a/specification/billing/resource-manager/readme.go.md
+++ b/specification/billing/resource-manager/readme.go.md
@@ -17,7 +17,6 @@ batch:
- tag: package-2018-11-preview
- tag: package-2018-03-preview
- tag: package-2017-04-preview
- - tag: package-2017-02-preview
```
### Tag: package-2020-05 and go
diff --git a/specification/billing/resource-manager/readme.md b/specification/billing/resource-manager/readme.md
index d75cc3d0eee1..8cb5f3f3a9a5 100644
--- a/specification/billing/resource-manager/readme.md
+++ b/specification/billing/resource-manager/readme.md
@@ -38,6 +38,15 @@ input-file:
- Microsoft.Billing/stable/2020-05-01/billing.json
- Microsoft.Billing/preview/2018-03-01-preview/billingV2.json
```
+### Tag: package-2020-11-preview
+
+These settings apply only when `--tag=package-2020-11-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-11-preview'
+input-file:
+- Microsoft.Billing/stable/2020-05-01/billing.json
+- Microsoft.Billing/preview/2020-11-01-preview/billingPromotions.json
+```
### Tag: package-2019-10-preview
@@ -96,7 +105,7 @@ This is not used by Autorest itself.
``` yaml $(swagger-to-sdk)
swagger-to-sdk:
- repo: azure-sdk-for-net
- - repo: azure-sdk-for-python
+ - repo: azure-sdk-for-python-track2
- repo: azure-sdk-for-java
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
@@ -106,8 +115,6 @@ swagger-to-sdk:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_billing']
- repo: azure-cli-extensions
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js billing/resource-manager
```
@@ -125,6 +132,10 @@ csharp:
clear-output-folder: true
```
+## Python
+
+See configuration in [readme.python.md](./readme.python.md)
+
## Go
See configuration in [readme.go.md](./readme.go.md)
@@ -235,6 +246,4 @@ generate-interface: true
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/billing/resource-manager/readme.python.md b/specification/billing/resource-manager/readme.python.md
index 28fc27d0534c..829ed6a6c37d 100644
--- a/specification/billing/resource-manager/readme.python.md
+++ b/specification/billing/resource-manager/readme.python.md
@@ -6,22 +6,19 @@ Use `--python-mode=update` if you already have a setup.py and just want to updat
``` yaml $(python)
python-mode: create
-python:
- azure-arm: true
- license-header: MICROSOFT_MIT_NO_VERSION
- payload-flattening-threshold: 2
- namespace: azure.mgmt.billing
- package-name: azure-mgmt-billing
- package-version: 0.3.0
- clear-output-folder: true
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+namespace: azure.mgmt.billing
+package-name: azure-mgmt-billing
+package-version: 0.3.0
+clear-output-folder: true
```
``` yaml $(python) && $(python-mode) == 'update'
-python:
- no-namespace-folders: true
- output-folder: $(python-sdks-folder)/billing/azure-mgmt-billing/azure/mgmt/billing
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/billing/azure-mgmt-billing/azure/mgmt/billing
```
+
``` yaml $(python) && $(python-mode) == 'create'
-python:
- basic-setup-py: true
- output-folder: $(python-sdks-folder)/billing/azure-mgmt-billing
+basic-setup-py: true
+output-folder: $(python-sdks-folder)/billing/azure-mgmt-billing
```
diff --git a/specification/blockchain/resource-manager/readme.azureresourceschema.md b/specification/blockchain/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 01c28ae04c95..000000000000
--- a/specification/blockchain/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,24 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-blockchain-2018-06-01-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-blockchain-2018-06-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-blockchain-2018-06-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Blockchain/preview/2018-06-01-preview/blockchain.json
-
-```
diff --git a/specification/blockchain/resource-manager/readme.md b/specification/blockchain/resource-manager/readme.md
index fda27f80fb64..314c4c624b3a 100644
--- a/specification/blockchain/resource-manager/readme.md
+++ b/specification/blockchain/resource-manager/readme.md
@@ -61,8 +61,6 @@ swagger-to-sdk:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_blockchain']
- repo: azure-cli-extensions
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js blockchain/resource-manager
```
## C#
@@ -90,7 +88,5 @@ See configuration in [readme.node.md](./readme.node.md)
See configuration in [readme.ruby.md](./readme.ruby.md)
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/blueprint/resource-manager/Microsoft.Blueprint/preview/2018-11-01-preview/blueprintDefinition.json b/specification/blueprint/resource-manager/Microsoft.Blueprint/preview/2018-11-01-preview/blueprintDefinition.json
index 43616703c192..8c6cb466a66f 100644
--- a/specification/blueprint/resource-manager/Microsoft.Blueprint/preview/2018-11-01-preview/blueprintDefinition.json
+++ b/specification/blueprint/resource-manager/Microsoft.Blueprint/preview/2018-11-01-preview/blueprintDefinition.json
@@ -972,6 +972,7 @@
},
"layout": {
"type": "object",
+ "readOnly": true,
"description": "Layout view of the blueprint definition for UI reference."
}
},
diff --git a/specification/blueprint/resource-manager/readme.azureresourceschema.md b/specification/blueprint/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 4e9a1ed8e02a..000000000000
--- a/specification/blueprint/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,39 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-blueprint-2018-11-01-preview
- - tag: schema-blueprint-2017-11-11-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-blueprint-2018-11-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-blueprint-2018-11-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Blueprint/preview/2018-11-01-preview/blueprintDefinition.json
- - Microsoft.Blueprint/preview/2018-11-01-preview/blueprintAssignment.json
- - Microsoft.Blueprint/preview/2018-11-01-preview/assignmentOperation.json
-
-```
-
-### Tag: schema-blueprint-2017-11-11-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-blueprint-2017-11-11-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Blueprint/preview/2017-11-11-preview/blueprintDefinition.json
- - Microsoft.Blueprint/preview/2017-11-11-preview/blueprintAssignment.json
-
-```
diff --git a/specification/blueprint/resource-manager/readme.md b/specification/blueprint/resource-manager/readme.md
index e133f1b7ed9f..5d57c7587278 100644
--- a/specification/blueprint/resource-manager/readme.md
+++ b/specification/blueprint/resource-manager/readme.md
@@ -64,8 +64,6 @@ swagger-to-sdk:
- repo: azure-sdk-for-js
- repo: azure-sdk-for-python
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js blueprint/resource-manager
```
@@ -134,7 +132,5 @@ directive:
reason: OperationsAPI for Microsoft.Management is out of scope.
```
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/botservice.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/botservice.json
new file mode 100644
index 000000000000..772e0a1c5d47
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/botservice.json
@@ -0,0 +1,2977 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Bot Service",
+ "description": "Azure Bot Service is a platform for creating smart conversational agents.",
+ "version": "2021-05-01-preview"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}": {
+ "put": {
+ "tags": [
+ "Bot"
+ ],
+ "description": "Creates a Bot Service. Bot Service is a resource group wide resource type.",
+ "operationId": "Bots_Create",
+ "x-ms-examples": {
+ "Create Bot": {
+ "$ref": "./examples/CreateBot.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Bot"
+ },
+ "description": "The parameters to provide for the created bot."
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "If resource is created successfully or already existed, the service should return 200 (OK).",
+ "schema": {
+ "$ref": "#/definitions/Bot"
+ }
+ },
+ "201": {
+ "description": "If resource is created successfully, the service should return 201 (Created). Execution to continue asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/Bot"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Bot"
+ ],
+ "description": "Updates a Bot Service",
+ "operationId": "Bots_Update",
+ "x-ms-examples": {
+ "Update Bot": {
+ "$ref": "./examples/UpdateBot.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/Bot"
+ },
+ "description": "The parameters to provide for the created bot."
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. ",
+ "schema": {
+ "$ref": "#/definitions/Bot"
+ }
+ },
+ "201": {
+ "description": "If resource is updated successfully, the service should return 201 (Created). Execution to continue asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/Bot"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource group *or* resource does not exist, 404 (NotFound) should be returned.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Bot"
+ ],
+ "description": "Deletes a Bot Service from the resource group. ",
+ "operationId": "Bots_Delete",
+ "x-ms-examples": {
+ "Delete Bot": {
+ "$ref": "./examples/DeleteBot.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A 200 (OK) should be returned if the object exists and was deleted successfully;"
+ },
+ "204": {
+ "description": "a 204 (NoContent) should be used if the resource does not exist and the request is well formed."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Bot"
+ ],
+ "description": "Returns a BotService specified by the parameters.",
+ "operationId": "Bots_Get",
+ "x-ms-examples": {
+ "Get Bot": {
+ "$ref": "./examples/GetBot.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. ",
+ "schema": {
+ "$ref": "#/definitions/Bot"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource group *or* resource does not exist, 404 (NotFound) should be returned.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices": {
+ "get": {
+ "tags": [
+ "Bot"
+ ],
+ "description": "Returns all the resources of a particular type belonging to a resource group",
+ "operationId": "Bots_ListByResourceGroup",
+ "x-ms-examples": {
+ "List Bots by Resource Group": {
+ "$ref": "./examples/ListBotsByResourceGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.\nThe nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses here. If a resource provider does not support paging, it should return the same body (JSON object with “value” property) but omit nextLink entirely (or set to null, *not* empty string) for future compatibility.\nThe nextLink should be implemented using following query parameters:\n· skipToken: opaque token that allows the resource provider to skip resources already enumerated. This value is defined and returned by the RP after first request via nextLink.\n· top: the optional client query parameter which defines the maximum number of records to be returned by the server.\nImplementation details:\n· NextLink may include all the query parameters (specifically OData $filter) used by the client in the first query. \n· Server may return less records than requested with nextLink. Returning zero records with NextLink is an acceptable response. \nClients must fetch records until the nextLink is not returned back / null. Clients should never rely on number of returned records to determinate if pagination is completed.",
+ "schema": {
+ "$ref": "#/definitions/BotResponseList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource group does not exist, 404 (NotFound) will be returned.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.BotService/botServices": {
+ "get": {
+ "tags": [
+ "Bot"
+ ],
+ "description": "Returns all the resources of a particular type belonging to a subscription.",
+ "operationId": "Bots_List",
+ "x-ms-examples": {
+ "List Bots by Subscription": {
+ "$ref": "./examples/ListBotsBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.\nThe nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses. If a resource provider does not support paging, it should return the same body but leave nextLink empty for future compatibility.\nFor a detailed explanation of each field in the response body, please refer to the request body description in the PUT resource section. ",
+ "schema": {
+ "$ref": "#/definitions/BotResponseList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/channels/{channelName}": {
+ "put": {
+ "tags": [
+ "Channel"
+ ],
+ "description": "Creates a Channel registration for a Bot Service",
+ "operationId": "Channels_Create",
+ "x-ms-examples": {
+ "Create Bot": {
+ "$ref": "./examples/PutChannel.json"
+ },
+ "Create Alexa Bot": {
+ "$ref": "./examples/PutAlexaChannel.json"
+ },
+ "Create Line Bot": {
+ "$ref": "./examples/PutLineChannel.json"
+ },
+ "Create DirectLine Speech Bot": {
+ "$ref": "./examples/PutDirectLineSpeechChannel.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/channelNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BotChannel"
+ },
+ "description": "The parameters to provide for the created bot."
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "If resource is created successfully or already existed, the service should return 200 (OK).",
+ "schema": {
+ "$ref": "#/definitions/BotChannel"
+ }
+ },
+ "201": {
+ "description": "If resource is created successfully, the service should return 201 (Created). Execution to continue asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/BotChannel"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Channel"
+ ],
+ "description": "Updates a Channel registration for a Bot Service",
+ "operationId": "Channels_Update",
+ "x-ms-examples": {
+ "Update Bot": {
+ "$ref": "./examples/UpdateChannel.json"
+ },
+ "Update Alexa": {
+ "$ref": "./examples/UpdateAlexaChannel.json"
+ },
+ "Update Line": {
+ "$ref": "./examples/UpdateLineChannel.json"
+ },
+ "Update DirectLine Speech": {
+ "$ref": "./examples/UpdateDirectLineSpeechChannel.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/channelNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/BotChannel"
+ },
+ "description": "The parameters to provide for the created bot."
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. ",
+ "schema": {
+ "$ref": "#/definitions/BotChannel"
+ }
+ },
+ "201": {
+ "description": "If resource is updated successfully, the service should return 201 (Created). Execution to continue asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/BotChannel"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource group *or* resource does not exist, 404 (NotFound) should be returned.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Channel"
+ ],
+ "description": "Deletes a Channel registration from a Bot Service",
+ "operationId": "Channels_Delete",
+ "x-ms-examples": {
+ "Delete Bot": {
+ "$ref": "./examples/DeleteChannel.json"
+ },
+ "Delete DirectLine Speech Bot": {
+ "$ref": "./examples/DeleteDirectLineSpeechChannel.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "name": "channelName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "maxLength": 64,
+ "minLength": 2,
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]*$",
+ "description": "The name of the Bot resource."
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A 200 (OK) should be returned if the object exists and was deleted successfully;"
+ },
+ "204": {
+ "description": "a 204 (NoContent) should be used if the resource does not exist and the request is well formed."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Channel"
+ ],
+ "description": "Returns a BotService Channel registration specified by the parameters.",
+ "operationId": "Channels_Get",
+ "x-ms-examples": {
+ "Get Bot": {
+ "$ref": "./examples/GetChannel.json"
+ },
+ "Get Alexa Bot": {
+ "$ref": "./examples/GetAlexaChannel.json"
+ },
+ "Get Line Bot": {
+ "$ref": "./examples/GetLineChannel.json"
+ },
+ "Get DirectLine Speech Bot": {
+ "$ref": "./examples/GetDirectLineSpeechChannel.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "name": "channelName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "maxLength": 64,
+ "minLength": 2,
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]*$",
+ "description": "The name of the Bot resource."
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. ",
+ "schema": {
+ "$ref": "#/definitions/BotChannel"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource group *or* resource does not exist, 404 (NotFound) should be returned.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/channels/{channelName}/listChannelWithKeys": {
+ "post": {
+ "tags": [
+ "Channel"
+ ],
+ "description": "Lists a Channel registration for a Bot Service including secrets",
+ "operationId": "Channels_ListWithKeys",
+ "x-ms-examples": {
+ "List Channel": {
+ "$ref": "./examples/ListChannel.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/channelNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "If resource is retrieved successfully, the service should return 200 (OK).",
+ "schema": {
+ "$ref": "#/definitions/BotChannel"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/channels": {
+ "get": {
+ "tags": [
+ "Channel"
+ ],
+ "description": "Returns all the Channel registrations of a particular BotService resource",
+ "operationId": "Channels_ListByResourceGroup",
+ "x-ms-examples": {
+ "List Bots by Resource Group": {
+ "$ref": "./examples/ListChannelsByBotService.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.\nThe nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses here. If a resource provider does not support paging, it should return the same body (JSON object with “value” property) but omit nextLink entirely (or set to null, *not* empty string) for future compatibility.\nThe nextLink should be implemented using following query parameters:\n· skipToken: opaque token that allows the resource provider to skip resources already enumerated. This value is defined and returned by the RP after first request via nextLink.\n· top: the optional client query parameter which defines the maximum number of records to be returned by the server.\nImplementation details:\n· NextLink may include all the query parameters (specifically OData $filter) used by the client in the first query. \n· Server may return less records than requested with nextLink. Returning zero records with NextLink is an acceptable response. \nClients must fetch records until the nextLink is not returned back / null. Clients should never rely on number of returned records to determinate if pagination is completed.",
+ "schema": {
+ "$ref": "#/definitions/ChannelResponseList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource group does not exist, 404 (NotFound) will be returned.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/channels/{channelName}/regeneratekeys": {
+ "post": {
+ "tags": [
+ "Channel"
+ ],
+ "description": "Regenerates secret keys and returns them for the DirectLine Channel of a particular BotService resource",
+ "operationId": "DirectLine_RegenerateKeys",
+ "x-ms-examples": {
+ "Regenerate Keys for DirectLine Channel Site": {
+ "$ref": "./examples/DirectlineRegenerateKeys.json"
+ },
+ "Regenerate Keys for WebChat Channel Site": {
+ "$ref": "./examples/WebChatRegenerateKeys.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/regenerateKeyschannelNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SiteInfo"
+ },
+ "description": "The parameters to provide for the created bot."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.\nThe nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses here. If a resource provider does not support paging, it should return the same body (JSON object with “value” property) but omit nextLink entirely (or set to null, *not* empty string) for future compatibility.\nThe nextLink should be implemented using following query parameters:\n· skipToken: opaque token that allows the resource provider to skip resources already enumerated. This value is defined and returned by the RP after first request via nextLink.\n· top: the optional client query parameter which defines the maximum number of records to be returned by the server.\nImplementation details:\n· NextLink may include all the query parameters (specifically OData $filter) used by the client in the first query. \n· Server may return less records than requested with nextLink. Returning zero records with NextLink is an acceptable response. \nClients must fetch records until the nextLink is not returned back / null. Clients should never rely on number of returned records to determinate if pagination is completed.",
+ "schema": {
+ "$ref": "#/definitions/BotChannel"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource group does not exist, 404 (NotFound) will be returned.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.BotService/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "Bot"
+ ],
+ "description": "Check whether a bot name is available.",
+ "operationId": "Bots_GetCheckNameAvailability",
+ "x-ms-examples": {
+ "check Name Availability": {
+ "$ref": "./examples/CheckNameAvailability.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CheckNameAvailabilityRequestBody"
+ },
+ "description": "The request body parameters to provide for the check name availability request"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.\nThe nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses. If a resource provider does not support paging, it should return the same body but leave nextLink empty for future compatibility.\nFor a detailed explanation of each field in the response body, please refer to the request body description in the PUT resource section. ",
+ "schema": {
+ "$ref": "#/definitions/CheckNameAvailabilityResponseBody"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.BotService/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Lists all the available BotService operations.",
+ "operationId": "Operations_List",
+ "x-ms-examples": {
+ "Get Operations": {
+ "$ref": "./examples/GetOperations.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/OperationEntityListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.BotService/listAuthServiceProviders": {
+ "post": {
+ "tags": [
+ "ListServiceProviders"
+ ],
+ "description": "Lists the available Service Providers for creating Connection Settings",
+ "operationId": "BotConnection_ListServiceProviders",
+ "x-ms-examples": {
+ "List Auth Service Providers": {
+ "$ref": "./examples/ListServiceProviders.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "If resource is retrieved successfully, the service should return 200 (OK).",
+ "schema": {
+ "$ref": "#/definitions/ServiceProviderResponseList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/connections/{connectionName}/listWithSecrets": {
+ "post": {
+ "tags": [
+ "BotConnection"
+ ],
+ "x-ms-examples": {
+ "Update Connection Setting": {
+ "$ref": "./examples/GetConnection.json"
+ }
+ },
+ "description": "Get a Connection Setting registration for a Bot Service",
+ "operationId": "BotConnection_ListWithSecrets",
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/connectionNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. ",
+ "schema": {
+ "$ref": "#/definitions/ConnectionSetting"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource group *or* resource does not exist, 404 (NotFound) should be returned.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/connections/{connectionName}": {
+ "put": {
+ "tags": [
+ "BotConnection"
+ ],
+ "description": "Register a new Auth Connection for a Bot Service",
+ "operationId": "BotConnection_Create",
+ "x-ms-examples": {
+ "Create Connection Setting": {
+ "$ref": "./examples/PutConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/connectionNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConnectionSetting"
+ },
+ "description": "The parameters to provide for creating the Connection Setting."
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "If resource is created successfully or already existed, the service should return 200 (OK).",
+ "schema": {
+ "$ref": "#/definitions/ConnectionSetting"
+ }
+ },
+ "201": {
+ "description": "If resource is created successfully, the service should return 201 (Created). Execution to continue asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/ConnectionSetting"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "BotConnection"
+ ],
+ "description": "Updates a Connection Setting registration for a Bot Service",
+ "operationId": "BotConnection_Update",
+ "x-ms-examples": {
+ "Update Connection Setting": {
+ "$ref": "./examples/UpdateConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/connectionNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConnectionSetting"
+ },
+ "description": "The parameters to provide for updating the Connection Setting."
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "If resource is created successfully or already existed, the service should return 200 (OK).",
+ "schema": {
+ "$ref": "#/definitions/ConnectionSetting"
+ }
+ },
+ "201": {
+ "description": "If resource is created successfully, the service should return 201 (Created). Execution to continue asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/ConnectionSetting"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "BotConnection"
+ ],
+ "x-ms-examples": {
+ "Update Connection Setting": {
+ "$ref": "./examples/GetConnection.json"
+ }
+ },
+ "description": "Get a Connection Setting registration for a Bot Service",
+ "operationId": "BotConnection_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/connectionNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. ",
+ "schema": {
+ "$ref": "#/definitions/ConnectionSetting"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource group *or* resource does not exist, 404 (NotFound) should be returned.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "BotConnection"
+ ],
+ "description": "Deletes a Connection Setting registration for a Bot Service",
+ "operationId": "BotConnection_Delete",
+ "x-ms-examples": {
+ "Update Connection Setting": {
+ "$ref": "./examples/DeleteConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/connectionNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A 200 (OK) should be returned if the object exists and was deleted successfully;"
+ },
+ "204": {
+ "description": "a 204 (NoContent) should be used if the resource does not exist and the request is well formed."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/connections": {
+ "get": {
+ "tags": [
+ "BotConnection"
+ ],
+ "description": "Returns all the Connection Settings registered to a particular BotService resource",
+ "operationId": "BotConnection_ListByBotService",
+ "x-ms-examples": {
+ "List Connection Settings": {
+ "$ref": "./examples/ListConnectionsByBotService.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.\nThe nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses here. If a resource provider does not support paging, it should return the same body (JSON object with “value” property) but omit nextLink entirely (or set to null, *not* empty string) for future compatibility.\nThe nextLink should be implemented using following query parameters:\n· skipToken: opaque token that allows the resource provider to skip resources already enumerated. This value is defined and returned by the RP after first request via nextLink.\n· top: the optional client query parameter which defines the maximum number of records to be returned by the server.\nImplementation details:\n· NextLink may include all the query parameters (specifically OData $filter) used by the client in the first query. \n· Server may return less records than requested with nextLink. Returning zero records with NextLink is an acceptable response. \nClients must fetch records until the nextLink is not returned back / null. Clients should never rely on number of returned records to determinate if pagination is completed.",
+ "schema": {
+ "$ref": "#/definitions/ConnectionSettingResponseList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource group does not exist, 404 (NotFound) will be returned.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.BotService/hostSettings": {
+ "get": {
+ "tags": [
+ "BotHostSettings"
+ ],
+ "description": "Get per subscription settings needed to host bot in compute resource such as Azure App Service",
+ "operationId": "HostSettings_Get",
+ "x-ms-examples": {
+ "Get Bot Host Settings": {
+ "$ref": "./examples/GetHostSettings.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "If resource is retrieved successfully, the service should return 200 (OK).",
+ "schema": {
+ "$ref": "#/definitions/HostSettingsResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.BotService/operationresults/{operationResultId}": {
+ "get": {
+ "tags": [
+ "OperationResults"
+ ],
+ "description": "Get the operation result for a long running operation.",
+ "operationId": "OperationResults_Get",
+ "x-ms-examples": {
+ "Get operation result": {
+ "$ref": "./examples/OperationResultsGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/operationResultIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains all of the properties of the operation result.",
+ "schema": {
+ "$ref": "#/definitions/OperationResultsDescription"
+ }
+ },
+ "202": {
+ "description": "Accepted - Get request accepted; the operation will complete asynchronously."
+ },
+ "default": {
+ "description": "Default error response",
+ "x-ms-error-response": true,
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_List",
+ "description": "List all the private endpoint connections associated with the Bot.",
+ "x-ms-examples": {
+ "List Private Endpoint Connections": {
+ "$ref": "./examples/ListPrivateEndpointConnections.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Successfully retrieved private endpoint connections.",
+ "schema": {
+ "$ref": "./privatelinks.json#/definitions/PrivateEndpointConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response",
+ "x-ms-error-response": true,
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Get",
+ "description": "Gets the specified private endpoint connection associated with the Bot.",
+ "x-ms-examples": {
+ "Get Private Endpoint Connection": {
+ "$ref": "./examples/GetPrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/parameters/PrivateEndpointConnectionName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Get the private endpoint connection properties successfully.",
+ "schema": {
+ "$ref": "./privatelinks.json#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "x-ms-error-response": true,
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Create",
+ "description": "Update the state of specified private endpoint connection associated with the Bot.",
+ "x-ms-examples": {
+ "Put Private Endpoint Connection": {
+ "$ref": "./examples/PutPrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/parameters/PrivateEndpointConnectionName"
+ },
+ {
+ "name": "properties",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "./privatelinks.json#/definitions/PrivateEndpointConnection"
+ },
+ "description": "The private endpoint connection properties."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Update the private endpoint connection properties successfully.",
+ "schema": {
+ "$ref": "./privatelinks.json#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "x-ms-error-response": true,
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Delete",
+ "description": "Deletes the specified private endpoint connection associated with the Bot.",
+ "x-ms-examples": {
+ "Delete Private Endpoint Connection": {
+ "$ref": "./examples/DeletePrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/parameters/PrivateEndpointConnectionName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Delete the private endpoint connection successfully."
+ },
+ "204": {
+ "description": "No Content -- The private endpoint connection does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "x-ms-error-response": true,
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "PrivateLinkResources"
+ ],
+ "operationId": "PrivateLinkResources_ListByBotResource",
+ "description": "Gets the private link resources that need to be created for a Bot.",
+ "x-ms-examples": {
+ "List Private Link Resources": {
+ "$ref": "./examples/ListPrivateLinkResources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved private link resources.",
+ "schema": {
+ "$ref": "./privatelinks.json#/definitions/PrivateLinkResourceListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response",
+ "x-ms-error-response": true,
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Resource": {
+ "description": "Azure resource",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "id": {
+ "description": "Specifies the resource ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "Specifies the name of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "location": {
+ "description": "Specifies the location of the resource.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Specifies the type of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "tags": {
+ "description": "Contains resource tags defined as key/value pairs.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "Gets or sets the SKU of the resource."
+ },
+ "kind": {
+ "$ref": "#/definitions/Kind",
+ "description": "Required. Gets or sets the Kind of the resource."
+ },
+ "etag": {
+ "type": "string",
+ "description": "Entity Tag"
+ }
+ }
+ },
+ "Sku": {
+ "properties": {
+ "name": {
+ "$ref": "#/definitions/SkuName",
+ "description": "The sku name"
+ },
+ "tier": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Gets the sku tier. This is based on the SKU name.",
+ "enum": [
+ "Free",
+ "Standard"
+ ],
+ "x-ms-enum": {
+ "name": "SkuTier",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "description": "The SKU of the cognitive services account."
+ },
+ "SkuName": {
+ "type": "string",
+ "description": "The name of SKU.",
+ "enum": [
+ "F0",
+ "S1"
+ ],
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsString": true
+ }
+ },
+ "Kind": {
+ "type": "string",
+ "description": "Indicates the type of bot service",
+ "enum": [
+ "sdk",
+ "designer",
+ "bot",
+ "function",
+ "azurebot"
+ ],
+ "x-ms-enum": {
+ "name": "Kind",
+ "modelAsString": true
+ }
+ },
+ "Bot": {
+ "type": "object",
+ "description": "Bot resource definition",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/BotProperties",
+ "description": "The set of properties specific to bot resource"
+ }
+ }
+ },
+ "BotProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "The Name of the bot"
+ },
+ "description": {
+ "type": "string",
+ "description": "The description of the bot"
+ },
+ "iconUrl": {
+ "type": "string",
+ "description": "The Icon Url of the bot"
+ },
+ "endpoint": {
+ "type": "string",
+ "description": "The bot's endpoint"
+ },
+ "endpointVersion": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The bot's endpoint version"
+ },
+ "msaAppId": {
+ "type": "string",
+ "description": "Microsoft App Id for the bot"
+ },
+ "configuredChannels": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true,
+ "description": "Collection of channels for which the bot is configured"
+ },
+ "enabledChannels": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true,
+ "description": "Collection of channels for which the bot is enabled"
+ },
+ "developerAppInsightKey": {
+ "type": "string",
+ "description": "The Application Insights key"
+ },
+ "developerAppInsightsApiKey": {
+ "type": "string",
+ "description": "The Application Insights Api Key"
+ },
+ "developerAppInsightsApplicationId": {
+ "type": "string",
+ "description": "The Application Insights App Id"
+ },
+ "luisAppIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Collection of LUIS App Ids"
+ },
+ "luisKey": {
+ "type": "string",
+ "description": "The LUIS Key"
+ },
+ "isCmekEnabled": {
+ "type": "boolean",
+ "description": "Whether Cmek is enabled"
+ },
+ "cmekKeyVaultUrl": {
+ "type": "string",
+ "description": "The CMK Url"
+ },
+ "isIsolated": {
+ "type": "boolean",
+ "description": "Whether the bot is in an isolated network"
+ },
+ "schemaTransformationVersion": {
+ "type": "string",
+ "description": "The channel schema transformation version for the bot"
+ }
+ },
+ "description": "The parameters to provide for the Bot.",
+ "required": [
+ "displayName",
+ "endpoint",
+ "msaAppId"
+ ]
+ },
+ "BotResponseList": {
+ "properties": {
+ "nextLink": {
+ "description": "The link used to get the next page of bot service resources.",
+ "type": "string"
+ },
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Bot"
+ },
+ "description": "Gets the list of bot service results and their properties."
+ }
+ },
+ "description": "The list of bot service operation response."
+ },
+ "BotChannel": {
+ "type": "object",
+ "description": "Bot channel resource definition",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/Channel",
+ "description": "The set of properties specific to bot channel resource"
+ }
+ }
+ },
+ "Channel": {
+ "type": "object",
+ "description": "Channel definition",
+ "discriminator": "channelName",
+ "properties": {
+ "channelName": {
+ "type": "string",
+ "description": "The channel name"
+ }
+ },
+ "required": [
+ "channelName"
+ ]
+ },
+ "AlexaChannel": {
+ "type": "object",
+ "x-ms-discriminator-value": "AlexaChannel",
+ "description": "Alexa channel definition",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Channel"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/AlexaChannelProperties",
+ "description": "The set of properties specific to Alexa channel resource"
+ }
+ }
+ },
+ "AlexaChannelProperties": {
+ "properties": {
+ "alexaSkillId": {
+ "type": "string",
+ "description": "The Alexa skill Id"
+ },
+ "urlFragment": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Url fragment used in part of the Uri configured in Alexa"
+ },
+ "serviceEndpointUri": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Full Uri used to configured the skill in Alexa"
+ },
+ "isEnabled": {
+ "type": "boolean",
+ "description": "Whether this channel is enabled for the bot"
+ }
+ },
+ "description": "The parameters to provide for the Alexa channel.",
+ "required": [
+ "alexaSkillId",
+ "isEnabled"
+ ]
+ },
+ "FacebookChannel": {
+ "type": "object",
+ "description": "Facebook channel definition",
+ "x-ms-discriminator-value": "FacebookChannel",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Channel"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/FacebookChannelProperties",
+ "description": "The set of properties specific to bot facebook channel"
+ }
+ }
+ },
+ "FacebookChannelProperties": {
+ "properties": {
+ "verifyToken": {
+ "x-ms-secret": true,
+ "type": "string",
+ "readOnly": true,
+ "description": "Verify token. Value only returned through POST to the action Channel List API, otherwise empty."
+ },
+ "pages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FacebookPage"
+ },
+ "description": "The list of Facebook pages"
+ },
+ "appId": {
+ "type": "string",
+ "description": "Facebook application id"
+ },
+ "appSecret": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "Facebook application secret. Value only returned through POST to the action Channel List API, otherwise empty."
+ },
+ "callbackUrl": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Callback Url"
+ },
+ "isEnabled": {
+ "type": "boolean",
+ "description": "Whether this channel is enabled for the bot"
+ }
+ },
+ "description": "The parameters to provide for the Facebook channel.",
+ "required": [
+ "appId",
+ "isEnabled"
+ ]
+ },
+ "FacebookPage": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Page id"
+ },
+ "accessToken": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "Facebook application access token. Value only returned through POST to the action Channel List API, otherwise empty."
+ }
+ },
+ "description": "A Facebook page for Facebook channel registration",
+ "required": [
+ "id"
+ ]
+ },
+ "EmailChannel": {
+ "type": "object",
+ "description": "Email channel definition",
+ "x-ms-discriminator-value": "EmailChannel",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Channel"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/EmailChannelProperties",
+ "description": "The set of properties specific to email channel resource"
+ }
+ }
+ },
+ "EmailChannelProperties": {
+ "properties": {
+ "emailAddress": {
+ "type": "string",
+ "description": "The email address"
+ },
+ "password": {
+ "type": "string",
+ "description": "The password for the email address. Value only returned through POST to the action Channel List API, otherwise empty."
+ },
+ "isEnabled": {
+ "type": "boolean",
+ "description": "Whether this channel is enabled for the bot"
+ }
+ },
+ "description": "The parameters to provide for the Email channel.",
+ "required": [
+ "emailAddress",
+ "isEnabled"
+ ]
+ },
+ "MsTeamsChannel": {
+ "type": "object",
+ "x-ms-discriminator-value": "MsTeamsChannel",
+ "description": "Microsoft Teams channel definition",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Channel"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/MsTeamsChannelProperties",
+ "description": "The set of properties specific to Microsoft Teams channel resource"
+ }
+ }
+ },
+ "MsTeamsChannelProperties": {
+ "properties": {
+ "enableCalling": {
+ "type": "boolean",
+ "description": "Enable calling for Microsoft Teams channel"
+ },
+ "callingWebHook": {
+ "type": "string",
+ "description": "Webhook for Microsoft Teams channel calls"
+ },
+ "isEnabled": {
+ "type": "boolean",
+ "description": "Whether this channel is enabled for the bot"
+ }
+ },
+ "description": "The parameters to provide for the Microsoft Teams channel.",
+ "required": [
+ "isEnabled"
+ ]
+ },
+ "SkypeChannel": {
+ "type": "object",
+ "description": "Skype channel definition",
+ "x-ms-discriminator-value": "SkypeChannel",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Channel"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/SkypeChannelProperties",
+ "description": "The set of properties specific to Skype channel resource"
+ }
+ }
+ },
+ "SkypeChannelProperties": {
+ "properties": {
+ "enableMessaging": {
+ "type": "boolean",
+ "description": "Enable messaging for Skype channel"
+ },
+ "enableMediaCards": {
+ "type": "boolean",
+ "description": "Enable media cards for Skype channel"
+ },
+ "enableVideo": {
+ "type": "boolean",
+ "description": "Enable video for Skype channel"
+ },
+ "enableCalling": {
+ "type": "boolean",
+ "description": "Enable calling for Skype channel"
+ },
+ "enableScreenSharing": {
+ "type": "boolean",
+ "description": "Enable screen sharing for Skype channel"
+ },
+ "enableGroups": {
+ "type": "boolean",
+ "description": "Enable groups for Skype channel"
+ },
+ "groupsMode": {
+ "type": "string",
+ "description": "Group mode for Skype channel"
+ },
+ "callingWebHook": {
+ "type": "string",
+ "description": "Calling web hook for Skype channel"
+ },
+ "isEnabled": {
+ "type": "boolean",
+ "description": "Whether this channel is enabled for the bot"
+ }
+ },
+ "description": "The parameters to provide for the Microsoft Teams channel.",
+ "required": [
+ "isEnabled"
+ ]
+ },
+ "KikChannel": {
+ "type": "object",
+ "x-ms-discriminator-value": "KikChannel",
+ "description": "Kik channel definition",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Channel"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/KikChannelProperties",
+ "description": "The set of properties specific to Kik channel resource"
+ }
+ }
+ },
+ "KikChannelProperties": {
+ "properties": {
+ "userName": {
+ "type": "string",
+ "description": "The Kik user name"
+ },
+ "apiKey": {
+ "type": "string",
+ "description": "Kik API key. Value only returned through POST to the action Channel List API, otherwise empty."
+ },
+ "isValidated": {
+ "type": "boolean",
+ "description": "Whether this channel is validated for the bot"
+ },
+ "isEnabled": {
+ "type": "boolean",
+ "description": "Whether this channel is enabled for the bot"
+ }
+ },
+ "description": "The parameters to provide for the Kik channel.",
+ "required": [
+ "userName",
+ "isEnabled"
+ ]
+ },
+ "WebChatChannel": {
+ "type": "object",
+ "x-ms-discriminator-value": "WebChatChannel",
+ "description": "Web Chat channel definition",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Channel"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/WebChatChannelProperties",
+ "description": "The set of properties specific to Web Chat channel resource"
+ }
+ }
+ },
+ "WebChatChannelProperties": {
+ "properties": {
+ "webChatEmbedCode": {
+ "type": "string",
+ "x-ms-mutability": [
+ "read"
+ ],
+ "readOnly": true,
+ "description": "Web chat control embed code"
+ },
+ "sites": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/WebChatSite"
+ },
+ "description": "The list of Web Chat sites"
+ }
+ },
+ "description": "The parameters to provide for the Web Chat channel."
+ },
+ "DirectLineChannel": {
+ "type": "object",
+ "x-ms-discriminator-value": "DirectLineChannel",
+ "description": "Direct Line channel definition",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Channel"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/DirectLineChannelProperties",
+ "description": "The set of properties specific to Direct Line channel resource"
+ }
+ }
+ },
+ "DirectLineChannelProperties": {
+ "properties": {
+ "sites": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DirectLineSite"
+ },
+ "description": "The list of Direct Line sites"
+ }
+ },
+ "description": "The parameters to provide for the Direct Line channel."
+ },
+ "TelegramChannel": {
+ "type": "object",
+ "description": "Telegram channel definition",
+ "x-ms-discriminator-value": "TelegramChannel",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Channel"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/TelegramChannelProperties",
+ "description": "The set of properties specific to Telegram channel resource"
+ }
+ }
+ },
+ "TelegramChannelProperties": {
+ "properties": {
+ "accessToken": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "The Telegram access token. Value only returned through POST to the action Channel List API, otherwise empty."
+ },
+ "isValidated": {
+ "type": "boolean",
+ "description": "Whether this channel is validated for the bot"
+ },
+ "isEnabled": {
+ "type": "boolean",
+ "description": "Whether this channel is enabled for the bot"
+ }
+ },
+ "description": "The parameters to provide for the Telegram channel.",
+ "required": [
+ "isEnabled"
+ ]
+ },
+ "SmsChannel": {
+ "type": "object",
+ "description": "Sms channel definition",
+ "x-ms-discriminator-value": "SmsChannel",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Channel"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/SmsChannelProperties",
+ "description": "The set of properties specific to Sms channel resource"
+ }
+ }
+ },
+ "SmsChannelProperties": {
+ "properties": {
+ "phone": {
+ "type": "string",
+ "description": "The Sms phone"
+ },
+ "accountSID": {
+ "type": "string",
+ "description": "The Sms account SID. Value only returned through POST to the action Channel List API, otherwise empty."
+ },
+ "authToken": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "The Sms auth token. Value only returned through POST to the action Channel List API, otherwise empty."
+ },
+ "isValidated": {
+ "type": "boolean",
+ "description": "Whether this channel is validated for the bot"
+ },
+ "isEnabled": {
+ "type": "boolean",
+ "description": "Whether this channel is enabled for the bot"
+ }
+ },
+ "description": "The parameters to provide for the Sms channel.",
+ "required": [
+ "phone",
+ "accountSID",
+ "isEnabled"
+ ]
+ },
+ "SlackChannel": {
+ "type": "object",
+ "description": "Slack channel definition",
+ "x-ms-discriminator-value": "SlackChannel",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Channel"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/SlackChannelProperties",
+ "description": "The set of properties specific to Slack channel resource"
+ }
+ }
+ },
+ "SlackChannelProperties": {
+ "properties": {
+ "clientId": {
+ "type": "string",
+ "description": "The Slack client id"
+ },
+ "clientSecret": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "The Slack client secret. Value only returned through POST to the action Channel List API, otherwise empty."
+ },
+ "verificationToken": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "The Slack verification token. Value only returned through POST to the action Channel List API, otherwise empty."
+ },
+ "landingPageUrl": {
+ "type": "string",
+ "description": "The Slack landing page Url"
+ },
+ "redirectAction": {
+ "type": "string",
+ "description": "The Slack redirect action",
+ "readOnly": true
+ },
+ "lastSubmissionId": {
+ "type": "string",
+ "description": "The Sms auth token",
+ "readOnly": true
+ },
+ "registerBeforeOAuthFlow": {
+ "type": "boolean",
+ "description": "Whether to register the settings before OAuth validation is performed. Recommended to True.",
+ "readOnly": true
+ },
+ "isValidated": {
+ "type": "boolean",
+ "description": "Whether this channel is validated for the bot",
+ "readOnly": true
+ },
+ "signingSecret": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "The Slack signing secret."
+ },
+ "isEnabled": {
+ "type": "boolean",
+ "description": "Whether this channel is enabled for the bot"
+ }
+ },
+ "description": "The parameters to provide for the Slack channel.",
+ "required": [
+ "isEnabled"
+ ]
+ },
+ "LineChannel": {
+ "type": "object",
+ "description": "Line channel definition",
+ "x-ms-discriminator-value": "LineChannel",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Channel"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/LineChannelProperties",
+ "description": "The set of properties specific to line channel resource"
+ }
+ }
+ },
+ "LineChannelProperties": {
+ "properties": {
+ "lineRegistrations": {
+ "type": "array",
+ "description": "The list of line channel registrations",
+ "items": {
+ "$ref": "#/definitions/LineRegistration"
+ }
+ },
+ "callbackUrl": {
+ "type": "string",
+ "description": "Callback Url to enter in line registration.",
+ "readOnly": true
+ },
+ "isValidated": {
+ "type": "boolean",
+ "description": "Whether this channel is validated for the bot",
+ "readOnly": true
+ }
+ },
+ "description": "The parameters to provide for the Line channel.",
+ "required": [
+ "lineRegistrations"
+ ]
+ },
+ "LineRegistration": {
+ "properties": {
+ "generatedId": {
+ "x-ms-mutability": [
+ "read"
+ ],
+ "type": "string",
+ "description": "Id generated for the line channel registration",
+ "readOnly": true
+ },
+ "channelSecret": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "Secret for the line channel registration"
+ },
+ "channelAccessToken": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "Access token for the line channel registration"
+ }
+ },
+ "description": "The properties corresponding to a line channel registration"
+ },
+ "DirectLineSpeechChannel": {
+ "type": "object",
+ "description": "DirectLine Speech channel definition",
+ "x-ms-discriminator-value": "DirectLineSpeechChannel",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Channel"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/DirectLineSpeechChannelProperties",
+ "description": "The set of properties specific to DirectLine Speech channel resource"
+ }
+ }
+ },
+ "DirectLineSpeechChannelProperties": {
+ "properties": {
+ "cognitiveServiceRegion": {
+ "type": "string",
+ "description": "The cognitive service region with this channel registration."
+ },
+ "cognitiveServiceSubscriptionKey": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "The cognitive service subscription key to use with this channel registration."
+ },
+ "isEnabled": {
+ "type": "boolean",
+ "description": "Whether this channel is enabled or not."
+ },
+ "customVoiceDeploymentId": {
+ "type": "string",
+ "description": "Custom speech model id (optional)."
+ },
+ "customSpeechModelId": {
+ "type": "string",
+ "description": "Custom voice deployment id (optional)."
+ },
+ "isDefaultBotForCogSvcAccount": {
+ "type": "boolean",
+ "description": "Make this a default bot for chosen cognitive service account."
+ }
+ },
+ "description": "The parameters to provide for the DirectLine Speech channel.",
+ "required": [
+ "cognitiveServiceRegion",
+ "cognitiveServiceSubscriptionKey"
+ ]
+ },
+ "ChannelResponseList": {
+ "properties": {
+ "nextLink": {
+ "description": "The link used to get the next page of bot service channel resources.",
+ "type": "string"
+ },
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BotChannel"
+ },
+ "description": "Gets the list of bot service channel results and their properties."
+ }
+ },
+ "description": "The list of bot service channel operation response."
+ },
+ "WebChatSite": {
+ "properties": {
+ "siteId": {
+ "type": "string",
+ "description": "Site Id",
+ "x-ms-mutability": [
+ "read"
+ ],
+ "readOnly": true
+ },
+ "siteName": {
+ "type": "string",
+ "description": "Site name"
+ },
+ "key": {
+ "type": "string",
+ "description": "Primary key. Value only returned through POST to the action Channel List API, otherwise empty.",
+ "x-ms-mutability": [
+ "read"
+ ],
+ "readOnly": true
+ },
+ "key2": {
+ "type": "string",
+ "description": "Secondary key. Value only returned through POST to the action Channel List API, otherwise empty.",
+ "x-ms-mutability": [
+ "read"
+ ],
+ "readOnly": true
+ },
+ "isEnabled": {
+ "type": "boolean",
+ "description": "Whether this site is enabled for DirectLine channel"
+ },
+ "enablePreview": {
+ "type": "boolean",
+ "description": "Whether this site is enabled for preview versions of Webchat"
+ }
+ },
+ "required": [
+ "siteName",
+ "isEnabled",
+ "enablePreview"
+ ],
+ "description": "A site for the Webchat channel"
+ },
+ "DirectLineSite": {
+ "properties": {
+ "siteId": {
+ "x-ms-mutability": [
+ "read"
+ ],
+ "type": "string",
+ "description": "Site Id",
+ "readOnly": true
+ },
+ "siteName": {
+ "type": "string",
+ "description": "Site name"
+ },
+ "key": {
+ "x-ms-mutability": [
+ "read"
+ ],
+ "type": "string",
+ "description": "Primary key. Value only returned through POST to the action Channel List API, otherwise empty.",
+ "readOnly": true
+ },
+ "key2": {
+ "x-ms-mutability": [
+ "read"
+ ],
+ "type": "string",
+ "description": "Secondary key. Value only returned through POST to the action Channel List API, otherwise empty.",
+ "readOnly": true
+ },
+ "isEnabled": {
+ "type": "boolean",
+ "description": "Whether this site is enabled for DirectLine channel."
+ },
+ "isV1Enabled": {
+ "type": "boolean",
+ "description": "Whether this site is enabled for Bot Framework V1 protocol."
+ },
+ "isV3Enabled": {
+ "type": "boolean",
+ "description": "Whether this site is enabled for Bot Framework V1 protocol."
+ },
+ "isSecureSiteEnabled": {
+ "type": "boolean",
+ "description": "Whether this site is enabled for authentication with Bot Framework."
+ },
+ "trustedOrigins": {
+ "type": "array",
+ "description": "List of Trusted Origin URLs for this site. This field is applicable only if isSecureSiteEnabled is True.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "A site for the Direct Line channel",
+ "required": [
+ "isV1Enabled",
+ "isV3Enabled",
+ "isEnabled",
+ "siteName"
+ ]
+ },
+ "SiteInfo": {
+ "properties": {
+ "siteName": {
+ "type": "string",
+ "description": "The site name"
+ },
+ "key": {
+ "type": "string",
+ "description": "Determines which key is to be regenerated",
+ "enum": [
+ "key1",
+ "key2"
+ ],
+ "x-ms-enum": {
+ "name": "key",
+ "modelAsString": false
+ }
+ }
+ },
+ "description": "Site information for WebChat or DirectLine Channels to identify which site to regenerate keys for.",
+ "type": "object",
+ "required": [
+ "siteName",
+ "key"
+ ]
+ },
+ "ConnectionItemName": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Connection Item name that has been added in the API",
+ "readOnly": true
+ }
+ },
+ "description": "The display name of a connection Item Setting registered with the Bot"
+ },
+ "ConnectionSettingParameter": {
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "Key for the Connection Setting Parameter."
+ },
+ "value": {
+ "type": "string",
+ "description": "Value associated with the Connection Setting Parameter."
+ }
+ },
+ "description": "Extra Parameter in a Connection Setting Properties to indicate service provider specific properties"
+ },
+ "ConnectionSettingProperties": {
+ "properties": {
+ "clientId": {
+ "type": "string",
+ "description": "Client Id associated with the Connection Setting."
+ },
+ "settingId": {
+ "type": "string",
+ "description": "Setting Id set by the service for the Connection Setting.",
+ "readOnly": true
+ },
+ "clientSecret": {
+ "x-ms-secret": true,
+ "type": "string",
+ "description": "Client Secret associated with the Connection Setting"
+ },
+ "scopes": {
+ "type": "string",
+ "description": "Scopes associated with the Connection Setting"
+ },
+ "serviceProviderId": {
+ "type": "string",
+ "description": "Service Provider Id associated with the Connection Setting"
+ },
+ "serviceProviderDisplayName": {
+ "type": "string",
+ "description": "Service Provider Display Name associated with the Connection Setting"
+ },
+ "parameters": {
+ "type": "array",
+ "description": "Service Provider Parameters associated with the Connection Setting",
+ "items": {
+ "$ref": "#/definitions/ConnectionSettingParameter"
+ }
+ }
+ },
+ "description": "Properties for a Connection Setting Item"
+ },
+ "ConnectionSetting": {
+ "type": "object",
+ "description": "Bot channel resource definition",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ConnectionSettingProperties",
+ "description": "The set of properties specific to bot channel resource"
+ }
+ }
+ },
+ "ConnectionSettingResponseList": {
+ "properties": {
+ "nextLink": {
+ "description": "The link used to get the next page of bot service connection setting resources.",
+ "type": "string"
+ },
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ConnectionSetting"
+ },
+ "description": "Gets the list of bot service connection settings and their properties."
+ }
+ },
+ "description": "The list of bot service connection settings response."
+ },
+ "ServiceProviderResponseList": {
+ "properties": {
+ "nextLink": {
+ "description": "The link used to get the next page of bot service providers.",
+ "type": "string"
+ },
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceProvider"
+ },
+ "description": "Gets the list of bot service providers and their properties."
+ }
+ },
+ "description": "The list of bot service providers response."
+ },
+ "ServiceProviderParameter": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the Service Provider",
+ "readOnly": true
+ },
+ "type": {
+ "type": "string",
+ "description": "Type of the Service Provider",
+ "readOnly": true
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Display Name of the Service Provider",
+ "readOnly": true
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the Service Provider",
+ "readOnly": true
+ },
+ "helpUrl": {
+ "type": "string",
+ "description": "Help Url for the Service Provider",
+ "readOnly": true
+ },
+ "default": {
+ "type": "string",
+ "description": "Default Name for the Service Provider",
+ "readOnly": true
+ }
+ },
+ "description": "Extra Parameters specific to each Service Provider"
+ },
+ "ServiceProviderProperties": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Id for Service Provider",
+ "readOnly": true
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Display Name of the Service Provider",
+ "readOnly": true
+ },
+ "serviceProviderName": {
+ "type": "string",
+ "description": "Display Name of the Service Provider",
+ "readOnly": true
+ },
+ "devPortalUrl": {
+ "type": "string",
+ "description": "Display Name of the Service Provider",
+ "readOnly": true
+ },
+ "iconUrl": {
+ "type": "string",
+ "description": "Display Name of the Service Provider",
+ "readOnly": true
+ },
+ "parameters": {
+ "description": "The list of parameters for the Service Provider",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceProviderParameter"
+ }
+ }
+ },
+ "description": "The Object used to describe a Service Provider supported by Bot Service"
+ },
+ "ServiceProvider": {
+ "type": "object",
+ "description": "Service Provider Definition",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ServiceProviderProperties",
+ "description": "The Properties of a Service Provider Object"
+ }
+ }
+ },
+ "Error": {
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/ErrorBody",
+ "description": "The error body."
+ }
+ },
+ "description": "Bot Service error object."
+ },
+ "ErrorBody": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "error code"
+ },
+ "message": {
+ "type": "string",
+ "description": "error message"
+ }
+ },
+ "description": "Bot Service error body.",
+ "required": [
+ "code",
+ "message"
+ ]
+ },
+ "OperationEntityListResult": {
+ "description": "The list of bot service operation response.",
+ "type": "object",
+ "properties": {
+ "nextLink": {
+ "description": "The link used to get the next page of operations.",
+ "type": "string"
+ },
+ "value": {
+ "description": "The list of operations.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationEntity"
+ }
+ }
+ }
+ },
+ "OperationEntity": {
+ "description": "The operations supported by Bot Service Management.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}.",
+ "type": "string"
+ },
+ "display": {
+ "$ref": "#/definitions/OperationDisplayInfo",
+ "description": "The operation supported by Bot Service Management."
+ },
+ "origin": {
+ "description": "The origin of the operation.",
+ "type": "string"
+ },
+ "properties": {
+ "description": "Additional properties.",
+ "type": "object"
+ }
+ }
+ },
+ "OperationDisplayInfo": {
+ "description": "The operation supported by Bot Service Management.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "description": "The description of the operation.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "The action that users can perform, based on their permission level.",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Service provider: Microsoft Bot Service.",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource on which the operation is performed.",
+ "type": "string"
+ }
+ }
+ },
+ "CheckNameAvailabilityRequestBody": {
+ "description": "The request body for a request to Bot Service Management to check availability of a bot name.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "the name of the bot for which availability needs to be checked.",
+ "type": "string"
+ },
+ "type": {
+ "description": "the type of the bot for which availability needs to be checked",
+ "type": "string"
+ }
+ }
+ },
+ "CheckNameAvailabilityResponseBody": {
+ "description": "The response body returned for a request to Bot Service Management to check availability of a bot name.",
+ "type": "object",
+ "properties": {
+ "valid": {
+ "description": "indicates if the bot name is valid.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "additional message from the bot management api showing why a bot name is not available",
+ "type": "string"
+ }
+ }
+ },
+ "HostSettingsResponse": {
+ "description": "The response body returned for a request to Bot Service Management to check per subscription hostSettings",
+ "type": "object",
+ "properties": {
+ "OAuthUrl": {
+ "description": "For in-conversation bot user authentication",
+ "type": "string"
+ },
+ "ToBotFromChannelOpenIdMetadataUrl": {
+ "description": "For verifying incoming tokens from the channels",
+ "type": "string"
+ },
+ "ToBotFromChannelTokenIssuer": {
+ "description": "For verifying incoming tokens from the channels",
+ "type": "string"
+ },
+ "ToBotFromEmulatorOpenIdMetadataUrl": {
+ "description": "For verifying incoming tokens from bot emulator",
+ "type": "string"
+ },
+ "ToChannelFromBotLoginUrl": {
+ "description": "For getting access token to channels from bot host",
+ "type": "string"
+ },
+ "ToChannelFromBotOAuthScope": {
+ "description": "For getting access token to channels from bot host",
+ "type": "string"
+ },
+ "ValidateAuthority": {
+ "description": "Per cloud OAuth setting on whether authority is validated",
+ "type": "boolean"
+ },
+ "BotOpenIdMetadata": {
+ "description": "Same as toBotFromChannelOpenIdMetadataUrl, used by SDK < v4.12",
+ "type": "string"
+ }
+ }
+ },
+ "OperationResultsDescription": {
+ "description": "The properties indicating the operation result of an operation on a service.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The ID of the operation returned.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the operation result.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "status": {
+ "description": "The status of the operation being performed.",
+ "enum": [
+ "Canceled",
+ "Succeeded",
+ "Failed",
+ "Requested",
+ "Running"
+ ],
+ "readOnly": true,
+ "type": "string",
+ "x-ms-enum": {
+ "name": "OperationResultStatus",
+ "modelAsString": true
+ }
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "The time that the operation was started.",
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "resourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "x-ms-parameter-location": "method",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "maxLength": 64,
+ "minLength": 2,
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]*$",
+ "description": "The name of the Bot resource group in the user subscription."
+ },
+ "resourceNameParameter": {
+ "name": "resourceName",
+ "x-ms-parameter-location": "method",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "maxLength": 64,
+ "minLength": 2,
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]*$",
+ "description": "The name of the Bot resource."
+ },
+ "subscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "Azure Subscription ID.",
+ "required": true,
+ "type": "string"
+ },
+ "apiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Version of the API to be used with the client request."
+ },
+ "operationResultIdParameter": {
+ "name": "operationResultId",
+ "in": "path",
+ "description": "The ID of the operation result to get.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "type": "string"
+ },
+ "connectionNameParameter": {
+ "name": "connectionName",
+ "x-ms-parameter-location": "method",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "maxLength": 64,
+ "minLength": 2,
+ "pattern": "^[a-zA-Z0-9][\\sa-zA-Z0-9_.-]*$",
+ "description": "The name of the Bot Service Connection Setting resource."
+ },
+ "channelNameParameter": {
+ "name": "channelName",
+ "x-ms-parameter-location": "method",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "AlexaChannel",
+ "FacebookChannel",
+ "EmailChannel",
+ "KikChannel",
+ "TelegramChannel",
+ "SlackChannel",
+ "MsTeamsChannel",
+ "SkypeChannel",
+ "WebChatChannel",
+ "DirectLineChannel",
+ "SmsChannel",
+ "LineChannel",
+ "DirectLineSpeechChannel"
+ ],
+ "x-ms-enum": {
+ "name": "channelName",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "AlexaChannel"
+ },
+ {
+ "value": "FacebookChannel"
+ },
+ {
+ "value": "EmailChannel"
+ },
+ {
+ "value": "KikChannel"
+ },
+ {
+ "value": "TelegramChannel"
+ },
+ {
+ "value": "SlackChannel"
+ },
+ {
+ "value": "MsTeamsChannel"
+ },
+ {
+ "value": "SkypeChannel"
+ },
+ {
+ "value": "WebChatChannel"
+ },
+ {
+ "value": "DirectLineChannel"
+ },
+ {
+ "value": "SmsChannel"
+ },
+ {
+ "value": "LineChannel"
+ },
+ {
+ "value": "DirectLineSpeechChannel"
+ }
+ ]
+ },
+ "description": "The name of the Channel resource."
+ },
+ "regenerateKeyschannelNameParameter": {
+ "name": "channelName",
+ "x-ms-parameter-location": "method",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "WebChatChannel",
+ "DirectLineChannel"
+ ],
+ "x-ms-enum": {
+ "name": "regenerateKeysChannelName",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "WebChatChannel"
+ },
+ {
+ "value": "DirectLineChannel"
+ }
+ ]
+ },
+ "description": "The name of the Channel resource for which keys are to be regenerated."
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/CheckNameAvailability.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/CheckNameAvailability.json
new file mode 100644
index 000000000000..1cfee4911fe4
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/CheckNameAvailability.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "api-version": "2021-05-01-preview",
+ "parameters": {
+ "name": "testbotname",
+ "type": "string"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "valid": true,
+ "message": "custom message from server"
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/CreateBot.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/CreateBot.json
new file mode 100644
index 000000000000..459eed1e7555
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/CreateBot.json
@@ -0,0 +1,117 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "parameters": {
+ "location": "West US",
+ "sku": {
+ "name": "S1"
+ },
+ "etag": "etag1",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "kind": "sdk",
+ "properties": {
+ "description": "The description of the bot",
+ "developerAppInsightKey": "appinsightskey",
+ "developerAppInsightsApiKey": "appinsightsapikey",
+ "developerAppInsightsApplicationId": "appinsightsappid",
+ "displayName": "The Name of the bot",
+ "endpoint": "http://mybot.coffee",
+ "iconUrl": "http://myicon",
+ "luisAppIds": [
+ "luisappid1",
+ "luisappid2"
+ ],
+ "luisKey": "luiskey",
+ "msaAppId": "exampleappid",
+ "isCmekEnabled": true,
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "West US",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "name": "samplebotname",
+ "type": "Microsoft.BotService/botServices",
+ "id": "/subscriptions/subscription-id/resourceGroups/OneResourceGroupName/providers/Microsoft.BotService/botServices/samplebotname",
+ "kind": "sdk",
+ "etag": "etag1",
+ "properties": {
+ "description": "The description of the bot",
+ "developerAppInsightKey": "appinsightskey",
+ "developerAppInsightsApplicationId": "appinsightsappid",
+ "displayName": "The Name of the bot",
+ "endpoint": "http://mybot.coffee",
+ "endpointVersion": "version",
+ "iconUrl": "http://myicon",
+ "luisAppIds": [
+ "luisappid1",
+ "luisappid2"
+ ],
+ "msaAppId": "msaappid",
+ "configuredChannels": [
+ "facebook",
+ "groupme"
+ ],
+ "enabledChannels": [
+ "facebook"
+ ],
+ "isCmekEnabled": true,
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "West US",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "name": "samplebotname",
+ "type": "Microsoft.BotService/botServices",
+ "id": "/subscriptions/subscription-id/resourceGroups/OneResourceGroupName/providers/Microsoft.BotService/botServices/samplebotname",
+ "kind": "sdk",
+ "properties": {
+ "description": "The description of the bot",
+ "developerAppInsightsApplicationId": "appinsightsappid",
+ "displayName": "The Name of the bot",
+ "endpoint": "http://mybot.coffee",
+ "endpointVersion": "version",
+ "iconUrl": "http://myicon",
+ "luisAppIds": [
+ "luisappid1",
+ "luisappid2"
+ ],
+ "msaAppId": "msaappid",
+ "configuredChannels": [
+ "facebook",
+ "groupme"
+ ],
+ "enabledChannels": [
+ "facebook"
+ ],
+ "isCmekEnabled": true,
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeleteBot.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeleteBot.json
new file mode 100644
index 000000000000..b73a1f6633c8
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeleteBot.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeleteChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeleteChannel.json
new file mode 100644
index 000000000000..7f25eb68fb75
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeleteChannel.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "EmailChannel"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeleteConnection.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeleteConnection.json
new file mode 100644
index 000000000000..284ba06b13ee
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeleteConnection.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "connectionName": "sampleConnection"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeleteDirectLineSpeechChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeleteDirectLineSpeechChannel.json
new file mode 100644
index 000000000000..3b5adfa79c50
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeleteDirectLineSpeechChannel.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "DirectLineSpeechChannel"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeletePrivateEndpointConnection.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeletePrivateEndpointConnection.json
new file mode 100644
index 000000000000..e17e3518d111
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DeletePrivateEndpointConnection.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res6977",
+ "resourceName": "sto2527",
+ "privateEndpointConnectionName": "{privateEndpointConnectionName}",
+ "api-version": "2021-05-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DirectlineRegenerateKeys.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DirectlineRegenerateKeys.json
new file mode 100644
index 000000000000..1e173b3ef60c
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/DirectlineRegenerateKeys.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "DirectLineChannel",
+ "parameters": {
+ "siteName": "testSiteName",
+ "key": "key1"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "DirectLineChannel",
+ "properties": {
+ "sites": [
+ {
+ "siteId": "abcd",
+ "siteName": "Default Site",
+ "key": "key1",
+ "key2": "key2",
+ "isEnabled": true,
+ "isV1Enabled": true,
+ "isV3Enabled": true
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetAlexaChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetAlexaChannel.json
new file mode 100644
index 000000000000..ec1622dbcb44
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetAlexaChannel.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "AlexaChannel"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "AlexaChannel",
+ "properties": {
+ "alexaSkillId": "alexa skill id",
+ "urlFragment": "XUrlFragmentX",
+ "serviceEndpointUri": "https://domain/XUrlFragmentX/botId",
+ "isEnabled": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetBot.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetBot.json
new file mode 100644
index 000000000000..478fbb23654d
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetBot.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "West US",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "name": "samplebotname",
+ "type": "Microsoft.BotService/botServices",
+ "id": "/subscriptions/subscription-id/resourceGroups/OneResourceGroupName/providers/Microsoft.BotService/botServices/samplebotname",
+ "kind": "sdk",
+ "etag": "etag1",
+ "properties": {
+ "description": "The description of the bot",
+ "developerAppInsightKey": "appinsightskey",
+ "developerAppInsightsApplicationId": "appinsightsappid",
+ "displayName": "The Name of the bot",
+ "endpoint": "http://mybot.coffee",
+ "endpointVersion": "version",
+ "iconUrl": "http://myicon",
+ "luisAppIds": [
+ "luisappid1",
+ "luisappid2"
+ ],
+ "msaAppId": "msaappid",
+ "configuredChannels": [
+ "facebook",
+ "groupme"
+ ],
+ "enabledChannels": [
+ "facebook"
+ ],
+ "isCmekEnabled": true,
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetChannel.json
new file mode 100644
index 000000000000..0b35ac00f005
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetChannel.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "EmailChannel"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "EmailChannel",
+ "properties": {
+ "emailAddress": "a@b.com",
+ "password": "pwd",
+ "isEnabled": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetConnection.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetConnection.json
new file mode 100644
index 000000000000..1616b5ec5080
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetConnection.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "connectionName": "sampleConnection"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "id": "/subscriptions/subscription-id/resourceGroups/OneResourceGroupName/providers/Microsoft.BotService/botServices/samplebotname/connections/sampleConnection",
+ "etag": "etag1",
+ "name": "sampleConnection",
+ "properties": {
+ "clientId": "sampleclientid",
+ "clientSecret": null,
+ "scopes": "samplescope",
+ "serviceProviderId": "serviceproviderid",
+ "serviceProviderDisplayName": "serviceProviderDisplayName",
+ "parameters": [
+ {
+ "key": "key1",
+ "value": "value1"
+ },
+ {
+ "key": "key2",
+ "value": "value2"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetDirectLineSpeechChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetDirectLineSpeechChannel.json
new file mode 100644
index 000000000000..9d436d21c838
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetDirectLineSpeechChannel.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "DirectLineSpeechChannel"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "DirectLineSpeechChannel",
+ "properties": {
+ "cognitiveServiceRegion": "Cognitive service region",
+ "customVoiceDeploymentId": "Custom voice deployment ID",
+ "customSpeechModelId": "Custom speech model ID",
+ "isDefaultBotForCogSvcAccount": true,
+ "isEnabled": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetHostSettings.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetHostSettings.json
new file mode 100644
index 000000000000..0204d7e272a2
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetHostSettings.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "api-version": "2021-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "BotOpenIdMetadata": "https://login.botframework.com/v1/.well-known/openidconfiguration",
+ "OAuthUrl": "https://token.botframework.com/",
+ "ToBotFromChannelOpenIdMetadataUrl": "https://login.botframework.com/v1/.well-known/openidconfiguration",
+ "ToBotFromChannelTokenIssuer": "https://api.botframework.com",
+ "ToBotFromEmulatorOpenIdMetadataUrl": "https://login.microsoftonline.com/botframework.com/v2.0/.well-known/openid-configuration",
+ "ToChannelFromBotLoginUrl": "https://login.microsoftonline.com/botframework.com",
+ "ToChannelFromBotOAuthScope": "https://api.botframework.com",
+ "ValidateAuthority": true
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetLineChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetLineChannel.json
new file mode 100644
index 000000000000..65daaf9a0f18
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetLineChannel.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "LineChannel"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "LineChannel",
+ "properties": {
+ "lineRegistrations": [
+ {
+ "generatedId": "id",
+ "channelSecret": null,
+ "channelAccessToken": null
+ }
+ ],
+ "callbackUrl": "http://callbackUrl",
+ "isValidated": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetOperations.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetOperations.json
new file mode 100644
index 000000000000..1d10c2634c29
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetOperations.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "api-version": "2021-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.BotService/botService/read",
+ "display": {
+ "provider": "Microsoft Bot Service",
+ "resource": "Bot Service",
+ "operation": "Read Bot Service",
+ "description": "Read Bot Service"
+ },
+ "origin": "user,system"
+ },
+ {
+ "name": "Microsoft.BotService/botService/write",
+ "display": {
+ "provider": "Microsoft Bot Service",
+ "resource": "Bot Service",
+ "operation": "Write Bot Service",
+ "description": "Writes Bot Service"
+ },
+ "origin": "user,system"
+ },
+ {
+ "name": "Microsoft.BotService/botService/delete",
+ "display": {
+ "provider": "Microsoft Bot Service",
+ "resource": "Bot Service",
+ "operation": "Delete Bot Service",
+ "description": "Deletes Bot Service"
+ },
+ "origin": "user,system"
+ },
+ {
+ "name": "Microsoft.BotService/botService/botName/read",
+ "display": {
+ "provider": "Microsoft Bot Service",
+ "resource": "Bot Service name availability",
+ "operation": "Check bot name availability",
+ "description": "Check bot name availability"
+ },
+ "origin": "user,system"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetPrivateEndpointConnection.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetPrivateEndpointConnection.json
new file mode 100644
index 000000000000..99cfb5068631
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/GetPrivateEndpointConnection.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res6977",
+ "resourceName": "sto2527",
+ "privateEndpointConnectionName": "{privateEndpointConnectionName}",
+ "api-version": "2021-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.BotService/botServices/sto288/privateEndpointConnections/{privateEndpointConnectionName}",
+ "name": "{privateEndpointConnectionName}",
+ "type": "Microsoft.BotService/botServices/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListBotsByResourceGroup.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListBotsByResourceGroup.json
new file mode 100644
index 000000000000..07a253f7c039
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListBotsByResourceGroup.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "location": "West US",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "name": "samplebotname",
+ "type": "Microsoft.BotService/botServices",
+ "id": "/subscriptions/subscription-id/resourceGroups/OneResourceGroupName/providers/Microsoft.BotService/botServices",
+ "etag": "etag1",
+ "kind": "sdk",
+ "properties": {
+ "description": "The description of the bot",
+ "developerAppInsightKey": "appinsightskey",
+ "developerAppInsightsApplicationId": "appinsightsappid",
+ "displayName": "The Name of the bot",
+ "endpoint": "http://mybot.coffee",
+ "endpointVersion": "version",
+ "iconUrl": "http://myicon",
+ "luisAppIds": [
+ "luisappid1",
+ "luisappid2"
+ ],
+ "msaAppId": "msaappid",
+ "configuredChannels": [
+ "facebook",
+ "groupme"
+ ],
+ "enabledChannels": [
+ "facebook"
+ ],
+ "isCmekEnabled": true,
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListBotsBySubscription.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListBotsBySubscription.json
new file mode 100644
index 000000000000..8988345f5d8c
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListBotsBySubscription.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "api-version": "2021-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "location": "West US",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "name": "samplebotname",
+ "type": "Microsoft.BotService/botServices",
+ "id": "/subscriptions/subscription-id/providers/Microsoft.BotService/botServices",
+ "kind": "sdk",
+ "etag": "etag1",
+ "properties": {
+ "description": "The description of the bot",
+ "developerAppInsightKey": "appinsightskey",
+ "developerAppInsightsApplicationId": "appinsightsappid",
+ "displayName": "The Name of the bot",
+ "endpoint": "http://mybot.coffee",
+ "endpointVersion": "version",
+ "iconUrl": "http://myicon",
+ "luisAppIds": [
+ "luisappid1",
+ "luisappid2"
+ ],
+ "msaAppId": "msaappid",
+ "configuredChannels": [
+ "facebook",
+ "groupme"
+ ],
+ "enabledChannels": [
+ "facebook"
+ ],
+ "isCmekEnabled": true,
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListChannel.json
new file mode 100644
index 000000000000..32ac3c958a19
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListChannel.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "EmailChannel",
+ "parameters": {
+ "location": "global"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "EmailChannel",
+ "properties": {
+ "emailAddress": "a@b.com",
+ "password": "pwd",
+ "isEnabled": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListChannelsByBotService.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListChannelsByBotService.json
new file mode 100644
index 000000000000..3e3052172715
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListChannelsByBotService.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "resourceName": "samplebotname",
+ "api-version": "2021-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "location": "global",
+ "properties": {
+ "channelName": "EmailChannel",
+ "properties": {
+ "emailAddress": "a@b.com",
+ "password": "pwd",
+ "isEnabled": true
+ }
+ }
+ },
+ {
+ "location": "global",
+ "properties": {
+ "channelName": "FacebookChannel",
+ "properties": {
+ "verifyToken": "othertoken",
+ "appId": "id",
+ "appSecret": null,
+ "callbackUrl": "appid",
+ "isEnabled": true,
+ "pages": [
+ {
+ "accessToken": null,
+ "id": "id"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListConnectionsByBotService.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListConnectionsByBotService.json
new file mode 100644
index 000000000000..afd346cba1d5
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListConnectionsByBotService.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "sampleConnection",
+ "properties": {
+ "clientId": "sampleclientid",
+ "clientSecret": null,
+ "scopes": "samplescope",
+ "serviceProviderId": "serviceproviderid",
+ "parameters": [
+ {
+ "key": "key1",
+ "value": "value1"
+ },
+ {
+ "key": "key2",
+ "value": "value2"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListPrivateEndpointConnections.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListPrivateEndpointConnections.json
new file mode 100644
index 000000000000..7408d6fa87c6
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListPrivateEndpointConnections.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res6977",
+ "resourceName": "sto2527",
+ "api-version": "2021-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.BotService/botServices/sto288/privateEndpointConnections/{privateEndpointConnectionName}",
+ "name": "{privateEndpointConnectionName}",
+ "type": "Microsoft.BotService/botServices/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionRequired": "None"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.BotService/botServices/sto288/privateEndpointConnections/{privateEndpointConnectionName}",
+ "name": "{privateEndpointConnectionName}",
+ "type": "Microsoft.BotService/botServices/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest02"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionRequired": "None"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListPrivateLinkResources.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListPrivateLinkResources.json
new file mode 100644
index 000000000000..cc9443d9f485
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListPrivateLinkResources.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res6977",
+ "resourceName": "sto2527",
+ "api-version": "2021-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.BotService/botServices/sto2527/privateLinkResources/resource1",
+ "name": "resource1",
+ "type": "Microsoft.BotService/botServices/privateLinkResources",
+ "properties": {
+ "groupId": "bot",
+ "requiredMembers": [
+ "bot"
+ ],
+ "requiredZoneNames": [
+ "privatelink.botframework.com"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListServiceProviders.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListServiceProviders.json
new file mode 100644
index 000000000000..44a3a9842411
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/ListServiceProviders.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "api-version": "2021-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "id": "sampleServiceProviderId",
+ "displayName": "sample service provider display name",
+ "serviceProviderName": "sampleServiceProvider",
+ "devPortalUrl": "sampleDevPortalUrl",
+ "iconUrl": "sampleIconUrl",
+ "parameters": [
+ {
+ "name": "sampleParameterName",
+ "type": "sampleParameterType",
+ "displayName": "sampleDisplayName",
+ "description": "sampleDescription",
+ "helpUrl": "sampleHelpUrl",
+ "default": "sampleDefaultValue"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/OperationResultsGet.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/OperationResultsGet.json
new file mode 100644
index 000000000000..40d3477e5bd0
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/OperationResultsGet.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2021-05-01-preview",
+ "subscriptionId": "subid",
+ "operationResultId": "exampleid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/providers/Microsoft.BotService/locations/westus/operationresults/exampleid",
+ "name": "servicename",
+ "status": "Requested",
+ "startTime": "2019-01-21T06:03:30.2716301Z"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutAlexaChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutAlexaChannel.json
new file mode 100644
index 000000000000..42e777326e0a
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutAlexaChannel.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "AlexaChannel",
+ "parameters": {
+ "location": "global",
+ "properties": {
+ "channelName": "AlexaChannel",
+ "properties": {
+ "alexaSkillId": "XAlexaSkillIdX",
+ "isEnabled": true
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "AlexaChannel",
+ "properties": {
+ "alexaSkillId": "alexa skill id",
+ "urlFragment": "XUrlFragmentX",
+ "serviceEndpointUri": "https://domain/XUrlFragmentX/botId",
+ "isEnabled": true
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "AlexaChannel",
+ "properties": {
+ "alexaSkillId": "alexa skill id",
+ "urlFragment": "XUrlFragmentX",
+ "serviceEndpointUri": "https://domain/XUrlFragmentX/botId",
+ "isEnabled": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutChannel.json
new file mode 100644
index 000000000000..01a985afdab0
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutChannel.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "EmailChannel",
+ "parameters": {
+ "location": "global",
+ "properties": {
+ "channelName": "EmailChannel",
+ "properties": {
+ "emailAddress": "a@b.com",
+ "password": "pwd",
+ "isEnabled": true
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "EmailChannel",
+ "properties": {
+ "emailAddress": "a@b.com",
+ "password": "pwd",
+ "isEnabled": true
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "EmailChannel",
+ "properties": {
+ "emailAddress": "a@b.com",
+ "password": "pwd",
+ "isEnabled": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutConnection.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutConnection.json
new file mode 100644
index 000000000000..2704264ef06a
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutConnection.json
@@ -0,0 +1,81 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "connectionName": "sampleConnection",
+ "parameters": {
+ "location": "West US",
+ "etag": "etag1",
+ "properties": {
+ "clientId": "sampleclientid",
+ "clientSecret": "samplesecret",
+ "scopes": "samplescope",
+ "serviceProviderId": "serviceproviderid",
+ "parameters": [
+ {
+ "key": "key1",
+ "value": "value1"
+ },
+ {
+ "key": "key2",
+ "value": "value2"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "id": "/subscriptions/subscription-id/resourceGroups/OneResourceGroupName/providers/Microsoft.BotService/botServices/samplebotname/connections/sampleConnection",
+ "etag": "etag1",
+ "name": "sampleConnection",
+ "properties": {
+ "clientId": "sampleclientid",
+ "clientSecret": null,
+ "scopes": "samplescope",
+ "serviceProviderId": "serviceproviderid",
+ "serviceProviderDisplayName": "serviceProviderDisplayName",
+ "parameters": [
+ {
+ "key": "key1",
+ "value": "value1"
+ },
+ {
+ "key": "key2",
+ "value": "value2"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "global",
+ "id": "/subscriptions/subscription-id/resourceGroups/OneResourceGroupName/providers/Microsoft.BotService/botServices/samplebotname/connections/sampleConnection",
+ "etag": "etag1",
+ "name": "sampleConnection",
+ "properties": {
+ "clientId": "sampleclientid",
+ "clientSecret": null,
+ "scopes": "samplescope",
+ "serviceProviderId": "serviceproviderid",
+ "serviceProviderDisplayName": "serviceProviderDisplayName",
+ "parameters": [
+ {
+ "key": "key1",
+ "value": "value1"
+ },
+ {
+ "key": "key2",
+ "value": "value2"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutDirectLineSpeechChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutDirectLineSpeechChannel.json
new file mode 100644
index 000000000000..9d6e2319eb51
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutDirectLineSpeechChannel.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "DirectLineSpeechChannel",
+ "parameters": {
+ "location": "global",
+ "properties": {
+ "channelName": "DirectLineSpeechChannel",
+ "properties": {
+ "cognitiveServiceRegion": "XcognitiveServiceRegionX",
+ "cognitiveServiceSubscriptionKey": "XcognitiveServiceSubscriptionKeyX",
+ "isEnabled": true
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "DirectLineSpeechChannel",
+ "properties": {
+ "cognitiveServiceRegion": "XcognitiveServiceRegionX",
+ "isEnabled": true
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "DirectLineSpeechChannel",
+ "properties": {
+ "cognitiveServiceRegion": "XcognitiveServiceRegionX",
+ "isEnabled": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutLineChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutLineChannel.json
new file mode 100644
index 000000000000..3c5b039c9a8f
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutLineChannel.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "LineChannel",
+ "parameters": {
+ "location": "global",
+ "properties": {
+ "channelName": "LineChannel",
+ "properties": {
+ "lineRegistrations": [
+ {
+ "channelSecret": "channelSecret",
+ "channelAccessToken": "channelAccessToken"
+ }
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "LineChannel",
+ "properties": {
+ "lineRegistrations": [
+ {
+ "generatedId": "id",
+ "channelSecret": null,
+ "channelAccessToken": null
+ }
+ ],
+ "callbackUrl": "http://callbackUrl",
+ "isValidated": true
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "LineChannel",
+ "properties": {
+ "lineRegistrations": [
+ {
+ "generatedId": "id",
+ "channelSecret": null,
+ "channelAccessToken": null
+ }
+ ],
+ "callbackUrl": "http://callbackUrl",
+ "isValidated": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutPrivateEndpointConnection.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutPrivateEndpointConnection.json
new file mode 100644
index 000000000000..0b79af4523d6
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/PutPrivateEndpointConnection.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res7687",
+ "resourceName": "sto9699",
+ "privateEndpointConnectionName": "{privateEndpointConnectionName}",
+ "api-version": "2021-05-01-preview",
+ "properties": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.BotService/botServices/sto288/privateEndpointConnections/{privateEndpointConnectionName}",
+ "name": "{privateEndpointConnectionName}",
+ "type": "Microsoft.BotService/botServices/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateAlexaChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateAlexaChannel.json
new file mode 100644
index 000000000000..0a9b3855da88
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateAlexaChannel.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "AlexaChannel",
+ "parameters": {
+ "location": "global",
+ "properties": {
+ "channelName": "AlexaChannel",
+ "properties": {
+ "alexaSkillId": "XAlexaSkillIdX",
+ "isEnabled": true
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "AlexaChannel",
+ "properties": {
+ "alexaSkillId": "XAlexaSkillIdX",
+ "urlFragment": "XUrlFragmentX",
+ "serviceEndpointUri": "https://domain/XUrlFragmentX/botId",
+ "isEnabled": true
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "AlexaChannel",
+ "properties": {
+ "alexaSkillId": "XAlexaSkillIdX",
+ "urlFragment": "XUrlFragmentX",
+ "serviceEndpointUri": "https://domain/XUrlFragmentX/botId",
+ "isEnabled": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateBot.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateBot.json
new file mode 100644
index 000000000000..d1a7719305c9
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateBot.json
@@ -0,0 +1,119 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "parameters": {
+ "location": "West US",
+ "sku": {
+ "name": "S1"
+ },
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "etag": "etag1",
+ "kind": "sdk",
+ "properties": {
+ "description": "The description of the bot",
+ "developerAppInsightKey": "appinsightskey",
+ "developerAppInsightsApiKey": "appinsightsapikey",
+ "developerAppInsightsApplicationId": "appinsightsappid",
+ "displayName": "The Name of the bot",
+ "endpoint": "http://mybot.coffee",
+ "iconUrl": "http://myicon",
+ "luisAppIds": [
+ "luisappid1",
+ "luisappid2"
+ ],
+ "luisKey": "luiskey",
+ "msaAppId": "msaappid",
+ "isCmekEnabled": true,
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "West US",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "etag": "etag1",
+ "name": "samplebotname",
+ "type": "Microsoft.BotService/botServices",
+ "id": "/subscriptions/subscription-id/resourceGroups/OneResourceGroupName/providers/Microsoft.BotService/botServices/samplebotname",
+ "kind": "sdk",
+ "properties": {
+ "description": "The description of the bot",
+ "developerAppInsightKey": "appinsightskey",
+ "developerAppInsightsApplicationId": "appinsightsappid",
+ "displayName": "The Name of the bot",
+ "endpoint": "http://mybot.coffee",
+ "endpointVersion": "version",
+ "iconUrl": "http://myicon",
+ "luisAppIds": [
+ "luisappid1",
+ "luisappid2"
+ ],
+ "msaAppId": "msaappid",
+ "configuredChannels": [
+ "facebook",
+ "groupme"
+ ],
+ "enabledChannels": [
+ "facebook"
+ ],
+ "isCmekEnabled": true,
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "West US",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "name": "samplebotname",
+ "type": "Microsoft.BotService/botServices",
+ "id": "/subscriptions/subscription-id/resourceGroups/OneResourceGroupName/providers/Microsoft.BotService/botServices/samplebotname",
+ "kind": "sdk",
+ "etag": "etag1",
+ "properties": {
+ "description": "The description of the bot",
+ "developerAppInsightKey": "appinsightskey",
+ "developerAppInsightsApplicationId": "appinsightsappid",
+ "displayName": "The Name of the bot",
+ "endpoint": "http://mybot.coffee",
+ "endpointVersion": "version",
+ "iconUrl": "http://myicon",
+ "luisAppIds": [
+ "luisappid1",
+ "luisappid2"
+ ],
+ "msaAppId": "msaappid",
+ "configuredChannels": [
+ "facebook",
+ "groupme"
+ ],
+ "enabledChannels": [
+ "facebook"
+ ],
+ "isCmekEnabled": true,
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateChannel.json
new file mode 100644
index 000000000000..01a985afdab0
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateChannel.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "EmailChannel",
+ "parameters": {
+ "location": "global",
+ "properties": {
+ "channelName": "EmailChannel",
+ "properties": {
+ "emailAddress": "a@b.com",
+ "password": "pwd",
+ "isEnabled": true
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "EmailChannel",
+ "properties": {
+ "emailAddress": "a@b.com",
+ "password": "pwd",
+ "isEnabled": true
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "EmailChannel",
+ "properties": {
+ "emailAddress": "a@b.com",
+ "password": "pwd",
+ "isEnabled": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateConnection.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateConnection.json
new file mode 100644
index 000000000000..18ca007cae17
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateConnection.json
@@ -0,0 +1,81 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "connectionName": "sampleConnection",
+ "parameters": {
+ "location": "global",
+ "etag": "etag1",
+ "properties": {
+ "clientId": "sampleclientid",
+ "clientSecret": "samplesecret",
+ "scopes": "samplescope",
+ "serviceProviderId": "serviceproviderid",
+ "serviceProviderDisplayName": "serviceProviderDisplayName",
+ "parameters": [
+ {
+ "key": "key1",
+ "value": "value1"
+ },
+ {
+ "key": "key2",
+ "value": "value2"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "id": "/subscriptions/subscription-id/resourceGroups/OneResourceGroupName/providers/Microsoft.BotService/botServices/samplebotname/connections/sampleConnection",
+ "name": "sampleConnection",
+ "properties": {
+ "clientId": "sampleclientid",
+ "clientSecret": null,
+ "scopes": "samplescope",
+ "serviceProviderId": "serviceproviderid",
+ "serviceProviderDisplayName": "serviceProviderDisplayName",
+ "parameters": [
+ {
+ "key": "key1",
+ "value": "value1"
+ },
+ {
+ "key": "key2",
+ "value": "value2"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "global",
+ "etag": "etag1",
+ "id": "/subscriptions/subscription-id/resourceGroups/OneResourceGroupName/providers/Microsoft.BotService/botServices/samplebotname/connections/sampleConnection",
+ "name": "sampleConnection",
+ "properties": {
+ "clientId": "sampleclientid",
+ "clientSecret": null,
+ "scopes": "samplescope",
+ "serviceProviderId": "serviceproviderid",
+ "serviceProviderDisplayName": "serviceProviderDisplayName",
+ "parameters": [
+ {
+ "key": "key1",
+ "value": "value1"
+ },
+ {
+ "key": "key2",
+ "value": "value2"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateDirectLineSpeechChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateDirectLineSpeechChannel.json
new file mode 100644
index 000000000000..9d6e2319eb51
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateDirectLineSpeechChannel.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "DirectLineSpeechChannel",
+ "parameters": {
+ "location": "global",
+ "properties": {
+ "channelName": "DirectLineSpeechChannel",
+ "properties": {
+ "cognitiveServiceRegion": "XcognitiveServiceRegionX",
+ "cognitiveServiceSubscriptionKey": "XcognitiveServiceSubscriptionKeyX",
+ "isEnabled": true
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "DirectLineSpeechChannel",
+ "properties": {
+ "cognitiveServiceRegion": "XcognitiveServiceRegionX",
+ "isEnabled": true
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "DirectLineSpeechChannel",
+ "properties": {
+ "cognitiveServiceRegion": "XcognitiveServiceRegionX",
+ "isEnabled": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateLineChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateLineChannel.json
new file mode 100644
index 000000000000..3c5b039c9a8f
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/UpdateLineChannel.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "LineChannel",
+ "parameters": {
+ "location": "global",
+ "properties": {
+ "channelName": "LineChannel",
+ "properties": {
+ "lineRegistrations": [
+ {
+ "channelSecret": "channelSecret",
+ "channelAccessToken": "channelAccessToken"
+ }
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "LineChannel",
+ "properties": {
+ "lineRegistrations": [
+ {
+ "generatedId": "id",
+ "channelSecret": null,
+ "channelAccessToken": null
+ }
+ ],
+ "callbackUrl": "http://callbackUrl",
+ "isValidated": true
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "LineChannel",
+ "properties": {
+ "lineRegistrations": [
+ {
+ "generatedId": "id",
+ "channelSecret": null,
+ "channelAccessToken": null
+ }
+ ],
+ "callbackUrl": "http://callbackUrl",
+ "isValidated": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/WebChatRegenerateKeys.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/WebChatRegenerateKeys.json
new file mode 100644
index 000000000000..d5b2860150ae
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/examples/WebChatRegenerateKeys.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "subscription-id",
+ "resourceGroupName": "OneResourceGroupName",
+ "api-version": "2021-05-01-preview",
+ "resourceName": "samplebotname",
+ "channelName": "WebChatChannel",
+ "parameters": {
+ "siteName": "testSiteName",
+ "key": "key1"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "global",
+ "properties": {
+ "channelName": "WebChatChannel",
+ "properties": {
+ "sites": [
+ {
+ "siteId": "abcd",
+ "siteName": "Default Site",
+ "key": "key1",
+ "key2": "key2",
+ "isEnabled": true,
+ "enablePreview": true
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/privatelinks.json b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/privatelinks.json
new file mode 100644
index 000000000000..03d65e67e1b3
--- /dev/null
+++ b/specification/botservice/resource-manager/Microsoft.BotService/preview/2021-05-01-preview/privatelinks.json
@@ -0,0 +1,196 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2021-05-01-preview",
+ "title": "Common types"
+ },
+ "paths": {},
+ "definitions": {
+ "PrivateEndpoint": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The ARM identifier for Private Endpoint"
+ }
+ },
+ "description": "The Private Endpoint resource."
+ },
+ "PrivateLinkResourceBase": {
+ "title": "Private Link Resource Base",
+ "description": "Common fields that are returned in the response for all BotService Private Link Resources",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the resource"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\""
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "PrivateEndpointConnection": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "x-ms-client-flatten": true,
+ "description": "Resource properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/PrivateLinkResourceBase"
+ }
+ ],
+ "description": "The Private Endpoint Connection resource."
+ },
+ "PrivateEndpointConnectionProperties": {
+ "properties": {
+ "privateEndpoint": {
+ "$ref": "#/definitions/PrivateEndpoint",
+ "description": "The resource of private end point."
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "#/definitions/PrivateLinkServiceConnectionState",
+ "description": "A collection of information about the state of the connection between service consumer and provider."
+ },
+ "provisioningState": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState",
+ "description": "The provisioning state of the private endpoint connection resource."
+ }
+ },
+ "required": [
+ "privateLinkServiceConnectionState"
+ ],
+ "description": "Properties of the PrivateEndpointConnectProperties."
+ },
+ "PrivateLinkServiceConnectionState": {
+ "properties": {
+ "status": {
+ "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus",
+ "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service."
+ },
+ "description": {
+ "type": "string",
+ "description": "The reason for approval/rejection of the connection."
+ },
+ "actionRequired": {
+ "type": "string",
+ "description": "A message indicating if changes on the service provider require any updates on the consumer."
+ }
+ },
+ "description": "A collection of information about the state of the connection between service consumer and provider."
+ },
+ "PrivateEndpointServiceConnectionStatus": {
+ "type": "string",
+ "description": "The private endpoint connection status.",
+ "enum": [
+ "Pending",
+ "Approved",
+ "Rejected"
+ ],
+ "x-ms-enum": {
+ "name": "PrivateEndpointServiceConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "PrivateEndpointConnectionProvisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The current provisioning state.",
+ "enum": [
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "PrivateEndpointConnectionProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "PrivateLinkResource": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateLinkResourceProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/PrivateLinkResourceBase"
+ }
+ ],
+ "description": "A private link resource"
+ },
+ "PrivateLinkResourceProperties": {
+ "properties": {
+ "groupId": {
+ "description": "The private link resource group id.",
+ "type": "string",
+ "readOnly": true
+ },
+ "requiredMembers": {
+ "description": "The private link resource required member names.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "requiredZoneNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The private link resource Private link DNS zone name."
+ }
+ },
+ "description": "Properties of a private link resource."
+ },
+ "PrivateEndpointConnectionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "Array of private endpoint connections",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ }
+ },
+ "description": "List of private endpoint connection associated with the specified storage account"
+ },
+ "PrivateLinkResourceListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "Array of private link resources",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ }
+ }
+ },
+ "description": "A list of private link resources"
+ }
+ },
+ "parameters": {
+ "PrivateEndpointConnectionName": {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint connection associated with the Azure resource",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/botservice.json b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/botservice.json
index 51d8b32ac081..5af0ff00991a 100644
--- a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/botservice.json
+++ b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/botservice.json
@@ -1328,6 +1328,14 @@
"cmekKeyVaultUrl": {
"type": "string",
"description": "The CMK Url"
+ },
+ "isIsolated": {
+ "type": "boolean",
+ "description": "Whether the bot is in an isolated network"
+ },
+ "schemaTransformationVersion": {
+ "type": "string",
+ "description": "The channel schema transformation version for the bot"
}
},
"description": "The parameters to provide for the Bot.",
@@ -1974,9 +1982,14 @@
},
"DirectLineSpeechChannelProperties": {
"properties": {
- "cognitiveServicesSubscriptionId": {
+ "cognitiveServiceRegion": {
+ "type": "string",
+ "description": "The cognitive service region with this channel registration."
+ },
+ "cognitiveServiceSubscriptionKey": {
+ "x-ms-secret": true,
"type": "string",
- "description": "The cognitive service subscription ID to use with this channel registration."
+ "description": "The cognitive service subscription key to use with this channel registration."
},
"isEnabled": {
"type": "boolean",
@@ -1997,7 +2010,8 @@
},
"description": "The parameters to provide for the DirectLine Speech channel.",
"required": [
- "cognitiveServicesSubscriptionId"
+ "cognitiveServiceRegion",
+ "cognitiveServiceSubscriptionKey"
]
},
"ChannelResponseList": {
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/CreateBot.json b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/CreateBot.json
index 14577919f168..3b24c7a2df3a 100644
--- a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/CreateBot.json
+++ b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/CreateBot.json
@@ -30,7 +30,9 @@
"luisKey": "luiskey",
"msaAppId": "exampleappid",
"isCmekEnabled": true,
- "cmekKeyVaultUrl": "https://myCmekKey"
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
}
}
},
@@ -68,7 +70,9 @@
"facebook"
],
"isCmekEnabled": true,
- "cmekKeyVaultUrl": "https://myCmekKey"
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
}
}
},
@@ -103,7 +107,9 @@
"facebook"
],
"isCmekEnabled": true,
- "cmekKeyVaultUrl": "https://myCmekKey"
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
}
}
}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/GetBot.json b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/GetBot.json
index e14747090f1f..189fc73fb9b3 100644
--- a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/GetBot.json
+++ b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/GetBot.json
@@ -39,7 +39,9 @@
"facebook"
],
"isCmekEnabled": true,
- "cmekKeyVaultUrl": "https://myCmekKey"
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
}
}
}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/GetDirectLineSpeechChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/GetDirectLineSpeechChannel.json
index f4d15d88a187..35110c6719ff 100644
--- a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/GetDirectLineSpeechChannel.json
+++ b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/GetDirectLineSpeechChannel.json
@@ -13,7 +13,7 @@
"properties": {
"channelName": "DirectLineSpeechChannel",
"properties": {
- "cognitiveServicesSubscriptionId": "Cognitive services subscription ID",
+ "cognitiveServiceRegion": "Cognitive service region",
"customVoiceDeploymentId": "Custom voice deployment ID",
"customSpeechModelId": "Custom speech model ID",
"isDefaultBotForCogSvcAccount": true,
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/ListBotsByResourceGroup.json b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/ListBotsByResourceGroup.json
index cacf7a61ed10..0c25649703bd 100644
--- a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/ListBotsByResourceGroup.json
+++ b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/ListBotsByResourceGroup.json
@@ -40,7 +40,9 @@
"facebook"
],
"isCmekEnabled": true,
- "cmekKeyVaultUrl": "https://myCmekKey"
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
}
}
]
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/ListBotsBySubscription.json b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/ListBotsBySubscription.json
index bce0d79428fd..ea64a7343666 100644
--- a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/ListBotsBySubscription.json
+++ b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/ListBotsBySubscription.json
@@ -39,7 +39,9 @@
"facebook"
],
"isCmekEnabled": true,
- "cmekKeyVaultUrl": "https://myCmekKey"
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
}
}
]
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/PutDirectLineSpeechChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/PutDirectLineSpeechChannel.json
index f8bb8546de01..0411ec285694 100644
--- a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/PutDirectLineSpeechChannel.json
+++ b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/PutDirectLineSpeechChannel.json
@@ -10,7 +10,8 @@
"properties": {
"channelName": "DirectLineSpeechChannel",
"properties": {
- "cognitiveServicesSubscriptionId": "XcognitiveServicesSubscriptionIdX",
+ "cognitiveServiceRegion": "XcognitiveServiceRegionX",
+ "cognitiveServiceSubscriptionKey": "XcognitiveServiceSubscriptionKeyX",
"isEnabled": true
}
}
@@ -23,7 +24,7 @@
"properties": {
"channelName": "DirectLineSpeechChannel",
"properties": {
- "cognitiveServicesSubscriptionId": "XcognitiveServicesSubscriptionIdX",
+ "cognitiveServiceRegion": "XcognitiveServiceRegionX",
"isEnabled": true
}
}
@@ -35,7 +36,7 @@
"properties": {
"channelName": "DirectLineSpeechChannel",
"properties": {
- "cognitiveServicesSubscriptionId": "XcognitiveServicesSubscriptionIdX",
+ "cognitiveServiceRegion": "XcognitiveServiceRegionX",
"isEnabled": true
}
}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/UpdateBot.json b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/UpdateBot.json
index 910240b5bd1d..3997a188df7b 100644
--- a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/UpdateBot.json
+++ b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/UpdateBot.json
@@ -30,7 +30,9 @@
"luisKey": "luiskey",
"msaAppId": "msaappid",
"isCmekEnabled": true,
- "cmekKeyVaultUrl": "https://myCmekKey"
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
}
}
},
@@ -68,7 +70,9 @@
"facebook"
],
"isCmekEnabled": true,
- "cmekKeyVaultUrl": "https://myCmekKey"
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
}
}
},
@@ -105,7 +109,9 @@
"facebook"
],
"isCmekEnabled": true,
- "cmekKeyVaultUrl": "https://myCmekKey"
+ "cmekKeyVaultUrl": "https://myCmekKey",
+ "isIsolated": false,
+ "schemaTransformationVersion": "1.0"
}
}
}
diff --git a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/UpdateDirectLineSpeechChannel.json b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/UpdateDirectLineSpeechChannel.json
index f8bb8546de01..0411ec285694 100644
--- a/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/UpdateDirectLineSpeechChannel.json
+++ b/specification/botservice/resource-manager/Microsoft.BotService/stable/2021-03-01/examples/UpdateDirectLineSpeechChannel.json
@@ -10,7 +10,8 @@
"properties": {
"channelName": "DirectLineSpeechChannel",
"properties": {
- "cognitiveServicesSubscriptionId": "XcognitiveServicesSubscriptionIdX",
+ "cognitiveServiceRegion": "XcognitiveServiceRegionX",
+ "cognitiveServiceSubscriptionKey": "XcognitiveServiceSubscriptionKeyX",
"isEnabled": true
}
}
@@ -23,7 +24,7 @@
"properties": {
"channelName": "DirectLineSpeechChannel",
"properties": {
- "cognitiveServicesSubscriptionId": "XcognitiveServicesSubscriptionIdX",
+ "cognitiveServiceRegion": "XcognitiveServiceRegionX",
"isEnabled": true
}
}
@@ -35,7 +36,7 @@
"properties": {
"channelName": "DirectLineSpeechChannel",
"properties": {
- "cognitiveServicesSubscriptionId": "XcognitiveServicesSubscriptionIdX",
+ "cognitiveServiceRegion": "XcognitiveServiceRegionX",
"isEnabled": true
}
}
diff --git a/specification/botservice/resource-manager/readme.azureresourceschema.md b/specification/botservice/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 347b87c0d93e..000000000000
--- a/specification/botservice/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,60 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-botservice-2021-03-01
- - tag: schema-botservice-2020-06-02
- - tag: schema-botservice-2018-07-12
- - tag: schema-botservice-2017-12-01
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-botservice-2021-03-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-botservice-2021-03-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.BotService/stable/2021-03-01/botservice.json
-
-```
-
-### Tag: schema-botservice-2020-06-02 and azureresourceschema
-
-``` yaml $(tag) == 'schema-botservice-2020-06-02' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.BotService/stable/2020-06-02/botservice.json
-
-```
-
-### Tag: schema-botservice-2018-07-12 and azureresourceschema
-
-``` yaml $(tag) == 'schema-botservice-2018-07-12' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.BotService/preview/2018-07-12/botservice.json
-
-```
-
-### Tag: schema-botservice-2017-12-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-botservice-2017-12-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.BotService/preview/2017-12-01/botservice.json
-
-```
diff --git a/specification/botservice/resource-manager/readme.go.md b/specification/botservice/resource-manager/readme.go.md
index cddfceefbd84..97433ce5c511 100644
--- a/specification/botservice/resource-manager/readme.go.md
+++ b/specification/botservice/resource-manager/readme.go.md
@@ -13,10 +13,20 @@ go:
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-2021-03-01
- tag: package-2017-12-01
- tag: package-2018-07-12
```
+### Tag: package-2021-03-01 and go
+
+These settings apply only when `--tag=package-2021-03-01 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2021-03-01' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2021-03-01/$(namespace)
+```
+
### Tag: package-2018-07-12 and go
These settings apply only when `--tag=package-2018-07-12 --go` is specified on the command line.
diff --git a/specification/botservice/resource-manager/readme.java.md b/specification/botservice/resource-manager/readme.java.md
index 1b10ea0e95d7..b247b8f57638 100644
--- a/specification/botservice/resource-manager/readme.java.md
+++ b/specification/botservice/resource-manager/readme.java.md
@@ -10,6 +10,8 @@ namespace: com.microsoft.azure.management.botservice
license-header: MICROSOFT_MIT_NO_CODEGEN
payload-flattening-threshold: 1
output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-botservice
+
+service-name: BotService
```
### Java multi-api
diff --git a/specification/botservice/resource-manager/readme.md b/specification/botservice/resource-manager/readme.md
index 6b37cc5a4598..fb9d9999abb2 100644
--- a/specification/botservice/resource-manager/readme.md
+++ b/specification/botservice/resource-manager/readme.md
@@ -26,14 +26,33 @@ These are the global settings for the BotService API.
``` yaml
openapi-type: arm
-tag: package-2021-03-01
+tag: package-preview-2021-05
```
+
+### Tag: package-preview-2021-05
+
+These settings apply only when `--tag=package-preview-2021-05` is specified on the command line.
+
+```yaml $(tag) == 'package-preview-2021-05'
+input-file:
+ - Microsoft.BotService/preview/2021-05-01-preview/botservice.json
+directive:
+ - suppress: R4009
+ from: botservice.json
+ reason: We don not yet support systemdata
+ - suppress: R3016
+ from: botservice.json
+ reason: app settings keys are case sensitive
+ - suppress: R3018
+ from: botservice.json
+ reason: app settings for ValidateAuthority needs to be boolean
+```
### Tag: package-2021-03-01
These settings apply only when `--tag=package-2021-03-01` is specified on the command line.
-```yaml $(tag) == 'package-2021-03-01'
+``` yaml $(tag) == 'package-2021-03-01'
input-file:
- Microsoft.BotService/stable/2021-03-01/botservice.json
directive:
@@ -52,7 +71,7 @@ directive:
These settings apply only when `--tag=package-2020-06-02` is specified on the command line.
-```yaml $(tag) == 'package-2020-06-02'
+``` yaml $(tag) == 'package-2020-06-02'
input-file:
- Microsoft.BotService/stable/2020-06-02/botservice.json
directive:
@@ -61,7 +80,6 @@ directive:
reason: We do not yet support systemdata.
```
-
### Tag: package-2018-07-12
These settings apply only when `--tag=package-2018-07-12` is specified on the command line.
@@ -119,16 +137,15 @@ This is not used by Autorest itself.
swagger-to-sdk:
- repo: azure-sdk-for-net
- repo: azure-sdk-for-python
+ - repo: azure-sdk-for-python-track2
- repo: azure-sdk-for-go
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js botservice/resource-manager
- repo: azure-sdk-for-js
```
-
## Suppression
-```
+
+```
directive:
- suppress: SECRET_PROPERTY
from: botservice.json
@@ -136,7 +153,6 @@ directive:
reason: We do need to return verifyToken in FacebookChannelProperties.
```
-
## C#
These settings apply only when `--csharp` is specified on the command line.
@@ -161,8 +177,4 @@ See configuration in [readme.java.md](./readme.java.md)
## Python
-See readme.python.md file.
-
-## AzureResourceSchema
-
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
+See configuration in [readme.python.md](./readme.python.md)
diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-04-15/cdn.json b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-04-15/cdn.json
index 72bfef245f21..6dff0ae76a06 100644
--- a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-04-15/cdn.json
+++ b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-04-15/cdn.json
@@ -1642,7 +1642,8 @@
"$ref": "#/definitions/ErrorResponse"
}
}
- }
+ },
+ "x-ms-long-running-operation": true
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/customDomains/{customDomainName}/enableCustomHttps": {
@@ -1717,7 +1718,8 @@
"$ref": "#/definitions/ErrorResponse"
}
}
- }
+ },
+ "x-ms-long-running-operation": true
}
},
"/providers/Microsoft.Cdn/checkNameAvailability": {
diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-06-15/cdn.json b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-06-15/cdn.json
index 85e58bdd2080..768647aaadab 100644
--- a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-06-15/cdn.json
+++ b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-06-15/cdn.json
@@ -1642,7 +1642,8 @@
"$ref": "#/definitions/ErrorResponse"
}
}
- }
+ },
+ "x-ms-long-running-operation": true
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/customDomains/{customDomainName}/enableCustomHttps": {
@@ -1717,7 +1718,8 @@
"$ref": "#/definitions/ErrorResponse"
}
}
- }
+ },
+ "x-ms-long-running-operation": true
}
},
"/providers/Microsoft.Cdn/checkNameAvailability": {
diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-12-31/cdn.json b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-12-31/cdn.json
index 985cc15ee100..7ea810593f26 100644
--- a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-12-31/cdn.json
+++ b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2019-12-31/cdn.json
@@ -2110,7 +2110,8 @@
"$ref": "#/definitions/ErrorResponse"
}
}
- }
+ },
+ "x-ms-long-running-operation": true
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/customDomains/{customDomainName}/enableCustomHttps": {
@@ -2185,7 +2186,8 @@
"$ref": "#/definitions/ErrorResponse"
}
}
- }
+ },
+ "x-ms-long-running-operation": true
}
},
"/providers/Microsoft.Cdn/checkNameAvailability": {
diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2020-03-31/cdn.json b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2020-03-31/cdn.json
index 5b5bb55288fa..8c80108d158f 100644
--- a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2020-03-31/cdn.json
+++ b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2020-03-31/cdn.json
@@ -2110,7 +2110,8 @@
"$ref": "#/definitions/ErrorResponse"
}
}
- }
+ },
+ "x-ms-long-running-operation": true
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/customDomains/{customDomainName}/enableCustomHttps": {
@@ -2185,7 +2186,8 @@
"$ref": "#/definitions/ErrorResponse"
}
}
- }
+ },
+ "x-ms-long-running-operation": true
}
},
"/providers/Microsoft.Cdn/checkNameAvailability": {
diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2020-04-15/cdn.json b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2020-04-15/cdn.json
index 24ba251127d2..51fa15d2fd67 100644
--- a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2020-04-15/cdn.json
+++ b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2020-04-15/cdn.json
@@ -2110,7 +2110,8 @@
"$ref": "#/definitions/ErrorResponse"
}
}
- }
+ },
+ "x-ms-long-running-operation": true
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/customDomains/{customDomainName}/enableCustomHttps": {
@@ -2185,7 +2186,8 @@
"$ref": "#/definitions/ErrorResponse"
}
}
- }
+ },
+ "x-ms-long-running-operation": true
}
},
"/providers/Microsoft.Cdn/checkNameAvailability": {
diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2020-09-01/cdn.json b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2020-09-01/cdn.json
index 6b5dd994036b..0cc2ca2e464f 100644
--- a/specification/cdn/resource-manager/Microsoft.Cdn/stable/2020-09-01/cdn.json
+++ b/specification/cdn/resource-manager/Microsoft.Cdn/stable/2020-09-01/cdn.json
@@ -2110,7 +2110,8 @@
"$ref": "#/definitions/ErrorResponse"
}
}
- }
+ },
+ "x-ms-long-running-operation": true
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/customDomains/{customDomainName}/enableCustomHttps": {
@@ -2185,7 +2186,8 @@
"$ref": "#/definitions/ErrorResponse"
}
}
- }
+ },
+ "x-ms-long-running-operation": true
}
},
"/providers/Microsoft.Cdn/checkNameAvailability": {
diff --git a/specification/cdn/resource-manager/readme.azureresourceschema.md b/specification/cdn/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index b3be70364058..000000000000
--- a/specification/cdn/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,149 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-cdn-2020-09-01
- - tag: schema-cdn-2020-04-15
- - tag: schema-cdn-2019-12-31
- - tag: schema-cdn-2019-06-15-preview
- - tag: schema-cdn-2019-06-15
- - tag: schema-cdn-2019-04-15
- - tag: schema-cdn-2017-10-12
- - tag: schema-cdn-2017-04-02
- - tag: schema-cdn-2016-10-02
- - tag: schema-cdn-2016-04-02
- - tag: schema-cdn-2015-06-01
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-cdn-2020-09-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-cdn-2020-09-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Cdn/stable/2020-09-01/cdn.json
- - Microsoft.Cdn/stable/2020-09-01/afdx.json
- - Microsoft.Cdn/stable/2020-09-01/cdnwebapplicationfirewall.json
-
-```
-
-### Tag: schema-cdn-2020-04-15 and azureresourceschema
-
-``` yaml $(tag) == 'schema-cdn-2020-04-15' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Cdn/stable/2020-04-15/cdn.json
- - Microsoft.Cdn/stable/2020-04-15/cdnwebapplicationfirewall.json
-
-```
-
-### Tag: schema-cdn-2019-12-31 and azureresourceschema
-
-``` yaml $(tag) == 'schema-cdn-2019-12-31' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Cdn/stable/2019-12-31/cdn.json
-
-```
-
-### Tag: schema-cdn-2019-06-15-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-cdn-2019-06-15-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Cdn/preview/2019-06-15-preview/cdn.json
- - Microsoft.Cdn/preview/2019-06-15-preview/cdnwebapplicationfirewall.json
-
-```
-
-### Tag: schema-cdn-2019-06-15 and azureresourceschema
-
-``` yaml $(tag) == 'schema-cdn-2019-06-15' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Cdn/stable/2019-06-15/cdn.json
- - Microsoft.Cdn/stable/2019-06-15/cdnwebapplicationfirewall.json
-
-```
-
-### Tag: schema-cdn-2019-04-15 and azureresourceschema
-
-``` yaml $(tag) == 'schema-cdn-2019-04-15' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Cdn/stable/2019-04-15/cdn.json
-
-```
-
-### Tag: schema-cdn-2017-10-12 and azureresourceschema
-
-``` yaml $(tag) == 'schema-cdn-2017-10-12' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Cdn/stable/2017-10-12/cdn.json
-
-```
-
-### Tag: schema-cdn-2017-04-02 and azureresourceschema
-
-``` yaml $(tag) == 'schema-cdn-2017-04-02' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Cdn/stable/2017-04-02/cdn.json
-
-```
-
-### Tag: schema-cdn-2016-10-02 and azureresourceschema
-
-``` yaml $(tag) == 'schema-cdn-2016-10-02' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Cdn/stable/2016-10-02/cdn.json
-
-```
-
-### Tag: schema-cdn-2016-04-02 and azureresourceschema
-
-``` yaml $(tag) == 'schema-cdn-2016-04-02' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Cdn/stable/2016-04-02/cdn.json
-
-```
-
-### Tag: schema-cdn-2015-06-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-cdn-2015-06-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Cdn/stable/2015-06-01/cdn.json
-
-```
diff --git a/specification/cdn/resource-manager/readme.md b/specification/cdn/resource-manager/readme.md
index d21e0732c347..1a97777e438b 100644
--- a/specification/cdn/resource-manager/readme.md
+++ b/specification/cdn/resource-manager/readme.md
@@ -160,8 +160,6 @@ swagger-to-sdk:
- repo: azure-sdk-for-node
- repo: azure-sdk-for-ruby
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js cdn/resource-manager
```
@@ -189,7 +187,5 @@ See configuration in [readme.node.md](./readme.node.md)
See configuration in [readme.ruby.md](./readme.ruby.md)
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/changeanalysis/resource-manager/readme.azureresourceschema.md b/specification/changeanalysis/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 336f05c5f536..000000000000
--- a/specification/changeanalysis/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,36 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-changeanalysis-2021-04-01
- - tag: schema-changeanalysis-2020-04-01-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-changeanalysis-2021-04-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-changeanalysis-2021-04-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.ChangeAnalysis/stable/2021-04-01/changeanalysis.json
-
-```
-
-### Tag: schema-changeanalysis-2020-04-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-changeanalysis-2020-04-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.ChangeAnalysis/preview/2020-04-01-preview/changeanalysis.json
-
-```
diff --git a/specification/changeanalysis/resource-manager/readme.md b/specification/changeanalysis/resource-manager/readme.md
index 06b4fdda20bb..82e40f5667c7 100644
--- a/specification/changeanalysis/resource-manager/readme.md
+++ b/specification/changeanalysis/resource-manager/readme.md
@@ -66,8 +66,6 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_changeanalysis']
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js changeanalysis/resource-manager
```
## Go
@@ -125,7 +123,5 @@ directive:
}
```
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/cloudshell/resource-manager/readme.azureresourceschema.md b/specification/cloudshell/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 6f76c466351e..000000000000
--- a/specification/cloudshell/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,24 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-portal-2018-10-01
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-portal-2018-10-01 and azureresourceschema
-
-``` yaml $(tag) == 'schema-portal-2018-10-01' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Portal/stable/2018-10-01/CloudShell.json
-
-```
diff --git a/specification/cloudshell/resource-manager/readme.md b/specification/cloudshell/resource-manager/readme.md
index d1f360640baa..cf3888a1d0c7 100644
--- a/specification/cloudshell/resource-manager/readme.md
+++ b/specification/cloudshell/resource-manager/readme.md
@@ -57,8 +57,6 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_cloudshell']
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js cloudshell/resource-manager
```
## Go
@@ -149,7 +147,5 @@ csharp:
namespace: Microsoft.CloudShell
output-folder: $(csharp-sdks-folder)/CloudShell/management/Microsoft.CloudShell/GeneratedProtocol
```
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/AnomalyDetector.json b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/AnomalyDetector.json
new file mode 100644
index 000000000000..a0305e1b1dd0
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/AnomalyDetector.json
@@ -0,0 +1,504 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "1.1-preview",
+ "title": "Anomaly Detector Client",
+ "description": "The Anomaly Detector API detects anomalies automatically in time series data. It supports two kinds of mode, one is for stateless using, another is for stateful using. In stateless mode, there are three functionalities. Entire Detect is for detecting the whole series with model trained by the time series, Last Detect is detecting last point with model trained by points before. ChangePoint Detect is for detecting trend changes in time series. In stateful mode, user can store time series, the stored time series will be used for detection anomalies. Under this mode, user can still use the above three functionalities by only giving a time range without preparing time series in client side. Besides the above three functionalities, stateful model also provide group based detection and labeling service. By leveraging labeling service user can provide labels for each detection result, these labels will be used for retuning or regenerating detection models. Inconsistency detection is a kind of group based detection, this detection will find inconsistency ones in a set of time series. By using anomaly detector service, business customers can discover incidents and establish a logic flow for root cause analysis."
+ },
+ "securityDefinitions": {
+ "apiKeyHeader": {
+ "type": "apiKey",
+ "name": "Ocp-Apim-Subscription-Key",
+ "in": "header"
+ }
+ },
+ "security": [
+ {
+ "apiKeyHeader": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{Endpoint}/anomalydetector/v1.1-preview",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ },
+ "paths": {
+ "/timeseries/entire/detect": {
+ "post": {
+ "summary": "Detect anomalies for the entire series in batch.",
+ "description": "This operation generates a model with an entire series, each point is detected with the same model. With this method, points before and after a certain point are used to determine whether it is an anomaly. The entire detection can give user an overall status of the time series.",
+ "operationId": "DetectEntireSeries",
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "description": "Time series points and period if needed. Advanced model parameters can also be set in the request.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DetectRequest"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation.",
+ "schema": {
+ "$ref": "#/definitions/EntireDetectResponse"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/AnomalyDetectorError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Find anomalies for the entire series in batch example": {
+ "$ref": "./examples/EntireDetect.json"
+ }
+ }
+ }
+ },
+ "/timeseries/last/detect": {
+ "post": {
+ "summary": "Detect anomaly status of the latest point in time series.",
+ "description": "This operation generates a model using points before the latest one. With this method, only historical points are used to determine whether the target point is an anomaly. The latest point detecting operation matches the scenario of real-time monitoring of business metrics.",
+ "operationId": "DetectLastPoint",
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "description": "Time series points and period if needed. Advanced model parameters can also be set in the request.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DetectRequest"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation.",
+ "schema": {
+ "$ref": "#/definitions/LastDetectResponse"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/AnomalyDetectorError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Detect anomaly status of the latest point in time series example": {
+ "$ref": "./examples/LastDetect.json"
+ }
+ }
+ }
+ },
+ "/timeseries/changepoint/detect": {
+ "post": {
+ "summary": "Detect change point for the entire series",
+ "description": "Evaluate change point score of every series point",
+ "operationId": "DetectChangePoint",
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "description": "Time series points and granularity is needed. Advanced model parameters can also be set in the request if needed.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ChangePointDetectRequest"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation.",
+ "schema": {
+ "$ref": "#/definitions/ChangePointDetectResponse"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/AnomalyDetectorError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Detect change point example": {
+ "$ref": "./examples/ChangePointDetect.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AnomalyDetectorError": {
+ "type": "object",
+ "description": "Error information returned by the API.",
+ "properties": {
+ "code": {
+ "description": "The error code.",
+ "enum": [
+ "InvalidCustomInterval",
+ "BadArgument",
+ "InvalidGranularity",
+ "InvalidPeriod",
+ "InvalidModelArgument",
+ "InvalidSeries",
+ "InvalidJsonFormat",
+ "RequiredGranularity",
+ "RequiredSeries"
+ ],
+ "x-ms-enum": {
+ "name": "AnomalyDetectorErrorCodes",
+ "modelAsString": true
+ }
+ },
+ "message": {
+ "description": "A message explaining the error reported by the service.",
+ "type": "string"
+ }
+ }
+ },
+ "TimeGranularity": {
+ "type": "string",
+ "description": "Optional argument, can be one of yearly, monthly, weekly, daily, hourly, minutely, secondly, microsecond or none. If granularity is not present, it will be none by default. If granularity is none, the timestamp property in time series point can be absent.",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "TimeGranularity",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "yearly"
+ },
+ {
+ "value": "monthly"
+ },
+ {
+ "value": "weekly"
+ },
+ {
+ "value": "daily"
+ },
+ {
+ "value": "hourly"
+ },
+ {
+ "name": "perMinute",
+ "value": "minutely"
+ },
+ {
+ "name": "perSecond",
+ "value": "secondly"
+ },
+ {
+ "value": "microsecond"
+ },
+ {
+ "value": "none"
+ }
+ ]
+ },
+ "enum": [
+ "yearly",
+ "monthly",
+ "weekly",
+ "daily",
+ "hourly",
+ "minutely",
+ "secondly",
+ "microsecond",
+ "none"
+ ]
+ },
+ "CustomInterval": {
+ "type": "integer",
+ "format": "int32",
+ "x-nullable": false,
+ "description": "Custom Interval is used to set non-standard time interval, for example, if the series is 5 minutes, request can be set as {\"granularity\":\"minutely\", \"customInterval\":5}."
+ },
+ "DetectRequest": {
+ "type": "object",
+ "required": [
+ "series"
+ ],
+ "properties": {
+ "series": {
+ "type": "array",
+ "description": "Time series data points. Points should be sorted by timestamp in ascending order to match the anomaly detection result. If the data is not sorted correctly or there is duplicated timestamp, the API will not work. In such case, an error message will be returned.",
+ "items": {
+ "$ref": "#/definitions/TimeSeriesPoint"
+ }
+ },
+ "granularity": {
+ "$ref": "#/definitions/TimeGranularity"
+ },
+ "customInterval": {
+ "description": "Custom Interval is used to set non-standard time interval, for example, if the series is 5 minutes, request can be set as {\"granularity\":\"minutely\", \"customInterval\":5}.",
+ "$ref": "#/definitions/CustomInterval"
+ },
+ "period": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Optional argument, periodic value of a time series. If the value is null or does not present, the API will determine the period automatically."
+ },
+ "maxAnomalyRatio": {
+ "type": "number",
+ "format": "float",
+ "description": "Optional argument, advanced model parameter, max anomaly ratio in a time series."
+ },
+ "sensitivity": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Optional argument, advanced model parameter, between 0-99, the lower the value is, the larger the margin value will be which means less anomalies will be accepted."
+ }
+ }
+ },
+ "TimeSeriesPoint": {
+ "type": "object",
+ "required": [
+ "value"
+ ],
+ "properties": {
+ "timestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Optional argument, timestamp of a data point (ISO8601 format)."
+ },
+ "value": {
+ "type": "number",
+ "format": "float",
+ "description": "The measurement of that point, should be float."
+ }
+ }
+ },
+ "EntireDetectResponse": {
+ "type": "object",
+ "required": [
+ "expectedValues",
+ "isAnomaly",
+ "isNegativeAnomaly",
+ "isPositiveAnomaly",
+ "lowerMargins",
+ "period",
+ "upperMargins"
+ ],
+ "properties": {
+ "period": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Frequency extracted from the series, zero means no recurrent pattern has been found."
+ },
+ "expectedValues": {
+ "type": "array",
+ "description": "ExpectedValues contain expected value for each input point. The index of the array is consistent with the input series.",
+ "items": {
+ "type": "number",
+ "format": "float",
+ "x-nullable": false
+ }
+ },
+ "upperMargins": {
+ "type": "array",
+ "description": "UpperMargins contain upper margin of each input point. UpperMargin is used to calculate upperBoundary, which equals to expectedValue + (100 - marginScale)*upperMargin. Anomalies in response can be filtered by upperBoundary and lowerBoundary. By adjusting marginScale value, less significant anomalies can be filtered in client side. The index of the array is consistent with the input series.",
+ "items": {
+ "type": "number",
+ "format": "float",
+ "x-nullable": false
+ }
+ },
+ "lowerMargins": {
+ "type": "array",
+ "description": "LowerMargins contain lower margin of each input point. LowerMargin is used to calculate lowerBoundary, which equals to expectedValue - (100 - marginScale)*lowerMargin. Points between the boundary can be marked as normal ones in client side. The index of the array is consistent with the input series.",
+ "items": {
+ "type": "number",
+ "format": "float",
+ "x-nullable": false
+ }
+ },
+ "isAnomaly": {
+ "type": "array",
+ "description": "IsAnomaly contains anomaly properties for each input point. True means an anomaly either negative or positive has been detected. The index of the array is consistent with the input series.",
+ "items": {
+ "type": "boolean",
+ "x-nullable": false
+ }
+ },
+ "isNegativeAnomaly": {
+ "type": "array",
+ "description": "IsNegativeAnomaly contains anomaly status in negative direction for each input point. True means a negative anomaly has been detected. A negative anomaly means the point is detected as an anomaly and its real value is smaller than the expected one. The index of the array is consistent with the input series.",
+ "items": {
+ "type": "boolean",
+ "x-nullable": false
+ }
+ },
+ "isPositiveAnomaly": {
+ "type": "array",
+ "description": "IsPositiveAnomaly contain anomaly status in positive direction for each input point. True means a positive anomaly has been detected. A positive anomaly means the point is detected as an anomaly and its real value is larger than the expected one. The index of the array is consistent with the input series.",
+ "items": {
+ "type": "boolean",
+ "x-nullable": false
+ }
+ }
+ }
+ },
+ "LastDetectResponse": {
+ "type": "object",
+ "required": [
+ "expectedValue",
+ "isAnomaly",
+ "isNegativeAnomaly",
+ "isPositiveAnomaly",
+ "lowerMargin",
+ "period",
+ "upperMargin",
+ "suggestedWindow"
+ ],
+ "properties": {
+ "period": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Frequency extracted from the series, zero means no recurrent pattern has been found."
+ },
+ "suggestedWindow": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Suggested input series points needed for detecting the latest point."
+ },
+ "expectedValue": {
+ "type": "number",
+ "format": "float",
+ "description": "Expected value of the latest point."
+ },
+ "upperMargin": {
+ "type": "number",
+ "format": "float",
+ "description": "Upper margin of the latest point. UpperMargin is used to calculate upperBoundary, which equals to expectedValue + (100 - marginScale)*upperMargin. If the value of latest point is between upperBoundary and lowerBoundary, it should be treated as normal value. By adjusting marginScale value, anomaly status of latest point can be changed."
+ },
+ "lowerMargin": {
+ "type": "number",
+ "format": "float",
+ "description": "Lower margin of the latest point. LowerMargin is used to calculate lowerBoundary, which equals to expectedValue - (100 - marginScale)*lowerMargin. "
+ },
+ "isAnomaly": {
+ "type": "boolean",
+ "description": "Anomaly status of the latest point, true means the latest point is an anomaly either in negative direction or positive direction."
+ },
+ "isNegativeAnomaly": {
+ "type": "boolean",
+ "description": "Anomaly status in negative direction of the latest point. True means the latest point is an anomaly and its real value is smaller than the expected one."
+ },
+ "isPositiveAnomaly": {
+ "type": "boolean",
+ "description": "Anomaly status in positive direction of the latest point. True means the latest point is an anomaly and its real value is larger than the expected one."
+ }
+ }
+ },
+ "ChangePointDetectRequest": {
+ "type": "object",
+ "required": [
+ "granularity",
+ "series"
+ ],
+ "properties": {
+ "series": {
+ "type": "array",
+ "description": "Time series data points. Points should be sorted by timestamp in ascending order to match the change point detection result.",
+ "items": {
+ "$ref": "#/definitions/TimeSeriesPoint"
+ }
+ },
+ "granularity": {
+ "$ref": "#/definitions/TimeGranularity",
+ "description": "Can only be one of yearly, monthly, weekly, daily, hourly, minutely or secondly. Granularity is used for verify whether input series is valid."
+ },
+ "customInterval": {
+ "description": "Custom Interval is used to set non-standard time interval, for example, if the series is 5 minutes, request can be set as {\"granularity\":\"minutely\", \"customInterval\":5}.",
+ "$ref": "#/definitions/CustomInterval"
+ },
+ "period": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Optional argument, periodic value of a time series. If the value is null or does not present, the API will determine the period automatically."
+ },
+ "stableTrendWindow": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Optional argument, advanced model parameter, a default stableTrendWindow will be used in detection."
+ },
+ "threshold": {
+ "type": "number",
+ "format": "float",
+ "description": "Optional argument, advanced model parameter, between 0.0-1.0, the lower the value is, the larger the trend error will be which means less change point will be accepted."
+ }
+ }
+ },
+ "ChangePointDetectResponse": {
+ "type": "object",
+ "properties": {
+ "period": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "description": "Frequency extracted from the series, zero means no recurrent pattern has been found."
+ },
+ "isChangePoint": {
+ "type": "array",
+ "description": "isChangePoint contains change point properties for each input point. True means an anomaly either negative or positive has been detected. The index of the array is consistent with the input series.",
+ "items": {
+ "type": "boolean",
+ "readOnly": true,
+ "x-nullable": false
+ }
+ },
+ "confidenceScores": {
+ "type": "array",
+ "description": "the change point confidence of each point",
+ "items": {
+ "type": "number",
+ "format": "float",
+ "readOnly": true,
+ "x-nullable": false
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "Endpoint": {
+ "name": "Endpoint",
+ "description": "Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus2.api.cognitive.microsoft.com).",
+ "x-ms-parameter-location": "client",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/MultivariateAnomalyDetector.json b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/MultivariateAnomalyDetector.json
new file mode 100644
index 000000000000..efb9bd3355a5
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/MultivariateAnomalyDetector.json
@@ -0,0 +1,1049 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "1.1-preview",
+ "title": "Anomaly Detector Client",
+ "description": "The Anomaly Detector API detects anomalies automatically in time series data. It supports two kinds of mode, one is for stateless using, another is for stateful using. In stateless mode, there are three functionalities. Entire Detect is for detecting the whole series with model trained by the time series, Last Detect is detecting last point with model trained by points before. ChangePoint Detect is for detecting trend changes in time series. In stateful mode, user can store time series, the stored time series will be used for detection anomalies. Under this mode, user can still use the above three functionalities by only giving a time range without preparing time series in client side. Besides the above three functionalities, stateful model also provide group based detection and labeling service. By leveraging labeling service user can provide labels for each detection result, these labels will be used for retuning or regenerating detection models. Inconsistency detection is a kind of group based detection, this detection will find inconsistency ones in a set of time series. By using anomaly detector service, business customers can discover incidents and establish a logic flow for root cause analysis."
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ {
+ "name": "MultivariateAnomalyDetection"
+ }
+ ],
+ "securityDefinitions": {
+ "apiKeyHeader": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Ocp-Apim-Subscription-Key"
+ }
+ },
+ "security": [
+ {
+ "apiKeyHeader": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{Endpoint}/anomalydetector/v1.1-preview",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ },
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/multivariate/models": {
+ "post": {
+ "responses": {
+ "201": {
+ "description": "Submit a multivariate model training task successfully.",
+ "headers": {
+ "Location": {
+ "type": "string",
+ "description": "Location and ID of the model being saved."
+ }
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "summary": "Train a Multivariate Anomaly Detection Model",
+ "operationId": "TrainMultivariateModel",
+ "parameters": [
+ {
+ "name": "modelRequest",
+ "in": "body",
+ "required": true,
+ "description": "Training request",
+ "schema": {
+ "$ref": "#/definitions/ModelInfo"
+ }
+ }
+ ],
+ "tags": [
+ "MultivariateAnomalyDetection"
+ ],
+ "x-ms-examples": {
+ "Train Multivariate model": {
+ "$ref": "./examples/TrainModel.json"
+ }
+ },
+ "description": "Create and train a multivariate anomaly detection model. The request must include a source parameter to indicate an externally accessible Azure storage Uri (preferably a Shared Access Signature Uri). All time-series used in generate the model must be zipped into one single file. Each time-series will be in a single CSV file in which the first column is timestamp and the second column is value."
+ }
+ },
+ "/multivariate/models/{modelId}": {
+ "parameters": [
+ {
+ "name": "modelId",
+ "description": "Model identifier.",
+ "format": "uuid",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "get": {
+ "responses": {
+ "200": {
+ "description": "Get multivariate model details successfully.",
+ "schema": {
+ "$ref": "#/definitions/Model"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "summary": "Get Multivariate Model",
+ "description": "Get detailed information of multivariate model, including the training status and variables used in the model.",
+ "operationId": "GetMultivariateModel",
+ "tags": [
+ "MultivariateAnomalyDetection"
+ ],
+ "x-ms-examples": {
+ "Get multivariate model": {
+ "$ref": "./examples/GetModel.json"
+ }
+ }
+ },
+ "delete": {
+ "responses": {
+ "204": {
+ "description": "Successfully marked model for deletion. Model will be removed within a predefined time period."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete multivariate model": {
+ "$ref": "./examples/DeleteModel.json"
+ }
+ },
+ "summary": "Delete Multivariate Model",
+ "description": "Delete an existing multivariate model according to the modelId",
+ "operationId": "DeleteMultivariateModel",
+ "tags": [
+ "MultivariateAnomalyDetection"
+ ]
+ }
+ },
+ "/multivariate/models/{modelId}/detect": {
+ "parameters": [
+ {
+ "name": "modelId",
+ "description": "Model identifier.",
+ "in": "path",
+ "format": "uuid",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "post": {
+ "responses": {
+ "201": {
+ "description": "Submit a multivariate model detection task successfully.",
+ "headers": {
+ "Location": {
+ "type": "string",
+ "description": "Location and ID of the detection result being saved."
+ }
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "summary": "Detect Multivariate Anomaly",
+ "description": "Submit detection multivariate anomaly task with the trained model of modelId, the input schema should be the same with the training request. Thus request will be complete asynchronously and will return a resultId for querying the detection result.The request should be a source link to indicate an externally accessible Azure storage Uri (preferably a Shared Access Signature Uri). All time-series used in generate the model must be zipped into one single file. Each time-series will be as follows: the first column is timestamp and the second column is value.",
+ "operationId": "DetectAnomaly",
+ "x-ms-examples": {
+ "Detect anomaly with multivariate Model": {
+ "$ref": "./examples/DetectAnomaly.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "detectionRequest",
+ "description": "Detect anomaly request",
+ "required": true,
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/DetectionRequest"
+ }
+ }
+ ],
+ "tags": [
+ "MultivariateAnomalyDetection"
+ ]
+ }
+ },
+ "/multivariate/results/{resultId}": {
+ "parameters": [
+ {
+ "name": "resultId",
+ "description": "Result identifier.",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "get": {
+ "responses": {
+ "200": {
+ "description": "Get Multivariate Anomaly Detection Result by Result Id.",
+ "schema": {
+ "$ref": "#/definitions/DetectionResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get detection result": {
+ "$ref": "./examples/GetResult.json"
+ }
+ },
+ "summary": "Get Multivariate Anomaly Detection Result",
+ "operationId": "GetDetectionResult",
+ "description": "Get multivariate anomaly detection result based on resultId returned by the DetectAnomalyAsync api",
+ "tags": [
+ "MultivariateAnomalyDetection"
+ ]
+ }
+ },
+ "/multivariate/models/{modelId}/export": {
+ "parameters": [
+ {
+ "name": "modelId",
+ "description": "Model identifier.",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "get": {
+ "responses": {
+ "200": {
+ "description": "Export the multivariate model as a zip package.",
+ "headers": {
+ "content-type": {
+ "description": "application/zip",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "type": "object",
+ "format": "file"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get detection result": {
+ "$ref": "./examples/ExportModel.json"
+ }
+ },
+ "summary": "Export Multivariate Anomaly Detection Model as Zip file",
+ "description": "Export multivariate anomaly detection model based on modelId",
+ "operationId": "ExportModel",
+ "produces": [
+ "application/zip"
+ ],
+ "tags": [
+ "MultivariateAnomalyDetection"
+ ]
+ }
+ }
+ },
+ "x-ms-paths": {
+ "/multivariate/models?$skip=0&$top=5": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ModelList"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "summary": "List Multivariate Models",
+ "operationId": "ListMultivariateModel",
+ "parameters": [
+ {
+ "name": "$skip",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "default": 0,
+ "description": "$skip indicates how many models will be skipped."
+ },
+ {
+ "name": "$top",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "default": 5,
+ "description": "$top indicates how many models will be fetched."
+ }
+ ],
+ "tags": [
+ "MultivariateAnomalyDetection"
+ ],
+ "x-ms-examples": {
+ "List Multivariate model": {
+ "$ref": "./examples/ListModel.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "models"
+ },
+ "description": "List models of a subscription"
+ }
+ }
+ },
+ "definitions": {
+ "Model": {
+ "required": [
+ "createdTime",
+ "lastUpdatedTime",
+ "modelId"
+ ],
+ "properties": {
+ "modelId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Model identifier.",
+ "example": "45aad126-aafd-11ea-b8fb-d89ef3400c5f"
+ },
+ "createdTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Date and time (UTC) when the model was created.",
+ "example": "2020-06-30T00:00:00Z"
+ },
+ "lastUpdatedTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Date and time (UTC) when the model was last updated.",
+ "example": "2020-06-30T00:00:00Z"
+ },
+ "modelInfo": {
+ "description": "Training Status of the model.",
+ "$ref": "#/definitions/ModelInfo"
+ }
+ },
+ "type": "object",
+ "description": "Response of get model."
+ },
+ "ModelStatus": {
+ "type": "string",
+ "description": "Model training status.",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "modelStatus",
+ "modelAsString": false
+ },
+ "example": "READY",
+ "readOnly": true,
+ "enum": [
+ "CREATED",
+ "RUNNING",
+ "READY",
+ "FAILED"
+ ]
+ },
+ "ModelInfo": {
+ "required": [
+ "endTime",
+ "source",
+ "startTime"
+ ],
+ "properties": {
+ "slidingWindow": {
+ "type": "integer",
+ "description": "An optional field, indicates how many history points will be used to determine the anomaly score of one subsequent point.",
+ "example": 20
+ },
+ "alignPolicy": {
+ "description": "An optional field, since those multivariate need to be aligned in the same timestamp before starting the detection.",
+ "$ref": "#/definitions/AlignPolicy"
+ },
+ "source": {
+ "type": "string",
+ "description": "source file link of the input variables, each variable will be a csv with two columns, the first column will be timestamp, the second column will be value.Besides these variable csv files, an extra meta.json can be included in th zip file if you would like to rename a variable.Be default, the file name of the variable will be used as the variable name.",
+ "example": "https://multiadsample.blob.core.windows.net/data/sample_data_2_1000.zip?sp=rl&st=2020-12-04T06:03:47Z&se=2022-12-05T06:03:00Z&sv=2019-12-12&sr=b&sig=AZTbvZ7fcp3MdqGY%2FvGHJXJjUgjS4DneCGl7U5omq5c%3D"
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "require field, start time of data be used for generating multivariate anomaly detection model, should be data-time",
+ "example": "2019-04-01T00:00:00Z"
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "require field, end time of data be used for generating multivariate anomaly detection model, should be data-time",
+ "example": "2019-04-02T00:00:00Z"
+ },
+ "displayName": {
+ "type": "string",
+ "description": "optional field, name of the model",
+ "example": "DevOps-MultiAD",
+ "maxLength": 24
+ },
+ "status": {
+ "$ref": "#/definitions/ModelStatus"
+ },
+ "errors": {
+ "type": "array",
+ "description": "Error message when fails to create a model.",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ },
+ "diagnosticsInfo": {
+ "$ref": "#/definitions/DiagnosticsInfo",
+ "description": "Used for deep analysis model and variables"
+ }
+ },
+ "type": "object",
+ "description": "Train result of a model including status, errors and diagnose info for model and variables."
+ },
+ "ErrorResponse": {
+ "required": [
+ "code",
+ "message"
+ ],
+ "properties": {
+ "code": {
+ "type": "string",
+ "x-nullable": false,
+ "description": "The error Code"
+ },
+ "message": {
+ "type": "string",
+ "x-nullable": false,
+ "description": "A message explaining the error reported by the service."
+ }
+ },
+ "type": "object"
+ },
+ "DiagnosticsInfo": {
+ "properties": {
+ "modelState": {
+ "$ref": "#/definitions/ModelState"
+ },
+ "variableStates": {
+ "type": "array",
+ "example": [
+ {
+ "variable": "ad_input",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ad_on_timer_output",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ingestion",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "data_in_speed",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "cpu",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ad_series_init",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "F-Link_last_check_point_duration",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "data_out_speed",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ad_output",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ }
+ ],
+ "items": {
+ "$ref": "#/definitions/VariableState"
+ }
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "AlignPolicy": {
+ "properties": {
+ "alignMode": {
+ "type": "string",
+ "description": "An optional field, indicates how we align different variables into the same time-range which is required by the model.{Inner, Outer}",
+ "example": "Outer",
+ "enum": [
+ "Inner",
+ "Outer"
+ ],
+ "x-ms-enum": {
+ "name": "alignMode",
+ "modelAsString": false
+ }
+ },
+ "fillNAMethod": {
+ "type": "string",
+ "description": "An optional field, indicates how missed values will be filled with. Can not be set to NotFill, when alignMode is Outer.{Previous, Subsequent, Linear, Zero, Fix, NotFill}",
+ "example": "Linear",
+ "enum": [
+ "Previous",
+ "Subsequent",
+ "Linear",
+ "Zero",
+ "Pad",
+ "NotFill"
+ ],
+ "x-ms-enum": {
+ "name": "fillNAMethod",
+ "modelAsString": false
+ }
+ },
+ "paddingValue": {
+ "type": "integer",
+ "description": "optional field, only be useful if FillNAMethod is set to Pad."
+ }
+ },
+ "type": "object"
+ },
+ "ModelState": {
+ "properties": {
+ "epochIds": {
+ "type": "array",
+ "description": "Epoch id",
+ "example": [
+ 10,
+ 20,
+ 30,
+ 40,
+ 50,
+ 60,
+ 70,
+ 80,
+ 90,
+ 100
+ ],
+ "items": {
+ "type": "integer"
+ }
+ },
+ "trainLosses": {
+ "type": "array",
+ "example": [
+ 0.6291328072547913,
+ 0.1671326905488968,
+ 0.12354248017072678,
+ 0.10259664058685303,
+ 0.09584927558898926,
+ 0.09069952368736267,
+ 0.08686016499996185,
+ 0.08603022992610931,
+ 0.08287354558706284,
+ 0.08235538005828857
+ ],
+ "items": {
+ "type": "number"
+ }
+ },
+ "validationLosses": {
+ "type": "array",
+ "example": [
+ 0.9573427438735962,
+ 0.3182229995727539,
+ 0.3402646481990814,
+ 0.27653488516807556,
+ 0.2574014365673065,
+ 0.26928603649139404,
+ 0.2637230455875397,
+ 0.2590833008289337,
+ 0.2597166895866394,
+ 0.25973501801490784
+ ],
+ "items": {
+ "type": "number"
+ }
+ },
+ "latenciesInSeconds": {
+ "type": "array",
+ "example": [
+ 0.3398594856262207,
+ 0.3659665584564209,
+ 0.37360644340515137,
+ 0.35134077072143555,
+ 0.33703041076660156,
+ 0.31876277923583984,
+ 0.32833099365234375,
+ 0.3503587245941162,
+ 0.3080024719238281,
+ 0.3327946662902832
+ ],
+ "items": {
+ "type": "number"
+ }
+ }
+ },
+ "type": "object"
+ },
+ "VariableState": {
+ "properties": {
+ "variable": {
+ "type": "string",
+ "description": "Variable name."
+ },
+ "filledNARatio": {
+ "type": "number",
+ "description": "Merged NA ratio of a variable.",
+ "minimum": 0,
+ "maximum": 1
+ },
+ "effectiveCount": {
+ "type": "integer",
+ "description": "Effective time-series points count."
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Start time of a variable"
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "End time of a variable"
+ },
+ "errors": {
+ "type": "array",
+ "description": "Error message when parse variable",
+ "items": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "type": "object"
+ },
+ "ModelSnapshot": {
+ "required": [
+ "createdTime",
+ "lastUpdatedTime",
+ "modelId",
+ "status",
+ "variablesCount"
+ ],
+ "properties": {
+ "modelId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Model identifier.",
+ "example": "45aad126-aafd-11ea-b8fb-d89ef3400c5f"
+ },
+ "createdTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Date and time (UTC) when the model was created.",
+ "example": "2020-06-30T00:00:00Z"
+ },
+ "lastUpdatedTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Date and time (UTC) when the model was last updated.",
+ "example": "2020-06-30T00:00:00Z"
+ },
+ "status": {
+ "$ref": "#/definitions/ModelStatus"
+ },
+ "displayName": {
+ "type": "string",
+ "example": "DevOps-Test"
+ },
+ "variablesCount": {
+ "type": "integer",
+ "description": "Count of variables",
+ "example": 18
+ }
+ },
+ "type": "object"
+ },
+ "ModelList": {
+ "required": [
+ "currentCount",
+ "maxCount",
+ "models"
+ ],
+ "properties": {
+ "models": {
+ "type": "array",
+ "description": "List of models",
+ "items": {
+ "$ref": "#/definitions/ModelSnapshot"
+ }
+ },
+ "currentCount": {
+ "type": "integer",
+ "description": "Current count of trained multivariate models.",
+ "x-nullable": false,
+ "example": 10
+ },
+ "maxCount": {
+ "type": "integer",
+ "description": "Max number of models that can be trained for this subscription.",
+ "x-nullable": false,
+ "example": 20
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "next link to fetch more models"
+ }
+ },
+ "type": "object",
+ "description": "Response to the list models operation."
+ },
+ "DetectionRequest": {
+ "required": [
+ "source",
+ "endTime",
+ "startTime"
+ ],
+ "properties": {
+ "source": {
+ "type": "string",
+ "description": "source file link of the input variables, each variable will be a csv with two columns, the first column will be timestamp, the second column will be value.Besides these variable csv files, a extra meta.json can be included in th zip file if you would like to rename a variable.Be default, the file name of the variable will be used as the variable name. The variables used in detection should be consistent with variables in the model used for detection.",
+ "example": "https://multiadsample.blob.core.windows.net/data/sample_data_2_1000.zip?sp=rl&st=2020-12-04T06:03:47Z&se=2022-12-05T06:03:00Z&sv=2019-12-12&sr=b&sig=AZTbvZ7fcp3MdqGY%2FvGHJXJjUgjS4DneCGl7U5omq5c%3D"
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "A require field, start time of data be used for detection, should be date-time.",
+ "example": "2019-04-01T00:15:00Z"
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "A require field, end time of data be used for detection, should be date-time.",
+ "example": "2019-04-01T00:40:00Z"
+ }
+ },
+ "type": "object",
+ "description": "Request to submit a detection."
+ },
+ "DetectionResult": {
+ "required": [
+ "resultId",
+ "results",
+ "summary"
+ ],
+ "properties": {
+ "resultId": {
+ "type": "string",
+ "format": "uuid",
+ "example": "45aad126-aafd-11ea-b8fb-d89ef3400c5f"
+ },
+ "summary": {
+ "description": "Multivariate anomaly detection status",
+ "$ref": "#/definitions/DetectionResultSummary"
+ },
+ "results": {
+ "type": "array",
+ "description": "anomaly status of each timestamp",
+ "items": {
+ "$ref": "#/definitions/AnomalyState"
+ }
+ }
+ },
+ "type": "object",
+ "description": "Anomaly Response of one detection corresponds to a resultId."
+ },
+ "DetectionResultSummary": {
+ "required": [
+ "setupInfo",
+ "status"
+ ],
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Multivariate anomaly detection status",
+ "example": "READY",
+ "enum": [
+ "CREATED",
+ "RUNNING",
+ "READY",
+ "FAILED"
+ ],
+ "x-ms-enum": {
+ "name": "DetectionStatus",
+ "modelAsString": false
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Error message when creating or training model fails.",
+ "items": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ },
+ "variableStates": {
+ "type": "array",
+ "example": [
+ {
+ "variable": "ad_input",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ad_on_timer_output",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ad_output",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ad_series_init",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "cpu",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "data_in_speed",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "data_out_speed",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "F-Link_last_check_point_duration",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ingestion",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ }
+ ],
+ "items": {
+ "$ref": "#/definitions/VariableState"
+ }
+ },
+ "setupInfo": {
+ "description": "Request when creating the model.",
+ "$ref": "#/definitions/DetectionRequest"
+ }
+ },
+ "type": "object"
+ },
+ "AnomalyState": {
+ "required": [
+ "timestamp"
+ ],
+ "properties": {
+ "timestamp": {
+ "type": "string",
+ "format": "date-time",
+ "description": "timestamp",
+ "example": "2020-01-01T00:00:00Z"
+ },
+ "value": {
+ "$ref": "#/definitions/AnomalyValue"
+ },
+ "errors": {
+ "type": "array",
+ "description": "Error message when inference this timestamp",
+ "items": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "type": "object"
+ },
+ "AnomalyValue": {
+ "required": [
+ "isAnomaly",
+ "severity"
+ ],
+ "properties": {
+ "contributors": {
+ "type": "array",
+ "description": "If current timestamp is an anomaly, contributors will show potential root cause for thus anomaly. Contributors can help us understand why current timestamp has been detected as an anomaly.",
+ "items": {
+ "$ref": "#/definitions/AnomalyContributor"
+ }
+ },
+ "isAnomaly": {
+ "type": "boolean",
+ "description": "To indicate whether current timestamp is anomaly or not",
+ "example": true
+ },
+ "severity": {
+ "type": "number",
+ "description": "anomaly score of the current timestamp, the more significant an anomaly is, the higher the score will be",
+ "example": 0.8,
+ "minimum": 0,
+ "maximum": 1
+ },
+ "score": {
+ "type": "number",
+ "description": "anomaly score of the current timestamp, the more significant an anomaly is, the higher the score will be, score measures global significance",
+ "example": 0.1,
+ "minimum": 0,
+ "maximum": 2
+ }
+ },
+ "type": "object"
+ },
+ "AnomalyContributor": {
+ "properties": {
+ "contributionScore": {
+ "type": "number",
+ "description": "The higher the contribution score is, the more likely the variable to be the root cause of a anomaly.",
+ "example": 0.6,
+ "minimum": 0,
+ "maximum": 2
+ },
+ "variable": {
+ "type": "string",
+ "description": "Variable name of a contributor",
+ "example": "ingestion"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "parameters": {
+ "Endpoint": {
+ "name": "Endpoint",
+ "description": "Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus2.api.cognitive.microsoft.com).",
+ "x-ms-parameter-location": "client",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/ChangePointDetect.json b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/ChangePointDetect.json
new file mode 100644
index 000000000000..e8866dadda32
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/ChangePointDetect.json
@@ -0,0 +1,1569 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {
+ "series": [
+ {
+ "timestamp": "2017-01-01T06:45:00Z",
+ "value": 1639196
+ },
+ {
+ "timestamp": "2017-01-01T06:50:00Z",
+ "value": 1639290
+ },
+ {
+ "timestamp": "2017-01-01T06:55:00Z",
+ "value": 1667293
+ },
+ {
+ "timestamp": "2017-01-01T07:00:00Z",
+ "value": 1703130
+ },
+ {
+ "timestamp": "2017-01-01T07:05:00Z",
+ "value": 1650912
+ },
+ {
+ "timestamp": "2017-01-01T07:10:00Z",
+ "value": 1653596
+ },
+ {
+ "timestamp": "2017-01-01T07:15:00Z",
+ "value": 1653793
+ },
+ {
+ "timestamp": "2017-01-01T07:20:00Z",
+ "value": 1653795
+ },
+ {
+ "timestamp": "2017-01-01T07:25:00Z",
+ "value": 1663471
+ },
+ {
+ "timestamp": "2017-01-01T07:30:00Z",
+ "value": 1662358
+ },
+ {
+ "timestamp": "2017-01-01T07:35:00Z",
+ "value": 1664320
+ },
+ {
+ "timestamp": "2017-01-01T07:40:00Z",
+ "value": 1664942
+ },
+ {
+ "timestamp": "2017-01-01T07:45:00Z",
+ "value": 1664966
+ },
+ {
+ "timestamp": "2017-01-01T07:50:00Z",
+ "value": 1724271
+ },
+ {
+ "timestamp": "2017-01-01T07:55:00Z",
+ "value": 1678720
+ },
+ {
+ "timestamp": "2017-01-01T08:00:00Z",
+ "value": 1672536
+ },
+ {
+ "timestamp": "2017-01-01T08:05:00Z",
+ "value": 1672544
+ },
+ {
+ "timestamp": "2017-01-01T08:10:00Z",
+ "value": 1672364
+ },
+ {
+ "timestamp": "2017-01-01T08:15:00Z",
+ "value": 1672912
+ },
+ {
+ "timestamp": "2017-01-01T08:20:00Z",
+ "value": 1672736
+ },
+ {
+ "timestamp": "2017-01-01T08:25:00Z",
+ "value": 1672725
+ },
+ {
+ "timestamp": "2017-01-01T08:30:00Z",
+ "value": 1673247
+ },
+ {
+ "timestamp": "2017-01-01T08:35:00Z",
+ "value": 1673109
+ },
+ {
+ "timestamp": "2017-01-01T08:40:00Z",
+ "value": 1690088
+ },
+ {
+ "timestamp": "2017-01-01T08:45:00Z",
+ "value": 1703865
+ },
+ {
+ "timestamp": "2017-01-01T08:50:00Z",
+ "value": 1703865
+ },
+ {
+ "timestamp": "2017-01-01T08:55:00Z",
+ "value": 1786581
+ },
+ {
+ "timestamp": "2017-01-01T09:00:00Z",
+ "value": 1800945
+ },
+ {
+ "timestamp": "2017-01-01T09:05:00Z",
+ "value": 1800957
+ },
+ {
+ "timestamp": "2017-01-01T09:10:00Z",
+ "value": 1801191
+ },
+ {
+ "timestamp": "2017-01-01T09:15:00Z",
+ "value": 1801412
+ },
+ {
+ "timestamp": "2017-01-01T09:20:00Z",
+ "value": 1801621
+ },
+ {
+ "timestamp": "2017-01-01T09:25:00Z",
+ "value": 1801621
+ },
+ {
+ "timestamp": "2017-01-01T09:30:00Z",
+ "value": 1801654
+ },
+ {
+ "timestamp": "2017-01-01T09:35:00Z",
+ "value": 1802105
+ },
+ {
+ "timestamp": "2017-01-01T09:40:00Z",
+ "value": 1801800
+ },
+ {
+ "timestamp": "2017-01-01T09:45:00Z",
+ "value": 1803040
+ },
+ {
+ "timestamp": "2017-01-01T09:50:00Z",
+ "value": 1803672
+ },
+ {
+ "timestamp": "2017-01-01T09:55:00Z",
+ "value": 1803535
+ },
+ {
+ "timestamp": "2017-01-01T10:00:00Z",
+ "value": 1803541
+ },
+ {
+ "timestamp": "2017-01-01T10:05:00Z",
+ "value": 1803545
+ },
+ {
+ "timestamp": "2017-01-01T10:10:00Z",
+ "value": 1803599
+ },
+ {
+ "timestamp": "2017-01-01T10:15:00Z",
+ "value": 1803616
+ },
+ {
+ "timestamp": "2017-01-01T10:20:00Z",
+ "value": 1803619
+ },
+ {
+ "timestamp": "2017-01-01T10:25:00Z",
+ "value": 1809942
+ },
+ {
+ "timestamp": "2017-01-01T10:30:00Z",
+ "value": 1802720
+ },
+ {
+ "timestamp": "2017-01-01T10:35:00Z",
+ "value": 1802720
+ },
+ {
+ "timestamp": "2017-01-01T10:40:00Z",
+ "value": 1802888
+ },
+ {
+ "timestamp": "2017-01-01T10:45:00Z",
+ "value": 1809574
+ },
+ {
+ "timestamp": "2017-01-01T10:50:00Z",
+ "value": 1803896
+ },
+ {
+ "timestamp": "2017-01-01T10:55:00Z",
+ "value": 1803850
+ },
+ {
+ "timestamp": "2017-01-01T11:00:00Z",
+ "value": 1803854
+ },
+ {
+ "timestamp": "2017-01-01T11:05:00Z",
+ "value": 1803854
+ },
+ {
+ "timestamp": "2017-01-01T11:10:00Z",
+ "value": 1803797
+ },
+ {
+ "timestamp": "2017-01-01T11:15:00Z",
+ "value": 1803921
+ },
+ {
+ "timestamp": "2017-01-01T11:20:00Z",
+ "value": 1803933
+ },
+ {
+ "timestamp": "2017-01-01T11:25:00Z",
+ "value": 1804040
+ },
+ {
+ "timestamp": "2017-01-01T11:30:00Z",
+ "value": 1804044
+ },
+ {
+ "timestamp": "2017-01-01T11:35:00Z",
+ "value": 1804070
+ },
+ {
+ "timestamp": "2017-01-01T11:40:00Z",
+ "value": 1804070
+ },
+ {
+ "timestamp": "2017-01-01T11:45:00Z",
+ "value": 1804068
+ },
+ {
+ "timestamp": "2017-01-01T11:50:00Z",
+ "value": 1804073
+ },
+ {
+ "timestamp": "2017-01-01T11:55:00Z",
+ "value": 1804101
+ },
+ {
+ "timestamp": "2017-01-01T12:00:00Z",
+ "value": 1804674
+ },
+ {
+ "timestamp": "2017-01-01T12:05:00Z",
+ "value": 1804714
+ },
+ {
+ "timestamp": "2017-01-01T12:10:00Z",
+ "value": 1804730
+ },
+ {
+ "timestamp": "2017-01-01T12:15:00Z",
+ "value": 1804816
+ },
+ {
+ "timestamp": "2017-01-01T12:20:00Z",
+ "value": 1803996
+ },
+ {
+ "timestamp": "2017-01-01T12:25:00Z",
+ "value": 1803998
+ },
+ {
+ "timestamp": "2017-01-01T12:30:00Z",
+ "value": 1804015
+ },
+ {
+ "timestamp": "2017-01-01T12:35:00Z",
+ "value": 1804047
+ },
+ {
+ "timestamp": "2017-01-01T12:40:00Z",
+ "value": 1804050
+ },
+ {
+ "timestamp": "2017-01-01T12:45:00Z",
+ "value": 1804218
+ },
+ {
+ "timestamp": "2017-01-01T12:50:00Z",
+ "value": 1804217
+ },
+ {
+ "timestamp": "2017-01-01T12:55:00Z",
+ "value": 1804217
+ },
+ {
+ "timestamp": "2017-01-01T13:00:00Z",
+ "value": 1804205
+ },
+ {
+ "timestamp": "2017-01-01T13:05:00Z",
+ "value": 1804728
+ },
+ {
+ "timestamp": "2017-01-01T13:10:00Z",
+ "value": 1804748
+ },
+ {
+ "timestamp": "2017-01-01T13:15:00Z",
+ "value": 1805232
+ },
+ {
+ "timestamp": "2017-01-01T13:20:00Z",
+ "value": 1814121
+ },
+ {
+ "timestamp": "2017-01-01T13:25:00Z",
+ "value": 1806789
+ },
+ {
+ "timestamp": "2017-01-01T13:30:00Z",
+ "value": 1806119
+ },
+ {
+ "timestamp": "2017-01-01T13:35:00Z",
+ "value": 1806329
+ },
+ {
+ "timestamp": "2017-01-01T13:40:00Z",
+ "value": 1806454
+ },
+ {
+ "timestamp": "2017-01-01T13:45:00Z",
+ "value": 1806852
+ },
+ {
+ "timestamp": "2017-01-01T13:50:00Z",
+ "value": 1807347
+ },
+ {
+ "timestamp": "2017-01-01T13:55:00Z",
+ "value": 1812144
+ },
+ {
+ "timestamp": "2017-01-01T14:00:00Z",
+ "value": 1807418
+ },
+ {
+ "timestamp": "2017-01-01T14:05:00Z",
+ "value": 1807418
+ },
+ {
+ "timestamp": "2017-01-01T14:10:00Z",
+ "value": 1807432
+ },
+ {
+ "timestamp": "2017-01-01T14:15:00Z",
+ "value": 1808540
+ },
+ {
+ "timestamp": "2017-01-01T14:20:00Z",
+ "value": 1808541
+ },
+ {
+ "timestamp": "2017-01-01T14:25:00Z",
+ "value": 1807831
+ },
+ {
+ "timestamp": "2017-01-01T14:30:00Z",
+ "value": 1807852
+ },
+ {
+ "timestamp": "2017-01-01T14:35:00Z",
+ "value": 1807811
+ },
+ {
+ "timestamp": "2017-01-01T14:40:00Z",
+ "value": 2214285
+ },
+ {
+ "timestamp": "2017-01-01T14:45:00Z",
+ "value": 2215019
+ },
+ {
+ "timestamp": "2017-01-01T14:50:00Z",
+ "value": 2215329
+ },
+ {
+ "timestamp": "2017-01-01T14:55:00Z",
+ "value": 2215097
+ },
+ {
+ "timestamp": "2017-01-01T15:00:00Z",
+ "value": 2215129
+ },
+ {
+ "timestamp": "2017-01-01T15:05:00Z",
+ "value": 2215120
+ },
+ {
+ "timestamp": "2017-01-01T15:10:00Z",
+ "value": 2217056
+ },
+ {
+ "timestamp": "2017-01-01T15:15:00Z",
+ "value": 2217056
+ },
+ {
+ "timestamp": "2017-01-01T15:20:00Z",
+ "value": 2222126
+ },
+ {
+ "timestamp": "2017-01-01T15:25:00Z",
+ "value": 2226472
+ },
+ {
+ "timestamp": "2017-01-01T15:30:00Z",
+ "value": 2226722
+ },
+ {
+ "timestamp": "2017-01-01T15:35:00Z",
+ "value": 2226729
+ },
+ {
+ "timestamp": "2017-01-01T15:40:00Z",
+ "value": 2226735
+ },
+ {
+ "timestamp": "2017-01-01T15:45:00Z",
+ "value": 2226735
+ },
+ {
+ "timestamp": "2017-01-01T15:50:00Z",
+ "value": 2226735
+ },
+ {
+ "timestamp": "2017-01-01T15:55:00Z",
+ "value": 2226952
+ },
+ {
+ "timestamp": "2017-01-01T16:00:00Z",
+ "value": 2226962
+ },
+ {
+ "timestamp": "2017-01-01T16:05:00Z",
+ "value": 2649337
+ },
+ {
+ "timestamp": "2017-01-01T16:10:00Z",
+ "value": 2092796
+ },
+ {
+ "timestamp": "2017-01-01T16:15:00Z",
+ "value": 2092839
+ },
+ {
+ "timestamp": "2017-01-01T16:20:00Z",
+ "value": 2092940
+ },
+ {
+ "timestamp": "2017-01-01T16:25:00Z",
+ "value": 2092940
+ },
+ {
+ "timestamp": "2017-01-01T16:30:00Z",
+ "value": 2092965
+ },
+ {
+ "timestamp": "2017-01-01T16:35:00Z",
+ "value": 2092979
+ },
+ {
+ "timestamp": "2017-01-01T16:40:00Z",
+ "value": 2095588
+ },
+ {
+ "timestamp": "2017-01-01T16:45:00Z",
+ "value": 2099586
+ },
+ {
+ "timestamp": "2017-01-01T16:50:00Z",
+ "value": 2102981
+ },
+ {
+ "timestamp": "2017-01-01T16:55:00Z",
+ "value": 2108053
+ },
+ {
+ "timestamp": "2017-01-01T17:00:00Z",
+ "value": 2107907
+ },
+ {
+ "timestamp": "2017-01-01T17:05:00Z",
+ "value": 2108241
+ },
+ {
+ "timestamp": "2017-01-01T17:10:00Z",
+ "value": 2100321
+ },
+ {
+ "timestamp": "2017-01-01T17:15:00Z",
+ "value": 2100448
+ },
+ {
+ "timestamp": "2017-01-01T17:20:00Z",
+ "value": 2100483
+ },
+ {
+ "timestamp": "2017-01-01T17:25:00Z",
+ "value": 2103042
+ },
+ {
+ "timestamp": "2017-01-01T17:30:00Z",
+ "value": 2103037
+ },
+ {
+ "timestamp": "2017-01-01T17:35:00Z",
+ "value": 2103040
+ },
+ {
+ "timestamp": "2017-01-01T17:40:00Z",
+ "value": 2103054
+ },
+ {
+ "timestamp": "2017-01-01T17:45:00Z",
+ "value": 2103058
+ },
+ {
+ "timestamp": "2017-01-01T17:50:00Z",
+ "value": 1830757
+ },
+ {
+ "timestamp": "2017-01-01T17:55:00Z",
+ "value": 1830855
+ },
+ {
+ "timestamp": "2017-01-01T18:00:00Z",
+ "value": 1831495
+ },
+ {
+ "timestamp": "2017-01-01T18:05:00Z",
+ "value": 1831463
+ },
+ {
+ "timestamp": "2017-01-01T18:10:00Z",
+ "value": 1831963
+ },
+ {
+ "timestamp": "2017-01-01T18:15:00Z",
+ "value": 1832046
+ },
+ {
+ "timestamp": "2017-01-01T18:20:00Z",
+ "value": 1832070
+ },
+ {
+ "timestamp": "2017-01-01T18:25:00Z",
+ "value": 1835511
+ },
+ {
+ "timestamp": "2017-01-01T18:30:00Z",
+ "value": 1835265
+ },
+ {
+ "timestamp": "2017-01-01T18:35:00Z",
+ "value": 1835481
+ },
+ {
+ "timestamp": "2017-01-01T18:40:00Z",
+ "value": 1835578
+ },
+ {
+ "timestamp": "2017-01-01T18:45:00Z",
+ "value": 1835611
+ },
+ {
+ "timestamp": "2017-01-01T18:50:00Z",
+ "value": 1836314
+ },
+ {
+ "timestamp": "2017-01-01T18:55:00Z",
+ "value": 1836369
+ },
+ {
+ "timestamp": "2017-01-01T19:00:00Z",
+ "value": 1837280
+ },
+ {
+ "timestamp": "2017-01-01T19:05:00Z",
+ "value": 1842939
+ },
+ {
+ "timestamp": "2017-01-01T19:10:00Z",
+ "value": 1843126
+ },
+ {
+ "timestamp": "2017-01-01T19:15:00Z",
+ "value": 1845840
+ },
+ {
+ "timestamp": "2017-01-01T19:20:00Z",
+ "value": 1842444
+ },
+ {
+ "timestamp": "2017-01-01T19:25:00Z",
+ "value": 1839891
+ },
+ {
+ "timestamp": "2017-01-01T19:30:00Z",
+ "value": 1839875
+ },
+ {
+ "timestamp": "2017-01-01T19:35:00Z",
+ "value": 1839870
+ },
+ {
+ "timestamp": "2017-01-01T19:40:00Z",
+ "value": 1840090
+ },
+ {
+ "timestamp": "2017-01-01T19:45:00Z",
+ "value": 1840479
+ },
+ {
+ "timestamp": "2017-01-01T19:50:00Z",
+ "value": 1840479
+ },
+ {
+ "timestamp": "2017-01-01T19:55:00Z",
+ "value": 1840482
+ },
+ {
+ "timestamp": "2017-01-01T20:00:00Z",
+ "value": 1841522
+ },
+ {
+ "timestamp": "2017-01-01T20:05:00Z",
+ "value": 1841836
+ },
+ {
+ "timestamp": "2017-01-01T20:10:00Z",
+ "value": 1842377
+ },
+ {
+ "timestamp": "2017-01-01T20:15:00Z",
+ "value": 1842388
+ },
+ {
+ "timestamp": "2017-01-01T20:20:00Z",
+ "value": 1842489
+ },
+ {
+ "timestamp": "2017-01-01T20:25:00Z",
+ "value": 1842489
+ },
+ {
+ "timestamp": "2017-01-01T20:30:00Z",
+ "value": 1842489
+ },
+ {
+ "timestamp": "2017-01-01T20:35:00Z",
+ "value": 1842496
+ },
+ {
+ "timestamp": "2017-01-01T20:40:00Z",
+ "value": 1842689
+ },
+ {
+ "timestamp": "2017-01-01T20:45:00Z",
+ "value": 1843117
+ },
+ {
+ "timestamp": "2017-01-01T20:50:00Z",
+ "value": 1843116
+ },
+ {
+ "timestamp": "2017-01-01T20:55:00Z",
+ "value": 1843227
+ },
+ {
+ "timestamp": "2017-01-01T21:00:00Z",
+ "value": 1843138
+ },
+ {
+ "timestamp": "2017-01-01T21:05:00Z",
+ "value": 1843141
+ },
+ {
+ "timestamp": "2017-01-01T21:10:00Z",
+ "value": 1843310
+ },
+ {
+ "timestamp": "2017-01-01T21:15:00Z",
+ "value": 1843310
+ },
+ {
+ "timestamp": "2017-01-01T21:20:00Z",
+ "value": 1843507
+ },
+ {
+ "timestamp": "2017-01-01T21:25:00Z",
+ "value": 1843953
+ },
+ {
+ "timestamp": "2017-01-01T21:30:00Z",
+ "value": 1844778
+ },
+ {
+ "timestamp": "2017-01-01T21:35:00Z",
+ "value": 1843918
+ },
+ {
+ "timestamp": "2017-01-01T21:40:00Z",
+ "value": 1882692
+ },
+ {
+ "timestamp": "2017-01-01T21:45:00Z",
+ "value": 1974888
+ },
+ {
+ "timestamp": "2017-01-01T21:50:00Z",
+ "value": 2157136
+ },
+ {
+ "timestamp": "2017-01-01T21:55:00Z",
+ "value": 2154987
+ },
+ {
+ "timestamp": "2017-01-01T22:00:00Z",
+ "value": 2155664
+ },
+ {
+ "timestamp": "2017-01-01T22:05:00Z",
+ "value": 2155660
+ },
+ {
+ "timestamp": "2017-01-01T22:10:00Z",
+ "value": 2155824
+ },
+ {
+ "timestamp": "2017-01-01T22:15:00Z",
+ "value": 2155824
+ },
+ {
+ "timestamp": "2017-01-01T22:20:00Z",
+ "value": 2156329
+ },
+ {
+ "timestamp": "2017-01-01T22:25:00Z",
+ "value": 2156479
+ },
+ {
+ "timestamp": "2017-01-01T22:30:00Z",
+ "value": 2165269
+ },
+ {
+ "timestamp": "2017-01-01T22:35:00Z",
+ "value": 2165433
+ },
+ {
+ "timestamp": "2017-01-01T22:40:00Z",
+ "value": 2165739
+ },
+ {
+ "timestamp": "2017-01-01T22:45:00Z",
+ "value": 2165931
+ },
+ {
+ "timestamp": "2017-01-01T22:50:00Z",
+ "value": 2165928
+ },
+ {
+ "timestamp": "2017-01-01T22:55:00Z",
+ "value": 2165989
+ },
+ {
+ "timestamp": "2017-01-01T23:00:00Z",
+ "value": 2228961
+ },
+ {
+ "timestamp": "2017-01-01T23:05:00Z",
+ "value": 2228961
+ },
+ {
+ "timestamp": "2017-01-01T23:10:00Z",
+ "value": 2228961
+ },
+ {
+ "timestamp": "2017-01-01T23:15:00Z",
+ "value": 2485802
+ },
+ {
+ "timestamp": "2017-01-01T23:20:00Z",
+ "value": 2485802
+ },
+ {
+ "timestamp": "2017-01-01T23:25:00Z",
+ "value": 2486021
+ },
+ {
+ "timestamp": "2017-01-01T23:30:00Z",
+ "value": 2485293
+ },
+ {
+ "timestamp": "2017-01-01T23:35:00Z",
+ "value": 2485293
+ },
+ {
+ "timestamp": "2017-01-01T23:40:00Z",
+ "value": 2485324
+ },
+ {
+ "timestamp": "2017-01-01T23:45:00Z",
+ "value": 2489142
+ },
+ {
+ "timestamp": "2017-01-01T23:50:00Z",
+ "value": 2526312
+ },
+ {
+ "timestamp": "2017-01-01T23:55:00Z",
+ "value": 2526313
+ },
+ {
+ "timestamp": "2017-01-02T00:00:00Z",
+ "value": 2526314
+ },
+ {
+ "timestamp": "2017-01-02T00:05:00Z",
+ "value": 2526324
+ },
+ {
+ "timestamp": "2017-01-02T00:10:00Z",
+ "value": 2526325
+ },
+ {
+ "timestamp": "2017-01-02T00:15:00Z",
+ "value": 2526205
+ },
+ {
+ "timestamp": "2017-01-02T00:20:00Z",
+ "value": 2526226
+ },
+ {
+ "timestamp": "2017-01-02T00:25:00Z",
+ "value": 2526475
+ },
+ {
+ "timestamp": "2017-01-02T00:30:00Z",
+ "value": 2526471
+ },
+ {
+ "timestamp": "2017-01-02T00:35:00Z",
+ "value": 2526471
+ },
+ {
+ "timestamp": "2017-01-02T00:40:00Z",
+ "value": 2526534
+ },
+ {
+ "timestamp": "2017-01-02T00:45:00Z",
+ "value": 2526646
+ },
+ {
+ "timestamp": "2017-01-02T00:50:00Z",
+ "value": 2526646
+ },
+ {
+ "timestamp": "2017-01-02T00:55:00Z",
+ "value": 2526648
+ },
+ {
+ "timestamp": "2017-01-02T01:00:00Z",
+ "value": 2526658
+ },
+ {
+ "timestamp": "2017-01-02T01:05:00Z",
+ "value": 2526771
+ },
+ {
+ "timestamp": "2017-01-02T01:10:00Z",
+ "value": 2526773
+ },
+ {
+ "timestamp": "2017-01-02T01:15:00Z",
+ "value": 2526793
+ },
+ {
+ "timestamp": "2017-01-02T01:20:00Z",
+ "value": 2527010
+ },
+ {
+ "timestamp": "2017-01-02T01:25:00Z",
+ "value": 2527031
+ },
+ {
+ "timestamp": "2017-01-02T01:30:00Z",
+ "value": 3178096
+ },
+ {
+ "timestamp": "2017-01-02T01:35:00Z",
+ "value": 3196305
+ },
+ {
+ "timestamp": "2017-01-02T01:40:00Z",
+ "value": 3196202
+ },
+ {
+ "timestamp": "2017-01-02T01:45:00Z",
+ "value": 3196202
+ },
+ {
+ "timestamp": "2017-01-02T01:50:00Z",
+ "value": 3196205
+ },
+ {
+ "timestamp": "2017-01-02T01:55:00Z",
+ "value": 3229232
+ },
+ {
+ "timestamp": "2017-01-02T02:00:00Z",
+ "value": 3230463
+ },
+ {
+ "timestamp": "2017-01-02T02:05:00Z",
+ "value": 3230468
+ },
+ {
+ "timestamp": "2017-01-02T02:10:00Z",
+ "value": 3230468
+ },
+ {
+ "timestamp": "2017-01-02T02:15:00Z",
+ "value": 3230468
+ },
+ {
+ "timestamp": "2017-01-02T02:20:00Z",
+ "value": 3230470
+ },
+ {
+ "timestamp": "2017-01-02T02:25:00Z",
+ "value": 3230467
+ },
+ {
+ "timestamp": "2017-01-02T02:30:00Z",
+ "value": 3230506
+ },
+ {
+ "timestamp": "2017-01-02T02:35:00Z",
+ "value": 3231536
+ },
+ {
+ "timestamp": "2017-01-02T02:40:00Z",
+ "value": 3230723
+ },
+ {
+ "timestamp": "2017-01-02T02:45:00Z",
+ "value": 3230727
+ },
+ {
+ "timestamp": "2017-01-02T02:50:00Z",
+ "value": 3230727
+ },
+ {
+ "timestamp": "2017-01-02T02:55:00Z",
+ "value": 3230727
+ },
+ {
+ "timestamp": "2017-01-02T03:00:00Z",
+ "value": 3231880
+ },
+ {
+ "timestamp": "2017-01-02T03:05:00Z",
+ "value": 3232283
+ },
+ {
+ "timestamp": "2017-01-02T03:10:00Z",
+ "value": 3232283
+ },
+ {
+ "timestamp": "2017-01-02T03:15:00Z",
+ "value": 3232283
+ },
+ {
+ "timestamp": "2017-01-02T03:20:00Z",
+ "value": 3232325
+ },
+ {
+ "timestamp": "2017-01-02T03:25:00Z",
+ "value": 3232323
+ },
+ {
+ "timestamp": "2017-01-02T03:30:00Z",
+ "value": 3232327
+ },
+ {
+ "timestamp": "2017-01-02T03:35:00Z",
+ "value": 3232340
+ },
+ {
+ "timestamp": "2017-01-02T03:40:00Z",
+ "value": 3232713
+ },
+ {
+ "timestamp": "2017-01-02T03:45:00Z",
+ "value": 3232729
+ },
+ {
+ "timestamp": "2017-01-02T03:50:00Z",
+ "value": 3232756
+ },
+ {
+ "timestamp": "2017-01-02T03:55:00Z",
+ "value": 3233500
+ },
+ {
+ "timestamp": "2017-01-02T04:00:00Z",
+ "value": 3233500
+ },
+ {
+ "timestamp": "2017-01-02T04:05:00Z",
+ "value": 3233500
+ }
+ ],
+ "granularity": "minutely",
+ "customInterval": 5,
+ "stableTrendWindow": 10,
+ "threshold": 0.99,
+ "period": 0
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "period": 0,
+ "confidenceScores": [
+ 0.11841763735063232,
+ 0.014857199927548581,
+ 0.0887032374955278,
+ 0.07430314751946857,
+ 0.059903057543409355,
+ 0.04132288981790399,
+ 0.022742722092391268,
+ 0.0005683208474757854,
+ 0.0216060803974397,
+ 0.053248991089971616,
+ 0.08489190178249614,
+ 0.04322511558132514,
+ 0.085336620199234,
+ 0.05876047041512903,
+ 0.02673755265447302,
+ 0.005032027060762012,
+ 0.031323171543775764,
+ 0.06299774949197792,
+ 0.08944723025337244,
+ 0.11523169864554421,
+ 0.14288453512268834,
+ 0.001592562559717675,
+ 0.32637788222282893,
+ 0,
+ 7.37310752217245e-15,
+ 2.211932256651735e-14,
+ 1,
+ 0.015697015891758138,
+ 0.01242773215043403,
+ 0.016188579169534697,
+ 0.019537751864826272,
+ 0.022506917491993753,
+ 0.01885762668253081,
+ 0.016253355310429398,
+ 0.017227483829906676,
+ 0.023236706002118527,
+ 0.03906277743439327,
+ 0.0354134866249377,
+ 0.037084294769315296,
+ 0.038248426822850935,
+ 0.050274427573818385,
+ 0.046815140298421175,
+ 0.043292518511668716,
+ 0.041353259508804745,
+ 0.038242312045861385,
+ 0.0346880230034313,
+ 0.032717096744889713,
+ 0.033026212895129546,
+ 0.031055286636580585,
+ 0.0275326648498355,
+ 0.023883374040372555,
+ 0.021564107969369743,
+ 0.018706498551854727,
+ 0.01543721481052325,
+ 0.015176320358565887,
+ 0.011527029549110314,
+ 0.008004407762357859,
+ 0.004355116952902286,
+ 0.0007058261434393403,
+ 0.0030701336887340946,
+ 0.006592755475479178,
+ 0.010147044517909256,
+ 0.013701333560339335,
+ 0.016780613767597707,
+ 0.020366570065705403,
+ 0.024015860875168354,
+ 0.02757014991759106,
+ 0.03033275756808058,
+ 0.03068865378707081,
+ 0.03395793752839492,
+ 0.03760722833785786,
+ 0.04122485189164318,
+ 0.030433874112103007,
+ 0.032816474694461056,
+ 0.03602242392443729,
+ 0.03960838022253762,
+ 0.04268766042980336,
+ 0.04633695123926631,
+ 0.0346592903007527,
+ 0.010219725324164698,
+ 0.007218892441326965,
+ 0.006909776291079754,
+ 0.000049463551460760754,
+ 0.0016047901503119819,
+ 0.01042121060065547,
+ 0.009020294944303705,
+ 0.005371004134840759,
+ 0.0021650549048718984,
+ 0.010517653997227793,
+ 0.0075017083013172925,
+ 0.00385241749186172,
+ 0.0008681390516288423,
+ 0.019005920148370017,
+ 0.015388296594592068,
+ 0.12583612799160215,
+ 1,
+ 0.005055878353042495,
+ 0.007613932468790628,
+ 0.011913685646822731,
+ 0.0166567804043268,
+ 0.015351429327405014,
+ 0.034309821169245976,
+ 0.0292817211106433,
+ 0.02425362105202589,
+ 0.019225520993423218,
+ 0.01419742093482055,
+ 0.00916932087621788,
+ 0.004141220817600464,
+ 0.0008868792410022057,
+ 0.0059149792996048755,
+ 0.010943079358207547,
+ 0.015971179416810213,
+ 0.02099927947542763,
+ 1,
+ 0.11533376425564247,
+ 0.1207645081246342,
+ 0.025174230145423273,
+ 0.09422487163021387,
+ 0.08417070843230404,
+ 0.07411654523437947,
+ 0.06406238203646963,
+ 0.0540082188385598,
+ 0.04395405564064997,
+ 0.03500824639144218,
+ 0.024954083193532338,
+ 0.014899919995622513,
+ 0.004845756797712681,
+ 0.005208406400211895,
+ 0.015262569598121728,
+ 0.025316732796031558,
+ 0.03537089599394139,
+ 0.045425059191865964,
+ 0.05145748091871777,
+ 1,
+ 0.011663506282381296,
+ 0.0043856580970499884,
+ 0.002892190088273945,
+ 0.01017003827359788,
+ 0.01744788645892181,
+ 0.024725734644253115,
+ 0.03200358282957705,
+ 0.03928143101490098,
+ 0.046559279200224915,
+ 0.05383712738555622,
+ 0.060069956133518614,
+ 0.0450857235774741,
+ 0.050621872700536176,
+ 0.029050850963546225,
+ 0.045689493056171517,
+ 0.0385699811492357,
+ 0.03179880905474635,
+ 0.03082274474926925,
+ 0.03586345902254038,
+ 0.028585610837209074,
+ 0.021402764418918006,
+ 0.04705886213832124,
+ 0.049724532235770696,
+ 0.05957866937203304,
+ 0.052649160999162954,
+ 0.045371312813839014,
+ 0.03809346462851508,
+ 0.030815616443183775,
+ 0.023537768257859845,
+ 0.01945831289597576,
+ 0.012180464710644455,
+ 0.00490261652532052,
+ 0.002153560870260057,
+ 0.0033196287098028916,
+ 0.0029244412792105113,
+ 0.0043217396504358,
+ 0.010934575466529664,
+ 0.018117421884820732,
+ 0.02267188608187652,
+ 0.027321352045957807,
+ 0.03459920023128174,
+ 0.03563859904812146,
+ 0.02990120514994264,
+ 0.03607069938654979,
+ 0.017223061637835352,
+ 7.37310752217245e-15,
+ 1.47462150443449e-14,
+ 1,
+ 0.046440552438977135,
+ 0.012233652454378385,
+ 0.017033155644526038,
+ 0.05136672465183527,
+ 0.06970832954194527,
+ 0.09929181019761117,
+ 0.11281999222473732,
+ 0.11039622919405537,
+ 0.08125609011787617,
+ 0.05661270134791935,
+ 0.028264243663680723,
+ 0.005974323576610399,
+ 0.038471191754617544,
+ 0,
+ 0,
+ 0,
+ 0.020288532128574968,
+ 0.005041879493223223,
+ 0.009223088216122232,
+ 0.009332792637570532,
+ 0.024579445272937026,
+ 0.03289096891488949,
+ 0.050695883419617865,
+ 1,
+ 0.000748013913075547,
+ 0.002186373999917361,
+ 0.0009330173541465358,
+ 0.00032033929162428933,
+ 0.0012886906362965138,
+ 0.002542047282052593,
+ 0.0007963481454318109,
+ 0.0004886757560166365,
+ 0.0016470306347398486,
+ 0.001063686451208582,
+ 0.0011980222832366648,
+ 0.00008700161821178273,
+ 0.0013086910082902394,
+ 0.0022770423529624643,
+ 0.000016333637160404937,
+ 0.0012053557529180517,
+ 0.0018570345408140537,
+ 0.0037297360397815314,
+ 0.003109724507563151,
+ 0.22869458705263188,
+ 0.2293374323429407,
+ 0.1140021204394844,
+ 0.0012381896969537412,
+ 0.11340677603264777,
+ 1,
+ 0.011793249472519423,
+ 0.008293225072094536,
+ 0.00469819890465153,
+ 0.0010715054815308995,
+ 0.0025551879416044767,
+ 0.006118546853369862,
+ 0.008605219072110835,
+ 0.0053601180131874334,
+ 0.008860142413597574,
+ 0.01248683583673295,
+ 0.01611352925985358,
+ 0.005878587160222206,
+ 0.013145429690188892,
+ 0.022280640305150038,
+ 0.01865394688201466,
+ 0.015027253458894031,
+ 0.012033905149325846,
+ 0.009040556839742916,
+ 0.005445530672299909,
+ 0.0018505045048569009,
+ 0.001744521662600853,
+ 0.005339547830043862,
+ 0.008760404091259945,
+ 0.012181260352490777,
+ 0.009902010591734853,
+ 0.007622760830993676
+ ],
+ "isChangePoint": [
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/DeleteModel.json b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/DeleteModel.json
new file mode 100644
index 000000000000..3ef10b1e0a2f
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/DeleteModel.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "modelId": "45aad126-aafd-11ea-b8fb-d89ef3400c5f",
+ "body": {}
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/DetectAnomaly.json b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/DetectAnomaly.json
new file mode 100644
index 000000000000..105d392901b6
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/DetectAnomaly.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "modelId": "45aad126-aafd-11ea-b8fb-d89ef3400c5f",
+ "detectionRequest": {
+ "source": "https://multiadsample.blob.core.windows.net/data/sample_data_2_1000.zip?sp=rl&st=2020-12-04T06:03:47Z&se=2022-12-05T06:03:00Z&sv=2019-12-12&sr=b&sig=AZTbvZ7fcp3MdqGY%2FvGHJXJjUgjS4DneCGl7U5omq5c%3D",
+ "startTime": "2019-04-01T00:15:00Z",
+ "endTime": "2019-04-01T00:40:00Z"
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "Location": "{Endpoint}/anomalydetector/v1.1-preview/multivariate/results/{resultId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/EntireDetect.json b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/EntireDetect.json
new file mode 100644
index 000000000000..648f4393922e
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/EntireDetect.json
@@ -0,0 +1,513 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {
+ "series": [
+ {
+ "timestamp": "1972-01-01T00:00:00Z",
+ "value": 826
+ },
+ {
+ "timestamp": "1972-02-01T00:00:00Z",
+ "value": 799
+ },
+ {
+ "timestamp": "1972-03-01T00:00:00Z",
+ "value": 890
+ },
+ {
+ "timestamp": "1972-04-01T00:00:00Z",
+ "value": 900
+ },
+ {
+ "timestamp": "1972-05-01T00:00:00Z",
+ "value": 961
+ },
+ {
+ "timestamp": "1972-06-01T00:00:00Z",
+ "value": 935
+ },
+ {
+ "timestamp": "1972-07-01T00:00:00Z",
+ "value": 894
+ },
+ {
+ "timestamp": "1972-08-01T00:00:00Z",
+ "value": 855
+ },
+ {
+ "timestamp": "1972-09-01T00:00:00Z",
+ "value": 809
+ },
+ {
+ "timestamp": "1972-10-01T00:00:00Z",
+ "value": 810
+ },
+ {
+ "timestamp": "1972-11-01T00:00:00Z",
+ "value": 766
+ },
+ {
+ "timestamp": "1972-12-01T00:00:00Z",
+ "value": 805
+ },
+ {
+ "timestamp": "1973-01-01T00:00:00Z",
+ "value": 821
+ },
+ {
+ "timestamp": "1973-02-01T00:00:00Z",
+ "value": 773
+ },
+ {
+ "timestamp": "1973-03-01T00:00:00Z",
+ "value": 883
+ },
+ {
+ "timestamp": "1973-04-01T00:00:00Z",
+ "value": 898
+ },
+ {
+ "timestamp": "1973-05-01T00:00:00Z",
+ "value": 957
+ },
+ {
+ "timestamp": "1973-06-01T00:00:00Z",
+ "value": 924
+ },
+ {
+ "timestamp": "1973-07-01T00:00:00Z",
+ "value": 881
+ },
+ {
+ "timestamp": "1973-08-01T00:00:00Z",
+ "value": 837
+ },
+ {
+ "timestamp": "1973-09-01T00:00:00Z",
+ "value": 784
+ },
+ {
+ "timestamp": "1973-10-01T00:00:00Z",
+ "value": 791
+ },
+ {
+ "timestamp": "1973-11-01T00:00:00Z",
+ "value": 760
+ },
+ {
+ "timestamp": "1973-12-01T00:00:00Z",
+ "value": 802
+ },
+ {
+ "timestamp": "1974-01-01T00:00:00Z",
+ "value": 828
+ },
+ {
+ "timestamp": "1974-02-01T00:00:00Z",
+ "value": 1030
+ },
+ {
+ "timestamp": "1974-03-01T00:00:00Z",
+ "value": 889
+ },
+ {
+ "timestamp": "1974-04-01T00:00:00Z",
+ "value": 902
+ },
+ {
+ "timestamp": "1974-05-01T00:00:00Z",
+ "value": 969
+ },
+ {
+ "timestamp": "1974-06-01T00:00:00Z",
+ "value": 947
+ },
+ {
+ "timestamp": "1974-07-01T00:00:00Z",
+ "value": 908
+ },
+ {
+ "timestamp": "1974-08-01T00:00:00Z",
+ "value": 867
+ },
+ {
+ "timestamp": "1974-09-01T00:00:00Z",
+ "value": 815
+ },
+ {
+ "timestamp": "1974-10-01T00:00:00Z",
+ "value": 812
+ },
+ {
+ "timestamp": "1974-11-01T00:00:00Z",
+ "value": 773
+ },
+ {
+ "timestamp": "1974-12-01T00:00:00Z",
+ "value": 813
+ },
+ {
+ "timestamp": "1975-01-01T00:00:00Z",
+ "value": 834
+ },
+ {
+ "timestamp": "1975-02-01T00:00:00Z",
+ "value": 782
+ },
+ {
+ "timestamp": "1975-03-01T00:00:00Z",
+ "value": 892
+ },
+ {
+ "timestamp": "1975-04-01T00:00:00Z",
+ "value": 903
+ },
+ {
+ "timestamp": "1975-05-01T00:00:00Z",
+ "value": 966
+ },
+ {
+ "timestamp": "1975-06-01T00:00:00Z",
+ "value": 937
+ },
+ {
+ "timestamp": "1975-07-01T00:00:00Z",
+ "value": 896
+ },
+ {
+ "timestamp": "1975-08-01T00:00:00Z",
+ "value": 858
+ },
+ {
+ "timestamp": "1975-09-01T00:00:00Z",
+ "value": 817
+ },
+ {
+ "timestamp": "1975-10-01T00:00:00Z",
+ "value": 827
+ },
+ {
+ "timestamp": "1975-11-01T00:00:00Z",
+ "value": 797
+ },
+ {
+ "timestamp": "1975-12-01T00:00:00Z",
+ "value": 843
+ }
+ ],
+ "maxAnomalyRatio": 0.25,
+ "sensitivity": 95,
+ "granularity": "monthly"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "isNegativeAnomaly": [
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false
+ ],
+ "expectedValues": [
+ 827.79409082439679,
+ 798.91337746719273,
+ 888.60584318071892,
+ 900.5606407986661,
+ 962.83894263783043,
+ 933.25916063069542,
+ 891.07841047996658,
+ 856.17816013636968,
+ 809.89872279089411,
+ 807.375129007505,
+ 764.31966824485175,
+ 803.933498594564,
+ 823.59006208830579,
+ 794.09056413342876,
+ 883.164245249282,
+ 894.84190006909535,
+ 956.84305911012575,
+ 927.62850551901136,
+ 885.812983784303,
+ 851.6424797402517,
+ 806.0927886943216,
+ 804.68268153120289,
+ 762.74070738882,
+ 804.0251702513732,
+ 825.35236625795585,
+ 798.04041887249764,
+ 889.30165055776979,
+ 902.4226124345937,
+ 965.867078532635,
+ 937.32004957366951,
+ 896.17205247111019,
+ 862.00873684136559,
+ 816.46623420974231,
+ 814.42977455247092,
+ 771.8614479159354,
+ 811.859271346729,
+ 831.89982792155206,
+ 802.947544797165,
+ 892.56844074350829,
+ 904.54882145338092,
+ 966.85270638447071,
+ 937.31683910030426,
+ 895.180003672544,
+ 860.36495963566347,
+ 814.17072859690427,
+ 811.9054862686213,
+ 769.10837696107421,
+ 809.23280846597038
+ ],
+ "isPositiveAnomaly": [
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false
+ ],
+ "lowerMargins": [
+ 41.389704541219835,
+ 39.945668873359637,
+ 44.430292159035943,
+ 45.028032039933308,
+ 48.14194713189152,
+ 46.662958031534771,
+ 44.553920523998329,
+ 42.808908006818484,
+ 40.494936139544706,
+ 40.368756450375251,
+ 38.215983412242586,
+ 40.196674929728196,
+ 41.179503104415289,
+ 39.704528206671441,
+ 44.1582122624641,
+ 44.742095003454772,
+ 47.842152955506293,
+ 46.381425275950569,
+ 44.290649189215145,
+ 42.582123987012579,
+ 40.30463943471608,
+ 40.234134076560146,
+ 38.137035369441,
+ 40.201258512568664,
+ 41.267618312897795,
+ 39.902020943624883,
+ 44.465082527888491,
+ 45.121130621729684,
+ 48.293353926631752,
+ 46.866002478683477,
+ 44.808602623555508,
+ 43.100436842068284,
+ 40.823311710487111,
+ 40.721488727623544,
+ 38.593072395796774,
+ 40.592963567336447,
+ 41.5949913960776,
+ 40.147377239858251,
+ 44.628422037175412,
+ 45.227441072669045,
+ 48.34263531922354,
+ 46.865841955015213,
+ 44.759000183627194,
+ 43.018247981783169,
+ 40.708536429845211,
+ 40.595274313431062,
+ 38.455418848053711,
+ 40.461640423298519
+ ],
+ "period": 12,
+ "upperMargins": [
+ 41.389704541219835,
+ 39.945668873359637,
+ 44.430292159035943,
+ 45.028032039933308,
+ 48.14194713189152,
+ 46.662958031534771,
+ 44.553920523998329,
+ 42.808908006818484,
+ 40.494936139544706,
+ 40.368756450375251,
+ 38.215983412242586,
+ 40.196674929728196,
+ 41.179503104415289,
+ 39.704528206671441,
+ 44.1582122624641,
+ 44.742095003454772,
+ 47.842152955506293,
+ 46.381425275950569,
+ 44.290649189215145,
+ 42.582123987012579,
+ 40.30463943471608,
+ 40.234134076560146,
+ 38.137035369441,
+ 40.201258512568664,
+ 41.267618312897795,
+ 39.902020943624883,
+ 44.465082527888491,
+ 45.121130621729684,
+ 48.293353926631752,
+ 46.866002478683477,
+ 44.808602623555508,
+ 43.100436842068284,
+ 40.823311710487111,
+ 40.721488727623544,
+ 38.593072395796774,
+ 40.592963567336447,
+ 41.5949913960776,
+ 40.147377239858251,
+ 44.628422037175412,
+ 45.227441072669045,
+ 48.34263531922354,
+ 46.865841955015213,
+ 44.759000183627194,
+ 43.018247981783169,
+ 40.708536429845211,
+ 40.595274313431062,
+ 38.455418848053711,
+ 40.461640423298519
+ ],
+ "isAnomaly": [
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/ExportModel.json b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/ExportModel.json
new file mode 100644
index 000000000000..19674b32ad0b
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/ExportModel.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "modelId": "45aad126-aafd-11ea-b8fb-d89ef3400c5f",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "content-type": "application/zip"
+ },
+ "body": "{Binary}"
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/GetModel.json b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/GetModel.json
new file mode 100644
index 000000000000..949ea1e1a4be
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/GetModel.json
@@ -0,0 +1,158 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "modelId": "45aad126-aafd-11ea-b8fb-d89ef3400c5f",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "modelId": "45aad126-aafd-11ea-b8fb-d89ef3400c5f",
+ "createdTime": "2020-06-30T00:00:00Z",
+ "lastUpdatedTime": "2020-06-30T00:00:00Z",
+ "modelInfo": {
+ "slidingWindow": 20,
+ "alignPolicy": {
+ "alignMode": "Outer",
+ "fillNAMethod": "Linear",
+ "paddingValue": 0
+ },
+ "source": "https://multiadsample.blob.core.windows.net/data/sample_data_2_1000.zip?sp=rl&st=2020-12-04T06:03:47Z&se=2022-12-05T06:03:00Z&sv=2019-12-12&sr=b&sig=AZTbvZ7fcp3MdqGY%2FvGHJXJjUgjS4DneCGl7U5omq5c%3D",
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "displayName": "Devops-MultiAD",
+ "status": "READY",
+ "errors": [],
+ "diagnosticsInfo": {
+ "modelState": {
+ "epochIds": [
+ 10,
+ 20,
+ 30,
+ 40,
+ 50,
+ 60,
+ 70,
+ 80,
+ 90,
+ 100
+ ],
+ "trainLosses": [
+ 0.6291328072547913,
+ 0.1671326905488968,
+ 0.12354248017072678,
+ 0.10259664058685303,
+ 0.09584927558898926,
+ 0.09069952368736267,
+ 0.08686016499996185,
+ 0.08603022992610931,
+ 0.08287354558706284,
+ 0.08235538005828857
+ ],
+ "validationLosses": [
+ 1.9232804775238037,
+ 1.0645641088485718,
+ 0.6031560301780701,
+ 0.5302737951278687,
+ 0.46980252861976624,
+ 0.4395163357257843,
+ 0.41829314827919006,
+ 0.40579143166542053,
+ 0.405649870634079,
+ 0.38492488861083984
+ ],
+ "latenciesInSeconds": [
+ 0.3398594856262207,
+ 0.3659665584564209,
+ 0.37360644340515137,
+ 0.35134077072143555,
+ 0.33703041076660156,
+ 0.31876277923583984,
+ 0.32833099365234375,
+ 0.3503587245941162,
+ 0.3080024719238281,
+ 0.3327946662902832
+ ]
+ },
+ "variableStates": [
+ {
+ "variable": "ad_input",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ad_ontimer_output",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ingestion",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "data_in_speed",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "cpu",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ad_series_init",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "flink_last_ckpt_duration",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "data_out_speed",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ad_output",
+ "filledNARatio": 0,
+ "effectiveCount": 1441,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "errors": []
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/GetResult.json b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/GetResult.json
new file mode 100644
index 000000000000..ec4e255ed7fa
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/GetResult.json
@@ -0,0 +1,409 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "resultId": "663884e6-b117-11ea-b3de-0242ac130004",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "resultId": "663884e6-b117-11ea-b3de-0242ac130004",
+ "summary": {
+ "status": "READY",
+ "errors": [],
+ "variableStates": [
+ {
+ "variable": "ad_input",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ad_ontimer_output",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ad_output",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ad_series_init",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "cpu",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "data_in_speed",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "data_out_speed",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "flink_last_ckpt_duration",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ },
+ {
+ "variable": "ingestion",
+ "filledNARatio": 0,
+ "effectiveCount": 26,
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-01T00:25:00Z",
+ "errors": []
+ }
+ ],
+ "setupInfo": {
+ "source": "https://multiadsample.blob.core.windows.net/data/sample_data_2_1000.zip?sp=rl&st=2020-12-04T06:03:47Z&se=2022-12-05T06:03:00Z&sv=2019-12-12&sr=b&sig=AZTbvZ7fcp3MdqGY%2FvGHJXJjUgjS4DneCGl7U5omq5c%3D",
+ "startTime": "2019-04-01T00:15:00Z",
+ "endTime": "2019-04-01T00:40:00Z"
+ }
+ },
+ "results": [
+ {
+ "timestamp": "2019-04-01T00:15:00Z",
+ "errors": [
+ {
+ "code": "InsufficientHistoricalData",
+ "message": "historical data is not enough."
+ }
+ ]
+ },
+ {
+ "timestamp": "2019-04-01T00:16:00Z",
+ "errors": [
+ {
+ "code": "InsufficientHistoricalData",
+ "message": "historical data is not enough."
+ }
+ ]
+ },
+ {
+ "timestamp": "2019-04-01T00:17:00Z",
+ "errors": [
+ {
+ "code": "InsufficientHistoricalData",
+ "message": "historical data is not enough."
+ }
+ ]
+ },
+ {
+ "timestamp": "2019-04-01T00:18:00Z",
+ "errors": [
+ {
+ "code": "InsufficientHistoricalData",
+ "message": "historical data is not enough."
+ }
+ ]
+ },
+ {
+ "timestamp": "2019-04-01T00:19:00Z",
+ "errors": [
+ {
+ "code": "InsufficientHistoricalData",
+ "message": "historical data is not enough."
+ }
+ ]
+ },
+ {
+ "timestamp": "2019-04-01T00:20:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.3509107994398884,
+ "score": 1.509107994398884
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:21:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.3278919065826584,
+ "score": 1.278919065826584
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:22:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.08801055597123958,
+ "score": 0.8801055597123958
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:23:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.2633898400714136,
+ "score": 1.633898400714136
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:24:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.4072371051419143,
+ "score": 1.072371051419143
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:25:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.3396915278974237,
+ "score": 1.396915278974237
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:26:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.09766117467968274,
+ "score": 0.9766117467968274
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:27:00Z",
+ "value": {
+ "contributors": [
+ {
+ "contributionScore": 0.0007775013367514271,
+ "variable": "ad_ontimer_output"
+ },
+ {
+ "contributionScore": 0.0007989604079048129,
+ "variable": "ad_series_init"
+ },
+ {
+ "contributionScore": 0.0008900927229851369,
+ "variable": "ingestion"
+ },
+ {
+ "contributionScore": 0.008068144477478554,
+ "variable": "cpu"
+ },
+ {
+ "contributionScore": 0.008222036467507165,
+ "variable": "data_in_speed"
+ },
+ {
+ "contributionScore": 0.008674941549594993,
+ "variable": "ad_input"
+ },
+ {
+ "contributionScore": 0.02232242629793674,
+ "variable": "ad_output"
+ },
+ {
+ "contributionScore": 0.1583773213660846,
+ "variable": "flink_last_ckpt_duration"
+ },
+ {
+ "contributionScore": 0.9816531517495176,
+ "variable": "data_out_speed"
+ }
+ ],
+ "isAnomaly": true,
+ "severity": 0.42135109874230336,
+ "score": 1.213510987423033
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:28:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.3816131949694057,
+ "score": 1.816131949694057
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:29:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.181157797150171,
+ "score": 1.81157797150171
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:30:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.14995278606288692,
+ "score": 1.4995278606288691
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:31:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.32239701546817856,
+ "score": 1.2239701546817856
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:32:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.1314609956762691,
+ "score": 1.314609956762691
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:33:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.2099233009703312,
+ "score": 1.0992330097033123
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:34:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.37511272238900906,
+ "score": 1.751127223890091
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:35:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.20627882459097507,
+ "score": 1.0627882459097506
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:36:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.3418639342833588,
+ "score": 1.418639342833588
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:37:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.29763266205488187,
+ "score": 1.976326620548819
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:38:00Z",
+ "value": {
+ "contributors": [
+ {
+ "contributionScore": 0.000535489231067294,
+ "variable": "ad_ontimer_output"
+ },
+ {
+ "contributionScore": 0.001135482610182779,
+ "variable": "ad_output"
+ },
+ {
+ "contributionScore": 0.0012076366721519864,
+ "variable": "ad_input"
+ },
+ {
+ "contributionScore": 0.0012659992776771212,
+ "variable": "ad_series_init"
+ },
+ {
+ "contributionScore": 0.0012904544081908315,
+ "variable": "ingestion"
+ },
+ {
+ "contributionScore": 0.00888920821096907,
+ "variable": "data_in_speed"
+ },
+ {
+ "contributionScore": 0.009422195014322475,
+ "variable": "cpu"
+ },
+ {
+ "contributionScore": 0.1299721634743041,
+ "variable": "flink_last_ckpt_duration"
+ },
+ {
+ "contributionScore": 0.9582214244072471,
+ "variable": "data_out_speed"
+ }
+ ],
+ "isAnomaly": true,
+ "severity": 0.39260817146673,
+ "score": 1.9260817146673
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:39:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.14112255682016128,
+ "score": 1.4112255682016128
+ }
+ },
+ {
+ "timestamp": "2019-04-01T00:40:00Z",
+ "value": {
+ "contributors": [],
+ "isAnomaly": false,
+ "severity": 0.17805261260751692,
+ "score": 1.7805261260751692
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/LastDetect.json b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/LastDetect.json
new file mode 100644
index 000000000000..f6aee0843243
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/LastDetect.json
@@ -0,0 +1,220 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {
+ "series": [
+ {
+ "timestamp": "1972-01-01T00:00:00Z",
+ "value": 826
+ },
+ {
+ "timestamp": "1972-02-01T00:00:00Z",
+ "value": 799
+ },
+ {
+ "timestamp": "1972-03-01T00:00:00Z",
+ "value": 890
+ },
+ {
+ "timestamp": "1972-04-01T00:00:00Z",
+ "value": 900
+ },
+ {
+ "timestamp": "1972-05-01T00:00:00Z",
+ "value": 961
+ },
+ {
+ "timestamp": "1972-06-01T00:00:00Z",
+ "value": 935
+ },
+ {
+ "timestamp": "1972-07-01T00:00:00Z",
+ "value": 894
+ },
+ {
+ "timestamp": "1972-08-01T00:00:00Z",
+ "value": 855
+ },
+ {
+ "timestamp": "1972-09-01T00:00:00Z",
+ "value": 809
+ },
+ {
+ "timestamp": "1972-10-01T00:00:00Z",
+ "value": 810
+ },
+ {
+ "timestamp": "1972-11-01T00:00:00Z",
+ "value": 766
+ },
+ {
+ "timestamp": "1972-12-01T00:00:00Z",
+ "value": 805
+ },
+ {
+ "timestamp": "1973-01-01T00:00:00Z",
+ "value": 821
+ },
+ {
+ "timestamp": "1973-02-01T00:00:00Z",
+ "value": 773
+ },
+ {
+ "timestamp": "1973-03-01T00:00:00Z",
+ "value": 883
+ },
+ {
+ "timestamp": "1973-04-01T00:00:00Z",
+ "value": 898
+ },
+ {
+ "timestamp": "1973-05-01T00:00:00Z",
+ "value": 957
+ },
+ {
+ "timestamp": "1973-06-01T00:00:00Z",
+ "value": 924
+ },
+ {
+ "timestamp": "1973-07-01T00:00:00Z",
+ "value": 881
+ },
+ {
+ "timestamp": "1973-08-01T00:00:00Z",
+ "value": 837
+ },
+ {
+ "timestamp": "1973-09-01T00:00:00Z",
+ "value": 784
+ },
+ {
+ "timestamp": "1973-10-01T00:00:00Z",
+ "value": 791
+ },
+ {
+ "timestamp": "1973-11-01T00:00:00Z",
+ "value": 760
+ },
+ {
+ "timestamp": "1973-12-01T00:00:00Z",
+ "value": 802
+ },
+ {
+ "timestamp": "1974-01-01T00:00:00Z",
+ "value": 828
+ },
+ {
+ "timestamp": "1974-02-01T00:00:00Z",
+ "value": 1030
+ },
+ {
+ "timestamp": "1974-03-01T00:00:00Z",
+ "value": 889
+ },
+ {
+ "timestamp": "1974-04-01T00:00:00Z",
+ "value": 902
+ },
+ {
+ "timestamp": "1974-05-01T00:00:00Z",
+ "value": 969
+ },
+ {
+ "timestamp": "1974-06-01T00:00:00Z",
+ "value": 947
+ },
+ {
+ "timestamp": "1974-07-01T00:00:00Z",
+ "value": 908
+ },
+ {
+ "timestamp": "1974-08-01T00:00:00Z",
+ "value": 867
+ },
+ {
+ "timestamp": "1974-09-01T00:00:00Z",
+ "value": 815
+ },
+ {
+ "timestamp": "1974-10-01T00:00:00Z",
+ "value": 812
+ },
+ {
+ "timestamp": "1974-11-01T00:00:00Z",
+ "value": 773
+ },
+ {
+ "timestamp": "1974-12-01T00:00:00Z",
+ "value": 813
+ },
+ {
+ "timestamp": "1975-01-01T00:00:00Z",
+ "value": 834
+ },
+ {
+ "timestamp": "1975-02-01T00:00:00Z",
+ "value": 782
+ },
+ {
+ "timestamp": "1975-03-01T00:00:00Z",
+ "value": 892
+ },
+ {
+ "timestamp": "1975-04-01T00:00:00Z",
+ "value": 903
+ },
+ {
+ "timestamp": "1975-05-01T00:00:00Z",
+ "value": 966
+ },
+ {
+ "timestamp": "1975-06-01T00:00:00Z",
+ "value": 937
+ },
+ {
+ "timestamp": "1975-07-01T00:00:00Z",
+ "value": 896
+ },
+ {
+ "timestamp": "1975-08-01T00:00:00Z",
+ "value": 858
+ },
+ {
+ "timestamp": "1975-09-01T00:00:00Z",
+ "value": 817
+ },
+ {
+ "timestamp": "1975-10-01T00:00:00Z",
+ "value": 827
+ },
+ {
+ "timestamp": "1975-11-01T00:00:00Z",
+ "value": 797
+ },
+ {
+ "timestamp": "1975-12-01T00:00:00Z",
+ "value": 843
+ }
+ ],
+ "maxAnomalyRatio": 0.25,
+ "sensitivity": 95,
+ "granularity": "monthly"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "isAnomaly": false,
+ "isPositiveAnomaly": false,
+ "isNegativeAnomaly": false,
+ "period": 12,
+ "expectedValue": 809.23280846597038,
+ "upperMargin": 40.461640423298519,
+ "lowerMargin": 40.461640423298519,
+ "suggestedWindow": 49
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/ListModel.json b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/ListModel.json
new file mode 100644
index 000000000000..2ed145f935b1
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/ListModel.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "models": [
+ {
+ "modelId": "45aad126-aafd-11ea-b8fb-d89ef3400c5f",
+ "createdTime": "2020-06-30T00:00:00Z",
+ "lastUpdatedTime": "2020-06-30T00:00:00Z",
+ "status": "READY",
+ "displayName": "DevOps-MultiAD",
+ "variablesCount": 18
+ }
+ ],
+ "currentCount": 1,
+ "maxCount": 20,
+ "nextLink": ""
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/TrainModel.json b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/TrainModel.json
new file mode 100644
index 000000000000..d59b4c760d9c
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.1-preview/examples/TrainModel.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "modelRequest": {
+ "slidingWindow": 20,
+ "alignPolicy": {
+ "alignMode": "Outer",
+ "fillNAMethod": "Linear",
+ "paddingValue": 0
+ },
+ "source": "https://multiadsample.blob.core.windows.net/data/sample_data_2_1000.zip?sp=rl&st=2020-12-04T06:03:47Z&se=2022-12-05T06:03:00Z&sv=2019-12-12&sr=b&sig=AZTbvZ7fcp3MdqGY%2FvGHJXJjUgjS4DneCGl7U5omq5c%3D",
+ "startTime": "2019-04-01T00:00:00Z",
+ "endTime": "2019-04-02T00:00:00Z",
+ "displayName": "Devops-MultiAD"
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "Location": "{Endpoint}/anomalydetector/v1.1-preview/multivariate/models/{modelId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/readme.md b/specification/cognitiveservices/data-plane/AnomalyDetector/readme.md
index b2cadf859aa1..c3c059c0cb7c 100644
--- a/specification/cognitiveservices/data-plane/AnomalyDetector/readme.md
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/readme.md
@@ -4,11 +4,10 @@
Configuration for generating Anomaly Detector SDK.
-The current release is `release_1_0`.
+The current release is `release_1_1_preview`.
``` yaml
-
-tag: release_1_0
+tag: release_1_1_preview
add-credentials: true
openapi-type: data-plane
```
@@ -22,6 +21,15 @@ These settings apply only when `--tag=release_1_0` is specified on the command l
input-file: stable/v1.0/AnomalyDetector.json
```
+### Release 1.1-preview
+These settings apply only when `--tag=release_1_1_preview` is specified on the command line.
+
+``` yaml $(tag) == 'release_1_1_preview'
+input-file:
+ - preview/v1.1-preview/AnomalyDetector.json
+ - preview/v1.1-preview/MultivariateAnomalyDetector.json
+```
+
## Swagger to SDK
This section describes what SDK should be generated by the automatic system.
@@ -42,14 +50,13 @@ swagger-to-sdk:
These settings apply only when `--csharp` is specified on the command line.
-``` yaml $(csharp)
-csharp:
- sync-methods: None
- license-header: MICROSOFT_MIT_NO_VERSION
- azure-arm: false
- namespace: Microsoft.Azure.CognitiveServices.AnomalyDetector
- output-folder: $(csharp-sdks-folder)/cognitiveservices/AnomalyDetector/src/Generated
- clear-output-folder: true
+```yaml $(csharp)
+sync-methods: None
+license-header: MICROSOFT_MIT_NO_VERSION
+azure-arm: false
+namespace: Microsoft.Azure.CognitiveServices.AnomalyDetector
+output-folder: $(csharp-sdks-folder)/cognitiveservices/AnomalyDetector/src/Generated
+clear-output-folder: true
```
## Python
@@ -65,19 +72,18 @@ See configuration in [readme.go.md](./readme.go.md)
These settings apply only when `--java` is specified on the command line.
Please also specify `--azure-libraries-for-java-folder=`.
-``` yaml $(java)
-java:
- azure-arm: true
- namespace: com.microsoft.azure.cognitiveservices.anomalydetector
- license-header: MICROSOFT_MIT_NO_CODEGEN
- payload-flattening-threshold: 1
- output-folder: $(azure-libraries-for-java-folder)/cognitiveservices/data-plane/anomalydetector
- with-optional-parameters: true
- with-single-async-method: true
- regenerate-manager: true
+```yaml $(java)
+azure-arm: true
+namespace: com.microsoft.azure.cognitiveservices.anomalydetector
+license-header: MICROSOFT_MIT_NO_CODEGEN
+payload-flattening-threshold: 1
+output-folder: $(azure-libraries-for-java-folder)/cognitiveservices/data-plane/anomalydetector
+with-optional-parameters: true
+with-single-async-method: true
+regenerate-manager: true
```
-## Multi-API/Profile support for AutoRest v3 generators
+## Multi-API/Profile support for AutoRest v3 generators
AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
@@ -90,14 +96,13 @@ require: $(this-folder)/../../../../profiles/readme.md
# all the input files across all versions
input-file:
- $(this-folder)/stable/v1.0/AnomalyDetector.json
-
+ - $(this-folder)/preview/v1.1-preview/MultivariateAnomalyDetector.json
```
-If there are files that should not be in the `all-api-versions` set,
+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:
+#exclude-file:
# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
```
-
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/readme.python.md b/specification/cognitiveservices/data-plane/AnomalyDetector/readme.python.md
index f02d74f86624..de85be7e605a 100644
--- a/specification/cognitiveservices/data-plane/AnomalyDetector/readme.python.md
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/readme.python.md
@@ -4,7 +4,7 @@ These settings apply only when `--python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
-``` yaml
+```yaml $(python)
python-mode: create
license-header: MICROSOFT_MIT_NO_VERSION
add-credentials: true
@@ -16,11 +16,13 @@ package-name: azure-ai-anomalydetector
package-version: 0.2.0
clear-output-folder: true
```
-``` yaml $(python-mode) == 'update'
+
+```yaml $(python) && $(python-mode) == 'update'
no-namespace-folders: true
output-folder: $(python-sdks-folder)/anomalydetector/azure-ai-anomalydetector/azure/ai/anomalydetector
```
-``` yaml $(python-mode) == 'create'
+
+```yaml $(python) && $(python-mode) == 'create'
basic-setup-py: true
output-folder: $(python-sdks-folder)/anomalydetector/azure-ai-anomalydetector
```
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/readme.ruby.md b/specification/cognitiveservices/data-plane/AnomalyDetector/readme.ruby.md
deleted file mode 100644
index 5ea0ff43e459..000000000000
--- a/specification/cognitiveservices/data-plane/AnomalyDetector/readme.ruby.md
+++ /dev/null
@@ -1,27 +0,0 @@
-## Ruby
-
-These settings apply only when `--ruby` is specified on the command line.
-
-``` yaml
-package-name: azure_cognitiveservices_anomalydetector
-package-version: "0.16.0"
-azure-arm: true
-```
-
-### Ruby multi-api
-
-``` yaml $(ruby) && $(multiapi)
-batch:
- - tag: release_1_0
-```
-
-### Tag: release_1_0 and ruby
-
-These settings apply only when `--tag=release_1_0 --ruby` is specified on the command line.
-Please also specify `--ruby-sdks-folder=`.
-
-``` yaml $(tag) == 'release_1_0' && $(ruby)
-namespace: "Azure::CognitiveServices::AnomalyDetector::V1_0"
-output-folder: $(ruby-sdks-folder)/data/azure_cognitiveservices_anomalydetector/lib
-title: "AnomalyDetectorClient"
-```
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.2/Ocr.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.2/Ocr.json
index 69b91791d362..665d0e1f52d8 100644
--- a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.2/Ocr.json
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.2/Ocr.json
@@ -48,6 +48,9 @@
},
{
"$ref": "#/parameters/OcrModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ReadingOrder"
}
],
"consumes": [
@@ -133,6 +136,12 @@
},
{
"$ref": "#/parameters/Pages"
+ },
+ {
+ "$ref": "#/parameters/OcrModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ReadingOrder"
}
],
"consumes": [
@@ -594,6 +603,15 @@
"type": "string",
"pattern": "^(latest|\\d{4}-\\d{2}-\\d{2})(-preview)?$",
"default": "latest"
+ },
+ "ReadingOrder": {
+ "name": "readingOrder",
+ "in": "query",
+ "description": "Optional parameter to specify which reading order algorithm should be applied when ordering the extract text elements. Can be either 'basic' or 'natural'. Will default to 'basic' if not specified",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "default": "basic"
}
}
}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/Face.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/Face.json
new file mode 100644
index 000000000000..e7cef17c8c3f
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/Face.json
@@ -0,0 +1,5548 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "1.0-preview",
+ "title": "Face Client",
+ "description": "An API for face detection, verification, and identification."
+ },
+ "securityDefinitions": {
+ "apim_key": {
+ "type": "apiKey",
+ "name": "Ocp-Apim-Subscription-Key",
+ "in": "header"
+ }
+ },
+ "security": [
+ {
+ "apim_key": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{Endpoint}/face/v1.0-preview",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ },
+ "paths": {
+ "/findsimilars": {
+ "post": {
+ "description": "Given query face's faceId, to search the similar-looking faces from a faceId array, a face list or a large face list. faceId array contains the faces created by [Face - Detect With Url](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl) or [Face - Detect With Stream](https://docs.microsoft.com/rest/api/faceapi/face/detectwithstream), which will expire at the time specified by faceIdTimeToLive after creation. A \"faceListId\" is created by [FaceList - Create](https://docs.microsoft.com/rest/api/faceapi/facelist/create) containing persistedFaceIds that will not expire. And a \"largeFaceListId\" is created by [LargeFaceList - Create](https://docs.microsoft.com/rest/api/faceapi/largefacelist/create) containing persistedFaceIds that will also not expire. Depending on the input the returned similar faces list contains faceIds or persistedFaceIds ranked by similarity.\n Find similar has two working modes, \"matchPerson\" and \"matchFace\". \"matchPerson\" is the default mode that it tries to find faces of the same person as possible by using internal same-person thresholds. It is useful to find a known person's other photos. Note that an empty list will be returned if no faces pass the internal thresholds. \"matchFace\" mode ignores same-person thresholds and returns ranked similar faces anyway, even the similarity is low. It can be used in the cases like searching celebrity-looking faces.\n The 'recognitionModel' associated with the query face's faceId should be the same as the 'recognitionModel' used by the target faceId array, face list or large face list.\n",
+ "operationId": "Face_FindSimilar",
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "description": "Request body for Find Similar.",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/FindSimilarRequest"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an array of the most similar faces represented in faceId if the input parameter is faceIds or persistedFaceId if the input parameter is faceListId.",
+ "schema": {
+ "$ref": "#/definitions/SimilarFaces"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Find similar results example": {
+ "$ref": "./examples/FindSimilar.json"
+ }
+ }
+ }
+ },
+ "/group": {
+ "post": {
+ "description": "Divide candidate faces into groups based on face similarity. \n* The output is one or more disjointed face groups and a messyGroup. A face group contains faces that have similar looking, often of the same person. Face groups are ranked by group size, i.e. number of faces. Notice that faces belonging to a same person might be split into several groups in the result.\n* MessyGroup is a special face group containing faces that cannot find any similar counterpart face from original faces. The messyGroup will not appear in the result if all faces found their counterparts.\n* Group API needs at least 2 candidate faces and 1000 at most. We suggest to try [Face - Verify](https://docs.microsoft.com/rest/api/faceapi/face/verifyfacetoface) when you only have 2 candidate faces.\n* The 'recognitionModel' associated with the query faces' faceIds should be the same.\n",
+ "operationId": "Face_Group",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Request body for grouping.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/GroupRequest"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns one or more groups of similar faces (rank by group size) and a messyGroup.",
+ "schema": {
+ "$ref": "#/definitions/GroupResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Group example": {
+ "$ref": "./examples/Group.json"
+ }
+ }
+ }
+ },
+ "/identify": {
+ "post": {
+ "description": "1-to-many identification to find the closest matches of the specific query person face from a person group, large person group, person directory dynamic person group or person directory personIds array.\n For each face in the faceIds array, Face Identify will compute similarities between the query face and all the faces in the person group (given by personGroupId) or large person group (given by largePersonGroupId), and return candidate person(s) for that face ranked by similarity confidence. The person group/large person group should be trained to make it ready for identification. See more in [PersonGroup - Train](https://docs.microsoft.com/rest/api/faceapi/persongroup/train) and [LargePersonGroup - Train](https://docs.microsoft.com/rest/api/faceapi/largepersongroup/train).\n \n \nRemarks: \n* The algorithm allows more than one face to be identified independently at the same request, but no more than 10 faces.\n* Each person in the person group/large person group could have more than one face, but no more than 248 faces.\n* Higher face image quality means better identification precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* Number of candidates returned is restricted by maxNumOfCandidatesReturned and confidenceThreshold. If no person is identified, the returned candidates will be an empty array.\n* Try [Face - Find Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar) when you need to find similar faces from a face list/large face list instead of a person group/large person group.\n* The 'recognitionModel' associated with the query faces' faceIds should be the same as the 'recognitionModel' used by the target person group or large person group.\n",
+ "operationId": "Face_Identify",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Request body for identify operation.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/IdentifyRequest"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the identified candidate person(s) for each query face.",
+ "schema": {
+ "$ref": "#/definitions/IdentifyResults"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Identify example": {
+ "$ref": "./examples/Identify.json"
+ }
+ }
+ }
+ },
+ "/verify": {
+ "post": {
+ "description": "Verify whether two faces belong to a same person or whether one face belongs to a person.\n \nRemarks: \n* Higher face image quality means better identification precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* For the scenarios that are sensitive to accuracy please make your own judgment.\n* The 'recognitionModel' associated with the query faces' faceIds should be the same as the 'recognitionModel' used by the target face, person group or large person group.\n",
+ "operationId": "Face_VerifyFaceToFace",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Request body for face to face verification.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/VerifyFaceToFaceRequest"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the verification result.",
+ "schema": {
+ "$ref": "#/definitions/VerifyResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Verify faces example": {
+ "$ref": "./examples/VerifyFaceToFace.json"
+ }
+ }
+ }
+ },
+ "/persongroups/{personGroupId}/persons": {
+ "post": {
+ "description": "Create a new person in a specified person group.",
+ "operationId": "PersonGroupPerson_Create",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for creating new person.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/NameAndUserDataContract"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns a new personId created.",
+ "schema": {
+ "$ref": "#/definitions/Person"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create new person for person group example": {
+ "$ref": "./examples/CreateNewPersonGroupPerson.json"
+ }
+ }
+ },
+ "get": {
+ "description": "List all persons in a person group, and retrieve person information (including personId, name, userData and persistedFaceIds of registered faces of the person).",
+ "operationId": "PersonGroupPerson_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ },
+ {
+ "name": "start",
+ "description": "Starting person id to return (used to list a range of persons).",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "top",
+ "description": "Number of persons to return starting with the person id indicated by the 'start' parameter.",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 1000
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an array of person information that belong to the person group.",
+ "schema": {
+ "$ref": "#/definitions/Persons"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List persons in person group": {
+ "$ref": "./examples/ListPersonGroupPersons.json"
+ }
+ }
+ }
+ },
+ "/persongroups/{personGroupId}/persons/{personId}": {
+ "delete": {
+ "description": "Delete an existing person from a person group. The persistedFaceId, userData, person name and face feature in the person entry will all be deleted.",
+ "operationId": "PersonGroupPerson_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete an existing person example": {
+ "$ref": "./examples/DeletePersonGroupPerson.json"
+ }
+ }
+ },
+ "get": {
+ "description": "Retrieve a person's information, including registered persisted faces, name and userData.",
+ "operationId": "PersonGroupPerson_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the person's information.",
+ "schema": {
+ "$ref": "#/definitions/Person"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get person example": {
+ "$ref": "./examples/GetPersonGroupPerson.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Update name or userData of a person.",
+ "operationId": "PersonGroupPerson_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for person update operation.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/NameAndUserDataContract"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update person example": {
+ "$ref": "./examples/UpdatePersonGroupPerson.json"
+ }
+ }
+ }
+ },
+ "/persongroups/{personGroupId}/persons/{personId}/persistedfaces/{persistedFaceId}": {
+ "delete": {
+ "description": "Delete a face from a person in a person group by specified personGroupId, personId and persistedFaceId.\n Adding/deleting faces to/from a same person will be processed sequentially. Adding/deleting faces to/from different persons are processed in parallel.",
+ "operationId": "PersonGroupPerson_DeleteFace",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ },
+ {
+ "$ref": "#/parameters/persistedFaceId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete face from person example": {
+ "$ref": "./examples/DeletePersonGroupPersonFace.json"
+ }
+ }
+ },
+ "get": {
+ "description": "Retrieve information about a persisted face (specified by persistedFaceId, personId and its belonging personGroupId).",
+ "operationId": "PersonGroupPerson_GetFace",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ },
+ {
+ "$ref": "#/parameters/persistedFaceId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns target persisted face's information (persistedFaceId and userData).",
+ "schema": {
+ "$ref": "#/definitions/PersistedFace"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get persisted face example": {
+ "$ref": "./examples/GetPersonGroupPersistedFace.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Add a face to a person into a person group for face identification or verification. To deal with an image contains multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature will be stored on server until [PersonGroup PersonFace - Delete](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/deleteface), [PersonGroup Person - Delete](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/delete) or [PersonGroup - Delete](https://docs.microsoft.com/rest/api/faceapi/persongroup/delete) is called.\n Note persistedFaceId is different from faceId generated by [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).\n* Higher face image quality means better recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* Each person entry can hold up to 248 faces.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* \"targetFace\" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided \"targetFace\" rectangle is not returned from [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl), there’s no guarantee to detect and add the face successfully.\n* Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures.\n* Adding/deleting faces to/from a same person will be processed sequentially. Adding/deleting faces to/from different persons are processed in parallel.",
+ "operationId": "PersonGroupPerson_UpdateFace",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ },
+ {
+ "$ref": "#/parameters/persistedFaceId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for updating persisted face.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateFaceRequest"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update person face example": {
+ "$ref": "./examples/UpdatePersonGroupPersonFace.json"
+ }
+ }
+ }
+ },
+ "/persongroups/{personGroupId}": {
+ "put": {
+ "description": "Create a new person group with specified personGroupId, name, user-provided userData and recognitionModel.\n A person group is the container of the uploaded person data, including face recognition features.\n After creation, use [PersonGroup Person - Create](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/create) to add persons into the group, and then call [PersonGroup - Train](https://docs.microsoft.com/rest/api/faceapi/persongroup/train) to get this group ready for [Face - Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify).\n No image will be stored. Only the person's extracted face features and userData will be stored on server until [PersonGroup Person - Delete](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/delete) or [PersonGroup - Delete](https://docs.microsoft.com/rest/api/faceapi/persongroup/delete) is called.\n 'recognitionModel' should be specified to associate with this person group. The default value for 'recognitionModel' is 'recognition_01', if the latest model needed, please explicitly specify the model you need in this parameter. New faces that are added to an existing person group will use the recognition model that's already associated with the collection. Existing face features in a person group can't be updated to features extracted by another version of recognition model.\n\nPerson group quota:\n* Free-tier subscription quota: 1,000 person groups. Each holds up to 1,000 persons.\n* S0-tier subscription quota: 1,000,000 person groups. Each holds up to 10,000 persons.\n* to handle larger scale face identification problem, please consider using [LargePersonGroup](https://docs.microsoft.com/rest/api/faceapi/largepersongroup).",
+ "operationId": "PersonGroup_Create",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for creating new person group.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/MetaDataContract"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create new person group example": {
+ "$ref": "./examples/CreateNewPersonGroup.json"
+ }
+ }
+ },
+ "delete": {
+ "description": "Delete an existing person group. Persisted face features of all people in the person group will also be deleted.",
+ "operationId": "PersonGroup_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete a person group example": {
+ "$ref": "./examples/DeletePersonGroup.json"
+ }
+ }
+ },
+ "get": {
+ "description": "Retrieve person group name, userData and recognitionModel. To get person information under this personGroup, use [PersonGroup Person - List](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/list).",
+ "operationId": "PersonGroup_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ },
+ {
+ "$ref": "#/parameters/returnRecognitionModel"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the person group's information.",
+ "schema": {
+ "$ref": "#/definitions/PersonGroup"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get person group example": {
+ "$ref": "./examples/GetPersonGroup.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Update an existing person group's display name and userData. The properties which does not appear in request body will not be updated.",
+ "operationId": "PersonGroup_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for updating person group.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/NameAndUserDataContract"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update person group example": {
+ "$ref": "./examples/UpdatePersonGroup.json"
+ }
+ }
+ }
+ },
+ "/persongroups/{personGroupId}/training": {
+ "get": {
+ "description": "Retrieve the training status of a person group (completed or ongoing).",
+ "operationId": "PersonGroup_GetTrainingStatus",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the person group's training status.",
+ "schema": {
+ "$ref": "#/definitions/TrainingStatus"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get person group's training status example": {
+ "$ref": "./examples/GetPersonGroupTrainingStatus.json"
+ }
+ }
+ }
+ },
+ "/persongroups": {
+ "get": {
+ "description": "List person groups’ personGroupId, name, userData and recognitionModel. \n* Person groups are stored in alphabetical order of personGroupId.\n* \"start\" parameter (string, optional) is a user-provided personGroupId value that returned entries have larger ids by string comparison. \"start\" set to empty to indicate return from the first item.\n* \"top\" parameter (int, optional) specifies the number of entries to return. A maximal of 1000 entries can be returned in one call. To fetch more, you can specify \"start\" with the last returned entry’s Id of the current call.\n \nFor example, total 5 person groups: \"group1\", ..., \"group5\".\n \"start=&top=\" will return all 5 groups.\n \"start=&top=2\" will return \"group1\", \"group2\".\n \"start=group2&top=3\" will return \"group3\", \"group4\", \"group5\".\n",
+ "operationId": "PersonGroup_List",
+ "parameters": [
+ {
+ "name": "start",
+ "in": "query",
+ "required": false,
+ "description": "List person groups from the least personGroupId greater than the \"start\".",
+ "type": "string",
+ "maxLength": 64
+ },
+ {
+ "name": "top",
+ "in": "query",
+ "required": false,
+ "description": "The number of person groups to list.",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 1000,
+ "default": 1000
+ },
+ {
+ "$ref": "#/parameters/returnRecognitionModel"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an array of person groups and their information.",
+ "schema": {
+ "$ref": "#/definitions/PersonGroups"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List person groups example": {
+ "$ref": "./examples/ListPersonGroups.json"
+ }
+ }
+ }
+ },
+ "/persongroups/{personGroupId}/train": {
+ "post": {
+ "description": "Queue a person group training task, the training task may not be started immediately.",
+ "operationId": "PersonGroup_Train",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "202": {
+ "description": "The training task was queued successfully."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Queue person group training": {
+ "$ref": "./examples/QueuePersonGroupTraining.json"
+ }
+ }
+ }
+ },
+ "/facelists/{faceListId}": {
+ "put": {
+ "description": "Create an empty face list with user-specified faceListId, name, an optional userData and recognitionModel. Up to 64 face lists are allowed in one subscription.\n Face list is a list of faces, up to 1,000 faces, and used by [Face - Find Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar).\n After creation, user should use [FaceList - Add Face](https://docs.microsoft.com/rest/api/faceapi/facelist/addfacefromurl) to import the faces. No image will be stored. Only the extracted face features are stored on server until [FaceList - Delete](https://docs.microsoft.com/rest/api/faceapi/facelist/delete) is called.\n Find Similar is used for scenario like finding celebrity-like faces, similar face filtering, or as a light way face identification. But if the actual use is to identify person, please use [PersonGroup](https://docs.microsoft.com/rest/api/faceapi/persongroup) / [LargePersonGroup](https://docs.microsoft.com/rest/api/faceapi/largepersongroup) and [Face - Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify).\n Please consider [LargeFaceList](https://docs.microsoft.com/rest/api/faceapi/largefacelist) when the face number is large. It can support up to 1,000,000 faces.\n 'recognitionModel' should be specified to associate with this face list. The default value for 'recognitionModel' is 'recognition_01', if the latest model needed, please explicitly specify the model you need in this parameter. New faces that are added to an existing face list will use the recognition model that's already associated with the collection. Existing face features in a face list can't be updated to features extracted by another version of recognition model.\nPlease Refer to [Specify a face recognition model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-recognition-model).",
+ "operationId": "FaceList_Create",
+ "parameters": [
+ {
+ "$ref": "#/parameters/faceListId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for creating a face list.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/MetaDataContract"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create new face list example": {
+ "$ref": "./examples/CreateNewFaceList.json"
+ }
+ }
+ },
+ "get": {
+ "description": "Retrieve a face list’s faceListId, name, userData, recognitionModel and faces in the face list.\n",
+ "operationId": "FaceList_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/faceListId"
+ },
+ {
+ "$ref": "#/parameters/returnRecognitionModel"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the face list's information.",
+ "schema": {
+ "$ref": "#/definitions/FaceList"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Face list example": {
+ "$ref": "./examples/GetFaceList.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Update information of a face list.",
+ "operationId": "FaceList_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/faceListId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for updating a face list.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/NameAndUserDataContract"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update face list example": {
+ "$ref": "./examples/UpdateFaceList.json"
+ }
+ }
+ },
+ "delete": {
+ "description": "Delete a specified face list.",
+ "operationId": "FaceList_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/faceListId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete face list example": {
+ "$ref": "./examples/DeleteFaceList.json"
+ }
+ }
+ }
+ },
+ "/facelists": {
+ "get": {
+ "description": "List face lists’ faceListId, name, userData and recognitionModel. \nTo get face information inside faceList use [FaceList - Get](https://docs.microsoft.com/rest/api/faceapi/facelist/get)\n",
+ "operationId": "FaceList_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/returnRecognitionModel"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an array of faceList.",
+ "schema": {
+ "$ref": "#/definitions/FaceLists"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "List Face lists example": {
+ "$ref": "./examples/ListFaceLists.json"
+ }
+ }
+ }
+ },
+ "/facelists/{faceListId}/persistedfaces/{persistedFaceId}": {
+ "delete": {
+ "description": "Delete a face from a face list by specified faceListId and persistedFaceId.\n Adding/deleting faces to/from a same face list are processed sequentially and to/from different face lists are in parallel.",
+ "operationId": "FaceList_DeleteFace",
+ "parameters": [
+ {
+ "$ref": "#/parameters/faceListId"
+ },
+ {
+ "$ref": "#/parameters/persistedFaceId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete face in face list example": {
+ "$ref": "./examples/DeleteFaceListFace.json"
+ }
+ }
+ }
+ },
+ "/persongroups/{personGroupId}/persons/{personId}/persistedfaces": {
+ "post": {
+ "description": "Add a face to a person into a person group for face identification or verification. To deal with an image contains multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature will be stored on server until [PersonGroup PersonFace - Delete](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/deleteface), [PersonGroup Person - Delete](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/delete) or [PersonGroup - Delete](https://docs.microsoft.com/rest/api/faceapi/persongroup/delete) is called.\n Note persistedFaceId is different from faceId generated by [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).\n* Higher face image quality means better recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* Each person entry can hold up to 248 faces.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* \"targetFace\" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided \"targetFace\" rectangle is not returned from [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl), there’s no guarantee to detect and add the face successfully.\n* Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures.\n* Adding/deleting faces to/from a same person will be processed sequentially. Adding/deleting faces to/from different persons are processed in parallel.\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model).",
+ "operationId": "PersonGroupPerson_AddFaceFromUrl",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ },
+ {
+ "$ref": "#/parameters/faceUserData"
+ },
+ {
+ "$ref": "#/parameters/targetFace"
+ },
+ {
+ "$ref": "../../../Common/Parameters.json#/parameters/ImageUrl"
+ },
+ {
+ "$ref": "#/parameters/detectionModel"
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the new persistedFaceId.",
+ "schema": {
+ "$ref": "#/definitions/PersistedFace"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Add Person face example": {
+ "$ref": "./examples/AddPersonGroupPersonFaceFromUrl.json"
+ }
+ }
+ }
+ },
+ "/detect": {
+ "post": {
+ "description": "Detect human faces in an image, return face rectangles, and optionally with faceIds, landmarks, and attributes. \n* No image will be stored. Only the extracted face feature will be stored on server. The faceId is an identifier of the face feature and will be used in [Face - Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify), [Face - Verify](https://docs.microsoft.com/rest/api/faceapi/face/verifyfacetoface), and [Face - Find Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar). The stored face feature(s) will expire and be deleted at the time specified by faceIdTimeToLive after the original detection call.\n* Optional parameters include faceId, landmarks, and attributes. Attributes include age, gender, headPose, smile, facialHair, glasses, emotion, hair, makeup, occlusion, accessories, blur, exposure, noise, and mask. Some of the results returned for specific attributes may not be highly accurate.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* Up to 100 faces can be returned for an image. Faces are ranked by face rectangle size from large to small.\n* For optimal results when querying [Face - Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify), [Face - Verify](https://docs.microsoft.com/rest/api/faceapi/face/verifyfacetoface), and [Face - Find Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar) ('returnFaceId' is true), please use faces that are: frontal, clear, and with a minimum size of 200x200 pixels (100 pixels between eyes).\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model).\n\n* Different 'recognitionModel' values are provided. If follow-up operations like Verify, Identify, Find Similar are needed, please specify the recognition model with 'recognitionModel' parameter. The default value for 'recognitionModel' is 'recognition_01', if latest model needed, please explicitly specify the model you need in this parameter. Once specified, the detected faceIds will be associated with the specified recognition model. More details, please refer to [Specify a recognition model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-recognition-model).",
+ "operationId": "Face_DetectWithUrl",
+ "parameters": [
+ {
+ "$ref": "#/parameters/returnFaceId"
+ },
+ {
+ "$ref": "#/parameters/returnFaceLandmarks"
+ },
+ {
+ "$ref": "#/parameters/returnFaceAttributes"
+ },
+ {
+ "$ref": "../../../Common/Parameters.json#/parameters/ImageUrl"
+ },
+ {
+ "$ref": "#/parameters/recognitionModel"
+ },
+ {
+ "$ref": "#/parameters/returnRecognitionModel"
+ },
+ {
+ "$ref": "#/parameters/detectionModel"
+ },
+ {
+ "$ref": "#/parameters/faceIdTimeToLive"
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an array of face entries ranked by face rectangle size in descending order. An empty response indicates no faces detected.",
+ "schema": {
+ "$ref": "#/definitions/DetectedFaces"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Detect with url example": {
+ "$ref": "./examples/DetectWithUrl.json"
+ }
+ }
+ }
+ },
+ "/facelists/{faceListId}/persistedfaces": {
+ "post": {
+ "description": "Add a face to a specified face list, up to 1,000 faces.\n To deal with an image contains multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature will be stored on server until [FaceList - Delete Face](https://docs.microsoft.com/rest/api/faceapi/facelist/deleteface) or [FaceList - Delete](https://docs.microsoft.com/rest/api/faceapi/facelist/delete) is called.\n Note persistedFaceId is different from faceId generated by [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).\n* Higher face image quality means better detection and recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* \"targetFace\" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided \"targetFace\" rectangle is not returned from [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl), there’s no guarantee to detect and add the face successfully.\n* Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures.\n* Adding/deleting faces to/from a same face list are processed sequentially and to/from different face lists are in parallel.\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model).",
+ "operationId": "FaceList_AddFaceFromUrl",
+ "parameters": [
+ {
+ "$ref": "#/parameters/faceListId"
+ },
+ {
+ "$ref": "#/parameters/faceUserData"
+ },
+ {
+ "$ref": "#/parameters/targetFace"
+ },
+ {
+ "$ref": "../../../Common/Parameters.json#/parameters/ImageUrl"
+ },
+ {
+ "$ref": "#/parameters/detectionModel"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns a new persistedFaceId.",
+ "schema": {
+ "$ref": "#/definitions/PersistedFace"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create face list face example": {
+ "$ref": "./examples/AddFaceListFaceFromUrl.json"
+ }
+ }
+ }
+ },
+ "/largepersongroups/{largePersonGroupId}/persons": {
+ "post": {
+ "description": "Create a new person in a specified large person group.",
+ "operationId": "LargePersonGroupPerson_Create",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for creating new person.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/NameAndUserDataContract"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns a new personId created.",
+ "schema": {
+ "$ref": "#/definitions/Person"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create new person for large person group example": {
+ "$ref": "./examples/CreateNewLargePersonGroupPerson.json"
+ }
+ }
+ },
+ "get": {
+ "description": "List all persons in a large person group, and retrieve person information (including personId, name, userData and persistedFaceIds of registered faces of the person).",
+ "operationId": "LargePersonGroupPerson_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ },
+ {
+ "name": "start",
+ "description": "Starting person id to return (used to list a range of persons).",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "top",
+ "description": "Number of persons to return starting with the person id indicated by the 'start' parameter.",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 1000
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an array of person information that belong to the large person group.",
+ "schema": {
+ "$ref": "#/definitions/Persons"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List persons in person group": {
+ "$ref": "./examples/ListLargePersonGroupPersons.json"
+ }
+ }
+ }
+ },
+ "/largepersongroups/{largePersonGroupId}/persons/{personId}": {
+ "delete": {
+ "description": "Delete an existing person from a large person group. The persistedFaceId, userData, person name and face feature in the person entry will all be deleted.",
+ "operationId": "LargePersonGroupPerson_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete an existing person example": {
+ "$ref": "./examples/DeleteLargePersonGroupPerson.json"
+ }
+ }
+ },
+ "get": {
+ "description": "Retrieve a person's name and userData, and the persisted faceIds representing the registered person face feature.",
+ "operationId": "LargePersonGroupPerson_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the person's information.",
+ "schema": {
+ "$ref": "#/definitions/Person"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get person example": {
+ "$ref": "./examples/GetLargePersonGroupPerson.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Update name or userData of a person.",
+ "operationId": "LargePersonGroupPerson_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for person update operation.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/NameAndUserDataContract"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update person example": {
+ "$ref": "./examples/UpdateLargePersonGroupPerson.json"
+ }
+ }
+ }
+ },
+ "/largepersongroups/{largePersonGroupId}/persons/{personId}/persistedfaces/{persistedFaceId}": {
+ "delete": {
+ "description": "Delete a face from a person in a large person group by specified largePersonGroupId, personId and persistedFaceId.\n Adding/deleting faces to/from a same person will be processed sequentially. Adding/deleting faces to/from different persons are processed in parallel.",
+ "operationId": "LargePersonGroupPerson_DeleteFace",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ },
+ {
+ "$ref": "#/parameters/persistedFaceId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete face from person example": {
+ "$ref": "./examples/DeleteLargePersonGroupPersonFace.json"
+ }
+ }
+ },
+ "get": {
+ "description": "Retrieve information about a persisted face (specified by persistedFaceId, personId and its belonging largePersonGroupId).",
+ "operationId": "LargePersonGroupPerson_GetFace",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ },
+ {
+ "$ref": "#/parameters/persistedFaceId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns target persisted face's information (persistedFaceId and userData).",
+ "schema": {
+ "$ref": "#/definitions/PersistedFace"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get persisted face example": {
+ "$ref": "./examples/GetLargePersonGroupPersistedFace.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Update a person persisted face's userData field.",
+ "operationId": "LargePersonGroupPerson_UpdateFace",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ },
+ {
+ "$ref": "#/parameters/persistedFaceId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for updating persisted face.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateFaceRequest"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update person face example": {
+ "$ref": "./examples/UpdateLargePersonGroupPersonFace.json"
+ }
+ }
+ }
+ },
+ "/largepersongroups/{largePersonGroupId}": {
+ "put": {
+ "description": "Create a new large person group with user-specified largePersonGroupId, name, an optional userData and recognitionModel.\n A large person group is the container of the uploaded person data, including face recognition feature, and up to 1,000,000\npeople.\n After creation, use [LargePersonGroup Person - Create](https://docs.microsoft.com/rest/api/faceapi/largepersongroupperson/create) to add person into the group, and call [LargePersonGroup - Train](https://docs.microsoft.com/rest/api/faceapi/largepersongroup/train) to get this group ready for [Face - Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify).\n No image will be stored. Only the person's extracted face features and userData will be stored on server until [LargePersonGroup Person - Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroupperson/delete) or [LargePersonGroup - Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroup/delete) is called.\n 'recognitionModel' should be specified to associate with this large person group. The default value for 'recognitionModel' is 'recognition_01', if the latest model needed, please explicitly specify the model you need in this parameter. New faces that are added to an existing large person group will use the recognition model that's already associated with the collection. Existing face features in a large person group can't be updated to features extracted by another version of recognition model. Please refer to [Specify a face recognition model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-recognition-model).\n\nLarge person group quota:\n* Free-tier subscription quota: 1,000 large person groups.\n* S0-tier subscription quota: 1,000,000 large person groups.",
+ "operationId": "LargePersonGroup_Create",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for creating new large person group.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/MetaDataContract"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create new large person group example": {
+ "$ref": "./examples/CreateNewLargePersonGroup.json"
+ }
+ }
+ },
+ "delete": {
+ "description": "Delete an existing large person group. Persisted face features of all people in the large person group will also be deleted.",
+ "operationId": "LargePersonGroup_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete a large person group example": {
+ "$ref": "./examples/DeleteLargePersonGroup.json"
+ }
+ }
+ },
+ "get": {
+ "description": "Retrieve the information of a large person group, including its name, userData and recognitionModel. This API returns large person group information only, use [LargePersonGroup Person - List](https://docs.microsoft.com/rest/api/faceapi/largepersongroupperson/list) instead to retrieve person information under the large person group.\n",
+ "operationId": "LargePersonGroup_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ },
+ {
+ "$ref": "#/parameters/returnRecognitionModel"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the large person group's information.",
+ "schema": {
+ "$ref": "#/definitions/LargePersonGroup"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get large person group example": {
+ "$ref": "./examples/GetLargePersonGroup.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Update an existing large person group's display name and userData. The properties which does not appear in request body will not be updated.",
+ "operationId": "LargePersonGroup_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for updating large person group.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/NameAndUserDataContract"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update large person group example": {
+ "$ref": "./examples/UpdateLargePersonGroup.json"
+ }
+ }
+ }
+ },
+ "/largepersongroups/{largePersonGroupId}/training": {
+ "get": {
+ "description": "Retrieve the training status of a large person group (completed or ongoing).",
+ "operationId": "LargePersonGroup_GetTrainingStatus",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the large person group's training status.",
+ "schema": {
+ "$ref": "#/definitions/TrainingStatus"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get large person group's training status example": {
+ "$ref": "./examples/GetLargePersonGroupTrainingStatus.json"
+ }
+ }
+ }
+ },
+ "/largepersongroups": {
+ "get": {
+ "description": "List all existing large person groups’ largePersonGroupId, name, userData and recognitionModel. \n* Large person groups are stored in alphabetical order of largePersonGroupId.\n* \"start\" parameter (string, optional) is a user-provided largePersonGroupId value that returned entries have larger ids by string comparison. \"start\" set to empty to indicate return from the first item.\n* \"top\" parameter (int, optional) specifies the number of entries to return. A maximal of 1000 entries can be returned in one call. To fetch more, you can specify \"start\" with the last returned entry’s Id of the current call.\n \nFor example, total 5 large person groups: \"group1\", ..., \"group5\".\n \"start=&top=\" will return all 5 groups.\n \"start=&top=2\" will return \"group1\", \"group2\".\n \"start=group2&top=3\" will return \"group3\", \"group4\", \"group5\".\n",
+ "operationId": "LargePersonGroup_List",
+ "parameters": [
+ {
+ "name": "start",
+ "in": "query",
+ "required": false,
+ "description": "List large person groups from the least largePersonGroupId greater than the \"start\".",
+ "type": "string",
+ "maxLength": 64
+ },
+ {
+ "name": "top",
+ "in": "query",
+ "required": false,
+ "description": "The number of large person groups to list.",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 1000,
+ "default": 1000
+ },
+ {
+ "$ref": "#/parameters/returnRecognitionModel"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an array of large person groups and their information.",
+ "schema": {
+ "$ref": "#/definitions/LargePersonGroups"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List large person groups example": {
+ "$ref": "./examples/ListLargePersonGroups.json"
+ }
+ }
+ }
+ },
+ "/largepersongroups/{largePersonGroupId}/train": {
+ "post": {
+ "description": "Queue a large person group training task, the training task may not be started immediately.",
+ "operationId": "LargePersonGroup_Train",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "202": {
+ "description": "The training task was queued successfully."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Queue large person group training": {
+ "$ref": "./examples/QueueLargePersonGroupTraining.json"
+ }
+ }
+ }
+ },
+ "/largepersongroups/{largePersonGroupId}/persons/{personId}/persistedfaces": {
+ "post": {
+ "description": "Add a face to a person into a large person group for face identification or verification. To deal with an image contains multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature will be stored on server until [LargePersonGroup PersonFace - Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroupperson/deleteface), [LargePersonGroup Person - Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroupperson/delete) or [LargePersonGroup - Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroup/delete) is called.\n Note persistedFaceId is different from faceId generated by [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).\n* Higher face image quality means better recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* Each person entry can hold up to 248 faces.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* \"targetFace\" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided \"targetFace\" rectangle is not returned from [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl), there’s no guarantee to detect and add the face successfully.\n* Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures.\n* Adding/deleting faces to/from a same person will be processed sequentially. Adding/deleting faces to/from different persons are processed in parallel.\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model)",
+ "operationId": "LargePersonGroupPerson_AddFaceFromUrl",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ },
+ {
+ "$ref": "#/parameters/faceUserData"
+ },
+ {
+ "$ref": "#/parameters/targetFace"
+ },
+ {
+ "$ref": "../../../Common/Parameters.json#/parameters/ImageUrl"
+ },
+ {
+ "$ref": "#/parameters/detectionModel"
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the new persistedFaceId.",
+ "schema": {
+ "$ref": "#/definitions/PersistedFace"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Add Person face example": {
+ "$ref": "./examples/AddLargePersonGroupPersonFaceFromUrl.json"
+ }
+ }
+ }
+ },
+ "/largefacelists/{largeFaceListId}": {
+ "put": {
+ "description": "Create an empty large face list with user-specified largeFaceListId, name, an optional userData and recognitionModel.\n Large face list is a list of faces, up to 1,000,000 faces, and used by [Face - Find Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar).\n After creation, user should use [LargeFaceList Face - Add](https://docs.microsoft.com/rest/api/faceapi/largefacelist/addfacefromurl) to import the faces and [LargeFaceList - Train](https://docs.microsoft.com/rest/api/faceapi/largefacelist/train) to make it ready for [Face - Find Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar). No image will be stored. Only the extracted face features are stored on server until [LargeFaceList - Delete](https://docs.microsoft.com/rest/api/faceapi/largefacelist/delete) is called.\n Find Similar is used for scenario like finding celebrity-like faces, similar face filtering, or as a light way face identification. But if the actual use is to identify person, please use [PersonGroup](https://docs.microsoft.com/rest/api/faceapi/persongroup) / [LargePersonGroup](https://docs.microsoft.com/rest/api/faceapi/largepersongroup) and [Face - Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify).\n 'recognitionModel' should be specified to associate with this large face list. The default value for 'recognitionModel' is 'recognition_01', if the latest model needed, please explicitly specify the model you need in this parameter. New faces that are added to an existing large face list will use the recognition model that's already associated with the collection. Existing face features in a large face list can't be updated to features extracted by another version of recognition model. Please refer to [Specify a recognition model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-recognition-model).\n\nLarge face list quota:\n* Free-tier subscription quota: 64 large face lists.\n* S0-tier subscription quota: 1,000,000 large face lists.",
+ "operationId": "LargeFaceList_Create",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largeFaceListId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for creating a large face list.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/MetaDataContract"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create new large face list example": {
+ "$ref": "./examples/CreateNewLargeFaceList.json"
+ }
+ }
+ },
+ "get": {
+ "description": "Retrieve a large face list’s largeFaceListId, name, userData and recognitionModel.",
+ "operationId": "LargeFaceList_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largeFaceListId"
+ },
+ {
+ "$ref": "#/parameters/returnRecognitionModel"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the large face list's information.",
+ "schema": {
+ "$ref": "#/definitions/LargeFaceList"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get large face list example": {
+ "$ref": "./examples/GetLargeFaceList.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Update information of a large face list.",
+ "operationId": "LargeFaceList_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largeFaceListId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for updating a large face list.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/NameAndUserDataContract"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update large face list example": {
+ "$ref": "./examples/UpdateLargeFaceList.json"
+ }
+ }
+ },
+ "delete": {
+ "description": "Delete a specified large face list.",
+ "operationId": "LargeFaceList_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largeFaceListId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete large face list example": {
+ "$ref": "./examples/DeleteLargeFaceList.json"
+ }
+ }
+ }
+ },
+ "/largefacelists/{largeFaceListId}/training": {
+ "get": {
+ "description": "Retrieve the training status of a large face list (completed or ongoing).",
+ "operationId": "LargeFaceList_GetTrainingStatus",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largeFaceListId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the large face list's training status.",
+ "schema": {
+ "$ref": "#/definitions/TrainingStatus"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get large face list's training status example": {
+ "$ref": "./examples/GetLargeFaceListTrainingStatus.json"
+ }
+ }
+ }
+ },
+ "/largefacelists": {
+ "get": {
+ "description": "List large face lists’ information of largeFaceListId, name, userData and recognitionModel. \nTo get face information inside largeFaceList use [LargeFaceList Face - Get](https://docs.microsoft.com/rest/api/faceapi/largefacelist/getface) \n* Large face lists are stored in alphabetical order of largeFaceListId.\n* \"start\" parameter (string, optional) is a user-provided largeFaceListId value that returned entries have larger ids by string comparison. \"start\" set to empty to indicate return from the first item.\n* \"top\" parameter (int, optional) specifies the number of entries to return. A maximal of 1000 entries can be returned in one call. To fetch more, you can specify \"start\" with the last returned entry’s Id of the current call.\n \nFor example, total 5 large person lists: \"list1\", ..., \"list5\".\n \"start=&top=\" will return all 5 lists.\n \"start=&top=2\" will return \"list1\", \"list2\".\n \"start=list2&top=3\" will return \"list3\", \"list4\", \"list5\".\n",
+ "operationId": "LargeFaceList_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/returnRecognitionModel"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an array of largeFaceList.",
+ "schema": {
+ "$ref": "#/definitions/LargeFaceLists"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "List large face lists example": {
+ "$ref": "./examples/ListLargeFaceLists.json"
+ }
+ }
+ }
+ },
+ "/largefacelists/{largeFaceListId}/train": {
+ "post": {
+ "description": "Queue a large face list training task, the training task may not be started immediately.",
+ "operationId": "LargeFaceList_Train",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largeFaceListId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "202": {
+ "description": "The training task was queued successfully."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Queue large face list training": {
+ "$ref": "./examples/QueueLargeFaceListTraining.json"
+ }
+ }
+ }
+ },
+ "/largefacelists/{largeFaceListId}/persistedfaces/{persistedFaceId}": {
+ "delete": {
+ "description": "Delete a face from a large face list by specified largeFaceListId and persistedFaceId.\n Adding/deleting faces to/from a same large face list are processed sequentially and to/from different large face lists are in parallel.",
+ "operationId": "LargeFaceList_DeleteFace",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largeFaceListId"
+ },
+ {
+ "$ref": "#/parameters/persistedFaceId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete face in large face list example": {
+ "$ref": "./examples/DeleteLargeFaceListFace.json"
+ }
+ }
+ },
+ "get": {
+ "description": "Retrieve information about a persisted face (specified by persistedFaceId and its belonging largeFaceListId).",
+ "operationId": "LargeFaceList_GetFace",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largeFaceListId"
+ },
+ {
+ "$ref": "#/parameters/persistedFaceId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns target persisted face's information (persistedFaceId and userData).",
+ "schema": {
+ "$ref": "#/definitions/PersistedFace"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get persisted face example": {
+ "$ref": "./examples/GetLargeFaceListPersistedFace.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Update a persisted face's userData field.",
+ "operationId": "LargeFaceList_UpdateFace",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largeFaceListId"
+ },
+ {
+ "$ref": "#/parameters/persistedFaceId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for updating persisted face.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateFaceRequest"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update face example": {
+ "$ref": "./examples/UpdateLargeFaceListFace.json"
+ }
+ }
+ }
+ },
+ "/largefacelists/{largeFaceListId}/persistedfaces": {
+ "post": {
+ "description": "Add a face to a specified large face list, up to 1,000,000 faces.\n To deal with an image contains multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature will be stored on server until [LargeFaceList Face - Delete](https://docs.microsoft.com/rest/api/faceapi/largefacelist/deleteface) or [LargeFaceList - Delete](https://docs.microsoft.com/rest/api/faceapi/largefacelist/delete) is called.\n Note persistedFaceId is different from faceId generated by [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).\n* Higher face image quality means better recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* \"targetFace\" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided \"targetFace\" rectangle is not returned from [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl), there’s no guarantee to detect and add the face successfully.\n* Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures.\n* Adding/deleting faces to/from a same face list are processed sequentially and to/from different face lists are in parallel.\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model)\n\nQuota:\n* Free-tier subscription quota: 1,000 faces per large face list.\n* S0-tier subscription quota: 1,000,000 faces per large face list.",
+ "operationId": "LargeFaceList_AddFaceFromUrl",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largeFaceListId"
+ },
+ {
+ "$ref": "#/parameters/faceUserData"
+ },
+ {
+ "$ref": "#/parameters/targetFace"
+ },
+ {
+ "$ref": "../../../Common/Parameters.json#/parameters/ImageUrl"
+ },
+ {
+ "$ref": "#/parameters/detectionModel"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns a new persistedFaceId.",
+ "schema": {
+ "$ref": "#/definitions/PersistedFace"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create large face list face example": {
+ "$ref": "./examples/AddLargeFaceListFaceFromUrl.json"
+ }
+ }
+ },
+ "get": {
+ "description": "List all faces in a large face list, and retrieve face information (including userData and persistedFaceIds of registered faces of the face).",
+ "operationId": "LargeFaceList_ListFaces",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largeFaceListId"
+ },
+ {
+ "name": "start",
+ "description": "Starting face id to return (used to list a range of faces).",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "top",
+ "description": "Number of faces to return starting with the face id indicated by the 'start' parameter.",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 1000
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an array of face information that belong to the large face list.",
+ "schema": {
+ "$ref": "#/definitions/PersistedFaces"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List faces in large face list": {
+ "$ref": "./examples/ListLargeFaceListFaces.json"
+ }
+ }
+ }
+ },
+ "/snapshots": {
+ "post": {
+ "description": "Submit an operation to take a snapshot of face list, large face list, person group or large person group, with user-specified snapshot type, source object id, apply scope and an optional user data. \nThe snapshot interfaces are for users to backup and restore their face data from one face subscription to another, inside same region or across regions. The workflow contains two phases, user first calls Snapshot - Take to create a copy of the source object and store it as a snapshot, then calls Snapshot - Apply to paste the snapshot to target subscription. The snapshots are stored in a centralized location (per Azure instance), so that they can be applied cross accounts and regions. \nTaking snapshot is an asynchronous operation. An operation id can be obtained from the \"Operation-Location\" field in response header, to be used in OperationStatus - Get for tracking the progress of creating the snapshot. The snapshot id will be included in the \"resourceLocation\" field in OperationStatus - Get response when the operation status is \"succeeded\". \nSnapshot taking time depends on the number of person and face entries in the source object. It could be in seconds, or up to several hours for 1,000,000 persons with multiple faces. \nSnapshots will be automatically expired and cleaned in 48 hours after it is created by Snapshot - Take. User can delete the snapshot using Snapshot - Delete by themselves any time before expiration. \nTaking snapshot for a certain object will not block any other operations against the object. All read-only operations (Get/List and Identify/FindSimilar/Verify) can be conducted as usual. For all writable operations, including Add/Update/Delete the source object or its persons/faces and Train, they are not blocked but not recommended because writable updates may not be reflected on the snapshot during its taking. After snapshot taking is completed, all readable and writable operations can work as normal. Snapshot will also include the training results of the source object, which means target subscription the snapshot applied to does not need re-train the target object before calling Identify/FindSimilar. \n* Free-tier subscription quota: 100 take operations per month.\n* S0-tier subscription quota: 100 take operations per day.",
+ "operationId": "Snapshot_Take",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Request body for taking a snapshot.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/TakeSnapshotRequest"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "202": {
+ "description": "The snapshot taking task was queued successfully.",
+ "headers": {
+ "Operation-Location": {
+ "description": "Operation location with an operation id used to track the progress of taking snapshot. The returned id is the operation id, rather than snapshot id. Snapshot id can be obtained only when the operation status becomes \"succeeded\" in OperationStatus - Get.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Take a snapshot example": {
+ "$ref": "./examples/TakeSnapshot.json"
+ }
+ }
+ },
+ "get": {
+ "description": "List all accessible snapshots with related information, including snapshots that were taken by the user, or snapshots to be applied to the user (subscription id was included in the applyScope in Snapshot - Take).",
+ "operationId": "Snapshot_List",
+ "parameters": [
+ {
+ "name": "type",
+ "description": "User specified object type as a search filter.",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SnapshotObjectType",
+ "modelAsString": false
+ },
+ "enum": [
+ "FaceList",
+ "LargeFaceList",
+ "LargePersonGroup",
+ "PersonGroup"
+ ]
+ },
+ {
+ "$ref": "#/parameters/applyScope"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an array of snapshots with snapshot information.",
+ "schema": {
+ "$ref": "#/definitions/Snapshots"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "List snapshots example": {
+ "$ref": "./examples/ListSnapshots.json"
+ }
+ }
+ }
+ },
+ "/snapshots/{snapshotId}": {
+ "get": {
+ "description": "Retrieve information about a snapshot. Snapshot is only accessible to the source subscription who took it, and target subscriptions included in the applyScope in Snapshot - Take.",
+ "operationId": "Snapshot_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/snapshotId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the snapshot's information.",
+ "schema": {
+ "$ref": "#/definitions/Snapshot"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get snapshot example": {
+ "$ref": "./examples/GetSnapshot.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Update the information of a snapshot. Only the source subscription who took the snapshot can update the snapshot.",
+ "operationId": "Snapshot_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/snapshotId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for updating a snapshot.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateSnapshotRequest"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update snapshot example": {
+ "$ref": "./examples/UpdateSnapshot.json"
+ }
+ }
+ },
+ "delete": {
+ "description": "Delete an existing snapshot according to the snapshotId. All object data and information in the snapshot will also be deleted. Only the source subscription who took the snapshot can delete the snapshot. If the user does not delete a snapshot with this API, the snapshot will still be automatically deleted in 48 hours after creation.",
+ "operationId": "Snapshot_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/snapshotId"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an empty response body."
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete snapshot example": {
+ "$ref": "./examples/DeleteSnapshot.json"
+ }
+ }
+ }
+ },
+ "/snapshots/{snapshotId}/apply": {
+ "post": {
+ "description": "Submit an operation to apply a snapshot to current subscription. For each snapshot, only subscriptions included in the applyScope of Snapshot - Take can apply it. \nThe snapshot interfaces are for users to backup and restore their face data from one face subscription to another, inside same region or across regions. The workflow contains two phases, user first calls Snapshot - Take to create a copy of the source object and store it as a snapshot, then calls Snapshot - Apply to paste the snapshot to target subscription. The snapshots are stored in a centralized location (per Azure instance), so that they can be applied cross accounts and regions. \nApplying snapshot is an asynchronous operation. An operation id can be obtained from the \"Operation-Location\" field in response header, to be used in OperationStatus - Get for tracking the progress of applying the snapshot. The target object id will be included in the \"resourceLocation\" field in OperationStatus - Get response when the operation status is \"succeeded\". \nSnapshot applying time depends on the number of person and face entries in the snapshot object. It could be in seconds, or up to 1 hour for 1,000,000 persons with multiple faces. \nSnapshots will be automatically expired and cleaned in 48 hours after it is created by Snapshot - Take. So the target subscription is required to apply the snapshot in 48 hours since its creation. \nApplying a snapshot will not block any other operations against the target object, however it is not recommended because the correctness cannot be guaranteed during snapshot applying. After snapshot applying is completed, all operations towards the target object can work as normal. Snapshot also includes the training results of the source object, which means target subscription the snapshot applied to does not need re-train the target object before calling Identify/FindSimilar. \nOne snapshot can be applied multiple times in parallel, while currently only CreateNew apply mode is supported, which means the apply operation will fail if target subscription already contains an object of same type and using the same objectId. Users can specify the \"objectId\" in request body to avoid such conflicts. \n* Free-tier subscription quota: 100 apply operations per month.\n* S0-tier subscription quota: 100 apply operations per day.",
+ "operationId": "Snapshot_Apply",
+ "parameters": [
+ {
+ "$ref": "#/parameters/snapshotId"
+ },
+ {
+ "name": "body",
+ "description": "Request body for applying a snapshot.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/ApplySnapshotRequest"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "202": {
+ "description": "The snapshot applying task was queued successfully.",
+ "headers": {
+ "Operation-Location": {
+ "description": "Operation location with an operation id used to track the progress of applying the snapshot by OperationStatus - Get.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Apply snapshot example": {
+ "$ref": "./examples/ApplySnapshot.json"
+ }
+ }
+ }
+ },
+ "/operations/{operationId}": {
+ "get": {
+ "description": "Get status of a long running operation.",
+ "operationId": "Snapshot_GetOperationStatus",
+ "parameters": [
+ {
+ "$ref": "#/parameters/operationId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the operation's status.",
+ "schema": {
+ "$ref": "#/definitions/AsyncStatus"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get snapshot operation status example": {
+ "$ref": "./examples/GetSnapshotOperationStatus.json"
+ }
+ }
+ }
+ },
+ "/persons": {
+ "get": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Retrieve list of person information in person directory.",
+ "operationId": "PersonDirectory_GetPersons",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "start",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "top",
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnrollmentResponse"
+ }
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get person directory persons example": {
+ "$ref": "./examples/GetPersonDirectoryPersons.json"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Creates a new person in person directory.",
+ "operationId": "PersonDirectory_CreatePerson",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/EnrolledPerson"
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/PersonCreationResponse"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create person in person directory example": {
+ "$ref": "./examples/CreateNewPersonDirectoryPerson.json"
+ }
+ }
+ }
+ },
+ "/persons/{personId}": {
+ "patch": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Update name or userData of a person.",
+ "operationId": "PersonDirectory_UpdatePerson",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "personId",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/EnrollmentRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create person in person directory example": {
+ "$ref": "./examples/UpdatePersonDirectoryPerson.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Delete an existing person from person directory. \r\nThe persistedFaceId, userData, person name and face feature(s) in the person entry will all be deleted.",
+ "operationId": "PersonDirectory_DeletePerson",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "personId",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete person from person directory example": {
+ "$ref": "./examples/DeletePersonDirectoryPerson.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Retrieve a person's name and userData, and the persisted faceIds representing the registered person face feature(s).",
+ "operationId": "PersonDirectory_GetPerson",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "personId",
+ "description": "Person id.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/EnrolledPerson"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get person from person directory example": {
+ "$ref": "./examples/GetPersonDirectoryPerson.json"
+ }
+ }
+ }
+ },
+ "/persons/{personId}/recognitionModels/{recognitionModel}/persistedFaces": {
+ "post": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Add a new face to person.",
+ "operationId": "PersonDirectory_AddPersonFace",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "personId",
+ "description": "Person id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "recognitionModel",
+ "description": "Recognition model string.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "detectionModel",
+ "description": "Detection model string.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "userData",
+ "description": "User data of person face.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "targetFace",
+ "description": "Target face.",
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/EnrollmentPrintResponse"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Add face to person in person directory example": {
+ "$ref": "./examples/AddPersonDirectoryPersonFaceFromUrl.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Retrieve person face information. The persisted person face is specified by its personId and persistedFaceId.",
+ "operationId": "PersonDirectory_GetPersonFaces",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "personId",
+ "description": "Target person to get persistedFaceIds from.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "recognitionModel",
+ "description": "The 'recognitionModel' associated with this persisted face.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/PersonResponse"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get person face in person directory example": {
+ "$ref": "./examples/GetPersonDirectoryPersonFaces.json"
+ }
+ }
+ }
+ },
+ "/persons/{personId}/recognitionModels/{recognitionModel}/persistedFaces/{persistedFaceId}": {
+ "delete": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Delete an existing person face from person directory. \r\nThe persistedFaceId, userData, and face feature in the person entry will all be deleted.",
+ "operationId": "PersonDirectory_DeletePersonFace",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "personId",
+ "description": "Person id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "recognitionModel",
+ "description": "Recognition model string.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "persistedFaceId",
+ "description": "Persisted face id to delete.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete face from person directory person example": {
+ "$ref": "./examples/DeletePersonDirectoryPersonFace.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Retrieve person face information. The persisted person face is specified by its personId and persistedFaceId.",
+ "operationId": "PersonDirectory_GetPersonFace",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "personId",
+ "description": "Target person to get face from.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "recognitionModel",
+ "description": "The 'recognitionModel' associated with this persisted face.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "persistedFaceId",
+ "description": "Target person face id to get.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/PersistedFaceResponse"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get person directory person face example": {
+ "$ref": "./examples/GetPersonDirectoryPersonFace.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Update the data of a person face.",
+ "operationId": "PersonDirectory_UpdatePersonFace",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "personId",
+ "description": "Target person to update face from.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "recognitionModel",
+ "description": "The 'recognitionModel' associated with this persisted face.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "persistedFaceId",
+ "description": "PersistedFaceId created from Person Face Create",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "Target person face id to update.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PersistedFaceWithType"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update face from person directory person example": {
+ "$ref": "./examples/UpdatePersonDirectoryPersonFace.json"
+ }
+ }
+ }
+ },
+ "/dynamicpersongroups/{dynamicPersonGroupId}": {
+ "put": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Creates a new dynamic person group with specified dynamicPersonGroupId, name, and user-provided userData.\r\nA dynamic person group is a container that references persons.\r\nAfter creation, use \"DynamicPersonGroup - Update\" to add/remove persons into the search space.\r\nDynamicPersonGroup and UserData will be stored on server until DynamicPersonGroup Delete is called.",
+ "operationId": "PersonDirectory_CreateDynamicPersonGroup",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "dynamicPersonGroupId",
+ "description": "User provided dynamic person group Id. Valid format should be a string composed by numbers, English letters in lower case, '-', '_', and no longer than 64 characters.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DynamicPersonGroupCreateRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success"
+ },
+ "202": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create dynamic person group example": {
+ "$ref": "./examples/CreateNewDynamicPersonGroup.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Updates an existing dynamic person group with specified dynamicPersonGroupId, name, and user-provided userData.",
+ "operationId": "PersonDirectory_UpdateDynamicPersonGroup",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "dynamicPersonGroupId",
+ "description": "User provided dynamic person group Id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DynamicPersonGroupUpdateRequest"
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update dynamic person group example": {
+ "$ref": "./examples/UpdateDynamicPersonGroup.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Get metadata on a dynamic person group.",
+ "operationId": "PersonDirectory_GetDynamicPersonGroup",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "dynamicPersonGroupId",
+ "description": "User provided dynamic person group id",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/DynamicPersonGroupGetResponse"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get dynamic person group example": {
+ "$ref": "./examples/GetDynamicPersonGroup.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Delete an existing dynamic person group. \r\nNote that Persons are not deleted with this operation. To delete person call Person Delete.",
+ "operationId": "PersonDirectory_DeleteDynamicPersonGroup",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "dynamicPersonGroupId",
+ "description": "User provided dynamic person group Id.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete dynamic person group example": {
+ "$ref": "./examples/DeleteDynamicPersonGroup.json"
+ }
+ }
+ }
+ },
+ "/dynamicpersongroups/{dynamicPersonGroupId}/persons": {
+ "get": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Retrieve list of persons referenced in a given DynamicPersonGroup person directory.",
+ "operationId": "PersonDirectory_ListDynamicPersonGroupPersons",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "dynamicPersonGroupId",
+ "description": "Dynamic person group Id to list persons from",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "start",
+ "description": "List persons from the least personId greater than the \"start\". It contains no more than 64 characters. Default is empty.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "top",
+ "description": "The number of persons to list, ranging in [1, 1000]. Default is 1000.",
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/DynamicPersonGroupListPersonsResponse"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List dynamic person group persons example": {
+ "$ref": "./examples/ListDynamicPersonGroupPersons.json"
+ }
+ }
+ }
+ },
+ "/dynamicpersongroups": {
+ "get": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Retrieve list of dynamic person groups in person directory.",
+ "operationId": "PersonDirectory_ListDynamicPersonGroups",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "start",
+ "description": "List dynamicPersonGroupId from the least dynamicPersonGroupId greater than the \"start\". It contains no more than 64 characters. Default is empty.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "top",
+ "description": "The number of dynamicPersonGroups to list, ranging in [1, 1000]. Default is 1000.",
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DynamicPersonGroupGetResponse"
+ }
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List dynamic person groups example": {
+ "$ref": "./examples/ListDynamicPersonGroups.json"
+ }
+ }
+ }
+ },
+ "/persons/{personId}/dynamicPersonGroupReferences": {
+ "get": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "List the dynamic person groups that a person has been referenced in.",
+ "operationId": "PersonDirectory_ListDynamicPersonGroupPersonReferences",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "personId",
+ "description": "Valid PersonId created from Person Create.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "start",
+ "description": "List dynamic person group id from the least dynamicPersonGroupId greater than the \"start\". It contains no more than 64 characters. Default is empty.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "top",
+ "description": "The number of dynamicPersonGroupId to list, ranging in [1, 1000]. Default is 1000.",
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/PersonDynamicPersonGroupReferenceResponse"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List dynamic person group references example": {
+ "$ref": "./examples/ListDynamicPersonGroupReferences.json"
+ }
+ }
+ }
+ }
+ },
+ "x-ms-paths": {
+ "/verify?overload=person": {
+ "post": {
+ "description": "Verify whether two faces belong to a same person. Compares a face Id with a Person Id",
+ "operationId": "Face_VerifyFaceToPerson",
+ "parameters": [
+ {
+ "name": "body",
+ "description": "Request body for face to person verification.",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/VerifyFaceToPersonRequest"
+ }
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the verification result.",
+ "schema": {
+ "$ref": "#/definitions/VerifyResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Verify face to person example": {
+ "$ref": "./examples/VerifyFaceToPerson.json"
+ }
+ }
+ }
+ },
+ "/detect?overload=stream": {
+ "post": {
+ "description": "Detect human faces in an image, return face rectangles, and optionally with faceIds, landmarks, and attributes. \n* No image will be stored. Only the extracted face feature will be stored on server. The faceId is an identifier of the face feature and will be used in [Face - Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify), [Face - Verify](https://docs.microsoft.com/rest/api/faceapi/face/verifyfacetoface), and [Face - Find Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar). The stored face feature(s) will expire and be deleted at the time specified by faceIdTimeToLive after the original detection call.\n* Optional parameters include faceId, landmarks, and attributes. Attributes include age, gender, headPose, smile, facialHair, glasses, emotion, hair, makeup, occlusion, accessories, blur, exposure, noise, and mask. Some of the results returned for specific attributes may not be highly accurate.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* Up to 100 faces can be returned for an image. Faces are ranked by face rectangle size from large to small.\n* For optimal results when querying [Face - Identify](https://docs.microsoft.com/rest/api/faceapi/face/identify), [Face - Verify](https://docs.microsoft.com/rest/api/faceapi/face/verifyfacetoface), and [Face - Find Similar](https://docs.microsoft.com/rest/api/faceapi/face/findsimilar) ('returnFaceId' is true), please use faces that are: frontal, clear, and with a minimum size of 200x200 pixels (100 pixels between eyes).\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model)\n* Different 'recognitionModel' values are provided. If follow-up operations like Verify, Identify, Find Similar are needed, please specify the recognition model with 'recognitionModel' parameter. The default value for 'recognitionModel' is 'recognition_01', if latest model needed, please explicitly specify the model you need in this parameter. Once specified, the detected faceIds will be associated with the specified recognition model. More details, please refer to [Specify a recognition model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-recognition-model).",
+ "operationId": "Face_DetectWithStream",
+ "parameters": [
+ {
+ "$ref": "#/parameters/returnFaceId"
+ },
+ {
+ "$ref": "#/parameters/returnFaceLandmarks"
+ },
+ {
+ "$ref": "#/parameters/returnFaceAttributes"
+ },
+ {
+ "$ref": "../../../Common/Parameters.json#/parameters/ImageStream"
+ },
+ {
+ "$ref": "#/parameters/recognitionModel"
+ },
+ {
+ "$ref": "#/parameters/returnRecognitionModel"
+ },
+ {
+ "$ref": "#/parameters/detectionModel"
+ },
+ {
+ "$ref": "#/parameters/faceIdTimeToLive"
+ }
+ ],
+ "consumes": [
+ "application/octet-stream"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns an array of face entries ranked by face rectangle size in descending order. An empty response indicates no faces detected.",
+ "schema": {
+ "$ref": "#/definitions/DetectedFaces"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Detect with stream example": {
+ "$ref": "./examples/DetectWithStream.json"
+ }
+ }
+ }
+ },
+ "/persongroups/{personGroupId}/persons/{personId}/persistedfaces?overload=stream": {
+ "post": {
+ "description": "Add a face to a person into a person group for face identification or verification. To deal with an image contains multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature will be stored on server until [PersonGroup PersonFace - Delete](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/deleteface), [PersonGroup Person - Delete](https://docs.microsoft.com/rest/api/faceapi/persongroupperson/delete) or [PersonGroup - Delete](https://docs.microsoft.com/rest/api/faceapi/persongroup/delete) is called.\n Note persistedFaceId is different from faceId generated by [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).\n* Higher face image quality means better recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* Each person entry can hold up to 248 faces.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* \"targetFace\" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided \"targetFace\" rectangle is not returned from [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl), there’s no guarantee to detect and add the face successfully.\n* Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures.\n* Adding/deleting faces to/from a same person will be processed sequentially. Adding/deleting faces to/from different persons are processed in parallel.\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model).",
+ "operationId": "PersonGroupPerson_AddFaceFromStream",
+ "parameters": [
+ {
+ "$ref": "#/parameters/personGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ },
+ {
+ "$ref": "#/parameters/faceUserData"
+ },
+ {
+ "$ref": "#/parameters/targetFace"
+ },
+ {
+ "$ref": "../../../Common/Parameters.json#/parameters/ImageStream"
+ },
+ {
+ "$ref": "#/parameters/detectionModel"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/octet-stream"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the new persistedFaceId.",
+ "schema": {
+ "$ref": "#/definitions/PersistedFace"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Add face to person with stream example": {
+ "$ref": "./examples/AddPersonGroupPersonFaceFromStream.json"
+ }
+ }
+ }
+ },
+ "/facelists/{faceListId}/persistedfaces?overload=stream": {
+ "post": {
+ "description": "Add a face to a specified face list, up to 1,000 faces.\n To deal with an image contains multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature will be stored on server until [FaceList - Delete Face](https://docs.microsoft.com/rest/api/faceapi/facelist/deleteface) or [FaceList - Delete](https://docs.microsoft.com/rest/api/faceapi/facelist/delete) is called.\n Note persistedFaceId is different from faceId generated by [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).\n* Higher face image quality means better detection and recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* \"targetFace\" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided \"targetFace\" rectangle is not returned from [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl), there’s no guarantee to detect and add the face successfully.\n* Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures.\n* Adding/deleting faces to/from a same face list are processed sequentially and to/from different face lists are in parallel.\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model).",
+ "operationId": "FaceList_AddFaceFromStream",
+ "parameters": [
+ {
+ "$ref": "#/parameters/faceListId"
+ },
+ {
+ "$ref": "#/parameters/faceUserData"
+ },
+ {
+ "$ref": "#/parameters/targetFace"
+ },
+ {
+ "$ref": "../../../Common/Parameters.json#/parameters/ImageStream"
+ },
+ {
+ "$ref": "#/parameters/detectionModel"
+ }
+ ],
+ "consumes": [
+ "application/octet-stream"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns a new persistedFaceId.",
+ "schema": {
+ "$ref": "#/definitions/PersistedFace"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Add face to face list from stream example": {
+ "$ref": "./examples/AddFaceListFaceFromStream.json"
+ }
+ }
+ }
+ },
+ "/largepersongroups/{largePersonGroupId}/persons/{personId}/persistedfaces?overload=stream": {
+ "post": {
+ "description": "Add a face to a person into a large person group for face identification or verification. To deal with an image contains multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature will be stored on server until [LargePersonGroup PersonFace - Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroupperson/deleteface), [LargePersonGroup Person - Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroupperson/delete) or [LargePersonGroup - Delete](https://docs.microsoft.com/rest/api/faceapi/largepersongroup/delete) is called.\n Note persistedFaceId is different from faceId generated by [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).\n* Higher face image quality means better recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* Each person entry can hold up to 248 faces.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* \"targetFace\" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided \"targetFace\" rectangle is not returned from [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl), there’s no guarantee to detect and add the face successfully.\n* Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures.\n* Adding/deleting faces to/from a same person will be processed sequentially. Adding/deleting faces to/from different persons are processed in parallel.\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model).",
+ "operationId": "LargePersonGroupPerson_AddFaceFromStream",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largePersonGroupId"
+ },
+ {
+ "$ref": "#/parameters/personId"
+ },
+ {
+ "$ref": "#/parameters/faceUserData"
+ },
+ {
+ "$ref": "#/parameters/targetFace"
+ },
+ {
+ "$ref": "../../../Common/Parameters.json#/parameters/ImageStream"
+ },
+ {
+ "$ref": "#/parameters/detectionModel"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/octet-stream"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns the new persistedFaceId.",
+ "schema": {
+ "$ref": "#/definitions/PersistedFace"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Add face to person with stream example": {
+ "$ref": "./examples/AddLargePersonGroupPersonFaceFromStream.json"
+ }
+ }
+ }
+ },
+ "/largefacelists/{largeFaceListId}/persistedfaces?overload=stream": {
+ "post": {
+ "description": "Add a face to a specified large face list, up to 1,000,000 faces.\n To deal with an image contains multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature will be stored on server until [LargeFaceList Face - Delete](https://docs.microsoft.com/rest/api/faceapi/largefacelist/deleteface) or [LargeFaceList - Delete](https://docs.microsoft.com/rest/api/faceapi/largefacelist/delete) is called.\n Note persistedFaceId is different from faceId generated by [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl).\n* Higher face image quality means better recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* \"targetFace\" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided \"targetFace\" rectangle is not returned from [Face - Detect](https://docs.microsoft.com/rest/api/faceapi/face/detectwithurl), there’s no guarantee to detect and add the face successfully.\n* Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures.\n* Adding/deleting faces to/from a same face list are processed sequentially and to/from different face lists are in parallel.\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model).\n\nQuota:\n* Free-tier subscription quota: 1,000 faces per large face list.\n* S0-tier subscription quota: 1,000,000 faces per large face list.",
+ "operationId": "LargeFaceList_AddFaceFromStream",
+ "parameters": [
+ {
+ "$ref": "#/parameters/largeFaceListId"
+ },
+ {
+ "$ref": "#/parameters/faceUserData"
+ },
+ {
+ "$ref": "#/parameters/targetFace"
+ },
+ {
+ "$ref": "../../../Common/Parameters.json#/parameters/ImageStream"
+ },
+ {
+ "$ref": "#/parameters/detectionModel"
+ }
+ ],
+ "consumes": [
+ "application/octet-stream"
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call returns a new persistedFaceId.",
+ "schema": {
+ "$ref": "#/definitions/PersistedFace"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/APIError"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Add face to large face list from stream example": {
+ "$ref": "./examples/AddLargeFaceListFaceFromStream.json"
+ }
+ }
+ }
+ },
+ "/persons/{personId}/recognitionModels/{recognitionModel}/persistedFaces?overload=stream": {
+ "post": {
+ "tags": [
+ "PersonDirectory"
+ ],
+ "summary": "Add a new face to person.",
+ "operationId": "PersonDirectory_AddPersonFaceFromStream",
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/octet-stream"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "personId",
+ "description": "Person id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "recognitionModel",
+ "description": "Recognition model string.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "detectionModel",
+ "description": "Detection model string.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "userData",
+ "description": "User data of person face.",
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "targetFace",
+ "description": "Target face.",
+ "type": "string"
+ },
+ {
+ "$ref": "../../../Common/Parameters.json#/parameters/ImageStream"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/EnrollmentPrintResponse"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Add face to person directory person with stream example": {
+ "$ref": "./examples/AddPersonDirectoryPersonFaceFromStream.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "APIError": {
+ "type": "object",
+ "description": "Error information returned by the API",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "Error": {
+ "type": "object",
+ "description": "Error body.",
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ }
+ }
+ },
+ "DetectedFaces": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DetectedFace"
+ }
+ },
+ "DetectedFace": {
+ "type": "object",
+ "required": [
+ "faceRectangle"
+ ],
+ "description": "Detected Face object.",
+ "properties": {
+ "faceId": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "recognitionModel": {
+ "$ref": "#/definitions/RecognitionModel"
+ },
+ "faceRectangle": {
+ "$ref": "#/definitions/FaceRectangle"
+ },
+ "faceLandmarks": {
+ "$ref": "#/definitions/FaceLandmarks"
+ },
+ "faceAttributes": {
+ "$ref": "#/definitions/FaceAttributes"
+ }
+ }
+ },
+ "FaceRectangle": {
+ "type": "object",
+ "required": [
+ "width",
+ "height",
+ "left",
+ "top"
+ ],
+ "description": "A rectangle within which a face can be found",
+ "properties": {
+ "width": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The width of the rectangle, in pixels."
+ },
+ "height": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The height of the rectangle, in pixels."
+ },
+ "left": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The distance from the left edge if the image to the left edge of the rectangle, in pixels."
+ },
+ "top": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The distance from the top edge if the image to the top edge of the rectangle, in pixels."
+ }
+ }
+ },
+ "Coordinate": {
+ "type": "object",
+ "required": [
+ "x",
+ "y"
+ ],
+ "description": "Coordinates within an image",
+ "properties": {
+ "x": {
+ "type": "number",
+ "description": "The horizontal component, in pixels."
+ },
+ "y": {
+ "type": "number",
+ "description": "The vertical component, in pixels."
+ }
+ }
+ },
+ "FaceLandmarks": {
+ "type": "object",
+ "description": "A collection of 27-point face landmarks pointing to the important positions of face components.",
+ "properties": {
+ "pupilLeft": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "pupilRight": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "noseTip": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "mouthLeft": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "mouthRight": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "eyebrowLeftOuter": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "eyebrowLeftInner": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "eyeLeftOuter": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "eyeLeftTop": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "eyeLeftBottom": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "eyeLeftInner": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "eyebrowRightInner": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "eyebrowRightOuter": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "eyeRightInner": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "eyeRightTop": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "eyeRightBottom": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "eyeRightOuter": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "noseRootLeft": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "noseRootRight": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "noseLeftAlarTop": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "noseRightAlarTop": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "noseLeftAlarOutTip": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "noseRightAlarOutTip": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "upperLipTop": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "upperLipBottom": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "underLipTop": {
+ "$ref": "#/definitions/Coordinate"
+ },
+ "underLipBottom": {
+ "$ref": "#/definitions/Coordinate"
+ }
+ }
+ },
+ "FaceAttributes": {
+ "type": "object",
+ "description": "Face Attributes",
+ "properties": {
+ "age": {
+ "type": "number",
+ "description": "Age in years"
+ },
+ "gender": {
+ "type": "string",
+ "description": "Possible gender of the face.",
+ "x-ms-enum": {
+ "name": "Gender",
+ "modelAsString": false
+ },
+ "enum": [
+ "male",
+ "female"
+ ]
+ },
+ "smile": {
+ "description": "Smile intensity, a number between [0,1] ",
+ "$ref": "#/definitions/Level"
+ },
+ "facialHair": {
+ "description": "Properties describing facial hair attributes.",
+ "$ref": "#/definitions/FacialHair"
+ },
+ "glasses": {
+ "type": "string",
+ "description": "Glasses type if any of the face.",
+ "x-ms-enum": {
+ "name": "GlassesType",
+ "modelAsString": false
+ },
+ "enum": [
+ "noGlasses",
+ "readingGlasses",
+ "sunglasses",
+ "swimmingGoggles"
+ ]
+ },
+ "headPose": {
+ "description": "Properties indicating head pose of the face.",
+ "$ref": "#/definitions/HeadPose"
+ },
+ "emotion": {
+ "description": "Properties describing facial emotion in form of confidence ranging from 0 to 1.",
+ "$ref": "#/definitions/Emotion"
+ },
+ "hair": {
+ "description": "Properties describing hair attributes.",
+ "$ref": "#/definitions/Hair"
+ },
+ "makeup": {
+ "description": "Properties describing the presence of makeup on a given face.",
+ "$ref": "#/definitions/Makeup"
+ },
+ "occlusion": {
+ "description": "Properties describing occlusions on a given face.",
+ "$ref": "#/definitions/Occlusion"
+ },
+ "accessories": {
+ "description": "Properties describing any accessories on a given face.",
+ "$ref": "#/definitions/Accessories"
+ },
+ "blur": {
+ "description": "Properties describing any presence of blur within the image.",
+ "$ref": "#/definitions/Blur"
+ },
+ "exposure": {
+ "description": "Properties describing exposure level of the image.",
+ "$ref": "#/definitions/Exposure"
+ },
+ "noise": {
+ "description": "Properties describing noise level of the image.",
+ "$ref": "#/definitions/Noise"
+ },
+ "mask": {
+ "description": "Properties describing the presence of a mask on a given face.",
+ "$ref": "#/definitions/Mask"
+ }
+ }
+ },
+ "FacialHair": {
+ "type": "object",
+ "description": "Properties describing facial hair attributes.",
+ "properties": {
+ "moustache": {
+ "x-nullable": false,
+ "$ref": "#/definitions/Confidence"
+ },
+ "beard": {
+ "x-nullable": false,
+ "$ref": "#/definitions/Confidence"
+ },
+ "sideburns": {
+ "x-nullable": false,
+ "$ref": "#/definitions/Confidence"
+ }
+ }
+ },
+ "HeadPose": {
+ "type": "object",
+ "description": "Properties indicating head pose of the face.",
+ "properties": {
+ "roll": {
+ "type": "number",
+ "x-nullable": false
+ },
+ "yaw": {
+ "type": "number",
+ "x-nullable": false
+ },
+ "pitch": {
+ "type": "number",
+ "x-nullable": false
+ }
+ }
+ },
+ "Emotion": {
+ "type": "object",
+ "description": "Properties describing facial emotion in form of confidence ranging from 0 to 1.",
+ "properties": {
+ "anger": {
+ "x-nullable": false,
+ "$ref": "#/definitions/Confidence"
+ },
+ "contempt": {
+ "x-nullable": false,
+ "$ref": "#/definitions/Confidence"
+ },
+ "disgust": {
+ "x-nullable": false,
+ "$ref": "#/definitions/Confidence"
+ },
+ "fear": {
+ "x-nullable": false,
+ "$ref": "#/definitions/Confidence"
+ },
+ "happiness": {
+ "x-nullable": false,
+ "$ref": "#/definitions/Confidence"
+ },
+ "neutral": {
+ "x-nullable": false,
+ "$ref": "#/definitions/Confidence"
+ },
+ "sadness": {
+ "x-nullable": false,
+ "$ref": "#/definitions/Confidence"
+ },
+ "surprise": {
+ "x-nullable": false,
+ "$ref": "#/definitions/Confidence"
+ }
+ }
+ },
+ "Hair": {
+ "type": "object",
+ "description": "Properties describing hair attributes.",
+ "properties": {
+ "bald": {
+ "description": "A number describing confidence level of whether the person is bald.",
+ "x-nullable": false,
+ "$ref": "#/definitions/Confidence"
+ },
+ "invisible": {
+ "type": "boolean",
+ "description": "A boolean value describing whether the hair is visible in the image.",
+ "x-nullable": false
+ },
+ "hairColor": {
+ "description": "An array of candidate colors and confidence level in the presence of each.",
+ "$ref": "#/definitions/HairColors"
+ }
+ }
+ },
+ "HairColors": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HairColor"
+ }
+ },
+ "HairColor": {
+ "type": "object",
+ "description": "Hair color and associated confidence",
+ "properties": {
+ "color": {
+ "type": "string",
+ "description": "Name of the hair color.",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "HairColorType",
+ "modelAsString": false
+ },
+ "enum": [
+ "unknown",
+ "white",
+ "gray",
+ "blond",
+ "brown",
+ "red",
+ "black",
+ "other"
+ ]
+ },
+ "confidence": {
+ "x-nullable": false,
+ "description": "Confidence level of the color",
+ "$ref": "#/definitions/Confidence"
+ }
+ }
+ },
+ "Makeup": {
+ "type": "object",
+ "description": "Properties describing the presence of makeup on a given face.",
+ "properties": {
+ "eyeMakeup": {
+ "type": "boolean",
+ "description": "A boolean value describing whether eye makeup is present on a face.",
+ "x-nullable": false
+ },
+ "lipMakeup": {
+ "type": "boolean",
+ "description": "A boolean value describing whether lip makeup is present on a face.",
+ "x-nullable": false
+ }
+ }
+ },
+ "Occlusion": {
+ "type": "object",
+ "description": "Properties describing occlusions on a given face.",
+ "properties": {
+ "foreheadOccluded": {
+ "type": "boolean",
+ "description": "A boolean value indicating whether forehead is occluded.",
+ "x-nullable": false
+ },
+ "eyeOccluded": {
+ "type": "boolean",
+ "description": "A boolean value indicating whether eyes are occluded.",
+ "x-nullable": false
+ },
+ "mouthOccluded": {
+ "type": "boolean",
+ "description": "A boolean value indicating whether the mouth is occluded.",
+ "x-nullable": false
+ }
+ }
+ },
+ "Accessories": {
+ "type": "array",
+ "description": "Properties describing any accessories on a given face.",
+ "items": {
+ "$ref": "#/definitions/Accessory"
+ }
+ },
+ "Accessory": {
+ "type": "object",
+ "description": "Accessory item and corresponding confidence level.",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Type of an accessory",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "AccessoryType",
+ "modelAsString": false
+ },
+ "enum": [
+ "headWear",
+ "glasses",
+ "mask"
+ ]
+ },
+ "confidence": {
+ "x-nullable": false,
+ "description": "Confidence level of an accessory",
+ "$ref": "#/definitions/Confidence"
+ }
+ }
+ },
+ "Blur": {
+ "type": "object",
+ "description": "Properties describing any presence of blur within the image.",
+ "properties": {
+ "blurLevel": {
+ "type": "string",
+ "description": "An enum value indicating level of blurriness.",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "BlurLevel",
+ "modelAsString": false
+ },
+ "enum": [
+ "Low",
+ "Medium",
+ "High"
+ ]
+ },
+ "value": {
+ "description": "A number indicating level of blurriness ranging from 0 to 1.",
+ "x-nullable": false,
+ "$ref": "#/definitions/Level"
+ }
+ }
+ },
+ "Exposure": {
+ "type": "object",
+ "description": "Properties describing exposure level of the image.",
+ "properties": {
+ "exposureLevel": {
+ "type": "string",
+ "description": "An enum value indicating level of exposure.",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "ExposureLevel",
+ "modelAsString": false
+ },
+ "enum": [
+ "UnderExposure",
+ "GoodExposure",
+ "OverExposure"
+ ]
+ },
+ "value": {
+ "description": "A number indicating level of exposure level ranging from 0 to 1. [0, 0.25) is under exposure. [0.25, 0.75) is good exposure. [0.75, 1] is over exposure.",
+ "x-nullable": false,
+ "$ref": "#/definitions/Level"
+ }
+ }
+ },
+ "Noise": {
+ "type": "object",
+ "description": "Properties describing noise level of the image.",
+ "properties": {
+ "noiseLevel": {
+ "type": "string",
+ "description": "An enum value indicating level of noise.",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "NoiseLevel",
+ "modelAsString": false
+ },
+ "enum": [
+ "Low",
+ "Medium",
+ "High"
+ ]
+ },
+ "value": {
+ "description": "A number indicating level of noise level ranging from 0 to 1. [0, 0.25) is under exposure. [0.25, 0.75) is good exposure. [0.75, 1] is over exposure. [0, 0.3) is low noise level. [0.3, 0.7) is medium noise level. [0.7, 1] is high noise level.",
+ "x-nullable": false,
+ "$ref": "#/definitions/Level"
+ }
+ }
+ },
+ "Mask": {
+ "type": "object",
+ "description": "Properties describing the presence of a mask on a given face.",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Mask type if any of the face",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "MaskType",
+ "modelAsString": false
+ },
+ "enum": [
+ "noMask",
+ "faceMask",
+ "otherMaskOrOcclusion",
+ "uncertain"
+ ]
+ },
+ "noseAndMouthCovered": {
+ "type": "boolean",
+ "description": "A boolean value indicating whether nose and mouth are covered.",
+ "x-nullable": false
+ }
+ }
+ },
+ "FindSimilarRequest": {
+ "type": "object",
+ "required": [
+ "faceId"
+ ],
+ "description": "Request body for find similar operation.",
+ "properties": {
+ "faceId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "FaceId of the query face. User needs to call Face - Detect first to get a valid faceId. Note that this faceId is not persisted and will expire at the time specified by faceIdTimeToLive after the detection call"
+ },
+ "faceListId": {
+ "type": "string",
+ "description": "An existing user-specified unique candidate face list, created in Face List - Create a Face List. Face list contains a set of persistedFaceIds which are persisted and will never expire. Parameter faceListId, largeFaceListId and faceIds should not be provided at the same time.",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ },
+ "largeFaceListId": {
+ "type": "string",
+ "description": "An existing user-specified unique candidate large face list, created in LargeFaceList - Create. Large face list contains a set of persistedFaceIds which are persisted and will never expire. Parameter faceListId, largeFaceListId and faceIds should not be provided at the same time.",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ },
+ "faceIds": {
+ "type": "array",
+ "description": "An array of candidate faceIds. All of them are created by Face - Detect and the faceIds will expire at the time specified by faceIdTimeToLive after the detection call. The number of faceIds is limited to 1000. Parameter faceListId, largeFaceListId and faceIds should not be provided at the same time.",
+ "maxItems": 1000,
+ "items": {
+ "type": "string",
+ "format": "uuid"
+ }
+ },
+ "maxNumOfCandidatesReturned": {
+ "type": "integer",
+ "description": "The number of top similar faces returned. The valid range is [1, 1000].",
+ "default": 20,
+ "minimum": 1,
+ "maximum": 1000
+ },
+ "mode": {
+ "type": "string",
+ "description": "Similar face searching mode. It can be \"matchPerson\" or \"matchFace\".",
+ "default": "matchPerson",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "FindSimilarMatchMode",
+ "modelAsString": false
+ },
+ "enum": [
+ "matchPerson",
+ "matchFace"
+ ]
+ }
+ }
+ },
+ "SimilarFaces": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SimilarFace"
+ }
+ },
+ "SimilarFace": {
+ "type": "object",
+ "required": [
+ "confidence"
+ ],
+ "description": "Response body for find similar face operation.",
+ "properties": {
+ "faceId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "FaceId of candidate face when find by faceIds. faceId is created by Face - Detect and will expire at the time specified by faceIdTimeToLive after the detection call"
+ },
+ "persistedFaceId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "PersistedFaceId of candidate face when find by faceListId. persistedFaceId in face list is persisted and will not expire. As showed in below response"
+ },
+ "confidence": {
+ "description": "Similarity confidence of the candidate face. The higher confidence, the more similar. Range between [0,1].",
+ "$ref": "#/definitions/Confidence"
+ }
+ }
+ },
+ "GroupRequest": {
+ "type": "object",
+ "required": [
+ "faceIds"
+ ],
+ "description": "Request body for group request.",
+ "properties": {
+ "faceIds": {
+ "type": "array",
+ "description": "Array of candidate faceId created by Face - Detect. The maximum is 1000 faces",
+ "maxItems": 1000,
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ }
+ }
+ },
+ "GroupResult": {
+ "type": "object",
+ "required": [
+ "groups"
+ ],
+ "description": "An array of face groups based on face similarity.",
+ "properties": {
+ "groups": {
+ "type": "array",
+ "description": "A partition of the original faces based on face similarity. Groups are ranked by number of faces",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ }
+ },
+ "messyGroup": {
+ "type": "array",
+ "description": "Face ids array of faces that cannot find any similar faces from original faces.",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ }
+ }
+ },
+ "IdentifyRequest": {
+ "type": "object",
+ "required": [
+ "faceIds"
+ ],
+ "description": "Request body for identify face operation.",
+ "properties": {
+ "faceIds": {
+ "type": "array",
+ "description": "Array of query faces faceIds, created by the Face - Detect. Each of the faces are identified independently. The valid number of faceIds is between [1, 10].",
+ "maxItems": 10,
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ },
+ "personGroupId": {
+ "description": "PersonGroupId of the target person group, created by PersonGroup - Create. Parameter personGroupId, largePersonGroupId, dynamicPersonGroupId, or personIds should not be provided at the same time.",
+ "type": "string",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ },
+ "largePersonGroupId": {
+ "description": "LargePersonGroupId of the target large person group, created by LargePersonGroup - Create. Parameter personGroupId, largePersonGroupId, dynamicPersonGroupId, or personIds should not be provided at the same time.",
+ "type": "string",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ },
+ "dynamicPersonGroupId": {
+ "description": "DynamicPersonGroupId of the target PersonDirectory dynamic person group to match against. Parameter personGroupId, largePersonGroupId, dynamicPersonGroupId, or personIds should not be provided at the same time.",
+ "type": "string",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ },
+ "personIds": {
+ "description": "Array of personIds created in PersonDirectory - PersonCreate. The valid number of personIds is between [1,30]. Providing a single '*' in the array identifies against all persons inside the PersonDirectory. Parameter personGroupId, largePersonGroupId, dynamicPersonGroupId, or personIds should not be provided at the same time.",
+ "type": "array",
+ "maxItems": 30,
+ "items": {
+ "type": "string",
+ "x-nullable": false
+ }
+ },
+ "maxNumOfCandidatesReturned": {
+ "type": "integer",
+ "description": "The range of maxNumOfCandidatesReturned is between 1 and 5 (default is 1).",
+ "default": 1,
+ "minimum": 1,
+ "maximum": 5
+ },
+ "confidenceThreshold": {
+ "description": "Confidence threshold of identification, used to judge whether one face belong to one person. The range of confidenceThreshold is [0, 1] (default specified by algorithm).",
+ "$ref": "#/definitions/Confidence"
+ }
+ }
+ },
+ "IdentifyResults": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IdentifyResult"
+ }
+ },
+ "IdentifyResult": {
+ "type": "object",
+ "required": [
+ "faceId",
+ "candidates"
+ ],
+ "description": "Response body for identify face operation.",
+ "properties": {
+ "faceId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "FaceId of the query face"
+ },
+ "candidates": {
+ "type": "array",
+ "description": "Identified person candidates for that face (ranked by confidence). Array size should be no larger than input maxNumOfCandidatesReturned. If no person is identified, will return an empty array.",
+ "items": {
+ "$ref": "#/definitions/IdentifyCandidate"
+ }
+ }
+ }
+ },
+ "IdentifyCandidate": {
+ "type": "object",
+ "required": [
+ "personId",
+ "confidence"
+ ],
+ "description": "All possible faces that may qualify.",
+ "properties": {
+ "personId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Id of candidate"
+ },
+ "confidence": {
+ "description": "Confidence threshold of identification, used to judge whether one face belong to one person. The range of confidenceThreshold is [0, 1] (default specified by algorithm).",
+ "$ref": "#/definitions/Confidence"
+ }
+ }
+ },
+ "VerifyFaceToPersonRequest": {
+ "type": "object",
+ "required": [
+ "faceId",
+ "personId"
+ ],
+ "description": "Request body for face to person verification.",
+ "properties": {
+ "faceId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "FaceId of the face, comes from Face - Detect"
+ },
+ "personGroupId": {
+ "description": "Using existing personGroupId and personId for fast loading a specified person. personGroupId is created in PersonGroup - Create. Parameter personGroupId and largePersonGroupId should not be provided at the same time.",
+ "type": "string",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ },
+ "largePersonGroupId": {
+ "description": "Using existing largePersonGroupId and personId for fast loading a specified person. largePersonGroupId is created in LargePersonGroup - Create. Parameter personGroupId and largePersonGroupId should not be provided at the same time.",
+ "type": "string",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ },
+ "personId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Specify a certain person in a person group, a large person group, or person directory (if personGroupId and largePersonGroupId are omitted). personId is created in PersonGroup Person - Create or LargePersonGroup Person - Create or PersonDirectory - Create."
+ }
+ }
+ },
+ "VerifyFaceToFaceRequest": {
+ "type": "object",
+ "required": [
+ "faceId1",
+ "faceId2"
+ ],
+ "description": "Request body for face to face verification.",
+ "properties": {
+ "faceId1": {
+ "type": "string",
+ "format": "uuid",
+ "description": "FaceId of the first face, comes from Face - Detect"
+ },
+ "faceId2": {
+ "type": "string",
+ "format": "uuid",
+ "description": "FaceId of the second face, comes from Face - Detect"
+ }
+ }
+ },
+ "VerifyResult": {
+ "type": "object",
+ "required": [
+ "isIdentical",
+ "confidence"
+ ],
+ "description": "Result of the verify operation.",
+ "properties": {
+ "isIdentical": {
+ "type": "boolean",
+ "description": "True if the two faces belong to the same person or the face belongs to the person, otherwise false."
+ },
+ "confidence": {
+ "description": "A number indicates the similarity confidence of whether two faces belong to the same person, or whether the face belongs to the person. By default, isIdentical is set to True if similarity confidence is greater than or equal to 0.5. This is useful for advanced users to override \"isIdentical\" and fine-tune the result on their own data.",
+ "$ref": "#/definitions/Confidence"
+ }
+ }
+ },
+ "FaceList": {
+ "description": "Face list object.",
+ "type": "object",
+ "required": [
+ "faceListId"
+ ],
+ "properties": {
+ "faceListId": {
+ "type": "string",
+ "description": "FaceListId of the target face list.",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ },
+ "persistedFaces": {
+ "description": "Persisted faces within the face list.",
+ "$ref": "#/definitions/PersistedFaces"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/MetaDataContract"
+ }
+ ]
+ },
+ "FaceLists": {
+ "type": "array",
+ "description": "An array of face list results, with fields of faceListId, name and userData",
+ "items": {
+ "$ref": "#/definitions/FaceList"
+ }
+ },
+ "PersonGroup": {
+ "type": "object",
+ "required": [
+ "personGroupId"
+ ],
+ "description": "Person group object.",
+ "properties": {
+ "personGroupId": {
+ "description": "PersonGroupId of the target person group.",
+ "type": "string",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/MetaDataContract"
+ }
+ ]
+ },
+ "PersonGroups": {
+ "type": "array",
+ "description": "An array of person groups.",
+ "items": {
+ "$ref": "#/definitions/PersonGroup"
+ }
+ },
+ "Person": {
+ "type": "object",
+ "required": [
+ "personId"
+ ],
+ "description": "Person object.",
+ "properties": {
+ "personId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "PersonId of the target face list."
+ },
+ "persistedFaceIds": {
+ "type": "array",
+ "description": "PersistedFaceIds of registered faces in the person. These persistedFaceIds are returned from Person - Add a Person Face, and will not expire.",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/NameAndUserDataContract"
+ }
+ ]
+ },
+ "Persons": {
+ "type": "array",
+ "description": "An array of Persons.",
+ "items": {
+ "$ref": "#/definitions/Person"
+ }
+ },
+ "PersistedFace": {
+ "type": "object",
+ "required": [
+ "persistedFaceId"
+ ],
+ "description": "PersonFace object.",
+ "properties": {
+ "persistedFaceId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "The persistedFaceId of the target face, which is persisted and will not expire. Different from faceId created by Face - Detect and will expire in at the time specified by faceIdTimeToLive after the detection call."
+ },
+ "userData": {
+ "type": "string",
+ "description": "User-provided data attached to the face. The size limit is 1KB.",
+ "maxLength": 1024
+ }
+ }
+ },
+ "PersistedFaces": {
+ "type": "array",
+ "description": "An array of persisted faces within the face list or large face list.",
+ "items": {
+ "$ref": "#/definitions/PersistedFace"
+ }
+ },
+ "LargeFaceList": {
+ "description": "Large face list object.",
+ "type": "object",
+ "required": [
+ "largeFaceListId"
+ ],
+ "properties": {
+ "largeFaceListId": {
+ "type": "string",
+ "description": "LargeFaceListId of the target large face list.",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/MetaDataContract"
+ }
+ ]
+ },
+ "LargeFaceLists": {
+ "type": "array",
+ "description": "An array of large face list results, with fields of largeFaceListId, name and userData",
+ "items": {
+ "$ref": "#/definitions/LargeFaceList"
+ }
+ },
+ "LargePersonGroup": {
+ "type": "object",
+ "required": [
+ "largePersonGroupId"
+ ],
+ "description": "Large person group object.",
+ "properties": {
+ "largePersonGroupId": {
+ "description": "LargePersonGroupId of the target large person groups",
+ "type": "string",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/MetaDataContract"
+ }
+ ]
+ },
+ "LargePersonGroups": {
+ "type": "array",
+ "description": "An array of large person groups.",
+ "items": {
+ "$ref": "#/definitions/LargePersonGroup"
+ }
+ },
+ "UpdateFaceRequest": {
+ "type": "object",
+ "description": "Request to update face data.",
+ "properties": {
+ "userData": {
+ "type": "string",
+ "description": "User-provided data attached to the face. The size limit is 1KB.",
+ "maxLength": 1024
+ }
+ }
+ },
+ "TrainingStatus": {
+ "type": "object",
+ "required": [
+ "status",
+ "createdDateTime"
+ ],
+ "description": "Training status object.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Training status: notstarted, running, succeeded, failed. If the training process is waiting to perform, the status is notstarted. If the training is ongoing, the status is running. Status succeed means this person group or large person group is ready for Face - Identify, or this large face list is ready for Face - Find Similar. Status failed is often caused by no person or no persisted face exist in the person group or large person group, or no persisted face exist in the large face list.",
+ "x-ms-enum": {
+ "name": "TrainingStatusType",
+ "modelAsString": false
+ },
+ "enum": [
+ "nonstarted",
+ "running",
+ "succeeded",
+ "failed"
+ ]
+ },
+ "createdDateTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "A combined UTC date and time string that describes the created time of the person group, large person group or large face list.",
+ "x-ms-client-name": "created"
+ },
+ "lastActionDateTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "A combined UTC date and time string that describes the last modify time of the person group, large person group or large face list, could be null value when the group is not successfully trained.",
+ "x-ms-client-name": "lastAction"
+ },
+ "lastSuccessfulTrainingDateTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "A combined UTC date and time string that describes the last successful training time of the person group, large person group or large face list.",
+ "x-ms-client-name": "lastSuccessfulTraining"
+ },
+ "message": {
+ "type": "string",
+ "description": "Show failure message when training failed (omitted when training succeed)."
+ }
+ }
+ },
+ "Confidence": {
+ "description": "A number ranging from 0 to 1 indicating a level of confidence associated with a property.",
+ "type": "number",
+ "minimum": 0,
+ "maximum": 1
+ },
+ "Level": {
+ "description": "A number ranging from 0 to 1 indicating the intensity level associated with a property.",
+ "type": "number",
+ "minimum": 0,
+ "maximum": 1
+ },
+ "NameAndUserDataContract": {
+ "type": "object",
+ "description": "A combination of user defined name and user specified data for the person, largePersonGroup/personGroup, and largeFaceList/faceList.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "User defined name, maximum length is 128.",
+ "maxLength": 128
+ },
+ "userData": {
+ "type": "string",
+ "description": "User specified data. Length should not exceed 16KB.",
+ "maxLength": 16384
+ }
+ }
+ },
+ "MetaDataContract": {
+ "type": "object",
+ "description": "A combination of user defined name and user specified data and recognition model name for largePersonGroup/personGroup, and largeFaceList/faceList.",
+ "properties": {
+ "recognitionModel": {
+ "$ref": "#/definitions/RecognitionModel"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/NameAndUserDataContract"
+ }
+ ]
+ },
+ "RecognitionModel": {
+ "type": "string",
+ "description": "Name of recognition model. Recognition model is used when the face features are extracted and associated with detected faceIds, (Large)FaceList or (Large)PersonGroup. A recognition model name can be provided when performing Face - Detect or (Large)FaceList - Create or (Large)PersonGroup - Create. The default value is 'recognition_01', if latest model needed, please explicitly specify the model you need.",
+ "default": "recognition_01",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "RecognitionModel",
+ "modelAsString": true
+ },
+ "enum": [
+ "recognition_01",
+ "recognition_02",
+ "recognition_03",
+ "recognition_04"
+ ]
+ },
+ "ApplyScope": {
+ "type": "array",
+ "description": "Array of the target Face subscription ids for the snapshot, specified by the user who created the snapshot when calling Snapshot - Take. For each snapshot, only subscriptions included in the applyScope of Snapshot - Take can apply it.",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ },
+ "ApplySnapshotRequest": {
+ "type": "object",
+ "required": [
+ "objectId"
+ ],
+ "description": "Request body for applying snapshot operation.",
+ "properties": {
+ "objectId": {
+ "type": "string",
+ "description": "User specified target object id to be created from the snapshot.",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ },
+ "mode": {
+ "type": "string",
+ "description": "Snapshot applying mode. Currently only CreateNew is supported, which means the apply operation will fail if target subscription already contains an object of same type and using the same objectId. Users can specify the \"objectId\" in request body to avoid such conflicts.",
+ "default": "CreateNew",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "SnapshotApplyMode",
+ "modelAsString": false
+ },
+ "enum": [
+ "CreateNew"
+ ]
+ }
+ }
+ },
+ "Snapshots": {
+ "type": "array",
+ "description": "An array of snapshots.",
+ "items": {
+ "$ref": "#/definitions/Snapshot"
+ }
+ },
+ "Snapshot": {
+ "type": "object",
+ "required": [
+ "id",
+ "account",
+ "type",
+ "applyScope",
+ "createdTime",
+ "lastUpdateTime"
+ ],
+ "description": "Snapshot object.",
+ "properties": {
+ "id": {
+ "type": "string",
+ "format": "uuid",
+ "description": "Snapshot id."
+ },
+ "account": {
+ "type": "string",
+ "description": "Azure Cognitive Service Face account id of the subscriber who created the snapshot by Snapshot - Take."
+ },
+ "type": {
+ "type": "string",
+ "description": "Type of the source object in the snapshot, specified by the subscriber who created the snapshot when calling Snapshot - Take. Currently FaceList, PersonGroup, LargeFaceList and LargePersonGroup are supported.",
+ "x-ms-enum": {
+ "name": "SnapshotObjectType",
+ "modelAsString": false
+ },
+ "enum": [
+ "FaceList",
+ "LargeFaceList",
+ "LargePersonGroup",
+ "PersonGroup"
+ ]
+ },
+ "applyScope": {
+ "description": "Array of the target Face subscription ids for the snapshot, specified by the user who created the snapshot when calling Snapshot - Take. For each snapshot, only subscriptions included in the applyScope of Snapshot - Take can apply it.",
+ "$ref": "#/definitions/ApplyScope"
+ },
+ "userData": {
+ "type": "string",
+ "description": "User specified data about the snapshot for any purpose. Length should not exceed 16KB.",
+ "maxLength": 16384
+ },
+ "createdTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "A combined UTC date and time string that describes the created time of the snapshot. E.g. 2018-12-25T11:41:02.2331413Z."
+ },
+ "lastUpdateTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "A combined UTC date and time string that describes the last time when the snapshot was created or updated by Snapshot - Update. E.g. 2018-12-25T11:51:27.8705696Z."
+ }
+ }
+ },
+ "TakeSnapshotRequest": {
+ "type": "object",
+ "required": [
+ "type",
+ "objectId",
+ "applyScope"
+ ],
+ "description": "Request body for taking snapshot operation.",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "User specified type for the source object to take snapshot from. Currently FaceList, PersonGroup, LargeFaceList and LargePersonGroup are supported.",
+ "x-ms-enum": {
+ "name": "SnapshotObjectType",
+ "modelAsString": false
+ },
+ "enum": [
+ "FaceList",
+ "LargeFaceList",
+ "LargePersonGroup",
+ "PersonGroup"
+ ]
+ },
+ "objectId": {
+ "type": "string",
+ "description": "User specified source object id to take snapshot from.",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ },
+ "applyScope": {
+ "description": "User specified array of target Face subscription ids for the snapshot. For each snapshot, only subscriptions included in the applyScope of Snapshot - Take can apply it.",
+ "$ref": "#/definitions/ApplyScope"
+ },
+ "userData": {
+ "type": "string",
+ "description": "User specified data about the snapshot for any purpose. Length should not exceed 16KB.",
+ "maxLength": 16384
+ }
+ }
+ },
+ "UpdateSnapshotRequest": {
+ "type": "object",
+ "description": "Request body for updating a snapshot, with a combination of user defined apply scope and user specified data.",
+ "properties": {
+ "applyScope": {
+ "description": "Array of the target Face subscription ids for the snapshot, specified by the user who created the snapshot when calling Snapshot - Take. For each snapshot, only subscriptions included in the applyScope of Snapshot - Take can apply it.",
+ "$ref": "#/definitions/ApplyScope"
+ },
+ "userData": {
+ "type": "string",
+ "description": "User specified data about the snapshot for any purpose. Length should not exceed 16KB.",
+ "maxLength": 16384
+ }
+ }
+ },
+ "OperationStatus": {
+ "type": "object",
+ "required": [
+ "status",
+ "createdTime"
+ ],
+ "description": "Operation status object. Operation refers to the asynchronous backend task including taking a snapshot and applying a snapshot.",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Operation status: notstarted, running, succeeded, failed. If the operation is requested and waiting to perform, the status is notstarted. If the operation is ongoing in backend, the status is running. Status succeeded means the operation is completed successfully, specifically for snapshot taking operation, it illustrates the snapshot is well taken and ready to apply, and for snapshot applying operation, it presents the target object has finished creating by the snapshot and ready to be used. Status failed is often caused by editing the source object while taking the snapshot or editing the target object while applying the snapshot before completion, see the field \"message\" to check the failure reason.",
+ "x-ms-enum": {
+ "name": "OperationStatusType",
+ "modelAsString": false
+ },
+ "enum": [
+ "notstarted",
+ "running",
+ "succeeded",
+ "failed"
+ ]
+ },
+ "createdTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "A combined UTC date and time string that describes the time when the operation (take or apply a snapshot) is requested. E.g. 2018-12-25T11:41:02.2331413Z."
+ },
+ "lastActionTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "A combined UTC date and time string that describes the last time the operation (take or apply a snapshot) is actively migrating data. The lastActionTime will keep increasing until the operation finishes. E.g. 2018-12-25T11:51:27.8705696Z."
+ },
+ "resourceLocation": {
+ "type": "string",
+ "description": "When the operation succeeds successfully, for snapshot taking operation the snapshot id will be included in this field, and for snapshot applying operation, the path to get the target object will be returned in this field."
+ },
+ "message": {
+ "type": "string",
+ "description": "Show failure message when operation fails (omitted when operation succeeds)."
+ }
+ }
+ },
+ "PersistedFaceResponse": {
+ "type": "object",
+ "properties": {
+ "persistedFaceId": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "userData": {
+ "type": "string"
+ }
+ }
+ },
+ "AsyncOperationStatus": {
+ "enum": [
+ "notStarted",
+ "running",
+ "succeeded",
+ "failed"
+ ],
+ "type": "string"
+ },
+ "AsyncStatus": {
+ "type": "object",
+ "properties": {
+ "status": {
+ "$ref": "#/definitions/AsyncOperationStatus"
+ },
+ "createdTime": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "lastActionTime": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "finishedTime": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "resourceLocation": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ }
+ }
+ },
+ "EnrollmentResponse": {
+ "type": "object",
+ "properties": {
+ "personId": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "userData": {
+ "type": "string"
+ }
+ }
+ },
+ "EnrolledPerson": {
+ "type": "object",
+ "properties": {
+ "personId": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "userData": {
+ "type": "string"
+ }
+ }
+ },
+ "PersonCreationResponse": {
+ "type": "object",
+ "properties": {
+ "personId": {
+ "format": "uuid",
+ "type": "string"
+ }
+ }
+ },
+ "EnrollmentRequest": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "userData": {
+ "type": "string"
+ }
+ }
+ },
+ "EnrollmentPrintResponse": {
+ "type": "object",
+ "properties": {
+ "persistedFaceId": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "recognitionModel": {
+ "type": "string"
+ },
+ "userData": {
+ "type": "string"
+ }
+ }
+ },
+ "PersonResponse": {
+ "type": "object",
+ "properties": {
+ "personId": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "persistedFaceIds": {
+ "type": "array",
+ "items": {
+ "format": "uuid",
+ "type": "string"
+ }
+ },
+ "name": {
+ "type": "string"
+ },
+ "userData": {
+ "type": "string"
+ }
+ }
+ },
+ "DetectionModel": {
+ "enum": [
+ "detection_01",
+ "detection_02",
+ "detection_03",
+ "detection_preview_1904",
+ "ir_detection_01",
+ "expression_01"
+ ],
+ "type": "string"
+ },
+ "PersistedFaceWithType": {
+ "type": "object",
+ "properties": {
+ "detectionModel": {
+ "$ref": "#/definitions/DetectionModel"
+ },
+ "faceFeature": {
+ "format": "byte",
+ "type": "string"
+ },
+ "persistedFaceId": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "userData": {
+ "type": "string"
+ }
+ }
+ },
+ "DynamicPersonGroupCreateRequest": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "userData": {
+ "type": "string"
+ },
+ "addPersonIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "DynamicPersonGroupUpdateRequest": {
+ "type": "object",
+ "properties": {
+ "removePersonIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "name": {
+ "type": "string"
+ },
+ "userData": {
+ "type": "string"
+ },
+ "addPersonIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "DynamicPersonGroupGetResponse": {
+ "type": "object",
+ "properties": {
+ "dynamicPersonGroupId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "userData": {
+ "type": "string"
+ }
+ }
+ },
+ "DynamicPersonGroupListPersonsResponse": {
+ "type": "object",
+ "properties": {
+ "personIds": {
+ "type": "array",
+ "items": {
+ "format": "uuid",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "PersonDynamicPersonGroupReferenceResponse": {
+ "type": "object",
+ "properties": {
+ "personId": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "dynamicPersonGroupIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "returnFaceAttributes": {
+ "name": "returnFaceAttributes",
+ "in": "query",
+ "description": "Analyze and return the one or more specified face attributes in the comma-separated string like \"returnFaceAttributes=age,gender\". The available attributes depends on the 'detectionModel' specified. 'detection_01' supports age, gender, headPose, smile, facialHair, glasses, emotion, hair, makeup, occlusion, accessories, blur, exposure, and noise. While 'detection_02' does not support any attributes and 'detection_03' only supports mask. Note that each face attribute analysis has additional computational and time cost.",
+ "type": "array",
+ "x-ms-parameter-location": "method",
+ "required": false,
+ "collectionFormat": "csv",
+ "items": {
+ "type": "string",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "FaceAttributeType",
+ "modelAsString": false
+ },
+ "enum": [
+ "age",
+ "gender",
+ "headPose",
+ "smile",
+ "facialHair",
+ "glasses",
+ "emotion",
+ "hair",
+ "makeup",
+ "occlusion",
+ "accessories",
+ "blur",
+ "exposure",
+ "noise",
+ "mask"
+ ]
+ }
+ },
+ "targetFace": {
+ "name": "targetFace",
+ "in": "query",
+ "description": "A face rectangle to specify the target face to be added to a person in the format of \"targetFace=left,top,width,height\". E.g. \"targetFace=10,10,100,100\". If there is more than one face in the image, targetFace is required to specify which face to add. No targetFace means there is only one face detected in the entire image.",
+ "type": "array",
+ "x-ms-parameter-location": "method",
+ "required": false,
+ "collectionFormat": "csv",
+ "items": {
+ "type": "integer",
+ "format": "int32",
+ "x-nullable": false,
+ "maxItems": 4,
+ "minItems": 4
+ }
+ },
+ "faceUserData": {
+ "name": "userData",
+ "in": "query",
+ "description": "User-specified data about the face for any purpose. The maximum length is 1KB.",
+ "type": "string",
+ "maxLength": 1024,
+ "x-ms-parameter-location": "method",
+ "required": false,
+ "collectionFormat": "csv"
+ },
+ "faceListId": {
+ "name": "faceListId",
+ "in": "path",
+ "description": "Id referencing a particular face list.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method",
+ "collectionFormat": "csv",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ },
+ "personGroupId": {
+ "name": "personGroupId",
+ "in": "path",
+ "description": "Id referencing a particular person group.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method",
+ "collectionFormat": "csv",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ },
+ "largeFaceListId": {
+ "name": "largeFaceListId",
+ "in": "path",
+ "description": "Id referencing a particular large face list.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method",
+ "collectionFormat": "csv",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ },
+ "largePersonGroupId": {
+ "name": "largePersonGroupId",
+ "in": "path",
+ "description": "Id referencing a particular large person group.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method",
+ "collectionFormat": "csv",
+ "maxLength": 64,
+ "pattern": "^[a-z0-9-_]+$"
+ },
+ "personId": {
+ "name": "personId",
+ "in": "path",
+ "description": "Id referencing a particular person.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-ms-parameter-location": "method",
+ "collectionFormat": "csv"
+ },
+ "persistedFaceId": {
+ "name": "persistedFaceId",
+ "in": "path",
+ "description": "Id referencing a particular persistedFaceId of an existing face.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-ms-parameter-location": "method",
+ "collectionFormat": "csv"
+ },
+ "applyScope": {
+ "name": "applyScope",
+ "description": "User specified snapshot apply scopes as a search filter. ApplyScope is an array of the target Azure subscription ids for the snapshot, specified by the user who created the snapshot by Snapshot - Take.",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "x-ms-parameter-location": "method",
+ "collectionFormat": "csv",
+ "items": {
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ }
+ },
+ "operationId": {
+ "name": "operationId",
+ "in": "path",
+ "description": "Id referencing a particular take/apply snapshot operation.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-ms-parameter-location": "method",
+ "collectionFormat": "csv"
+ },
+ "snapshotId": {
+ "name": "snapshotId",
+ "in": "path",
+ "description": "Id referencing a particular snapshot.",
+ "required": true,
+ "type": "string",
+ "format": "uuid",
+ "x-ms-parameter-location": "method",
+ "collectionFormat": "csv"
+ },
+ "Endpoint": {
+ "name": "Endpoint",
+ "description": "Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus.api.cognitive.microsoft.com).",
+ "x-ms-parameter-location": "client",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ },
+ "recognitionModel": {
+ "name": "recognitionModel",
+ "description": "Name of recognition model. Recognition model is used when the face features are extracted and associated with detected faceIds, (Large)FaceList or (Large)PersonGroup. A recognition model name can be provided when performing Face - Detect or (Large)FaceList - Create or (Large)PersonGroup - Create. The default value is 'recognition_01', if latest model needed, please explicitly specify the model you need.",
+ "default": "recognition_01",
+ "required": false,
+ "type": "string",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "RecognitionModel",
+ "modelAsString": true
+ },
+ "enum": [
+ "recognition_01",
+ "recognition_02",
+ "recognition_03",
+ "recognition_04"
+ ]
+ },
+ "returnRecognitionModel": {
+ "name": "returnRecognitionModel",
+ "description": "A value indicating whether the operation should return 'recognitionModel' in response.",
+ "default": false,
+ "required": false,
+ "type": "boolean",
+ "in": "query",
+ "x-ms-parameter-location": "method"
+ },
+ "detectionModel": {
+ "name": "detectionModel",
+ "description": "Name of detection model. Detection model is used to detect faces in the submitted image. A detection model name can be provided when performing Face - Detect or (Large)FaceList - Add Face or (Large)PersonGroup - Add Face. The default value is 'detection_01', if another model is needed, please explicitly specify it.",
+ "default": "detection_01",
+ "required": false,
+ "type": "string",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "DetectionModel",
+ "modelAsString": true
+ },
+ "enum": [
+ "detection_01",
+ "detection_02",
+ "detection_03"
+ ]
+ },
+ "returnFaceId": {
+ "name": "returnFaceId",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "description": "A value indicating whether the operation should return faceIds of detected faces.",
+ "type": "boolean",
+ "default": true
+ },
+ "returnFaceLandmarks": {
+ "name": "returnFaceLandmarks",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "description": "A value indicating whether the operation should return landmarks of the detected faces.",
+ "type": "boolean",
+ "default": false
+ },
+ "faceIdTimeToLive": {
+ "name": "faceIdTimeToLive",
+ "in": "query",
+ "x-ms-parameter-location": "method",
+ "description": "The number of seconds for the faceId being cached. Supported range from 60 seconds up to 86400 seconds. The default value is 86400 (24 hours).",
+ "type": "integer",
+ "default": 86400,
+ "minimum": 60,
+ "maximum": 86400
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddFaceListFaceFromStream.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddFaceListFaceFromStream.json
new file mode 100644
index 000000000000..ba03f3780650
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddFaceListFaceFromStream.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/octet-stream",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "faceListId": "sample_face_list",
+ "userData": "{Customized user data}",
+ "targetFace": [
+ 10,
+ 10,
+ 100,
+ 100
+ ],
+ "Image": "{Image stream in base 64 encoded format}",
+ "detectionModel": "detection_01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "persistedFaceId": "B8D802CF-DD8F-4E61-B15C-9E6C5844CCBA"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddFaceListFaceFromUrl.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddFaceListFaceFromUrl.json
new file mode 100644
index 000000000000..e54883e45ff6
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddFaceListFaceFromUrl.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "faceListId": "sample_face_list",
+ "userData": "{Customized user data}",
+ "targetFace": [
+ 10,
+ 10,
+ 100,
+ 100
+ ],
+ "ImageUrl": {
+ "url": "{Image Url here}"
+ },
+ "detectionModel": "detection_01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "persistedFaceId": "B8D802CF-DD8F-4E61-B15C-9E6C5844CCBA"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddLargeFaceListFaceFromStream.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddLargeFaceListFaceFromStream.json
new file mode 100644
index 000000000000..3435e5128732
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddLargeFaceListFaceFromStream.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/octet-stream",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largeFaceListId": "sample_face_list",
+ "userData": "{Customized user data}",
+ "targetFace": [
+ 10,
+ 10,
+ 100,
+ 100
+ ],
+ "Image": "{Image stream in base 64 encoded format}",
+ "detectionModel": "detection_01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "persistedFaceId": "B8D802CF-DD8F-4E61-B15C-9E6C5844CCBA"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddLargeFaceListFaceFromUrl.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddLargeFaceListFaceFromUrl.json
new file mode 100644
index 000000000000..cfc48557fa4f
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddLargeFaceListFaceFromUrl.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largeFaceListId": "sample_face_list",
+ "userData": "{Customized user data}",
+ "targetFace": [
+ 10,
+ 10,
+ 100,
+ 100
+ ],
+ "ImageUrl": {
+ "url": "{Image Url here}"
+ },
+ "detectionModel": "detection_01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "persistedFaceId": "B8D802CF-DD8F-4E61-B15C-9E6C5844CCBA"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddLargePersonGroupPersonFaceFromStream.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddLargePersonGroupPersonFaceFromStream.json
new file mode 100644
index 000000000000..c6993a8a95bc
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddLargePersonGroupPersonFaceFromStream.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/octet-stream",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc",
+ "personId": "4caa25ee-3bc6-4e88-adf8-12455ce7aab0",
+ "userData": "{customized User data}",
+ "targetFace": [
+ 10,
+ 10,
+ 100,
+ 100
+ ],
+ "Image": "{Image stream in base 64 encoded format}",
+ "detectionModel": "detection_01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "persistedFaceId": "6e04c175-219e-42a2-9d26-0e7b790e1ef4"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddLargePersonGroupPersonFaceFromUrl.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddLargePersonGroupPersonFaceFromUrl.json
new file mode 100644
index 000000000000..b8a1e3fc5d82
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddLargePersonGroupPersonFaceFromUrl.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc",
+ "personId": "4caa25ee-3bc6-4e88-adf8-12455ce7aab0",
+ "userData": "{customized User data}",
+ "targetFace": [
+ 10,
+ 10,
+ 100,
+ 100
+ ],
+ "ImageUrl": {
+ "url": "{Image Url here}"
+ },
+ "detectionModel": "detection_01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "persistedFaceId": "6e04c175-219e-42a2-9d26-0e7b790e1ef4"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddPersonDirectoryPersonFaceFromStream.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddPersonDirectoryPersonFaceFromStream.json
new file mode 100644
index 000000000000..a0472d1b8c6c
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddPersonDirectoryPersonFaceFromStream.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/octet-stream",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personId": "4caa25ee-3bc6-4e88-adf8-12455ce7aab0",
+ "userData": "{customized User data}",
+ "targetFace": "[10, 10, 100, 100]",
+ "Image": "{Image stream in base 64 encoded format}",
+ "recognitionModel": "recognition_02",
+ "detectionModel": "detection_01"
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "persistedFaceId": "6e04c175-219e-42a2-9d26-0e7b790e1ef4",
+ "recognitionModel": null,
+ "userData": null
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddPersonDirectoryPersonFaceFromUrl.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddPersonDirectoryPersonFaceFromUrl.json
new file mode 100644
index 000000000000..67cfe0b4669b
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddPersonDirectoryPersonFaceFromUrl.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personId": "4caa25ee-3bc6-4e88-adf8-12455ce7aab0",
+ "userData": "{customized User data}",
+ "targetFace": "[10, 10, 100, 100]",
+ "ImageUrl": {
+ "url": "{Image Url here}"
+ },
+ "recognitionModel": "recognition_02",
+ "detectionModel": "detection_01"
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "persistedFaceId": "6e04c175-219e-42a2-9d26-0e7b790e1ef4",
+ "recognitionModel": null,
+ "userData": null
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddPersonGroupPersonFaceFromStream.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddPersonGroupPersonFaceFromStream.json
new file mode 100644
index 000000000000..95fb0ffefa69
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddPersonGroupPersonFaceFromStream.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/octet-stream",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc",
+ "personId": "4caa25ee-3bc6-4e88-adf8-12455ce7aab0",
+ "userData": "{customized User data}",
+ "targetFace": [
+ 10,
+ 10,
+ 100,
+ 100
+ ],
+ "Image": "{Image stream in base 64 encoded format}",
+ "detectionModel": "detection_01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "persistedFaceId": "6e04c175-219e-42a2-9d26-0e7b790e1ef4"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddPersonGroupPersonFaceFromUrl.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddPersonGroupPersonFaceFromUrl.json
new file mode 100644
index 000000000000..a5e102adc5cb
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/AddPersonGroupPersonFaceFromUrl.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc",
+ "personId": "4caa25ee-3bc6-4e88-adf8-12455ce7aab0",
+ "userData": "{customized User data}",
+ "targetFace": [
+ 10,
+ 10,
+ 100,
+ 100
+ ],
+ "ImageUrl": {
+ "url": "{Image Url here}"
+ },
+ "detectionModel": "detection_01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "persistedFaceId": "6e04c175-219e-42a2-9d26-0e7b790e1ef4"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ApplySnapshot.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ApplySnapshot.json
new file mode 100644
index 000000000000..b6a9b3b07da6
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ApplySnapshot.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "snapshotId": "e58b3f08-1e8b-4165-81df-aa9858f233dc",
+ "body": {
+ "objectId": "target-face-list-id",
+ "mode": "CreateNew"
+ }
+ },
+ "responses": {
+ "202": {
+ "header": {
+ "Operation-Location": "/operations/84276574-2a2a-4540-a1b0-f65d834d225b"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewDynamicPersonGroup.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewDynamicPersonGroup.json
new file mode 100644
index 000000000000..6b55410a2911
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewDynamicPersonGroup.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "dynamicPersonGroupId": "abc",
+ "body": {
+ "name": "group1",
+ "userData": "user-provided data attached to the person group."
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewFaceList.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewFaceList.json
new file mode 100644
index 000000000000..27b931726dc5
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewFaceList.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "faceListId": "sample_face_list",
+ "body": {
+ "name": "sample_list",
+ "userData": "User-provided data attached to the face list.",
+ "recognitionModel": "recognition_01"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewLargeFaceList.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewLargeFaceList.json
new file mode 100644
index 000000000000..7d9471cc218b
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewLargeFaceList.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largeFaceListId": "sample_face_list",
+ "body": {
+ "name": "large-face-list-name",
+ "userData": "User-provided data attached to the large face list.",
+ "recognitionModel": "recognition_01"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewLargePersonGroup.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewLargePersonGroup.json
new file mode 100644
index 000000000000..213cca68a808
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewLargePersonGroup.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc",
+ "body": {
+ "name": "large-person-group-name",
+ "userData": "User-provided data attached to the large person group.",
+ "recognitionModel": "recognition_01"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewLargePersonGroupPerson.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewLargePersonGroupPerson.json
new file mode 100644
index 000000000000..cd57744a82a0
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewLargePersonGroupPerson.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc",
+ "body": {
+ "name": "mike",
+ "userData": "{additional data associated with mike}"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "personId": "4caa25ee-3bc6-4e88-adf8-12455ce7aab0"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewPersonDirectoryPerson.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewPersonDirectoryPerson.json
new file mode 100644
index 000000000000..712996b5f693
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewPersonDirectoryPerson.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {
+ "name": "mike",
+ "userData": "{additional data associated with mike}"
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "personId": "4caa25ee-3bc6-4e88-adf8-12455ce7aab0"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewPersonGroup.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewPersonGroup.json
new file mode 100644
index 000000000000..47bac3dae296
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewPersonGroup.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc",
+ "body": {
+ "name": "group1",
+ "userData": "user-provided data attached to the person group.",
+ "recognitionModel": "recognition_01"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewPersonGroupPerson.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewPersonGroupPerson.json
new file mode 100644
index 000000000000..b62b3a2352ac
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/CreateNewPersonGroupPerson.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc",
+ "body": {
+ "name": "mike",
+ "userData": "{additional data associated with mike}"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "personId": "4caa25ee-3bc6-4e88-adf8-12455ce7aab0"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteDynamicPersonGroup.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteDynamicPersonGroup.json
new file mode 100644
index 000000000000..bd318036ed6d
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteDynamicPersonGroup.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "dynamicPersonGroupId": "abc"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteFaceList.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteFaceList.json
new file mode 100644
index 000000000000..8a56998fe56e
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteFaceList.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "faceListId": "sample_face_list"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteFaceListFace.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteFaceListFace.json
new file mode 100644
index 000000000000..3c7cb6945fad
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteFaceListFace.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "faceListId": "sample_face_list",
+ "persistedFaceId": "62004fa7-1ac0-478e-9d5a-b38f9e7fbc68"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargeFaceList.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargeFaceList.json
new file mode 100644
index 000000000000..a17660fd24a8
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargeFaceList.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largeFaceListId": "sample_face_list"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargeFaceListFace.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargeFaceListFace.json
new file mode 100644
index 000000000000..c51df9d7089e
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargeFaceListFace.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largeFaceListId": "sample_face_list",
+ "persistedFaceId": "62004fa7-1ac0-478e-9d5a-b38f9e7fbc68"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargePersonGroup.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargePersonGroup.json
new file mode 100644
index 000000000000..e9888166e026
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargePersonGroup.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargePersonGroupPerson.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargePersonGroupPerson.json
new file mode 100644
index 000000000000..f75102f3a28b
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargePersonGroupPerson.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargePersonGroupPersonFace.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargePersonGroupPersonFace.json
new file mode 100644
index 000000000000..593ea9f58f47
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteLargePersonGroupPersonFace.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "persistedFaceId": "62004fa7-1ac0-478e-9d5a-b38f9e7fbc68"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonDirectoryPerson.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonDirectoryPerson.json
new file mode 100644
index 000000000000..a2f224a8c305
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonDirectoryPerson.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonDirectoryPersonFace.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonDirectoryPersonFace.json
new file mode 100644
index 000000000000..626c7b5e3503
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonDirectoryPersonFace.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "recognitionModel": "recognition_02",
+ "persistedFaceId": "62004fa7-1ac0-478e-9d5a-b38f9e7fbc68"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonGroup.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonGroup.json
new file mode 100644
index 000000000000..f7c062c6a2e0
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonGroup.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonGroupPerson.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonGroupPerson.json
new file mode 100644
index 000000000000..b9a3e416b947
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonGroupPerson.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonGroupPersonFace.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonGroupPersonFace.json
new file mode 100644
index 000000000000..459adbe3eda5
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeletePersonGroupPersonFace.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "persistedFaceId": "62004fa7-1ac0-478e-9d5a-b38f9e7fbc68"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteSnapshot.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteSnapshot.json
new file mode 100644
index 000000000000..48c5abc49858
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DeleteSnapshot.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "snapshotId": "e58b3f08-1e8b-4165-81df-aa9858f233dc"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DetectWithStream.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DetectWithStream.json
new file mode 100644
index 000000000000..3b532c60c099
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DetectWithStream.json
@@ -0,0 +1,244 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/octet-stream",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "returnFaceAttributes": [
+ "age",
+ "gender",
+ "headPose",
+ "smile",
+ "facialHair",
+ "glasses",
+ "emotion",
+ "hair",
+ "makeup",
+ "occlusion",
+ "accessories",
+ "blur",
+ "exposure",
+ "noise"
+ ],
+ "Image": "{Image binary in base 64 format}",
+ "recognitionModel": "recognition_01",
+ "returnRecognitionModel": true,
+ "detectionModel": "detection_01"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "faceId": "c5c24a82-6845-4031-9d5d-978df9175426",
+ "recognitionModel": "recognition_01",
+ "faceRectangle": {
+ "width": 78,
+ "height": 78,
+ "left": 394,
+ "top": 54
+ },
+ "faceLandmarks": {
+ "pupilLeft": {
+ "x": 412.7,
+ "y": 78.4
+ },
+ "pupilRight": {
+ "x": 446.8,
+ "y": 74.2
+ },
+ "noseTip": {
+ "x": 437.7,
+ "y": 92.4
+ },
+ "mouthLeft": {
+ "x": 417.8,
+ "y": 114.4
+ },
+ "mouthRight": {
+ "x": 451.3,
+ "y": 109.3
+ },
+ "eyebrowLeftOuter": {
+ "x": 397.9,
+ "y": 78.5
+ },
+ "eyebrowLeftInner": {
+ "x": 425.4,
+ "y": 70.5
+ },
+ "eyeLeftOuter": {
+ "x": 406.7,
+ "y": 80.6
+ },
+ "eyeLeftTop": {
+ "x": 412.2,
+ "y": 76.2
+ },
+ "eyeLeftBottom": {
+ "x": 413.0,
+ "y": 80.1
+ },
+ "eyeLeftInner": {
+ "x": 418.9,
+ "y": 78.0
+ },
+ "eyebrowRightInner": {
+ "x": 4.8,
+ "y": 69.7
+ },
+ "eyebrowRightOuter": {
+ "x": 5.5,
+ "y": 68.5
+ },
+ "eyeRightInner": {
+ "x": 441.5,
+ "y": 75.0
+ },
+ "eyeRightTop": {
+ "x": 446.4,
+ "y": 71.7
+ },
+ "eyeRightBottom": {
+ "x": 447.0,
+ "y": 75.3
+ },
+ "eyeRightOuter": {
+ "x": 451.7,
+ "y": 73.4
+ },
+ "noseRootLeft": {
+ "x": 428.0,
+ "y": 77.1
+ },
+ "noseRootRight": {
+ "x": 435.8,
+ "y": 75.6
+ },
+ "noseLeftAlarTop": {
+ "x": 428.3,
+ "y": 89.7
+ },
+ "noseRightAlarTop": {
+ "x": 442.2,
+ "y": 87.0
+ },
+ "noseLeftAlarOutTip": {
+ "x": 424.3,
+ "y": 96.4
+ },
+ "noseRightAlarOutTip": {
+ "x": 446.6,
+ "y": 92.5
+ },
+ "upperLipTop": {
+ "x": 437.6,
+ "y": 105.9
+ },
+ "upperLipBottom": {
+ "x": 437.6,
+ "y": 108.2
+ },
+ "underLipTop": {
+ "x": 436.8,
+ "y": 111.4
+ },
+ "underLipBottom": {
+ "x": 437.3,
+ "y": 114.5
+ }
+ },
+ "faceAttributes": {
+ "age": 71.0,
+ "gender": "male",
+ "smile": 0.88,
+ "facialHair": {
+ "moustache": 0.8,
+ "beard": 0.1,
+ "sideburns": 0.02
+ },
+ "glasses": "sunglasses",
+ "headPose": {
+ "roll": 2.1,
+ "yaw": 3,
+ "pitch": 1.6
+ },
+ "emotion": {
+ "anger": 0.575,
+ "contempt": 0,
+ "disgust": 0.006,
+ "fear": 0.008,
+ "happiness": 0.394,
+ "neutral": 0.013,
+ "sadness": 0,
+ "surprise": 0.004
+ },
+ "hair": {
+ "bald": 0.0,
+ "invisible": false,
+ "hairColor": [
+ {
+ "color": "brown",
+ "confidence": 1.0
+ },
+ {
+ "color": "blond",
+ "confidence": 0.88
+ },
+ {
+ "color": "black",
+ "confidence": 0.48
+ },
+ {
+ "color": "other",
+ "confidence": 0.11
+ },
+ {
+ "color": "gray",
+ "confidence": 0.07
+ },
+ {
+ "color": "red",
+ "confidence": 0.03
+ }
+ ]
+ },
+ "makeup": {
+ "eyeMakeup": true,
+ "lipMakeup": false
+ },
+ "occlusion": {
+ "foreheadOccluded": false,
+ "eyeOccluded": false,
+ "mouthOccluded": false
+ },
+ "accessories": [
+ {
+ "type": "headWear",
+ "confidence": 0.99
+ },
+ {
+ "type": "glasses",
+ "confidence": 1.0
+ },
+ {
+ "type": "mask",
+ "confidence": 0.87
+ }
+ ],
+ "blur": {
+ "blurLevel": "Medium",
+ "value": 0.51
+ },
+ "exposure": {
+ "exposureLevel": "GoodExposure",
+ "value": 0.55
+ },
+ "noise": {
+ "noiseLevel": "Low",
+ "value": 0.12
+ }
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DetectWithUrl.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DetectWithUrl.json
new file mode 100644
index 000000000000..693778906f3c
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/DetectWithUrl.json
@@ -0,0 +1,246 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "returnFaceAttributes": [
+ "age",
+ "gender",
+ "headPose",
+ "smile",
+ "facialHair",
+ "glasses",
+ "emotion",
+ "hair",
+ "makeup",
+ "occlusion",
+ "accessories",
+ "blur",
+ "exposure",
+ "noise"
+ ],
+ "ImageUrl": {
+ "url": "{Image Url here}"
+ },
+ "recognitionModel": "recognition_01",
+ "returnRecognitionModel": true,
+ "detectionModel": "detection_01"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "faceId": "c5c24a82-6845-4031-9d5d-978df9175426",
+ "recognitionModel": "recognition_01",
+ "faceRectangle": {
+ "width": 78,
+ "height": 78,
+ "left": 394,
+ "top": 54
+ },
+ "faceLandmarks": {
+ "pupilLeft": {
+ "x": 412.7,
+ "y": 78.4
+ },
+ "pupilRight": {
+ "x": 446.8,
+ "y": 74.2
+ },
+ "noseTip": {
+ "x": 437.7,
+ "y": 92.4
+ },
+ "mouthLeft": {
+ "x": 417.8,
+ "y": 114.4
+ },
+ "mouthRight": {
+ "x": 451.3,
+ "y": 109.3
+ },
+ "eyebrowLeftOuter": {
+ "x": 397.9,
+ "y": 78.5
+ },
+ "eyebrowLeftInner": {
+ "x": 425.4,
+ "y": 70.5
+ },
+ "eyeLeftOuter": {
+ "x": 406.7,
+ "y": 80.6
+ },
+ "eyeLeftTop": {
+ "x": 412.2,
+ "y": 76.2
+ },
+ "eyeLeftBottom": {
+ "x": 413.0,
+ "y": 80.1
+ },
+ "eyeLeftInner": {
+ "x": 418.9,
+ "y": 78.0
+ },
+ "eyebrowRightInner": {
+ "x": 4.8,
+ "y": 69.7
+ },
+ "eyebrowRightOuter": {
+ "x": 5.5,
+ "y": 68.5
+ },
+ "eyeRightInner": {
+ "x": 441.5,
+ "y": 75.0
+ },
+ "eyeRightTop": {
+ "x": 446.4,
+ "y": 71.7
+ },
+ "eyeRightBottom": {
+ "x": 447.0,
+ "y": 75.3
+ },
+ "eyeRightOuter": {
+ "x": 451.7,
+ "y": 73.4
+ },
+ "noseRootLeft": {
+ "x": 428.0,
+ "y": 77.1
+ },
+ "noseRootRight": {
+ "x": 435.8,
+ "y": 75.6
+ },
+ "noseLeftAlarTop": {
+ "x": 428.3,
+ "y": 89.7
+ },
+ "noseRightAlarTop": {
+ "x": 442.2,
+ "y": 87.0
+ },
+ "noseLeftAlarOutTip": {
+ "x": 424.3,
+ "y": 96.4
+ },
+ "noseRightAlarOutTip": {
+ "x": 446.6,
+ "y": 92.5
+ },
+ "upperLipTop": {
+ "x": 437.6,
+ "y": 105.9
+ },
+ "upperLipBottom": {
+ "x": 437.6,
+ "y": 108.2
+ },
+ "underLipTop": {
+ "x": 436.8,
+ "y": 111.4
+ },
+ "underLipBottom": {
+ "x": 437.3,
+ "y": 114.5
+ }
+ },
+ "faceAttributes": {
+ "age": 71.0,
+ "gender": "male",
+ "smile": 0.88,
+ "facialHair": {
+ "moustache": 0.8,
+ "beard": 0.1,
+ "sideburns": 0.02
+ },
+ "glasses": "sunglasses",
+ "headPose": {
+ "roll": 2.1,
+ "yaw": 3,
+ "pitch": 1.6
+ },
+ "emotion": {
+ "anger": 0.575,
+ "contempt": 0,
+ "disgust": 0.006,
+ "fear": 0.008,
+ "happiness": 0.394,
+ "neutral": 0.013,
+ "sadness": 0,
+ "surprise": 0.004
+ },
+ "hair": {
+ "bald": 0.0,
+ "invisible": false,
+ "hairColor": [
+ {
+ "color": "brown",
+ "confidence": 1.0
+ },
+ {
+ "color": "blond",
+ "confidence": 0.88
+ },
+ {
+ "color": "black",
+ "confidence": 0.48
+ },
+ {
+ "color": "other",
+ "confidence": 0.11
+ },
+ {
+ "color": "gray",
+ "confidence": 0.07
+ },
+ {
+ "color": "red",
+ "confidence": 0.03
+ }
+ ]
+ },
+ "makeup": {
+ "eyeMakeup": true,
+ "lipMakeup": false
+ },
+ "occlusion": {
+ "foreheadOccluded": false,
+ "eyeOccluded": false,
+ "mouthOccluded": false
+ },
+ "accessories": [
+ {
+ "type": "headWear",
+ "confidence": 0.99
+ },
+ {
+ "type": "glasses",
+ "confidence": 1.0
+ },
+ {
+ "type": "mask",
+ "confidence": 0.87
+ }
+ ],
+ "blur": {
+ "blurLevel": "Medium",
+ "value": 0.51
+ },
+ "exposure": {
+ "exposureLevel": "GoodExposure",
+ "value": 0.55
+ },
+ "noise": {
+ "noiseLevel": "Low",
+ "value": 0.12
+ }
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/FindSimilar.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/FindSimilar.json
new file mode 100644
index 000000000000..f8acd5058618
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/FindSimilar.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {
+ "faceId": "c5c24a82-6845-4031-9d5d-978df9175426",
+ "largeFaceListId": "sample_list",
+ "maxNumOfCandidatesReturned": 1,
+ "mode": "matchPerson"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "persistedFaceId": "015839fb-fbd9-4f79-ace9-7675fc2f1dd9",
+ "confidence": 0.82
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetDynamicPersonGroup.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetDynamicPersonGroup.json
new file mode 100644
index 000000000000..751fe881a655
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetDynamicPersonGroup.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "dynamicPersonGroupId": "abc"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "dynamicPersonGroupId": "abc",
+ "name": "DynamicPersonGroup1",
+ "userData": "User-provided data attached to the dynamic person group."
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetFaceList.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetFaceList.json
new file mode 100644
index 000000000000..10afff68c1c3
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetFaceList.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "faceListId": "sample_face_list",
+ "returnRecognitionModel": true
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "faceListId": "sample_list",
+ "name": "list1",
+ "userData": "User-provided data attached to the face list.",
+ "recognitionModel": "recognition_01",
+ "persistedFaces": [
+ {
+ "persistedFaceId": "B8D802CF-DD8F-4E61-B15C-9E6C5844CCBD",
+ "userData": "User-provided data attached to the face."
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargeFaceList.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargeFaceList.json
new file mode 100644
index 000000000000..7899fda502c2
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargeFaceList.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largeFaceListId": "f92f6f1b-3258-4444-8fa2-c2df505cc7ac",
+ "returnRecognitionModel": true
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "largeFaceListId": "f92f6f1b-3258-4444-8fa2-c2df505cc7ac",
+ "name": "large-face-list-name",
+ "userData": "User-provided data attached to the large face list.",
+ "recognitionModel": "recognition_01"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargeFaceListPersistedFace.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargeFaceListPersistedFace.json
new file mode 100644
index 000000000000..8cb9d3298ee1
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargeFaceListPersistedFace.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largeFaceListId": "abc",
+ "persistedFaceId": "015839fb-fbd9-4f79-ace9-7675fc2f1dd9"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "persistedFaceId": "015839fb-fbd9-4f79-ace9-7675fc2f1dd9",
+ "userData": "User-provided data attached to the face."
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargeFaceListTrainingStatus.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargeFaceListTrainingStatus.json
new file mode 100644
index 000000000000..5581acaa52e6
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargeFaceListTrainingStatus.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largeFaceListId": "abc"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "succeeded",
+ "createdDateTime": "2017-12-21T12:57:27.00Z",
+ "lastActionDateTime": "2017-12-21T12:57:30.00Z",
+ "lastSuccessfulTrainingDateTime": "2017-12-21T12:57:30.00Z",
+ "message": null
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargePersonGroup.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargePersonGroup.json
new file mode 100644
index 000000000000..9642c6cd6579
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargePersonGroup.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc",
+ "returnRecognitionModel": true
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "largePersonGroupId": "d408cb4e-2f5f-4b4d-b99e-f0b72870e5b5",
+ "name": "large-person-group-name",
+ "userData": "User-provided data attached to the large person group.",
+ "recognitionModel": "recognition_01"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargePersonGroupPersistedFace.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargePersonGroupPersistedFace.json
new file mode 100644
index 000000000000..ee1ea734c024
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargePersonGroupPersistedFace.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc",
+ "personId": "B8D802CF-DD8F-4E61-B15C-9E6C5844CCBA",
+ "persistedFaceId": "015839fb-fbd9-4f79-ace9-7675fc2f1dd9"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "persistedFaceId": "015839fb-fbd9-4f79-ace9-7675fc2f1dd9",
+ "userData": "User-provided data attached to the person face."
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargePersonGroupPerson.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargePersonGroupPerson.json
new file mode 100644
index 000000000000..00af2632ef7d
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargePersonGroupPerson.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "persistedFaceIds": [
+ "015839fb-fbd9-4f79-ace9-7675fc2f1dd9",
+ "fce92aed-d578-4d2e-8114-068f8af4492e",
+ "b64d5e15-8257-4af2-b20a-5a750f8940e7"
+ ],
+ "name": "person-name",
+ "userData": "User-provided data attached to the person."
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargePersonGroupTrainingStatus.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargePersonGroupTrainingStatus.json
new file mode 100644
index 000000000000..4fdd195db586
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetLargePersonGroupTrainingStatus.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "succeeded",
+ "createdDateTime": "2017-12-21T12:57:27.00Z",
+ "lastActionDateTime": "2017-12-21T12:57:30.00Z",
+ "lastSuccessfulTrainingDateTime": "2017-12-21T12:57:30.00Z",
+ "message": null
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonDirectoryPerson.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonDirectoryPerson.json
new file mode 100644
index 000000000000..982dc7a922e3
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonDirectoryPerson.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "recognitionModel": "recognition02"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "name": "Ryan",
+ "userData": "User-provided data attached to the person."
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonDirectoryPersonFace.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonDirectoryPersonFace.json
new file mode 100644
index 000000000000..dc0d33d9bfff
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonDirectoryPersonFace.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personId": "4caa25ee-3bc6-4e88-adf8-12455ce7aab0",
+ "recognitionModel": "recognition_02",
+ "persistedFaceId": "6e04c175-219e-42a2-9d26-0e7b790e1ef4"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "persistedFaceId": "6e04c175-219e-42a2-9d26-0e7b790e1ef4",
+ "userData": "User-provided data attached to the person face."
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonDirectoryPersonFaces.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonDirectoryPersonFaces.json
new file mode 100644
index 000000000000..173bd40256c0
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonDirectoryPersonFaces.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personId": "4caa25ee-3bc6-4e88-adf8-12455ce7aab0",
+ "recognitionModel": "recognition_02"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "personId": "4caa25ee-3bc6-4e88-adf8-12455ce7aab0",
+ "persistedFaceIds": [
+ "015839fb-fbd9-4f79-ace9-7675fc2f1dd9",
+ "fce92aed-d578-4d2e-8114-068f8af4492e",
+ "b64d5e15-8257-4af2-b20a-5a750f8940e7"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonDirectoryPersons.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonDirectoryPersons.json
new file mode 100644
index 000000000000..4227f78b78fa
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonDirectoryPersons.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "name": "Ryan",
+ "userData": "User-provided data attached to the person."
+ },
+ {
+ "personId": "2ae4935b-9659-44c3-977f-61fac20d0538",
+ "name": "David",
+ "userData": "User-provided data attached to the person."
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonGroup.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonGroup.json
new file mode 100644
index 000000000000..a1941cdb85f1
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonGroup.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc",
+ "returnRecognitionModel": true
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "personGroupId": "sample_group",
+ "name": "group1",
+ "userData": "User-provided data attached to the person group.",
+ "recognitionModel": "recognition_01"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonGroupPersistedFace.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonGroupPersistedFace.json
new file mode 100644
index 000000000000..0c88343b90a9
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonGroupPersistedFace.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc",
+ "personId": "foobar",
+ "persistedFaceId": "asd"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "persistedFaceId": "015839fb-fbd9-4f79-ace9-7675fc2f1dd9",
+ "userData": "User-provided data attached to the person face."
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonGroupPerson.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonGroupPerson.json
new file mode 100644
index 000000000000..6b4d1cd7c157
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonGroupPerson.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "persistedFaceIds": [
+ "015839fb-fbd9-4f79-ace9-7675fc2f1dd9",
+ "fce92aed-d578-4d2e-8114-068f8af4492e",
+ "b64d5e15-8257-4af2-b20a-5a750f8940e7"
+ ],
+ "name": "Ryan",
+ "userData": "User-provided data attached to the person."
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonGroupTrainingStatus.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonGroupTrainingStatus.json
new file mode 100644
index 000000000000..2327573ef59e
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetPersonGroupTrainingStatus.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "succeeded",
+ "createdDateTime": "2017-12-21T12:57:27.00Z",
+ "lastActionDateTime": "2017-12-21T12:57:30.00Z",
+ "message": null
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetSnapshot.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetSnapshot.json
new file mode 100644
index 000000000000..9ceced091c19
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetSnapshot.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "snapshotId": "e58b3f08-1e8b-4165-81df-aa9858f233dc"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "e58b3f08-1e8b-4165-81df-aa9858f233dc",
+ "account": "/subscriptions/f9b96b36-1f5e-4021-8959-51527e26e6d3/resourceGroups/TestRG/providers/Microsoft.CognitiveServices/accounts/FaceTest01",
+ "type": "FaceList",
+ "applyScope": [
+ "35230F59-AA9C-45E0-AB5E-C859BF1A5429",
+ "64084E07-9B7F-4A98-BEA4-9986D3A1EDEB"
+ ],
+ "userData": "User-provided data attached to the snapshot.",
+ "createdTime": "2018-12-25T11:41:02.2331413Z",
+ "lastUpdateTime": "2018-12-25T11:51:27.8705696Z"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetSnapshotOperationStatus.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetSnapshotOperationStatus.json
new file mode 100644
index 000000000000..ee817dafe4fd
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/GetSnapshotOperationStatus.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "operationId": "a63a3bdd-a1db-4d05-87b8-dbad6850062a"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "succeeded",
+ "createdTime": "2018-12-25T11:41:02.2331413Z",
+ "lastActionTime": "2018-12-25T11:51:27.8705696Z",
+ "resourceLocation": "/snapshots/e58b3f08-1e8b-4165-81df-aa9858f233dc",
+ "message": null
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/Group.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/Group.json
new file mode 100644
index 000000000000..18e632e04c31
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/Group.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {
+ "faceIds": [
+ "c5c24a82-6845-4031-9d5d-978df9175426",
+ "015839fb-fbd9-4f79-ace9-7675fc2f1dd9",
+ "65d083d4-9447-47d1-af30-b626144bf0fb",
+ "fce92aed-d578-4d2e-8114-068f8af4492e",
+ "30ea1073-cc9e-4652-b1e3-d08fb7b95315",
+ "be386ab3-af91-4104-9e6d-4dae4c9fddb7",
+ "fbd2a038-dbff-452c-8e79-2ee81b1aa84e",
+ "b64d5e15-8257-4af2-b20a-5a750f8940e7"
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "groups": [
+ [
+ "c5c24a82-6845-4031-9d5d-978df9175426",
+ "015839fb-fbd9-4f79-ace9-7675fc2f1dd9",
+ "fce92aed-d578-4d2e-8114-068f8af4492e",
+ "b64d5e15-8257-4af2-b20a-5a750f8940e7"
+ ],
+ [
+ "65d083d4-9447-47d1-af30-b626144bf0fb",
+ "30ea1073-cc9e-4652-b1e3-d08fb7b95315"
+ ]
+ ],
+ "messyGroup": [
+ "be386ab3-af91-4104-9e6d-4dae4c9fddb7"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/Identify.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/Identify.json
new file mode 100644
index 000000000000..1398891645f3
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/Identify.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {
+ "largePersonGroupId": "sample_group",
+ "faceIds": [
+ "c5c24a82-6845-4031-9d5d-978df9175426",
+ "65d083d4-9447-47d1-af30-b626144bf0fb"
+ ],
+ "maxNumOfCandidatesReturned": 1,
+ "confidenceThreshold": 0.5
+ }
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "faceId": "c5c24a82-6845-4031-9d5d-978df9175426",
+ "candidates": [
+ {
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "confidence": 0.92
+ }
+ ]
+ },
+ {
+ "faceId": "65d083d4-9447-47d1-af30-b626144bf0fb",
+ "candidates": [
+ {
+ "personId": "2ae4935b-9659-44c3-977f-61fac20d0538",
+ "confidence": 0.89
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListDynamicPersonGroupPersons.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListDynamicPersonGroupPersons.json
new file mode 100644
index 000000000000..c6bde32fa828
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListDynamicPersonGroupPersons.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "dynamicPersonGroupId": "abc",
+ "start": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "top": "2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "personIds": [
+ "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "2ae4935b-9659-44c3-977f-61fac20d0538"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListDynamicPersonGroupReferences.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListDynamicPersonGroupReferences.json
new file mode 100644
index 000000000000..22baa04d8fb9
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListDynamicPersonGroupReferences.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personId": "1d44651f-fadb-41f5-8918-c30609964489"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "personId": "1d44651f-fadb-41f5-8918-c30609964489",
+ "dynamicPersonGroupIds": [
+ "dynamicPersonGroup1",
+ "dynamicPersonGroup2"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListDynamicPersonGroups.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListDynamicPersonGroups.json
new file mode 100644
index 000000000000..d6da64768adc
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListDynamicPersonGroups.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "start": "sample_group",
+ "top": "2"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "dynamicPersonGroupId": "dynamicPersonGroup1",
+ "name": "name1",
+ "userData": "User-provided data attached to the DynamicPersonGroup."
+ },
+ {
+ "dynamicPersonGroupId": "dynamicPersonGroup2",
+ "name": "name2",
+ "userData": "User-provided data attached to the DynamicPersonGroup."
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListFaceLists.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListFaceLists.json
new file mode 100644
index 000000000000..512e91939afd
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListFaceLists.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "returnRecognitionModel": true
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "faceListId": "sample_face_list",
+ "name": "list1",
+ "userData": "User-provided data attached to the face list.",
+ "recognitionModel": "recognition_01"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListLargeFaceListFaces.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListLargeFaceListFaces.json
new file mode 100644
index 000000000000..4eeb7d58cb1c
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListLargeFaceListFaces.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largeFaceListId": "abc",
+ "start": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "top": 2
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "persistedFaceId": "8a887ac2-53fd-4f55-9024-1ec77eecd08e",
+ "userData": "User-provided data attached to the large face list face."
+ },
+ {
+ "persistedFaceId": "f92f6f1b-3258-4444-8fa2-c2df505cc7ac",
+ "userData": "User-provided data attached to the large face list face."
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListLargeFaceLists.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListLargeFaceLists.json
new file mode 100644
index 000000000000..84c5a520c3d9
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListLargeFaceLists.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "returnRecognitionModel": true
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "largeFaceListId": "f92f6f1b-3258-4444-8fa2-c2df505cc7ac",
+ "name": "large-face-list-name1",
+ "userData": "User-provided data attached to the large face list.",
+ "recognitionModel": "recognition_01"
+ },
+ {
+ "largeFaceListId": "c76f7f13-0ed3-4d00-8a3e-2ad3d78f6c37",
+ "name": "large-face-list-name2",
+ "userData": "User-provided data attached to the large face list.",
+ "recognitionModel": "recognition_01"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListLargePersonGroupPersons.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListLargePersonGroupPersons.json
new file mode 100644
index 000000000000..d5a6ba659d79
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListLargePersonGroupPersons.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc",
+ "start": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "top": 2
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "name": "person-name1",
+ "userData": "User-provided data attached to the person.",
+ "persistedFaceIds": [
+ "015839fb-fbd9-4f79-ace9-7675fc2f1dd9",
+ "fce92aed-d578-4d2e-8114-068f8af4492e",
+ "b64d5e15-8257-4af2-b20a-5a750f8940e7"
+ ]
+ },
+ {
+ "personId": "2ae4935b-9659-44c3-977f-61fac20d0538",
+ "name": "person-name2",
+ "userData": "User-provided data attached to the person.",
+ "persistedFaceIds": [
+ "30ea1073-cc9e-4652-b1e3-d08fb7b95315",
+ "fbd2a038-dbff-452c-8e79-2ee81b1aa84e"
+ ]
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListLargePersonGroups.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListLargePersonGroups.json
new file mode 100644
index 000000000000..fb01f364ecd0
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListLargePersonGroups.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "start": "sample_group",
+ "top": 2,
+ "returnRecognitionModel": true
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "largePersonGroupId": "f92f6f1b-3258-4444-8fa2-c2df505cc7ac",
+ "name": "large-person-group-name1",
+ "userData": "User-provided data attached to the large person group.",
+ "recognitionModel": "recognition_01"
+ },
+ {
+ "largePersonGroupId": "c76f7f13-0ed3-4d00-8a3e-2ad3d78f6c37",
+ "name": "large-person-group-name2",
+ "userData": "User-provided data attached to the large person group.",
+ "recognitionModel": "recognition_01"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListPersonGroupPersons.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListPersonGroupPersons.json
new file mode 100644
index 000000000000..27011485903d
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListPersonGroupPersons.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc",
+ "start": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "top": 2
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "name": "Ryan",
+ "userData": "User-provided data attached to the person",
+ "persistedFaceIds": [
+ "015839fb-fbd9-4f79-ace9-7675fc2f1dd9",
+ "fce92aed-d578-4d2e-8114-068f8af4492e",
+ "b64d5e15-8257-4af2-b20a-5a750f8940e7"
+ ]
+ },
+ {
+ "personId": "2ae4935b-9659-44c3-977f-61fac20d0538",
+ "name": "David",
+ "userData": "User-provided data attached to the person",
+ "persistedFaceIds": [
+ "30ea1073-cc9e-4652-b1e3-d08fb7b95315",
+ "fbd2a038-dbff-452c-8e79-2ee81b1aa84e"
+ ]
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListPersonGroups.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListPersonGroups.json
new file mode 100644
index 000000000000..276996afa6fc
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListPersonGroups.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "start": "sample_group",
+ "top": 2,
+ "returnRecognitionModel": true
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "personGroupId": "sample_group",
+ "name": "group1",
+ "userData": "User-provided data attached to the person group.",
+ "recognitionModel": "recognition_01"
+ },
+ {
+ "personGroupId": "sample_group2",
+ "name": "group2",
+ "userData": "User-provided data attached to the person group.",
+ "recognitionModel": "recognition_01"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListSnapshots.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListSnapshots.json
new file mode 100644
index 000000000000..2dba0e2d4832
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/ListSnapshots.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "type": "FaceList",
+ "applyScope": [
+ "64084E07-9B7F-4A98-BEA4-9986D3A1EDEB"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "e58b3f08-1e8b-4165-81df-aa9858f233dc",
+ "account": "/subscriptions/f9b96b36-1f5e-4021-8959-51527e26e6d3/resourceGroups/TestRG/providers/Microsoft.CognitiveServices/accounts/FaceTest01",
+ "type": "FaceList",
+ "applyScope": [
+ "35230F59-AA9C-45E0-AB5E-C859BF1A5429",
+ "64084E07-9B7F-4A98-BEA4-9986D3A1EDEB"
+ ],
+ "userData": "User-provided data attached to the snapshot1.",
+ "createdTime": "2018-12-25T11:41:02.2331413Z",
+ "lastUpdateTime": "2018-12-25T11:51:27.8705696Z"
+ },
+ {
+ "id": "a61e61e4-c3d1-4d33-8ae8-676e6104757d",
+ "account": "/subscriptions/6622996e-0149-4b22-9703-4216dc948d52/resourceGroups/TestRG/providers/Microsoft.CognitiveServices/accounts/FaceTest01",
+ "type": "FaceList",
+ "applyScope": [
+ "64084E07-9B7F-4A98-BEA4-9986D3A1EDEB"
+ ],
+ "userData": "User-provided data attached to the snapshot2.",
+ "createdTime": "2018-12-29T17:09:32.3298483Z",
+ "lastUpdateTime": "2018-12-29T17:14:34.5645877Z"
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/QueueLargeFaceListTraining.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/QueueLargeFaceListTraining.json
new file mode 100644
index 000000000000..38b96eb8dd09
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/QueueLargeFaceListTraining.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largeFaceListId": "abc"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/QueueLargePersonGroupTraining.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/QueueLargePersonGroupTraining.json
new file mode 100644
index 000000000000..62cf89c96bc1
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/QueueLargePersonGroupTraining.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/QueuePersonGroupTraining.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/QueuePersonGroupTraining.json
new file mode 100644
index 000000000000..998a4eb523ea
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/QueuePersonGroupTraining.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/TakeSnapshot.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/TakeSnapshot.json
new file mode 100644
index 000000000000..ef925f79b927
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/TakeSnapshot.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {
+ "type": "FaceList",
+ "objectId": "source-face-list-id",
+ "applyScope": [
+ "35230F59-AA9C-45E0-AB5E-C859BF1A5429",
+ "64084E07-9B7F-4A98-BEA4-9986D3A1EDEB"
+ ],
+ "userData": "User-provided data attached to the snapshot."
+ }
+ },
+ "responses": {
+ "202": {
+ "header": {
+ "Operation-Location": "/operations/a63a3bdd-a1db-4d05-87b8-dbad6850062a"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateDynamicPersonGroup.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateDynamicPersonGroup.json
new file mode 100644
index 000000000000..c76dd3808c39
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateDynamicPersonGroup.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "dynamicPersonGroupId": "abc",
+ "body": {
+ "name": "Display Name of Dynamic Person Group",
+ "userData": "User-provided data attached to the dynamic person group.",
+ "addPersonIds": [
+ "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "4caa25ee-3bc6-4e88-adf8-12455ce7aab0"
+ ],
+ "removePersonIds": [
+ "2ae4935b-9659-44c3-977f-61fac20d0538"
+ ]
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateFaceList.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateFaceList.json
new file mode 100644
index 000000000000..78ec8efe493a
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateFaceList.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "faceListId": "sample_face_list",
+ "body": {
+ "name": "list1",
+ "userData": "User-provided data attached to the face list."
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargeFaceList.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargeFaceList.json
new file mode 100644
index 000000000000..e1918aef1e28
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargeFaceList.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largeFaceListId": "sample_face_list",
+ "body": {
+ "name": "large-face-list-name",
+ "userData": "User-provided data attached to the large face list."
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargeFaceListFace.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargeFaceListFace.json
new file mode 100644
index 000000000000..fe742c9bb920
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargeFaceListFace.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largeFaceListId": "abc",
+ "persistedFaceId": "62004fa7-1ac0-478e-9d5a-b38f9e7fbc68",
+ "body": {
+ "userData": "User-provided data attached to the face."
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargePersonGroup.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargePersonGroup.json
new file mode 100644
index 000000000000..b15516c4b0f3
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargePersonGroup.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc",
+ "body": {
+ "name": "group1",
+ "userData": "user-provided data attached to the large person group."
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargePersonGroupPerson.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargePersonGroupPerson.json
new file mode 100644
index 000000000000..eee119bf114b
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargePersonGroupPerson.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "body": {
+ "name": "mike",
+ "userData": "{additional data associated with mike}"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargePersonGroupPersonFace.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargePersonGroupPersonFace.json
new file mode 100644
index 000000000000..0b91ecb07efc
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateLargePersonGroupPersonFace.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "largePersonGroupId": "abc",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "persistedFaceId": "62004fa7-1ac0-478e-9d5a-b38f9e7fbc68",
+ "body": {
+ "userData": "User-provided data attached to the face."
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonDirectoryPerson.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonDirectoryPerson.json
new file mode 100644
index 000000000000..077cede90291
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonDirectoryPerson.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "body": {
+ "name": "mike",
+ "userData": "{additional data associated with mike}"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonDirectoryPersonFace.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonDirectoryPersonFace.json
new file mode 100644
index 000000000000..d8d550d88a32
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonDirectoryPersonFace.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "recognitionModel": "recognition_02",
+ "persistedFaceId": "62004fa7-1ac0-478e-9d5a-b38f9e7fbc68",
+ "body": {
+ "userData": "User-provided data attached to the face."
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonGroup.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonGroup.json
new file mode 100644
index 000000000000..2ed80b8253cd
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonGroup.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc",
+ "body": {
+ "name": "group1",
+ "userData": "user-provided data attached to the person group."
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonGroupPerson.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonGroupPerson.json
new file mode 100644
index 000000000000..76fc46fc4deb
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonGroupPerson.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "body": {
+ "name": "mike",
+ "userData": "{additional data associated with mike}"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonGroupPersonFace.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonGroupPersonFace.json
new file mode 100644
index 000000000000..b3e7b74542d5
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdatePersonGroupPersonFace.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "personGroupId": "abc",
+ "personId": "25985303-c537-4467-b41d-bdb45cd95ca1",
+ "persistedFaceId": "62004fa7-1ac0-478e-9d5a-b38f9e7fbc68",
+ "body": {
+ "userData": "User-provided data attached to the face."
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateSnapshot.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateSnapshot.json
new file mode 100644
index 000000000000..5d56c58b9de4
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/UpdateSnapshot.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "snapshotId": "e58b3f08-1e8b-4165-81df-aa9858f233dc",
+ "body": {
+ "applyScope": [
+ "64084E07-9B7F-4A98-BEA4-9986D3A1EDEB"
+ ],
+ "userData": "User-provided data attached to the snapshot."
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/VerifyFaceToFace.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/VerifyFaceToFace.json
new file mode 100644
index 000000000000..dd75941b7f41
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/VerifyFaceToFace.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {
+ "faceId1": "c5c24a82-6845-4031-9d5d-978df9175426",
+ "faceId2": "815df99c-598f-4926-930a-a734b3fd651c"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "isIdentical": true,
+ "confidence": 0.9
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/VerifyFaceToPerson.json b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/VerifyFaceToPerson.json
new file mode 100644
index 000000000000..7646c4e2b357
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Face/preview/v1.0-preview/examples/VerifyFaceToPerson.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {
+ "faceId": "c5c24a82-6845-4031-9d5d-978df9175426",
+ "personId": "815df99c-598f-4926-930a-a734b3fd651c",
+ "largePersonGroupId": "sample_group"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "isIdentical": true,
+ "confidence": 0.9
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Face/readme.go.md b/specification/cognitiveservices/data-plane/Face/readme.go.md
index b7192cbee481..2344790cf38d 100644
--- a/specification/cognitiveservices/data-plane/Face/readme.go.md
+++ b/specification/cognitiveservices/data-plane/Face/readme.go.md
@@ -23,4 +23,13 @@ Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'release_1_0' && $(go)
+output-folder: $(go-sdk-folder)/services/cognitiveservices/v1.0-preview/$(namespace)
```
\ No newline at end of file
diff --git a/specification/cognitiveservices/data-plane/Face/readme.md b/specification/cognitiveservices/data-plane/Face/readme.md
index 94ccd041fce0..cb1b24f37af9 100644
--- a/specification/cognitiveservices/data-plane/Face/readme.md
+++ b/specification/cognitiveservices/data-plane/Face/readme.md
@@ -21,6 +21,13 @@ These settings apply only when `--tag=release_1_0` is specified on the command l
input-file: stable/v1.0/Face.json
```
+### Release 1.0-preview
+These settings apply only when `--tag=release_1_0_preview` is specified on the command line.
+
+``` yaml $(tag) == 'release_1_0_preview'
+input-file: preview/v1.0-preview/Face.json
+```
+
## Swagger to SDK
This section describes what SDK should be generated by the automatic system.
@@ -84,6 +91,7 @@ require: $(this-folder)/../../../../profiles/readme.md
# all the input files across all versions
input-file:
- $(this-folder)/stable/v1.0/Face.json
+ - $(this-folder)/preview/v1.0-preview/Face.json
```
diff --git a/specification/cognitiveservices/data-plane/Face/readme.ruby.md b/specification/cognitiveservices/data-plane/Face/readme.ruby.md
index 9f2a5a7123e8..77389ae603a9 100644
--- a/specification/cognitiveservices/data-plane/Face/readme.ruby.md
+++ b/specification/cognitiveservices/data-plane/Face/readme.ruby.md
@@ -25,3 +25,9 @@ namespace: "Azure::CognitiveServices::Face::V1_0"
output-folder: $(ruby-sdks-folder)/data/azure_cognitiveservices_face/lib
title: "FaceClient"
```
+
+``` yaml $(tag) == 'release_1_0_preview' && $(ruby)
+namespace: "Azure::CognitiveServices::Face::V1_0_preview"
+output-folder: $(ruby-sdks-folder)/data/azure_cognitiveservices_face/lib
+title: "FaceClient"
+```
\ No newline at end of file
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/readme.md b/specification/cognitiveservices/data-plane/FormRecognizer/readme.md
index a9ee5dd43e51..d42cba926ba2 100644
--- a/specification/cognitiveservices/data-plane/FormRecognizer/readme.md
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/readme.md
@@ -4,17 +4,24 @@
Configuration for generating Form Recognizer SDK.
-The current release is `release_2_0`.
+The current release is `release_2_1`.
``` yaml
-tag: release_2_0
+tag: release_2_1
add-credentials: true
openapi-type: data-plane
```
# Releases
+### Release 2.1
+These settings apply only when `--tag=release_2_1` is specified on the command line.
+``` yaml $(tag) == 'release_2_1'
+input-file:
+ - stable/v2.1/FormRecognizer.json
+```
+
### Release 2.1-preview.3
These settings apply only when `--tag=release_2_1_preview.3` is specified on the command line.
``` yaml $(tag) == 'release_2_1_preview.3'
@@ -70,7 +77,6 @@ This is not used by Autorest itself.
``` yaml $(swagger-to-sdk)
swagger-to-sdk:
- - repo: azure-sdk-for-python
- repo: azure-sdk-for-java
- repo: azure-sdk-for-go
- repo: azure-sdk-for-node
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/readme.python.md b/specification/cognitiveservices/data-plane/FormRecognizer/readme.python.md
index f129333bd856..a996460bdfcb 100644
--- a/specification/cognitiveservices/data-plane/FormRecognizer/readme.python.md
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/readme.python.md
@@ -4,23 +4,38 @@ These settings apply only when `--python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
-``` yaml $(python)
-python-mode: create
-python:
- license-header: MICROSOFT_MIT_NO_VERSION
- add-credentials: true
- payload-flattening-threshold: 2
- namespace: azure.cognitiveservices.formrecognizer
- package-name: azure-cognitiveservices-formrecognizer
- clear-output-folder: true
+
+``` yaml
+license-header: MICROSOFT_MIT_NO_VERSION
+add-credentials: true
+namespace: azure.ai.formrecognizer
+package-name: azure-ai-formrecognizer
+credential-scopes: https://cognitiveservices.azure.com/.default
+clear-output-folder: true
+no-namespace-folders: true
+```
+
+``` yaml $(tag) == 'release_2_0'
+namespace: azure.ai.formrecognizer.v2_0
+output-folder: $(python-sdks-folder)/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_generated/v2_0
+```
+
+``` yaml $(tag) == 'release_2_1_preview.3'
+namespace: azure.ai.formrecognizer.v2_1_preview_3
+output-folder: $(python-sdks-folder)/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_generated/v2_1_preview_3
```
-``` yaml $(python) && $(python-mode) == 'update'
-python:
- no-namespace-folders: true
- output-folder: $(python-sdks-folder)/cognitiveservices/azure-cognitiveservices-formrecognizer/azure/cognitiveservices/formrecognizer
+
+
+```yaml $(multiapi)
+batch:
+ - tag: release_2_0
+ - tag: release_2_1_preview.3
+ - multiapiscript: true
```
-``` yaml $(python) && $(python-mode) == 'create'
-python:
- basic-setup-py: true
- output-folder: $(python-sdks-folder)/cognitiveservices/azure-cognitiveservices-formrecognizer
+
+``` yaml $(multiapiscript)
+output-folder: $(python-sdks-folder)/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_generated
+clear-output-folder: false
+perform-load: false
+default-api: 2.1-preview.3
```
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/FormRecognizer.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/FormRecognizer.json
new file mode 100644
index 000000000000..5500a2faae85
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/FormRecognizer.json
@@ -0,0 +1,2350 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2.1",
+ "title": "Form Recognizer Client",
+ "description": "Extracts information from forms and images into structured data."
+ },
+ "securityDefinitions": {
+ "apim_key": {
+ "type": "apiKey",
+ "name": "Ocp-Apim-Subscription-Key",
+ "in": "header"
+ }
+ },
+ "security": [
+ {
+ "apim_key": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{endpoint}/formrecognizer/v2.1",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ },
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/custom/models": {
+ "post": {
+ "summary": "Train Custom Model",
+ "description": "Create and train a custom model. The request must include a source parameter that is either an externally accessible Azure storage blob container Uri (preferably a Shared Access Signature Uri) or valid path to a data folder in a locally mounted drive. When local paths are specified, they must follow the Linux/Unix path format and be an absolute path rooted to the input mount configuration setting value e.g., if '{Mounts:Input}' configuration setting value is '/input' then a valid source path would be '/input/contosodataset'. All data to be trained is expected to be under the source folder or sub folders under it. Models are trained using documents that are of the following content type - 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' or 'image/bmp'. Other type of content is ignored.",
+ "operationId": "TrainCustomModelAsync",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "trainRequest",
+ "in": "body",
+ "description": "Training request parameters.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TrainRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Request is queued successfully.",
+ "headers": {
+ "Location": {
+ "type": "string",
+ "description": "Location and ID of the model being trained. The status of model training is specified in the status property at the model location."
+ }
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Train custom model": {
+ "$ref": "./examples/TrainBatch.json"
+ },
+ "Train custom model with subfolder filter options": {
+ "$ref": "./examples/TrainBatchWithSubFolders.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/custom/models/{modelId}": {
+ "get": {
+ "summary": "Get Custom Model",
+ "description": "Get detailed information about a custom model.",
+ "operationId": "GetCustomModel",
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "modelId",
+ "in": "path",
+ "description": "Model identifier.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ },
+ {
+ "name": "includeKeys",
+ "in": "query",
+ "description": "Include list of extracted keys in model information.",
+ "required": false,
+ "default": false,
+ "type": "boolean",
+ "x-nullable": false
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Model"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get custom model": {
+ "$ref": "./examples/GetModel.json"
+ }
+ }
+ },
+ "delete": {
+ "summary": "Delete Custom Model",
+ "description": "Mark model for deletion. Model artifacts will be permanently removed within a predetermined period.",
+ "operationId": "DeleteCustomModel",
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "modelId",
+ "in": "path",
+ "description": "Model identifier.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Successfully marked model for deletion. Model artifacts will be removed within a predefined time period."
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete custom model": {
+ "$ref": "./examples/DeleteModel.json"
+ }
+ }
+ }
+ },
+ "/custom/models/{modelId}/analyze": {
+ "post": {
+ "summary": "Analyze Form",
+ "description": "Extract key-value pairs, tables, and semantic values from a given document. The input document must be of one of the supported content types - 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' or 'image/bmp'. Alternatively, use 'application/json' type to specify the location (Uri or local path) of the document to be analyzed.",
+ "operationId": "AnalyzeWithCustomModel",
+ "consumes": [
+ "application/pdf",
+ "application/json",
+ "image/jpeg",
+ "image/png",
+ "image/tiff",
+ "image/bmp"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "modelId",
+ "in": "path",
+ "description": "Model identifier.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ },
+ {
+ "name": "includeTextDetails",
+ "in": "query",
+ "description": "Include text lines and element references in the result.",
+ "required": false,
+ "default": false,
+ "type": "boolean",
+ "x-nullable": false
+ },
+ {
+ "$ref": "#/parameters/Pages"
+ },
+ {
+ "$ref": "#/parameters/FileStream"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Request is queued successfully.",
+ "headers": {
+ "Operation-Location": {
+ "type": "string",
+ "description": "URL containing the resultId used to track the progress and obtain the result of the analyze operation."
+ }
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Analyze form with custom model": {
+ "$ref": "./examples/AnalyzeBatch.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/custom/models/{modelId}/analyzeResults/{resultId}": {
+ "get": {
+ "summary": "Get Analyze Form Result",
+ "description": "Obtain current status and the result of the analyze form operation.",
+ "operationId": "GetAnalyzeFormResult",
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "modelId",
+ "in": "path",
+ "description": "Model identifier.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ },
+ {
+ "name": "resultId",
+ "in": "path",
+ "description": "Analyze operation result identifier.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AnalyzeOperationResult"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get analyze form result": {
+ "$ref": "./examples/AnalyzeOperationResult.json"
+ }
+ }
+ }
+ },
+ "/custom/models/{modelId}/copy": {
+ "post": {
+ "summary": "Copy Custom Model",
+ "description": "Copy custom model stored in this resource (the source) to user specified target Form Recognizer resource.",
+ "operationId": "CopyCustomModel",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "modelId",
+ "in": "path",
+ "description": "Model identifier.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ },
+ {
+ "name": "copyRequest",
+ "in": "body",
+ "description": "Copy request parameters.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CopyRequest"
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Copy request is queued successfully.",
+ "headers": {
+ "Operation-Location": {
+ "type": "string",
+ "description": "URL containing the resultId used to track the progress and obtain the result of the copy operation."
+ }
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Copy custom model": {
+ "$ref": "./examples/CopyModel.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/custom/models/{modelId}/copyResults/{resultId}": {
+ "get": {
+ "summary": "Get Custom Model Copy Result",
+ "description": "Obtain current status and the result of a custom model copy operation.",
+ "operationId": "GetCustomModelCopyResult",
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "modelId",
+ "in": "path",
+ "description": "Model identifier.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ },
+ {
+ "name": "resultId",
+ "in": "path",
+ "description": "Copy operation result identifier.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CopyOperationResult"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get copy custom model result": {
+ "$ref": "./examples/CopyOperationResult.json"
+ },
+ "Get copy custom model result with failures": {
+ "$ref": "./examples/CopyOperationResultWithErrors.json"
+ }
+ }
+ }
+ },
+ "/custom/models/copyAuthorization": {
+ "post": {
+ "summary": "Generate Copy Authorization",
+ "description": "Generate authorization to copy a model into the target Form Recognizer resource.",
+ "operationId": "GenerateModelCopyAuthorization",
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [],
+ "responses": {
+ "201": {
+ "description": "Copy request is authorized successfully.",
+ "headers": {
+ "Location": {
+ "type": "string",
+ "description": "Location and ID of the model being copied. The status of model copy is specified in the status property at the model location."
+ }
+ },
+ "schema": {
+ "$ref": "#/definitions/CopyAuthorizationResult"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Copy custom model": {
+ "$ref": "./examples/CopyModelAuthorization.json"
+ }
+ }
+ }
+ },
+ "/custom/models/compose": {
+ "post": {
+ "tags": [
+ "Form"
+ ],
+ "summary": "Compose trained with labels models into one composed model.",
+ "description": "Compose request would include list of models ids.\r\nIt would validate what all models either trained with labels model or composed model.\r\nIt would validate limit of models put together.",
+ "operationId": "ComposeCustomModelsAsync",
+ "consumes": [],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "name": "composeRequest",
+ "in": "body",
+ "description": "Compose models",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ComposeRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Request is queued successfully.",
+ "headers": {
+ "Location": {
+ "type": "string",
+ "description": "Location and ID of the composed model. The status of composed model is specified in the status property at the model location."
+ }
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Compose custom models": {
+ "$ref": "./examples/ComposeModels.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/prebuilt/businessCard/analyze": {
+ "post": {
+ "summary": "Analyze Business Card",
+ "description": "Extract field text and semantic values from a given business card document. The input document must be of one of the supported content types - 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' or 'image/bmp'. Alternatively, use 'application/json' type to specify the location (Uri) of the document to be analyzed.",
+ "operationId": "AnalyzeBusinessCardAsync",
+ "consumes": [
+ "application/pdf",
+ "application/json",
+ "image/jpeg",
+ "image/png",
+ "image/tiff",
+ "image/bmp"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "includeTextDetails",
+ "in": "query",
+ "description": "Include text lines and element references in the result.",
+ "required": false,
+ "default": false,
+ "type": "boolean",
+ "x-nullable": false
+ },
+ {
+ "$ref": "#/parameters/Locale"
+ },
+ {
+ "$ref": "#/parameters/Pages"
+ },
+ {
+ "$ref": "#/parameters/FileStream"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Request is queued successfully.",
+ "headers": {
+ "Operation-Location": {
+ "type": "string",
+ "description": "URL containing the resultId used to track the progress and obtain the result of the analyze operation."
+ }
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Analyze Business Card": {
+ "$ref": "./examples/BusinessCardBatch.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/prebuilt/businessCard/analyzeResults/{resultId}": {
+ "get": {
+ "summary": "Get Analyze Business Card Result",
+ "description": "Track the progress and obtain the result of the analyze business card operation.",
+ "operationId": "GetAnalyzeBusinessCardResult",
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "resultId",
+ "in": "path",
+ "description": "Analyze operation result identifier.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AnalyzeOperationResult"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get analyze business card result": {
+ "$ref": "./examples/BusinessCardBatchResult.json"
+ }
+ }
+ }
+ },
+ "/prebuilt/invoice/analyze": {
+ "post": {
+ "summary": "Analyze Invoice Document",
+ "description": "Extract field text and semantic values from a given invoice document. The input document must be of one of the supported content types - 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' or 'image/bmp'. Alternatively, use 'application/json' type to specify the location (Uri) of the document to be analyzed.",
+ "operationId": "AnalyzeInvoiceAsync",
+ "consumes": [
+ "application/pdf",
+ "application/json",
+ "image/jpeg",
+ "image/png",
+ "image/tiff",
+ "image/bmp"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "includeTextDetails",
+ "in": "query",
+ "description": "Include text lines and element references in the result.",
+ "required": false,
+ "default": false,
+ "type": "boolean",
+ "x-nullable": false
+ },
+ {
+ "$ref": "#/parameters/Locale"
+ },
+ {
+ "$ref": "#/parameters/Pages"
+ },
+ {
+ "$ref": "#/parameters/FileStream"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Request is queued successfully.",
+ "headers": {
+ "Operation-Location": {
+ "type": "string",
+ "description": "URL containing the resultId used to track the progress and obtain the result of the analyze operation."
+ }
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Analyze receipt": {
+ "$ref": "./examples/InvoiceBatch.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/prebuilt/invoice/analyzeResults/{resultId}": {
+ "get": {
+ "summary": "Get Analyze Invoice Result",
+ "description": "Track the progress and obtain the result of the analyze invoice operation.",
+ "operationId": "GetAnalyzeInvoiceResult",
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "resultId",
+ "in": "path",
+ "description": "Analyze operation result identifier.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AnalyzeOperationResult"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get analyze receipt result": {
+ "$ref": "./examples/InvoiceBatchResult.json"
+ }
+ }
+ }
+ },
+ "/prebuilt/idDocument/analyze": {
+ "post": {
+ "summary": "Analyze ID Document",
+ "description": "Extract field text and semantic values from a given ID document. The input document must be of one of the supported content types - 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' or 'image/bmp'. Alternatively, use 'application/json' type to specify the location (Uri) of the document to be analyzed.",
+ "operationId": "AnalyzeIdDocumentAsync",
+ "consumes": [
+ "application/pdf",
+ "application/json",
+ "image/jpeg",
+ "image/png",
+ "image/tiff",
+ "image/bmp"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "includeTextDetails",
+ "in": "query",
+ "description": "Include text lines and element references in the result.",
+ "required": false,
+ "default": false,
+ "type": "boolean",
+ "x-nullable": false
+ },
+ {
+ "$ref": "#/parameters/Pages"
+ },
+ {
+ "$ref": "#/parameters/FileStream"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Request is queued successfully.",
+ "headers": {
+ "Operation-Location": {
+ "type": "string",
+ "description": "URL containing the resultId used to track the progress and obtain the result of the analyze operation."
+ }
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Analyze ID": {
+ "$ref": "./examples/IDDocumentBatch.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/prebuilt/idDocument/analyzeResults/{resultId}": {
+ "get": {
+ "summary": "Get Analyze ID Document Result",
+ "description": "Track the progress and obtain the result of the analyze ID operation.",
+ "operationId": "GetAnalyzeIdDocumentResult",
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "resultId",
+ "in": "path",
+ "description": "Analyze operation result identifier.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AnalyzeOperationResult"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get analyze ID result": {
+ "$ref": "./examples/IDDocumentBatchResult.json"
+ }
+ }
+ }
+ },
+ "/prebuilt/receipt/analyze": {
+ "post": {
+ "summary": "Analyze Receipt",
+ "description": "Extract field text and semantic values from a given receipt document. The input document must be of one of the supported content types - 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' or 'image/bmp'. Alternatively, use 'application/json' type to specify the location (Uri) of the document to be analyzed.",
+ "operationId": "AnalyzeReceiptAsync",
+ "consumes": [
+ "application/pdf",
+ "application/json",
+ "image/jpeg",
+ "image/png",
+ "image/tiff",
+ "image/bmp"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "includeTextDetails",
+ "in": "query",
+ "description": "Include text lines and element references in the result.",
+ "required": false,
+ "default": false,
+ "type": "boolean",
+ "x-nullable": false
+ },
+ {
+ "$ref": "#/parameters/Locale"
+ },
+ {
+ "$ref": "#/parameters/Pages"
+ },
+ {
+ "$ref": "#/parameters/FileStream"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Request is queued successfully.",
+ "headers": {
+ "Operation-Location": {
+ "type": "string",
+ "description": "URL containing the resultId used to track the progress and obtain the result of the analyze operation."
+ }
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Analyze receipt": {
+ "$ref": "./examples/ReceiptsBatch.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/prebuilt/receipt/analyzeResults/{resultId}": {
+ "get": {
+ "summary": "Get Analyze Receipt Result",
+ "description": "Track the progress and obtain the result of the analyze receipt operation.",
+ "operationId": "GetAnalyzeReceiptResult",
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "resultId",
+ "in": "path",
+ "description": "Analyze operation result identifier.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AnalyzeOperationResult"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get analyze receipt result": {
+ "$ref": "./examples/ReceiptsBatchResult.json"
+ }
+ }
+ }
+ },
+ "/layout/analyze": {
+ "post": {
+ "summary": "Analyze Layout",
+ "description": "Extract text and layout information from a given document. The input document must be of one of the supported content types - 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' or 'image/bmp'. Alternatively, use 'application/json' type to specify the location (Uri or local path) of the document to be analyzed.",
+ "operationId": "AnalyzeLayoutAsync",
+ "consumes": [
+ "application/pdf",
+ "application/json",
+ "image/jpeg",
+ "image/png",
+ "image/tiff",
+ "image/bmp"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/FileStream"
+ },
+ {
+ "$ref": "#/parameters/Pages"
+ },
+ {
+ "$ref": "#/parameters/Language"
+ },
+ {
+ "$ref": "#/parameters/ReadingOrder"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Request is queued successfully.",
+ "headers": {
+ "Operation-Location": {
+ "type": "string",
+ "description": "URL containing the resultId used to track the progress and obtain the result of the analyze operation."
+ }
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Analyze layout": {
+ "$ref": "./examples/LayoutBatch.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/layout/analyzeResults/{resultId}": {
+ "get": {
+ "summary": "Get Analyze Layout Result",
+ "description": "Track the progress and obtain the result of the analyze layout operation",
+ "operationId": "GetAnalyzeLayoutResult",
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "resultId",
+ "in": "path",
+ "description": "Analyze operation result identifier.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AnalyzeOperationResult"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get analyze layout result": {
+ "$ref": "./examples/LayoutBatchResult.json"
+ }
+ }
+ }
+ }
+ },
+ "x-ms-paths": {
+ "/custom/models?op=full": {
+ "get": {
+ "summary": "List Custom Models",
+ "description": "Get information about all custom models",
+ "operationId": "ListCustomModels",
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "op",
+ "in": "query",
+ "description": "Specify whether to return summary or full list of models.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "full"
+ ]
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Models"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "modelList"
+ },
+ "x-ms-examples": {
+ "List custom models": {
+ "$ref": "./examples/GetModels.json"
+ }
+ }
+ }
+ },
+ "/custom/models?op=summary": {
+ "get": {
+ "summary": "Get Custom Models",
+ "description": "Get information about all custom models",
+ "operationId": "GetCustomModels",
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "op",
+ "in": "query",
+ "description": "Specify whether to return summary or full list of models.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "summary"
+ ]
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Models"
+ }
+ },
+ "default": {
+ "description": "Response entity accompanying non-successful responses containing additional details about the error.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get models summary": {
+ "$ref": "./examples/GetModelsSummary.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "OperationStatus": {
+ "type": "string",
+ "description": "Status of the queued operation.",
+ "enum": [
+ "notStarted",
+ "running",
+ "succeeded",
+ "failed"
+ ],
+ "x-ms-enum": {
+ "name": "OperationStatus",
+ "modelAsString": false
+ },
+ "x-nullable": false
+ },
+ "CopyAuthorizationResult": {
+ "description": "Request parameter that contains authorization claims for copy operation.",
+ "required": [
+ "modelId",
+ "accessToken",
+ "expirationDateTimeTicks"
+ ],
+ "type": "object",
+ "properties": {
+ "modelId": {
+ "description": "Model identifier.",
+ "type": "string"
+ },
+ "accessToken": {
+ "description": "Token claim used to authorize the request.",
+ "type": "string"
+ },
+ "expirationDateTimeTicks": {
+ "description": "The time when the access token expires. The date is represented as the number of seconds from 1970-01-01T0:0:0Z UTC until the expiration time.",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "CopyRequest": {
+ "description": "Request parameter to copy an existing custom model from the source resource to a target resource referenced by the resource ID.",
+ "required": [
+ "targetResourceId",
+ "targetResourceRegion",
+ "copyAuthorization"
+ ],
+ "type": "object",
+ "properties": {
+ "targetResourceId": {
+ "description": "Azure Resource Id of the target Form Recognizer resource where the model is copied to.",
+ "maxLength": 1024,
+ "type": "string",
+ "pattern": "^/subscriptions/[^/]*/resourceGroups/[^/]*/providers/Microsoft.CognitiveServices/accounts/[^/]*$",
+ "x-ms-azure-resource": true
+ },
+ "targetResourceRegion": {
+ "description": "Location of the target Azure resource. A valid Azure region name supported by Cognitive Services.",
+ "type": "string",
+ "pattern": "^[a-z0-9]+$",
+ "minLength": 1,
+ "maxLength": 24
+ },
+ "copyAuthorization": {
+ "description": "Entity that encodes claims to authorize the copy request.",
+ "$ref": "#/definitions/CopyAuthorizationResult"
+ }
+ }
+ },
+ "CopyOperationResult": {
+ "description": "Status and result of the queued copy operation.",
+ "type": "object",
+ "required": [
+ "status",
+ "createdDateTime",
+ "lastUpdatedDateTime"
+ ],
+ "properties": {
+ "status": {
+ "description": "Operation status.",
+ "$ref": "#/definitions/OperationStatus"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date and time (UTC) when the copy operation was submitted.",
+ "type": "string",
+ "x-nullable": false
+ },
+ "lastUpdatedDateTime": {
+ "format": "date-time",
+ "description": "Date and time (UTC) when the status was last updated.",
+ "type": "string",
+ "x-nullable": false
+ },
+ "copyResult": {
+ "description": "Results of the copy operation.",
+ "$ref": "#/definitions/CopyResult"
+ }
+ }
+ },
+ "CopyResult": {
+ "description": "Custom model copy result.",
+ "type": "object",
+ "required": [
+ "modelId"
+ ],
+ "properties": {
+ "modelId": {
+ "description": "Identifier of the target model.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "errors": {
+ "description": "Errors returned during the copy operation.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorInformation"
+ }
+ }
+ }
+ },
+ "AnalyzeOperationResult": {
+ "description": "Status and result of the queued analyze operation.",
+ "type": "object",
+ "required": [
+ "status",
+ "createdDateTime",
+ "lastUpdatedDateTime"
+ ],
+ "properties": {
+ "status": {
+ "description": "Operation status.",
+ "$ref": "#/definitions/OperationStatus"
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date and time (UTC) when the analyze operation was submitted.",
+ "type": "string",
+ "x-nullable": false
+ },
+ "lastUpdatedDateTime": {
+ "format": "date-time",
+ "description": "Date and time (UTC) when the status was last updated.",
+ "type": "string",
+ "x-nullable": false
+ },
+ "analyzeResult": {
+ "description": "Results of the analyze operation.",
+ "$ref": "#/definitions/AnalyzeResult"
+ }
+ }
+ },
+ "ModelName": {
+ "description": "Optional user defined model name (max length: 1024).",
+ "type": "string",
+ "x-nullable": false
+ },
+ "TrainRequest": {
+ "description": "Request parameter to train a new custom model.",
+ "required": [
+ "source"
+ ],
+ "type": "object",
+ "properties": {
+ "source": {
+ "description": "Source path containing the training documents.",
+ "maxLength": 2048,
+ "minLength": 0,
+ "type": "string"
+ },
+ "sourceFilter": {
+ "$ref": "#/definitions/TrainSourceFilter",
+ "description": "Filter to apply to the documents in the source path for training."
+ },
+ "useLabelFile": {
+ "description": "Use label file for training a model.",
+ "type": "boolean",
+ "default": false
+ },
+ "modelName": {
+ "$ref": "#/definitions/ModelName"
+ }
+ }
+ },
+ "TrainSourceFilter": {
+ "description": "Filter to apply to the documents in the source path for training.",
+ "type": "object",
+ "properties": {
+ "prefix": {
+ "description": "A case-sensitive prefix string to filter documents in the source path for training. For example, when using a Azure storage blob Uri, use the prefix to restrict sub folders for training.",
+ "maxLength": 1024,
+ "minLength": 0,
+ "type": "string"
+ },
+ "includeSubFolders": {
+ "description": "A flag to indicate if sub folders within the set of prefix folders will also need to be included when searching for content to be preprocessed.",
+ "type": "boolean",
+ "default": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "TrainResult": {
+ "description": "Custom model training result.",
+ "type": "object",
+ "required": [
+ "trainingDocuments"
+ ],
+ "properties": {
+ "trainingDocuments": {
+ "description": "List of the documents used to train the model and any errors reported in each document.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TrainingDocumentInfo"
+ }
+ },
+ "fields": {
+ "description": "List of fields used to train the model and the train operation error reported by each.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FormFieldsReport"
+ }
+ },
+ "averageModelAccuracy": {
+ "description": "Average accuracy.",
+ "type": "number",
+ "x-nullable": false
+ },
+ "modelId": {
+ "description": "Model identifier.",
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "errors": {
+ "description": "Errors returned during the training operation.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorInformation"
+ }
+ }
+ }
+ },
+ "SourcePath": {
+ "description": "Uri or local path to source data.",
+ "type": "object",
+ "properties": {
+ "source": {
+ "description": "File source path.",
+ "maxLength": 2048,
+ "minLength": 0,
+ "type": "string"
+ }
+ }
+ },
+ "Attributes": {
+ "description": "Optional model attributes.",
+ "type": "object",
+ "properties": {
+ "isComposed": {
+ "description": "Is this model composed? (default: false).",
+ "type": "boolean",
+ "default": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "ModelInfo": {
+ "description": "Basic custom model information.",
+ "type": "object",
+ "required": [
+ "modelId",
+ "status",
+ "createdDateTime",
+ "lastUpdatedDateTime"
+ ],
+ "properties": {
+ "modelId": {
+ "description": "Model identifier.",
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "status": {
+ "description": "Status of the model.",
+ "enum": [
+ "creating",
+ "ready",
+ "invalid"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ModelStatus",
+ "modelAsString": false
+ },
+ "x-nullable": false
+ },
+ "createdDateTime": {
+ "format": "date-time",
+ "description": "Date and time (UTC) when the model was created.",
+ "type": "string",
+ "x-nullable": false
+ },
+ "lastUpdatedDateTime": {
+ "format": "date-time",
+ "description": "Date and time (UTC) when the status was last updated.",
+ "type": "string",
+ "x-nullable": false
+ },
+ "modelName": {
+ "$ref": "#/definitions/ModelName"
+ },
+ "attributes": {
+ "$ref": "#/definitions/Attributes"
+ }
+ }
+ },
+ "Models": {
+ "description": "Response to the list custom models operation.",
+ "type": "object",
+ "properties": {
+ "summary": {
+ "description": "Summary of all trained custom models.",
+ "type": "object",
+ "required": [
+ "count",
+ "limit",
+ "lastUpdatedDateTime"
+ ],
+ "properties": {
+ "count": {
+ "description": "Current count of trained custom models.",
+ "type": "integer",
+ "x-nullable": false
+ },
+ "limit": {
+ "description": "Max number of models that can be trained for this account.",
+ "type": "integer",
+ "x-nullable": false
+ },
+ "lastUpdatedDateTime": {
+ "format": "date-time",
+ "description": "Date and time (UTC) when the summary was last updated.",
+ "type": "string",
+ "x-nullable": false
+ }
+ }
+ },
+ "modelList": {
+ "description": "Collection of trained custom models.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ModelInfo"
+ }
+ },
+ "nextLink": {
+ "description": "Link to the next page of custom models.",
+ "type": "string"
+ }
+ }
+ },
+ "Model": {
+ "description": "Response to the get custom model operation.",
+ "type": "object",
+ "required": [
+ "modelInfo"
+ ],
+ "properties": {
+ "modelInfo": {
+ "$ref": "#/definitions/ModelInfo"
+ },
+ "keys": {
+ "$ref": "#/definitions/KeysResult"
+ },
+ "trainResult": {
+ "description": "Training result for custom model.",
+ "$ref": "#/definitions/TrainResult"
+ },
+ "composedTrainResults": {
+ "type": "array",
+ "description": "Training result for composed model.",
+ "items": {
+ "$ref": "#/definitions/TrainResult"
+ }
+ }
+ }
+ },
+ "KeysResult": {
+ "description": "Keys extracted by the custom model.",
+ "type": "object",
+ "required": [
+ "clusters"
+ ],
+ "properties": {
+ "clusters": {
+ "description": "Object mapping clusterIds to a list of keys.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "uniqueItems": true,
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "TrainingDocumentInfo": {
+ "description": "Report for a custom model training document.",
+ "type": "object",
+ "required": [
+ "documentName",
+ "pages",
+ "errors",
+ "status"
+ ],
+ "properties": {
+ "documentName": {
+ "description": "Training document name.",
+ "type": "string"
+ },
+ "pages": {
+ "format": "int32",
+ "description": "Total number of pages trained.",
+ "type": "integer",
+ "x-nullable": false
+ },
+ "errors": {
+ "description": "List of errors.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorInformation"
+ }
+ },
+ "status": {
+ "description": "Status of the training operation.",
+ "enum": [
+ "succeeded",
+ "partiallySucceeded",
+ "failed"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TrainStatus",
+ "modelAsString": false
+ },
+ "x-nullable": false
+ }
+ }
+ },
+ "FormFieldsReport": {
+ "description": "Report for a custom model training field.",
+ "type": "object",
+ "required": [
+ "fieldName",
+ "accuracy"
+ ],
+ "properties": {
+ "fieldName": {
+ "description": "Training field name.",
+ "type": "string"
+ },
+ "accuracy": {
+ "description": "Estimated extraction accuracy for this field.",
+ "type": "number",
+ "x-nullable": false
+ }
+ }
+ },
+ "ErrorResponse": {
+ "type": "object",
+ "required": [
+ "error"
+ ],
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/ErrorInformation"
+ }
+ }
+ },
+ "ErrorInformation": {
+ "type": "object",
+ "required": [
+ "code",
+ "message"
+ ],
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ }
+ }
+ },
+ "ComposeRequest": {
+ "description": "Request contract for compose operation.",
+ "required": [
+ "modelIds"
+ ],
+ "type": "object",
+ "properties": {
+ "modelIds": {
+ "description": "List of model ids to compose.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uuid"
+ }
+ },
+ "modelName": {
+ "$ref": "#/definitions/ModelName"
+ }
+ }
+ },
+ "AnalyzeResult": {
+ "description": "Analyze operation result.",
+ "type": "object",
+ "required": [
+ "version",
+ "readResults"
+ ],
+ "properties": {
+ "version": {
+ "description": "Version of schema used for this result.",
+ "type": "string"
+ },
+ "readResults": {
+ "description": "Text extracted from the input.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReadResult"
+ }
+ },
+ "pageResults": {
+ "description": "Page-level information extracted from the input.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PageResult"
+ }
+ },
+ "documentResults": {
+ "description": "Document-level information extracted from the input.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DocumentResult"
+ }
+ },
+ "errors": {
+ "description": "List of errors reported during the analyze operation.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorInformation"
+ }
+ }
+ }
+ },
+ "ReadResult": {
+ "description": "Text extracted from a page in the input document.",
+ "type": "object",
+ "required": [
+ "page",
+ "angle",
+ "width",
+ "height",
+ "unit"
+ ],
+ "properties": {
+ "page": {
+ "description": "The 1-based page number in the input document.",
+ "type": "integer",
+ "minimum": 1,
+ "x-nullable": false
+ },
+ "angle": {
+ "description": "The general orientation of the text in clockwise direction, measured in degrees between (-180, 180].",
+ "type": "number",
+ "minimum": -180,
+ "maximum": 180,
+ "exclusiveMinimum": true,
+ "x-nullable": false
+ },
+ "width": {
+ "description": "The width of the image/PDF in pixels/inches, respectively.",
+ "type": "number",
+ "minimum": 0,
+ "x-nullable": false
+ },
+ "height": {
+ "description": "The height of the image/PDF in pixels/inches, respectively.",
+ "type": "number",
+ "minimum": 0,
+ "x-nullable": false
+ },
+ "unit": {
+ "description": "The unit used by the width, height and boundingBox properties. For images, the unit is \"pixel\". For PDF, the unit is \"inch\".",
+ "type": "string",
+ "enum": [
+ "pixel",
+ "inch"
+ ],
+ "x-ms-enum": {
+ "name": "LengthUnit",
+ "modelAsString": false
+ },
+ "x-nullable": false
+ },
+ "lines": {
+ "description": "When includeTextDetails is set to true, a list of recognized text lines. The maximum number of lines returned is 300 per page. The lines are sorted top to bottom, left to right, although in certain cases proximity is treated with higher priority. As the sorting order depends on the detected text, it may change across images and OCR version updates. Thus, business logic should be built upon the actual line location instead of order.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TextLine"
+ }
+ },
+ "selectionMarks": {
+ "description": "List of selection marks extracted from the page.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SelectionMark"
+ }
+ }
+ }
+ },
+ "TextLine": {
+ "description": "An object representing an extracted text line.",
+ "type": "object",
+ "required": [
+ "text",
+ "boundingBox",
+ "words"
+ ],
+ "properties": {
+ "text": {
+ "description": "The text content of the line.",
+ "type": "string"
+ },
+ "boundingBox": {
+ "description": "Bounding box of an extracted line.",
+ "$ref": "#/definitions/BoundingBox"
+ },
+ "words": {
+ "description": "List of words in the text line.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TextWord"
+ }
+ },
+ "appearance": {
+ "description": "Text appearance properties.",
+ "$ref": "#/definitions/Appearance"
+ }
+ }
+ },
+ "TextWord": {
+ "description": "An object representing a word.",
+ "type": "object",
+ "required": [
+ "boundingBox",
+ "text"
+ ],
+ "properties": {
+ "text": {
+ "description": "The text content of the word.",
+ "type": "string"
+ },
+ "boundingBox": {
+ "description": "Bounding box of an extracted word.",
+ "$ref": "#/definitions/BoundingBox"
+ },
+ "confidence": {
+ "description": "Confidence value.",
+ "$ref": "#/definitions/Confidence"
+ }
+ }
+ },
+ "BoundingBox": {
+ "description": "Quadrangle bounding box, with coordinates specified relative to the top-left of the original image. The eight numbers represent the four points, clockwise from the top-left corner relative to the text orientation. For image, the (x, y) coordinates are measured in pixels. For PDF, the (x, y) coordinates are measured in inches.",
+ "type": "array",
+ "minItems": 8,
+ "maxItems": 8,
+ "items": {
+ "type": "number",
+ "x-nullable": false
+ }
+ },
+ "PageResult": {
+ "description": "Extracted information from a single page.",
+ "type": "object",
+ "required": [
+ "page"
+ ],
+ "properties": {
+ "page": {
+ "description": "Page number.",
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "x-nullable": false
+ },
+ "clusterId": {
+ "description": "Cluster identifier.",
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "x-nullable": false
+ },
+ "keyValuePairs": {
+ "description": "List of key-value pairs extracted from the page.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/KeyValuePair"
+ }
+ },
+ "tables": {
+ "description": "List of data tables extracted from the page.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataTable"
+ }
+ }
+ }
+ },
+ "KeyValuePair": {
+ "description": "Information about the extracted key-value pair.",
+ "type": "object",
+ "required": [
+ "key",
+ "value",
+ "confidence"
+ ],
+ "properties": {
+ "label": {
+ "description": "A user defined label for the key/value pair entry.",
+ "type": "string"
+ },
+ "key": {
+ "description": "Information about the extracted key in a key-value pair.",
+ "$ref": "#/definitions/KeyValueElement"
+ },
+ "value": {
+ "description": "Information about the extracted value in a key-value pair.",
+ "$ref": "#/definitions/KeyValueElement"
+ },
+ "confidence": {
+ "description": "Confidence value.",
+ "$ref": "#/definitions/Confidence"
+ }
+ }
+ },
+ "KeyValueElement": {
+ "description": "Information about the extracted key or value in a key-value pair.",
+ "type": "object",
+ "required": [
+ "text"
+ ],
+ "properties": {
+ "type": {
+ "$ref": "#/definitions/KeyValueType"
+ },
+ "text": {
+ "description": "The text content of the key or value.",
+ "type": "string"
+ },
+ "boundingBox": {
+ "description": "Bounding box of the key or value.",
+ "$ref": "#/definitions/BoundingBox"
+ },
+ "elements": {
+ "description": "When includeTextDetails is set to true, a list of references to the text elements constituting this key or value.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ElementReference"
+ }
+ }
+ }
+ },
+ "KeyValueType": {
+ "type": "string",
+ "description": "Semantic data type of the key value element.",
+ "enum": [
+ "string",
+ "selectionMark"
+ ],
+ "x-ms-enum": {
+ "name": "KeyValueType",
+ "modelAsString": true
+ },
+ "x-nullable": false
+ },
+ "ElementReference": {
+ "description": "Reference to a line, word or selection mark.",
+ "type": "string"
+ },
+ "SelectionMark": {
+ "description": "Information about the extracted selection mark.",
+ "type": "object",
+ "required": [
+ "boundingBox",
+ "confidence",
+ "state"
+ ],
+ "properties": {
+ "boundingBox": {
+ "description": "Bounding box of the selection mark.",
+ "$ref": "#/definitions/BoundingBox"
+ },
+ "confidence": {
+ "description": "Confidence value.",
+ "$ref": "#/definitions/Confidence"
+ },
+ "state": {
+ "description": "State of the selection mark.",
+ "type": "string",
+ "enum": [
+ "selected",
+ "unselected"
+ ]
+ }
+ }
+ },
+ "DataTable": {
+ "description": "Information about the extracted table contained in a page.",
+ "type": "object",
+ "required": [
+ "rows",
+ "columns",
+ "cells",
+ "boundingBox"
+ ],
+ "properties": {
+ "rows": {
+ "description": "Number of rows.",
+ "type": "integer",
+ "minimum": 1,
+ "x-nullable": false
+ },
+ "columns": {
+ "description": "Number of columns.",
+ "type": "integer",
+ "minimum": 1,
+ "x-nullable": false
+ },
+ "cells": {
+ "description": "List of cells contained in the table.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataTableCell"
+ }
+ },
+ "boundingBox": {
+ "description": "Bounding box of the table.",
+ "$ref": "#/definitions/BoundingBox"
+ }
+ }
+ },
+ "DataTableCell": {
+ "description": "Information about the extracted cell in a table.",
+ "type": "object",
+ "required": [
+ "rowIndex",
+ "columnIndex",
+ "text",
+ "boundingBox",
+ "confidence"
+ ],
+ "properties": {
+ "rowIndex": {
+ "description": "Row index of the cell.",
+ "type": "integer",
+ "minimum": 0,
+ "x-nullable": false
+ },
+ "columnIndex": {
+ "description": "Column index of the cell.",
+ "type": "integer",
+ "minimum": 0,
+ "x-nullable": false
+ },
+ "rowSpan": {
+ "description": "Number of rows spanned by this cell.",
+ "type": "integer",
+ "minimum": 1,
+ "default": 1,
+ "x-nullable": false
+ },
+ "columnSpan": {
+ "description": "Number of columns spanned by this cell.",
+ "type": "integer",
+ "minimum": 1,
+ "default": 1,
+ "x-nullable": false
+ },
+ "text": {
+ "description": "Text content of the cell.",
+ "type": "string"
+ },
+ "boundingBox": {
+ "description": "Bounding box of the cell.",
+ "$ref": "#/definitions/BoundingBox"
+ },
+ "confidence": {
+ "description": "Confidence value.",
+ "$ref": "#/definitions/Confidence"
+ },
+ "elements": {
+ "description": "When includeTextDetails is set to true, a list of references to the text elements constituting this table cell.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ElementReference"
+ }
+ },
+ "isHeader": {
+ "description": "Is the current cell a header cell?",
+ "type": "boolean",
+ "default": false,
+ "x-nullable": false
+ },
+ "isFooter": {
+ "description": "Is the current cell a footer cell?",
+ "type": "boolean",
+ "default": false,
+ "x-nullable": false
+ }
+ }
+ },
+ "DocumentResult": {
+ "description": "A set of extracted fields corresponding to the input document.",
+ "type": "object",
+ "required": [
+ "docType",
+ "pageRange",
+ "fields"
+ ],
+ "properties": {
+ "docType": {
+ "description": "Document type.",
+ "type": "string"
+ },
+ "modelId": {
+ "description": "Model identifier.",
+ "type": "string",
+ "format": "uuid",
+ "x-nullable": false
+ },
+ "pageRange": {
+ "description": "First and last page number where the document is found.",
+ "type": "array",
+ "minItems": 2,
+ "maxItems": 2,
+ "items": {
+ "type": "integer",
+ "minimum": 1,
+ "x-nullable": false
+ }
+ },
+ "docTypeConfidence": {
+ "description": "Predicted document type confidence.",
+ "$ref": "#/definitions/Confidence"
+ },
+ "fields": {
+ "description": "Dictionary of named field values.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/FieldValue"
+ }
+ }
+ }
+ },
+ "FieldValue": {
+ "description": "Recognized field value.",
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "type": {
+ "description": "Type of field value.",
+ "$ref": "#/definitions/FieldValueType"
+ },
+ "valueString": {
+ "description": "String value.",
+ "type": "string"
+ },
+ "valueDate": {
+ "description": "Date value.",
+ "format": "date",
+ "type": "string",
+ "x-nullable": false
+ },
+ "valueTime": {
+ "description": "Time value.",
+ "format": "time",
+ "type": "string",
+ "x-nullable": false
+ },
+ "valuePhoneNumber": {
+ "description": "Phone number value.",
+ "type": "string"
+ },
+ "valueNumber": {
+ "description": "Floating point value.",
+ "type": "number",
+ "x-nullable": false
+ },
+ "valueInteger": {
+ "description": "Integer value.",
+ "type": "integer",
+ "x-nullable": false
+ },
+ "valueArray": {
+ "description": "Array of field values.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FieldValue"
+ }
+ },
+ "valueObject": {
+ "description": "Dictionary of named field values.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/FieldValue"
+ }
+ },
+ "valueSelectionMark": {
+ "description": "Selection mark value.",
+ "type": "string",
+ "enum": [
+ "selected",
+ "unselected"
+ ],
+ "x-nullable": false
+ },
+ "valueCountryRegion": {
+ "description": "3-letter country code (ISO 3166-1 alpha-3).",
+ "type": "string",
+ "x-nullable": false
+ },
+ "text": {
+ "description": "Text content of the extracted field.",
+ "type": "string"
+ },
+ "boundingBox": {
+ "description": "Bounding box of the field value, if appropriate.",
+ "$ref": "#/definitions/BoundingBox"
+ },
+ "confidence": {
+ "description": "Confidence score.",
+ "$ref": "#/definitions/Confidence"
+ },
+ "elements": {
+ "description": "When includeTextDetails is set to true, a list of references to the text elements constituting this field.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ElementReference"
+ }
+ },
+ "page": {
+ "description": "The 1-based page number in the input document.",
+ "type": "integer",
+ "minimum": 1,
+ "x-nullable": false
+ }
+ }
+ },
+ "FieldValueType": {
+ "type": "string",
+ "description": "Semantic data type of the field value.",
+ "enum": [
+ "string",
+ "date",
+ "time",
+ "phoneNumber",
+ "number",
+ "integer",
+ "array",
+ "object",
+ "selectionMark",
+ "countryRegion"
+ ],
+ "x-ms-enum": {
+ "name": "FieldValueType",
+ "modelAsString": false
+ },
+ "x-nullable": false
+ },
+ "Confidence": {
+ "description": "Confidence value.",
+ "type": "number",
+ "minimum": 0,
+ "maximum": 1,
+ "x-nullable": false
+ },
+ "Appearance": {
+ "description": "An object representing the appearance of the text line.",
+ "type": "object",
+ "required": [
+ "style"
+ ],
+ "properties": {
+ "style": {
+ "description": "An object representing the style of the text line.",
+ "type": "object",
+ "$ref": "#/definitions/Style"
+ }
+ }
+ },
+ "Style": {
+ "description": "An object representing the style of the text line.",
+ "type": "object",
+ "required": [
+ "name",
+ "confidence"
+ ],
+ "properties": {
+ "name": {
+ "description": "The text line style name, including handwriting and other.",
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TextStyle",
+ "modelAsString": true
+ },
+ "enum": [
+ "other",
+ "handwriting"
+ ]
+ },
+ "confidence": {
+ "description": "The confidence of text line style.",
+ "type": "number",
+ "format": "float"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "Endpoint": {
+ "name": "endpoint",
+ "description": "Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus2.api.cognitive.microsoft.com).",
+ "x-ms-parameter-location": "client",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ },
+ "FileStream": {
+ "name": "fileStream",
+ "description": ".json, .pdf, .jpg, .png, .tiff or .bmp type file stream.",
+ "x-ms-parameter-location": "method",
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/SourcePath"
+ }
+ },
+ "Pages": {
+ "name": "pages",
+ "in": "query",
+ "description": "Custom page numbers for multi-page documents(PDF/TIFF), input the number of the pages you want to get OCR result. For a range of pages, use a hyphen. Separate each page or range with a comma.",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "(^[0-9]+-[0-9]+$)|(^[0-9]+$)"
+ }
+ },
+ "Locale": {
+ "name": "locale",
+ "in": "query",
+ "description": "Locale of the input document. Supported locales include: en-AU, en-CA, en-GB, en-IN, en-US(default).",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "en-AU",
+ "en-CA",
+ "en-GB",
+ "en-IN",
+ "en-US"
+ ],
+ "x-ms-enum": {
+ "name": "Locale",
+ "modelAsString": true
+ }
+ },
+ "Language": {
+ "name": "language",
+ "in": "query",
+ "description": "Currently, only Afrikaans (‘af’), Albanian (‘sq’), Asturian (‘ast’), Basque (‘eu’), Bislama (‘bi’), Breton (‘br’), Catalan (‘ca’), Cebuano (‘ceb’), Chamorro (‘ch’), Cornish (‘kw’), Corsican (‘co’), Crimean Tatar - Latin script(‘crh’), Czech (‘cs’), Danish (‘da’), Dutch (‘nl’), English ('en'), Estonian (‘et’), Fijian (‘fj’), Filipino (‘fil’), Finnish (‘fi’), French (‘fr’), Friulian (‘fur’), Galician (‘gl’), German (‘de’), Gilbertese (‘gil’), Greenlandic (‘kl’), Haitian Creole (‘ht’), Hani (‘hni’), Hmong Daw (‘mww’), Hungarian (‘hu’), Indonesian (‘id’), Interlingua (‘ia’), Inuktitut (‘iu’), Irish (‘ga’), Italian (‘it’), Japanese (‘ja’), Javanese (‘jv’), Kabuverdianu (‘kea’), Kachin (‘kac’), Kara-Kalpak (‘kaa’), Kashubian (‘csb’), Khasi (‘kha’), Korean (‘ko’), Kurdish - Latin script (‘ku’), K’iche’ (‘quc’), Luxembourgish (‘lb’), Malay (‘ms’), Manx (‘gv’), Neapolitan (‘nap’), Norwegian (‘no’), Occitan (‘oc’), Polish (‘pl’), Portuguese (‘pt’), Romansh (‘rm’), Scots (‘sco’), Scottish Gaelic (‘gd’), simplified Chinese (‘zh-Hans’), Slovenian (‘sl’), Spanish (‘es’), Swahili (‘sw’), Swedish (‘sv’), Tatar - Latin script (‘tt’), Tetum (‘tet’), traditional Chinese (‘zh-Hant’), Turkish (‘tr’), Upper Sorbian (‘hsb’), Uzbek (‘uz’), Volapük (‘vo’), Walser (‘wae’), Western Frisian (‘fy’), Yucatec Maya (‘yua’), Zhuang (‘za’) and Zulu (‘zu’) are supported (print – seventy-three languages and handwritten – English only). Layout supports auto language identification and multi language documents, so only provide a language code if you would like to force the documented to be processed as that specific language.",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "enum": [
+ "af",
+ "ast",
+ "bi",
+ "br",
+ "ca",
+ "ceb",
+ "ch",
+ "co",
+ "crh",
+ "cs",
+ "csb",
+ "da",
+ "de",
+ "en",
+ "es",
+ "et",
+ "eu",
+ "fi",
+ "fil",
+ "fj",
+ "fr",
+ "fur",
+ "fy",
+ "ga",
+ "gd",
+ "gil",
+ "gl",
+ "gv",
+ "hni",
+ "hsb",
+ "ht",
+ "hu",
+ "ia",
+ "id",
+ "it",
+ "iu",
+ "ja",
+ "jv",
+ "kaa",
+ "kac",
+ "kea",
+ "kha",
+ "kl",
+ "ko",
+ "ku",
+ "kw",
+ "lb",
+ "ms",
+ "mww",
+ "nap",
+ "nl",
+ "no",
+ "oc",
+ "pl",
+ "pt",
+ "quc",
+ "rm",
+ "sco",
+ "sl",
+ "sq",
+ "sv",
+ "sw",
+ "tet",
+ "tr",
+ "tt",
+ "uz",
+ "vo",
+ "wae",
+ "yua",
+ "za",
+ "zh-Hans",
+ "zh-Hant",
+ "zu"
+ ],
+ "x-ms-enum": {
+ "name": "Language",
+ "modelAsString": true
+ }
+ },
+ "ReadingOrder": {
+ "name": "readingOrder",
+ "in": "query",
+ "description": "Reading order algorithm to sort the text lines returned. Supported reading orders include: basic(default), natural.",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "default": "basic",
+ "type": "string",
+ "enum": [
+ "basic",
+ "natural"
+ ],
+ "x-ms-enum": {
+ "name": "ReadingOrder",
+ "modelAsString": false
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/AnalyzeBatch.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/AnalyzeBatch.json
new file mode 100644
index 000000000000..760d436472fe
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/AnalyzeBatch.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "modelId": "{modelId}",
+ "body": {}
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Operation-Location": "{endpoint}/formrecognizer/v2.1/custom/models/{modelId}/analyzeResults/{resultId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/AnalyzeOperationResult.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/AnalyzeOperationResult.json
new file mode 100644
index 000000000000..5b8a65ac0a6b
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/AnalyzeOperationResult.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "modelId": "{modelId}",
+ "resultId": "{result Id}",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "running",
+ "createdDateTime": "2019-05-01T10:53:21Z",
+ "lastUpdatedDateTime": "2019-05-01T10:53:23Z",
+ "analyzeResult": {
+ "version": "v2.1",
+ "readResults": [],
+ "pageResults": [],
+ "documentResults": [],
+ "errors": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/BusinessCardBatch.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/BusinessCardBatch.json
new file mode 100644
index 000000000000..7759a2ca1103
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/BusinessCardBatch.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {
+ "source": "http://www.example.com/image.jpg"
+ }
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Operation-Location": "{endpoint}/formrecognizer/v2.1/prebuilt/businessCard/analyzeResults/{resultId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/BusinessCardBatchResult.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/BusinessCardBatchResult.json
new file mode 100644
index 000000000000..2cf7aa15db22
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/BusinessCardBatchResult.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "resultId": "{result Id}",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "running",
+ "createdDateTime": "2019-05-01T10:53:21Z",
+ "lastUpdatedDateTime": "2019-05-01T10:53:23Z",
+ "analyzeResult": {
+ "version": "v2.1",
+ "readResults": [],
+ "pageResults": [],
+ "documentResults": [],
+ "errors": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/ComposeModels.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/ComposeModels.json
new file mode 100644
index 000000000000..2a971b054911
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/ComposeModels.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {},
+ "composeRequest": {
+ "modelIds": [
+ "4afb20d6-3ed0-4cde-ba40-dbd6207268dd",
+ "6f841356-aa32-42c9-a739-2182c47b79c9"
+ ]
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "Location": "{endpoint}/formrecognizer/v2.1/custom/models/{modelId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/CopyModel.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/CopyModel.json
new file mode 100644
index 000000000000..b75960514bd4
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/CopyModel.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "modelId": "{modelId}",
+ "body": {},
+ "copyRequest": {
+ "targetResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{resourceName}",
+ "targetResourceRegion": "westus2",
+ "copyAuthorization": {
+ "modelId": "{modelId}",
+ "accessToken": "{accessToken}",
+ "expirationDateTimeTicks": 86400
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Operation-Location": "{endpoint}/formrecognizer/v2.1/custom/models/{modelId}/copyResults/{resultId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/CopyModelAuthorization.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/CopyModelAuthorization.json
new file mode 100644
index 000000000000..8371ba8f28ea
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/CopyModelAuthorization.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {}
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "Location": "{endpoint}/formrecognizer/v2.1/custom/models/{modelId}"
+ },
+ "body": {
+ "modelId": "{modelId}",
+ "accessToken": "{accessToken}",
+ "expirationDateTimeTicks": 86400
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/CopyOperationResult.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/CopyOperationResult.json
new file mode 100644
index 000000000000..f7b7b1163884
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/CopyOperationResult.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "modelId": "{modelId}",
+ "resultId": "{resultId}",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "succeeded",
+ "createdDateTime": "2020-01-01T00:00:00Z",
+ "lastUpdatedDateTime": "2020-01-01T00:01:00Z",
+ "copyResult": {
+ "modelId": "{modelId}",
+ "errors": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/CopyOperationResultWithErrors.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/CopyOperationResultWithErrors.json
new file mode 100644
index 000000000000..853dd73e595e
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/CopyOperationResultWithErrors.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "modelId": "{modelId}",
+ "resultId": "{resultId}",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "failed",
+ "createdDateTime": "2020-01-01T00:00:00Z",
+ "lastUpdatedDateTime": "2020-01-01T00:01:00Z",
+ "copyResult": {
+ "modelId": "{modelId}",
+ "errors": [
+ {
+ "code": "ResourceResolverError",
+ "message": "{ErrorMessage}"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/DeleteModel.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/DeleteModel.json
new file mode 100644
index 000000000000..c945ec953dd4
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/DeleteModel.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "modelId": "{modelId}",
+ "body": {}
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/GetModel.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/GetModel.json
new file mode 100644
index 000000000000..df1c4b66b252
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/GetModel.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "modelId": "{modelId}",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "modelInfo": {
+ "modelId": "f973e3c1-1148-43bb-bea8-49d0603ab3a8",
+ "modelName": "my composed model",
+ "status": "ready",
+ "createdDateTime": "2019-05-01T10:53:21Z",
+ "lastUpdatedDateTime": "2019-05-01T10:53:23Z",
+ "attributes": {
+ "isComposed": true
+ }
+ },
+ "keys": {
+ "clusters": {
+ "0": [
+ "Invoice",
+ "123112313"
+ ],
+ "1": [
+ "Please remit payment to:",
+ "Microsoft"
+ ]
+ }
+ },
+ "trainResult": {
+ "trainingDocuments": [],
+ "fields": [],
+ "averageModelAccuracy": 0,
+ "errors": []
+ },
+ "composedTrainResults": [
+ {
+ "modelId": "4afb20d6-3ed0-4cde-ba40-dbd6207268dd",
+ "trainingDocuments": [],
+ "fields": [],
+ "averageModelAccuracy": 0,
+ "errors": []
+ },
+ {
+ "modelId": "6f841356-aa32-42c9-a739-2182c47b79c9",
+ "trainingDocuments": [],
+ "fields": [],
+ "averageModelAccuracy": 0,
+ "errors": []
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/GetModels.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/GetModels.json
new file mode 100644
index 000000000000..36ee11465e4f
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/GetModels.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "op": "full",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "summary": {
+ "count": 2,
+ "limit": 5000,
+ "lastUpdatedDateTime": "2019-05-01T10:53:21Z"
+ },
+ "modelList": [
+ {
+ "modelId": "f973e3c1-1148-43bb-bea8-49d0603ab3a8",
+ "modelName": "test model 1",
+ "status": "ready",
+ "createdDateTime": "2019-05-01T10:53:21Z",
+ "lastUpdatedDateTime": "2019-05-01T10:53:23Z",
+ "attributes": {
+ "isComposed": false
+ }
+ },
+ {
+ "modelId": "f973e3c1-0001-43bb-bea8-49d0603ab3a8",
+ "modelName": "test model 2",
+ "status": "ready",
+ "createdDateTime": "2019-05-01T10:53:21Z",
+ "lastUpdatedDateTime": "2019-05-01T10:53:23Z",
+ "attributes": {
+ "isComposed": true
+ }
+ }
+ ],
+ "nextLink": ""
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/GetModelsSummary.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/GetModelsSummary.json
new file mode 100644
index 000000000000..507495b78206
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/GetModelsSummary.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "op": "summary",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "summary": {
+ "count": 5,
+ "limit": 5000,
+ "lastUpdatedDateTime": "2019-05-01T10:53:21Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/IDDocumentBatch.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/IDDocumentBatch.json
new file mode 100644
index 000000000000..c5060291b85f
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/IDDocumentBatch.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {}
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Operation-Location": "{endpoint}/formrecognizer/v2.1/prebuilt/idDocument/analyzeResults/{resultId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/IDDocumentBatchResult.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/IDDocumentBatchResult.json
new file mode 100644
index 000000000000..2cf7aa15db22
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/IDDocumentBatchResult.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "resultId": "{result Id}",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "running",
+ "createdDateTime": "2019-05-01T10:53:21Z",
+ "lastUpdatedDateTime": "2019-05-01T10:53:23Z",
+ "analyzeResult": {
+ "version": "v2.1",
+ "readResults": [],
+ "pageResults": [],
+ "documentResults": [],
+ "errors": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/InvoiceBatch.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/InvoiceBatch.json
new file mode 100644
index 000000000000..21661d716ddf
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/InvoiceBatch.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {}
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Operation-Location": "{endpoint}/formrecognizer/v2.1/prebuilt/invoice/analyzeResults/{resultId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/InvoiceBatchResult.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/InvoiceBatchResult.json
new file mode 100644
index 000000000000..2cf7aa15db22
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/InvoiceBatchResult.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "resultId": "{result Id}",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "running",
+ "createdDateTime": "2019-05-01T10:53:21Z",
+ "lastUpdatedDateTime": "2019-05-01T10:53:23Z",
+ "analyzeResult": {
+ "version": "v2.1",
+ "readResults": [],
+ "pageResults": [],
+ "documentResults": [],
+ "errors": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/LayoutBatch.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/LayoutBatch.json
new file mode 100644
index 000000000000..01f3471041e3
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/LayoutBatch.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "language": "en",
+ "body": {}
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Operation-Location": "{endpoint}/formrecognizer/v2.1/layout/analyzeResults/{resultId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/LayoutBatchResult.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/LayoutBatchResult.json
new file mode 100644
index 000000000000..2a258bfe71bc
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/LayoutBatchResult.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "resultId": "{result Id}",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "succeeded",
+ "createdDateTime": "2019-05-01T10:53:21Z",
+ "lastUpdatedDateTime": "2019-05-01T10:53:23Z",
+ "analyzeResult": {
+ "version": "v2.1",
+ "readResults": [],
+ "pageResults": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/ReceiptsBatch.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/ReceiptsBatch.json
new file mode 100644
index 000000000000..a368b680bebe
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/ReceiptsBatch.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {}
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Operation-Location": "{endpoint}/formrecognizer/v2.1/prebuilt/receipt/analyzeResults/{resultId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/ReceiptsBatchResult.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/ReceiptsBatchResult.json
new file mode 100644
index 000000000000..2cf7aa15db22
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/ReceiptsBatchResult.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "resultId": "{result Id}",
+ "body": {}
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "running",
+ "createdDateTime": "2019-05-01T10:53:21Z",
+ "lastUpdatedDateTime": "2019-05-01T10:53:23Z",
+ "analyzeResult": {
+ "version": "v2.1",
+ "readResults": [],
+ "pageResults": [],
+ "documentResults": [],
+ "errors": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/TrainBatch.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/TrainBatch.json
new file mode 100644
index 000000000000..176d0f1ff9d7
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/TrainBatch.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {},
+ "trainRequest": {
+ "source": "{azure_blob_endpoint}/input/data1?sasToken"
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "Location": "{endpoint}/formrecognizer/v2.1/custom/models/{modelId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/TrainBatchWithSubFolders.json b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/TrainBatchWithSubFolders.json
new file mode 100644
index 000000000000..0b8c310aca87
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/stable/v2.1/examples/TrainBatchWithSubFolders.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {},
+ "trainRequest": {
+ "source": "{azure_blob_endpoint}/input/data1?sasToken",
+ "sourceFilter": {
+ "prefix": "",
+ "includeSubFolders": false
+ },
+ "useLabelFile": false
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "Location": "{endpoint}/formrecognizer/v2.1/custom/models/{modelId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/MetricsAdvisor.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/MetricsAdvisor.json
index 1dc04548dec3..0d5db509f29c 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/MetricsAdvisor.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/MetricsAdvisor.json
@@ -1,8 +1,8 @@
{
"swagger": "2.0",
"info": {
- "title": "Azure Cognitive Service Metrics Advisor REST API (OpenAPI v2)",
- "description": "Azure Cognitive Service Metrics Advisor REST API (OpenAPI v2)",
+ "title": "Microsoft Azure Metrics Advisor REST API (OpenAPI v2)",
+ "description": "Microsoft Azure Metrics Advisor REST API (OpenAPI v2)",
"version": "1.0"
},
"paths": {
@@ -109,8 +109,11 @@
}
],
"responses": {
- "204": {
- "description": "Success"
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AnomalyAlertingConfiguration"
+ }
},
"default": {
"description": "Client error or server error (4xx or 5xx)",
@@ -482,8 +485,11 @@
}
],
"responses": {
- "204": {
- "description": "Success"
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AnomalyDetectionConfiguration"
+ }
},
"default": {
"description": "Client error or server error (4xx or 5xx)",
@@ -588,7 +594,7 @@
"tags": [
"AnomalyDetection"
],
- "summary": "Query all anomaly alerting configurations for specific anomaly detection configuration",
+ "summary": "List all anomaly alerting configurations for specific anomaly detection configuration",
"operationId": "getAnomalyAlertingConfigurationsByAnomalyDetectionConfiguration",
"produces": [
"application/json"
@@ -601,6 +607,20 @@
"required": true,
"type": "string",
"format": "uuid"
+ },
+ {
+ "in": "query",
+ "name": "$skip",
+ "description": "for paging, skipped number",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "$maxpagesize",
+ "description": "the maximum number of items in one page",
+ "type": "integer",
+ "format": "int32"
}
],
"responses": {
@@ -617,8 +637,11 @@
}
}
},
+ "x-ms-pageable": {
+ "nextLinkName": "@nextLink"
+ },
"x-ms-examples": {
- "Query all anomaly alerting configurations for specific anomaly detection configuration": {
+ "List all anomaly alerting configurations for specific anomaly detection configuration": {
"$ref": "./examples/getAnomalyAlertingConfigurationsByAnomalyDetectionConfiguration.json"
}
}
@@ -1112,8 +1135,11 @@
}
],
"responses": {
- "204": {
- "description": "Success"
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/DataSourceCredential"
+ }
},
"default": {
"description": "Client error or server error (4xx or 5xx)",
@@ -1233,9 +1259,8 @@
"AzureDataExplorer",
"AzureDataLakeStorageGen2",
"AzureEventHubs",
+ "AzureLogAnalytics",
"AzureTable",
- "Elasticsearch",
- "HttpRequest",
"InfluxDB",
"MongoDB",
"MySql",
@@ -1259,7 +1284,6 @@
"Daily",
"Hourly",
"Minutely",
- "Secondly",
"Custom"
],
"x-ms-enum": {
@@ -1444,8 +1468,11 @@
}
],
"responses": {
- "204": {
- "description": "Success"
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/DataFeedDetail"
+ }
},
"default": {
"description": "Client error or server error (4xx or 5xx)",
@@ -1822,8 +1849,11 @@
}
],
"responses": {
- "204": {
- "description": "Success"
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/HookInfo"
+ }
},
"default": {
"description": "Client error or server error (4xx or 5xx)",
@@ -2234,7 +2264,7 @@
"tags": [
"Metric"
],
- "summary": "Query all anomaly detection configurations for specific metric",
+ "summary": "List all anomaly detection configurations for specific metric",
"operationId": "getAnomalyDetectionConfigurationsByMetric",
"produces": [
"application/json"
@@ -2247,6 +2277,20 @@
"required": true,
"type": "string",
"format": "uuid"
+ },
+ {
+ "in": "query",
+ "name": "$skip",
+ "description": "for paging, skipped number",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "$maxpagesize",
+ "description": "the maximum number of items in one page",
+ "type": "integer",
+ "format": "int32"
}
],
"responses": {
@@ -2263,8 +2307,11 @@
}
}
},
+ "x-ms-pageable": {
+ "nextLinkName": "@nextLink"
+ },
"x-ms-examples": {
- "Query all anomaly detection configurations for specific metric": {
+ "List all anomaly detection configurations for specific metric": {
"$ref": "./examples/getAnomalyDetectionConfigurationsByMetric.json"
}
}
@@ -2944,6 +2991,12 @@
],
"type": "object",
"properties": {
+ "dataFeedId": {
+ "format": "uuid",
+ "description": "data feed unique id\r\n\r\nonly return for alerting anomaly result",
+ "type": "string",
+ "readOnly": true
+ },
"metricId": {
"format": "uuid",
"description": "metric unique id\r\n\r\nonly return for alerting anomaly result",
@@ -3074,6 +3127,12 @@
],
"type": "object",
"properties": {
+ "dataFeedId": {
+ "format": "uuid",
+ "description": "data feed unique id\r\n\r\nonly return for alerting anomaly result",
+ "type": "string",
+ "readOnly": true
+ },
"metricId": {
"format": "uuid",
"description": "metric unique id\r\n\r\nonly return for alerting incident result",
@@ -3502,6 +3561,139 @@
]
}
},
+ "SuppressConditionPatch": {
+ "type": "object",
+ "properties": {
+ "minNumber": {
+ "format": "int32",
+ "description": "min point number, value range : [1, +∞)",
+ "type": "integer"
+ },
+ "minRatio": {
+ "format": "double",
+ "description": "min point ratio, value range : (0, 100]",
+ "type": "number"
+ }
+ }
+ },
+ "SmartDetectionConditionPatch": {
+ "type": "object",
+ "properties": {
+ "sensitivity": {
+ "format": "double",
+ "description": "sensitivity, value range : (0, 100]",
+ "type": "number"
+ },
+ "anomalyDetectorDirection": {
+ "description": "detection direction",
+ "enum": [
+ "Both",
+ "Down",
+ "Up"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AnomalyDetectorDirection",
+ "modelAsString": true
+ }
+ },
+ "suppressCondition": {
+ "$ref": "#/definitions/SuppressConditionPatch"
+ }
+ }
+ },
+ "HardThresholdConditionPatch": {
+ "type": "object",
+ "properties": {
+ "lowerBound": {
+ "format": "double",
+ "description": "lower bound\r\n\r\nshould be specified when anomalyDetectorDirection is Both or Down",
+ "type": "number"
+ },
+ "upperBound": {
+ "format": "double",
+ "description": "upper bound\r\n\r\nshould be specified when anomalyDetectorDirection is Both or Up",
+ "type": "number"
+ },
+ "anomalyDetectorDirection": {
+ "description": "detection direction",
+ "enum": [
+ "Both",
+ "Down",
+ "Up"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AnomalyDetectorDirection",
+ "modelAsString": true
+ }
+ },
+ "suppressCondition": {
+ "$ref": "#/definitions/SuppressConditionPatch"
+ }
+ }
+ },
+ "ChangeThresholdConditionPatch": {
+ "type": "object",
+ "properties": {
+ "changePercentage": {
+ "format": "double",
+ "description": "change percentage, value range : [0, +∞)",
+ "type": "number"
+ },
+ "shiftPoint": {
+ "format": "int32",
+ "description": "shift point, value range : [1, +∞)",
+ "type": "integer"
+ },
+ "withinRange": {
+ "description": "if the withinRange = true, detected data is abnormal when the value falls in the range, in this case anomalyDetectorDirection must be Both\r\nif the withinRange = false, detected data is abnormal when the value falls out of the range",
+ "type": "boolean"
+ },
+ "anomalyDetectorDirection": {
+ "description": "detection direction",
+ "enum": [
+ "Both",
+ "Down",
+ "Up"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AnomalyDetectorDirection",
+ "modelAsString": true
+ }
+ },
+ "suppressCondition": {
+ "$ref": "#/definitions/SuppressConditionPatch"
+ }
+ }
+ },
+ "WholeMetricConfigurationPatch": {
+ "type": "object",
+ "properties": {
+ "conditionOperator": {
+ "description": "condition operator\r\n\r\nshould be specified when combining multiple detection conditions",
+ "enum": [
+ "AND",
+ "OR"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AnomalyDetectionConfigurationLogicType",
+ "modelAsString": true
+ }
+ },
+ "smartDetectionCondition": {
+ "$ref": "#/definitions/SmartDetectionConditionPatch"
+ },
+ "hardThresholdCondition": {
+ "$ref": "#/definitions/HardThresholdConditionPatch"
+ },
+ "changeThresholdCondition": {
+ "$ref": "#/definitions/ChangeThresholdConditionPatch"
+ }
+ }
+ },
"AnomalyDetectionConfigurationPatch": {
"type": "object",
"properties": {
@@ -3515,7 +3707,7 @@
"type": "string"
},
"wholeMetricConfiguration": {
- "$ref": "#/definitions/WholeMetricConfiguration"
+ "$ref": "#/definitions/WholeMetricConfigurationPatch"
},
"dimensionGroupOverrideConfigurations": {
"description": "detection configuration for series group",
@@ -3535,126 +3727,26 @@
}
},
"example": {
- "name": "Anomaly detection configuration name",
- "description": "Anomaly detection configuration description",
"wholeMetricConfiguration": {
- "conditionOperator": "AND",
"smartDetectionCondition": {
- "sensitivity": 91.0,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
- }
- },
- "hardThresholdCondition": {
- "lowerBound": 1.0,
- "upperBound": 100.0,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
- }
- },
- "changeThresholdCondition": {
- "changePercentage": 5.0,
- "shiftPoint": 1,
- "withinRange": false,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
- }
+ "sensitivity": 91.0
}
+ }
+ }
+ },
+ "AnomalyAlertingConfigurationList": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AnomalyAlertingConfiguration"
+ },
+ "readOnly": true
},
- "dimensionGroupOverrideConfigurations": [
- {
- "group": {
- "dimension": {
- "city": "Beijing"
- }
- },
- "conditionOperator": "AND",
- "smartDetectionCondition": {
- "sensitivity": 91.0,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
- }
- },
- "hardThresholdCondition": {
- "lowerBound": 1.0,
- "upperBound": 100.0,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
- }
- },
- "changeThresholdCondition": {
- "changePercentage": 5.0,
- "shiftPoint": 1,
- "withinRange": false,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
- }
- }
- }
- ],
- "seriesOverrideConfigurations": [
- {
- "series": {
- "dimension": {
- "category": "Jewelry",
- "city": "Beijing"
- }
- },
- "conditionOperator": "AND",
- "smartDetectionCondition": {
- "sensitivity": 91.0,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
- }
- },
- "hardThresholdCondition": {
- "lowerBound": 1.0,
- "upperBound": 100.0,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
- }
- },
- "changeThresholdCondition": {
- "changePercentage": 5.0,
- "shiftPoint": 1,
- "withinRange": false,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
- }
- }
- }
- ]
- }
- },
- "AnomalyAlertingConfigurationList": {
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/AnomalyAlertingConfiguration"
- }
+ "@nextLink": {
+ "type": "string",
+ "readOnly": true
}
}
},
@@ -3668,16 +3760,16 @@
"properties": {
"startTime": {
"format": "date-time",
- "description": "start time",
+ "description": "This is inclusive. The maximum number of data points (series number * time range) is 10000.",
"type": "string"
},
"endTime": {
"format": "date-time",
- "description": "end time",
+ "description": "This is exclusive. The maximum number of data points (series number * time range) is 10000.",
"type": "string"
},
"series": {
- "description": "series",
+ "description": "The series to be queried. The identity must be able to define one single time series instead of a group of time series. The maximum number of series is 100.",
"uniqueItems": true,
"type": "array",
"items": {
@@ -4023,9 +4115,6 @@
}
},
"AzureSQLConnectionStringParam": {
- "required": [
- "connectionString"
- ],
"type": "object",
"properties": {
"connectionString": {
@@ -4083,6 +4172,9 @@
}
},
"AzureSQLConnectionStringCredential": {
+ "required": [
+ "parameters"
+ ],
"type": "object",
"allOf": [
{
@@ -4097,9 +4189,6 @@
"x-ms-discriminator-value": "AzureSQLConnectionString"
},
"DataLakeGen2SharedKeyParam": {
- "required": [
- "accountKey"
- ],
"type": "object",
"properties": {
"accountKey": {
@@ -4109,6 +4198,9 @@
}
},
"DataLakeGen2SharedKeyCredential": {
+ "required": [
+ "parameters"
+ ],
"type": "object",
"allOf": [
{
@@ -4125,7 +4217,6 @@
"ServicePrincipalParam": {
"required": [
"clientId",
- "clientSecret",
"tenantId"
],
"type": "object",
@@ -4145,6 +4236,9 @@
}
},
"ServicePrincipalCredential": {
+ "required": [
+ "parameters"
+ ],
"type": "object",
"allOf": [
{
@@ -4161,7 +4255,6 @@
"ServicePrincipalInKVParam": {
"required": [
"keyVaultClientId",
- "keyVaultClientSecret",
"keyVaultEndpoint",
"servicePrincipalIdNameInKV",
"servicePrincipalSecretNameInKV",
@@ -4196,6 +4289,9 @@
}
},
"ServicePrincipalInKVCredential": {
+ "required": [
+ "parameters"
+ ],
"type": "object",
"allOf": [
{
@@ -4226,6 +4322,15 @@
}
}
},
+ "AzureSQLConnectionStringParamPatch": {
+ "type": "object",
+ "properties": {
+ "connectionString": {
+ "description": "The connection string to access the Azure SQL.",
+ "type": "string"
+ }
+ }
+ },
"DataSourceCredentialPatch": {
"required": [
"dataSourceCredentialType"
@@ -4235,24 +4340,14 @@
"dataSourceCredentialType": {
"description": "Type of data source credential",
"enum": [
- "AzureApplicationInsights",
- "AzureBlob",
- "AzureCosmosDB",
- "AzureDataExplorer",
- "AzureDataLakeStorageGen2",
- "AzureEventHubs",
- "AzureTable",
- "Elasticsearch",
- "HttpRequest",
- "InfluxDB",
- "MongoDB",
- "MySql",
- "PostgreSql",
- "SqlServer"
+ "AzureSQLConnectionString",
+ "DataLakeGen2SharedKey",
+ "ServicePrincipal",
+ "ServicePrincipalInKV"
],
"type": "string",
"x-ms-enum": {
- "name": "DataSourceType",
+ "name": "DataSourceCredentialType",
"modelAsString": true
}
},
@@ -4267,9 +4362,7 @@
},
"discriminator": "dataSourceCredentialType",
"example": {
- "dataSourceCredentialName": "A data source credential",
- "dataSourceCredentialDescription": "This is a data source credential",
- "dataSourceCredentialType": "AzureApplicationInsights"
+ "dataSourceCredentialDescription": "This is a data source credential"
}
},
"AzureSQLConnectionStringCredentialPatch": {
@@ -4281,11 +4374,20 @@
],
"properties": {
"parameters": {
- "$ref": "#/definitions/AzureSQLConnectionStringParam"
+ "$ref": "#/definitions/AzureSQLConnectionStringParamPatch"
}
},
"x-ms-discriminator-value": "AzureSQLConnectionString"
},
+ "DataLakeGen2SharedKeyParamPatch": {
+ "type": "object",
+ "properties": {
+ "accountKey": {
+ "description": "The account key to access the Azure Data Lake Storage Gen2.",
+ "type": "string"
+ }
+ }
+ },
"DataLakeGen2SharedKeyCredentialPatch": {
"type": "object",
"allOf": [
@@ -4295,11 +4397,28 @@
],
"properties": {
"parameters": {
- "$ref": "#/definitions/DataLakeGen2SharedKeyParam"
+ "$ref": "#/definitions/DataLakeGen2SharedKeyParamPatch"
}
},
"x-ms-discriminator-value": "DataLakeGen2SharedKey"
},
+ "ServicePrincipalParamPatch": {
+ "type": "object",
+ "properties": {
+ "clientId": {
+ "description": "The client id of the service principal.",
+ "type": "string"
+ },
+ "clientSecret": {
+ "description": "The client secret of the service principal.",
+ "type": "string"
+ },
+ "tenantId": {
+ "description": "The tenant id of the service principal.",
+ "type": "string"
+ }
+ }
+ },
"ServicePrincipalCredentialPatch": {
"type": "object",
"allOf": [
@@ -4309,11 +4428,40 @@
],
"properties": {
"parameters": {
- "$ref": "#/definitions/ServicePrincipalParam"
+ "$ref": "#/definitions/ServicePrincipalParamPatch"
}
},
"x-ms-discriminator-value": "ServicePrincipal"
},
+ "ServicePrincipalInKVParamPatch": {
+ "type": "object",
+ "properties": {
+ "keyVaultEndpoint": {
+ "description": "The Key Vault endpoint that storing the service principal.",
+ "type": "string"
+ },
+ "keyVaultClientId": {
+ "description": "The Client Id to access the Key Vault.",
+ "type": "string"
+ },
+ "keyVaultClientSecret": {
+ "description": "The Client Secret to access the Key Vault.",
+ "type": "string"
+ },
+ "servicePrincipalIdNameInKV": {
+ "description": "The secret name of the service principal's client Id in the Key Vault.",
+ "type": "string"
+ },
+ "servicePrincipalSecretNameInKV": {
+ "description": "The secret name of the service principal's client secret in the Key Vault.",
+ "type": "string"
+ },
+ "tenantId": {
+ "description": "The tenant id of your service principal.",
+ "type": "string"
+ }
+ }
+ },
"ServicePrincipalInKVCredentialPatch": {
"type": "object",
"allOf": [
@@ -4323,34 +4471,31 @@
],
"properties": {
"parameters": {
- "$ref": "#/definitions/ServicePrincipalInKVParam"
+ "$ref": "#/definitions/ServicePrincipalInKVParamPatch"
}
},
"x-ms-discriminator-value": "ServicePrincipalInKV"
},
"AzureApplicationInsightsParameter": {
"required": [
- "apiKey",
- "applicationId",
- "azureCloud",
"query"
],
"type": "object",
"properties": {
"azureCloud": {
- "description": "Azure cloud environment",
+ "description": "The Azure cloud that this Azure Application Insights in",
"type": "string"
},
"applicationId": {
- "description": "Azure Application Insights ID",
+ "description": "The application id of this Azure Application Insights",
"type": "string"
},
"apiKey": {
- "description": "API Key",
+ "description": "The API Key that can access this Azure Application Insights",
"type": "string"
},
"query": {
- "description": "Query",
+ "description": "The statement to query this Azure Application Insights",
"type": "string"
}
}
@@ -4418,9 +4563,8 @@
"AzureDataExplorer",
"AzureDataLakeStorageGen2",
"AzureEventHubs",
+ "AzureLogAnalytics",
"AzureTable",
- "Elasticsearch",
- "HttpRequest",
"InfluxDB",
"MongoDB",
"MySql",
@@ -4458,7 +4602,6 @@
"Daily",
"Hourly",
"Minutely",
- "Secondly",
"Custom"
],
"type": "string",
@@ -4673,7 +4816,7 @@
"discriminator": "dataSourceType",
"example": {
"dataSourceParameter": {
- "connectionString": "Server=your_sql_server,1433;Initial Catalog=your_database;Persist Security Info=False;User ID=your_user;Password=your_password;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;",
+ "connectionString": "Server=PlaceholderSqlServer,1433;Initial Catalog=PlaceholderDatabase;User ID=PlaceholderUserName;Password=PlaceholderPassword;",
"query": "select * from your_table where timestamp = @StartTime"
},
"dataFeedName": "Sample - cost/revenue - city/category",
@@ -4715,6 +4858,9 @@
}
},
"AzureApplicationInsightsDataFeed": {
+ "required": [
+ "dataSourceParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -4731,26 +4877,28 @@
"AzureBlobParameter": {
"required": [
"blobTemplate",
- "connectionString",
"container"
],
"type": "object",
"properties": {
"connectionString": {
- "description": "Azure Blob connection string",
+ "description": "The connection string of this Azure Blob",
"type": "string"
},
"container": {
- "description": "Container",
+ "description": "The container name in this Azure Blob",
"type": "string"
},
"blobTemplate": {
- "description": "Blob Template",
+ "description": "The path template in this container",
"type": "string"
}
}
},
"AzureBlobDataFeed": {
+ "required": [
+ "dataSourceParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -4767,31 +4915,33 @@
"AzureCosmosDBParameter": {
"required": [
"collectionId",
- "connectionString",
"database",
"sqlQuery"
],
"type": "object",
"properties": {
"connectionString": {
- "description": "Azure CosmosDB connection string",
+ "description": "The connection string of this Azure CosmosDB",
"type": "string"
},
"sqlQuery": {
- "description": "Query script",
+ "description": "The statement to query this collection",
"type": "string"
},
"database": {
- "description": "Database name",
+ "description": "A database name in this Azure CosmosDB",
"type": "string"
},
"collectionId": {
- "description": "Collection id",
+ "description": "A collection id in this database",
"type": "string"
}
}
},
"AzureCosmosDBDataFeed": {
+ "required": [
+ "dataSourceParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -4812,16 +4962,19 @@
"type": "object",
"properties": {
"connectionString": {
- "description": "Database connection string",
+ "description": "The connection string of this database",
"type": "string"
},
"query": {
- "description": "Query script",
+ "description": "The script to query this database",
"type": "string"
}
}
},
"AzureDataExplorerDataFeed": {
+ "required": [
+ "dataSourceParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -4837,7 +4990,6 @@
},
"AzureDataLakeStorageGen2Parameter": {
"required": [
- "accountName",
"directoryTemplate",
"fileSystemName",
"fileTemplate"
@@ -4845,28 +4997,31 @@
"type": "object",
"properties": {
"accountName": {
- "description": "Account name",
+ "description": "The account name of this Azure Data Lake",
"type": "string"
},
"accountKey": {
- "description": "Account key",
+ "description": "The account key that can access this Azure Data Lake",
"type": "string"
},
"fileSystemName": {
- "description": "File system name (Container)",
+ "description": "The file system (container) name in this Azure Data Lake",
"type": "string"
},
"directoryTemplate": {
- "description": "Directory template",
+ "description": "The directory template under this file system",
"type": "string"
},
"fileTemplate": {
- "description": "File template",
+ "description": "The file template",
"type": "string"
}
}
},
"AzureDataLakeStorageGen2DataFeed": {
+ "required": [
+ "dataSourceParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -4882,22 +5037,24 @@
},
"AzureEventHubsParameter": {
"required": [
- "connectionString",
"consumerGroup"
],
"type": "object",
"properties": {
"connectionString": {
- "description": "Azure Event Hubs connection string",
+ "description": "The connection string of this Azure Event Hubs",
"type": "string"
},
"consumerGroup": {
- "description": "Azure Event Hubs consumer group",
+ "description": "The consumer group to be used in this data feed",
"type": "string"
}
}
},
"AzureEventHubsDataFeed": {
+ "required": [
+ "dataSourceParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -4911,70 +5068,39 @@
},
"x-ms-discriminator-value": "AzureEventHubs"
},
- "AzureTableParameter": {
+ "AzureLogAnalyticsParameter": {
"required": [
- "connectionString",
"query",
- "table"
+ "workspaceId"
],
"type": "object",
"properties": {
- "connectionString": {
- "description": "Azure Table connection string",
- "type": "string"
- },
- "table": {
- "description": "Table name",
+ "tenantId": {
+ "description": "The tenant id of service principal that have access to this Log Analytics",
"type": "string"
},
- "query": {
- "description": "Query script",
- "type": "string"
- }
- }
- },
- "AzureTableDataFeed": {
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/DataFeedDetail"
- }
- ],
- "properties": {
- "dataSourceParameter": {
- "$ref": "#/definitions/AzureTableParameter"
- }
- },
- "x-ms-discriminator-value": "AzureTable"
- },
- "ElasticsearchParameter": {
- "required": [
- "authHeader",
- "host",
- "port",
- "query"
- ],
- "type": "object",
- "properties": {
- "host": {
- "description": "Host",
+ "clientId": {
+ "description": "The client id of service principal that have access to this Log Analytics",
"type": "string"
},
- "port": {
- "description": "Port",
+ "clientSecret": {
+ "description": "The client secret of service principal that have access to this Log Analytics",
"type": "string"
},
- "authHeader": {
- "description": "Authorization header",
+ "workspaceId": {
+ "description": "The workspace id of this Log Analytics",
"type": "string"
},
"query": {
- "description": "Query",
+ "description": "The KQL (Kusto Query Language) query to fetch data from this Log Analytics",
"type": "string"
}
}
},
- "ElasticsearchDataFeed": {
+ "AzureLogAnalyticsDataFeed": {
+ "required": [
+ "dataSourceParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -4983,39 +5109,36 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/ElasticsearchParameter"
+ "$ref": "#/definitions/AzureLogAnalyticsParameter"
}
},
- "x-ms-discriminator-value": "Elasticsearch"
+ "x-ms-discriminator-value": "AzureLogAnalytics"
},
- "HttpRequestParameter": {
+ "AzureTableParameter": {
"required": [
- "httpHeader",
- "httpMethod",
- "payload",
- "url"
+ "query",
+ "table"
],
"type": "object",
"properties": {
- "url": {
- "description": "HTTP URL",
- "type": "string"
- },
- "httpHeader": {
- "description": "HTTP header",
+ "connectionString": {
+ "description": "The connection string of this Azure Table",
"type": "string"
},
- "httpMethod": {
- "description": "HTTP method",
+ "table": {
+ "description": "A table name in this Azure Table",
"type": "string"
},
- "payload": {
- "description": "HTTP request body",
+ "query": {
+ "description": "The statement to query this table. Please find syntax and details from Azure Table documents.",
"type": "string"
}
}
},
- "HttpRequestDataFeed": {
+ "AzureTableDataFeed": {
+ "required": [
+ "dataSourceParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -5024,44 +5147,43 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/HttpRequestParameter"
+ "$ref": "#/definitions/AzureTableParameter"
}
},
- "x-ms-discriminator-value": "HttpRequest"
+ "x-ms-discriminator-value": "AzureTable"
},
"InfluxDBParameter": {
"required": [
- "connectionString",
- "database",
- "password",
- "query",
- "userName"
+ "query"
],
"type": "object",
"properties": {
"connectionString": {
- "description": "InfluxDB connection string",
+ "description": "The connection string of this InfluxDB",
"type": "string"
},
"database": {
- "description": "Database name",
+ "description": "A database name",
"type": "string"
},
"userName": {
- "description": "Database access user",
+ "description": "The user name of the account that can access this database",
"type": "string"
},
"password": {
- "description": "Database access password",
+ "description": "The password of the account that can access this database",
"type": "string"
},
"query": {
- "description": "Query script",
+ "description": "The script to query this database",
"type": "string"
}
}
},
"InfluxDBDataFeed": {
+ "required": [
+ "dataSourceParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -5076,6 +5198,9 @@
"x-ms-discriminator-value": "InfluxDB"
},
"MySqlDataFeed": {
+ "required": [
+ "dataSourceParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -5090,6 +5215,9 @@
"x-ms-discriminator-value": "MySql"
},
"PostgreSqlDataFeed": {
+ "required": [
+ "dataSourceParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -5104,6 +5232,9 @@
"x-ms-discriminator-value": "PostgreSql"
},
"SQLServerDataFeed": {
+ "required": [
+ "dataSourceParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -5119,27 +5250,28 @@
},
"MongoDBParameter": {
"required": [
- "command",
- "connectionString",
- "database"
+ "command"
],
"type": "object",
"properties": {
"connectionString": {
- "description": "MongoDB connection string",
+ "description": "The connection string of this MongoDB",
"type": "string"
},
"database": {
- "description": "Database name",
+ "description": "A database name in this MongoDB",
"type": "string"
},
"command": {
- "description": "Query script",
+ "description": "The script to query this database",
"type": "string"
}
}
},
"MongoDBDataFeed": {
+ "required": [
+ "dataSourceParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -5169,6 +5301,27 @@
}
}
},
+ "AzureApplicationInsightsParameterPatch": {
+ "type": "object",
+ "properties": {
+ "azureCloud": {
+ "description": "The Azure cloud that this Azure Application Insights in",
+ "type": "string"
+ },
+ "applicationId": {
+ "description": "The application id of this Azure Application Insights",
+ "type": "string"
+ },
+ "apiKey": {
+ "description": "The API Key that can access this Azure Application Insights",
+ "type": "string"
+ },
+ "query": {
+ "description": "The statement to query this Azure Application Insights",
+ "type": "string"
+ }
+ }
+ },
"DataFeedDetailPatch": {
"required": [
"dataSourceType"
@@ -5184,9 +5337,8 @@
"AzureDataExplorer",
"AzureDataLakeStorageGen2",
"AzureEventHubs",
+ "AzureLogAnalytics",
"AzureTable",
- "Elasticsearch",
- "HttpRequest",
"InfluxDB",
"MongoDB",
"MySql",
@@ -5372,11 +5524,28 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/AzureApplicationInsightsParameter"
+ "$ref": "#/definitions/AzureApplicationInsightsParameterPatch"
}
},
"x-ms-discriminator-value": "AzureApplicationInsights"
},
+ "AzureBlobParameterPatch": {
+ "type": "object",
+ "properties": {
+ "connectionString": {
+ "description": "The connection string of this Azure Blob",
+ "type": "string"
+ },
+ "container": {
+ "description": "The container name in this Azure Blob",
+ "type": "string"
+ },
+ "blobTemplate": {
+ "description": "The path template in this container",
+ "type": "string"
+ }
+ }
+ },
"AzureBlobDataFeedPatch": {
"type": "object",
"allOf": [
@@ -5386,11 +5555,32 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/AzureBlobParameter"
+ "$ref": "#/definitions/AzureBlobParameterPatch"
}
},
"x-ms-discriminator-value": "AzureBlob"
},
+ "AzureCosmosDBParameterPatch": {
+ "type": "object",
+ "properties": {
+ "connectionString": {
+ "description": "The connection string of this Azure CosmosDB",
+ "type": "string"
+ },
+ "sqlQuery": {
+ "description": "The statement to query this collection",
+ "type": "string"
+ },
+ "database": {
+ "description": "A database name in this Azure CosmosDB",
+ "type": "string"
+ },
+ "collectionId": {
+ "description": "A collection id in this database",
+ "type": "string"
+ }
+ }
+ },
"AzureCosmosDBDataFeedPatch": {
"type": "object",
"allOf": [
@@ -5400,11 +5590,24 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/AzureCosmosDBParameter"
+ "$ref": "#/definitions/AzureCosmosDBParameterPatch"
}
},
"x-ms-discriminator-value": "AzureCosmosDB"
},
+ "SQLSourceParameterPatch": {
+ "type": "object",
+ "properties": {
+ "connectionString": {
+ "description": "The connection string of this database",
+ "type": "string"
+ },
+ "query": {
+ "description": "The script to query this database",
+ "type": "string"
+ }
+ }
+ },
"AzureDataExplorerDataFeedPatch": {
"type": "object",
"allOf": [
@@ -5414,11 +5617,36 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/SqlSourceParameter"
+ "$ref": "#/definitions/SQLSourceParameterPatch"
}
},
"x-ms-discriminator-value": "AzureDataExplorer"
},
+ "AzureDataLakeStorageGen2ParameterPatch": {
+ "type": "object",
+ "properties": {
+ "accountName": {
+ "description": "The account name of this Azure Data Lake",
+ "type": "string"
+ },
+ "accountKey": {
+ "description": "The account key that can access this Azure Data Lake",
+ "type": "string"
+ },
+ "fileSystemName": {
+ "description": "The file system (container) name in this Azure Data Lake",
+ "type": "string"
+ },
+ "directoryTemplate": {
+ "description": "The directory template under this file system",
+ "type": "string"
+ },
+ "fileTemplate": {
+ "description": "The file template",
+ "type": "string"
+ }
+ }
+ },
"AzureDataLakeStorageGen2DataFeedPatch": {
"type": "object",
"allOf": [
@@ -5428,11 +5656,24 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/AzureDataLakeStorageGen2Parameter"
+ "$ref": "#/definitions/AzureDataLakeStorageGen2ParameterPatch"
}
},
"x-ms-discriminator-value": "AzureDataLakeStorageGen2"
},
+ "AzureEventHubsParameterPatch": {
+ "type": "object",
+ "properties": {
+ "connectionString": {
+ "description": "The connection string of this Azure Event Hubs",
+ "type": "string"
+ },
+ "consumerGroup": {
+ "description": "The consumer group to be used in this data feed",
+ "type": "string"
+ }
+ }
+ },
"AzureEventHubsDataFeedPatch": {
"type": "object",
"allOf": [
@@ -5442,26 +5683,37 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/AzureEventHubsParameter"
+ "$ref": "#/definitions/AzureEventHubsParameterPatch"
}
},
"x-ms-discriminator-value": "AzureEventHubs"
},
- "AzureTableDataFeedPatch": {
+ "AzureLogAnalyticsParameterPatch": {
"type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/DataFeedDetailPatch"
- }
- ],
"properties": {
- "dataSourceParameter": {
- "$ref": "#/definitions/AzureTableParameter"
+ "tenantId": {
+ "description": "The tenant id of service principal that have access to this Log Analytics",
+ "type": "string"
+ },
+ "clientId": {
+ "description": "The client id of service principal that have access to this Log Analytics",
+ "type": "string"
+ },
+ "clientSecret": {
+ "description": "The client secret of service principal that have access to this Log Analytics",
+ "type": "string"
+ },
+ "workspaceId": {
+ "description": "The workspace id of this Log Analytics",
+ "type": "string"
+ },
+ "query": {
+ "description": "The KQL (Kusto Query Language) query to fetch data from this Log Analytics",
+ "type": "string"
}
- },
- "x-ms-discriminator-value": "AzureTable"
+ }
},
- "ElasticsearchDataFeedPatch": {
+ "AzureLogAnalyticsDataFeedPatch": {
"type": "object",
"allOf": [
{
@@ -5470,12 +5722,29 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/ElasticsearchParameter"
+ "$ref": "#/definitions/AzureLogAnalyticsParameterPatch"
}
},
- "x-ms-discriminator-value": "Elasticsearch"
+ "x-ms-discriminator-value": "AzureLogAnalytics"
+ },
+ "AzureTableParameterPatch": {
+ "type": "object",
+ "properties": {
+ "connectionString": {
+ "description": "The connection string of this Azure Table",
+ "type": "string"
+ },
+ "table": {
+ "description": "A table name in this Azure Table",
+ "type": "string"
+ },
+ "query": {
+ "description": "The statement to query this table. Please find syntax and details from Azure Table documents.",
+ "type": "string"
+ }
+ }
},
- "HttpRequestDataFeedPatch": {
+ "AzureTableDataFeedPatch": {
"type": "object",
"allOf": [
{
@@ -5484,10 +5753,35 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/HttpRequestParameter"
+ "$ref": "#/definitions/AzureTableParameterPatch"
}
},
- "x-ms-discriminator-value": "HttpRequest"
+ "x-ms-discriminator-value": "AzureTable"
+ },
+ "InfluxDBParameterPatch": {
+ "type": "object",
+ "properties": {
+ "connectionString": {
+ "description": "The connection string of this InfluxDB",
+ "type": "string"
+ },
+ "database": {
+ "description": "A database name",
+ "type": "string"
+ },
+ "userName": {
+ "description": "The user name of the account that can access this database",
+ "type": "string"
+ },
+ "password": {
+ "description": "The password of the account that can access this database",
+ "type": "string"
+ },
+ "query": {
+ "description": "The script to query this database",
+ "type": "string"
+ }
+ }
},
"InfluxDBDataFeedPatch": {
"type": "object",
@@ -5498,7 +5792,7 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/InfluxDBParameter"
+ "$ref": "#/definitions/InfluxDBParameterPatch"
}
},
"x-ms-discriminator-value": "InfluxDB"
@@ -5512,7 +5806,7 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/SqlSourceParameter"
+ "$ref": "#/definitions/SQLSourceParameterPatch"
}
},
"x-ms-discriminator-value": "MySql"
@@ -5526,7 +5820,7 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/SqlSourceParameter"
+ "$ref": "#/definitions/SQLSourceParameterPatch"
}
},
"x-ms-discriminator-value": "PostgreSql"
@@ -5540,17 +5834,31 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/SqlSourceParameter"
+ "$ref": "#/definitions/SQLSourceParameterPatch"
}
},
"example": {
- "dataFeedName": "Sample - cost/revenue - city/category (modified)",
- "viewers": [
- "viewer@company.example"
- ]
+ "dataFeedName": "Sample - cost/revenue - city/category"
},
"x-ms-discriminator-value": "SqlServer"
},
+ "MongoDBParameterPatch": {
+ "type": "object",
+ "properties": {
+ "connectionString": {
+ "description": "The connection string of this MongoDB",
+ "type": "string"
+ },
+ "database": {
+ "description": "A database name in this MongoDB",
+ "type": "string"
+ },
+ "command": {
+ "description": "The script to query this database",
+ "type": "string"
+ }
+ }
+ },
"MongoDBDataFeedPatch": {
"type": "object",
"allOf": [
@@ -5560,7 +5868,7 @@
],
"properties": {
"dataSourceParameter": {
- "$ref": "#/definitions/MongoDBParameter"
+ "$ref": "#/definitions/MongoDBParameterPatch"
}
},
"x-ms-discriminator-value": "MongoDB"
@@ -5651,6 +5959,11 @@
"discriminator": "feedbackType"
},
"AnomalyFeedback": {
+ "required": [
+ "endTime",
+ "startTime",
+ "value"
+ ],
"type": "object",
"allOf": [
{
@@ -5718,6 +6031,11 @@
}
},
"ChangePointFeedback": {
+ "required": [
+ "endTime",
+ "startTime",
+ "value"
+ ],
"type": "object",
"allOf": [
{
@@ -5754,6 +6072,9 @@
}
},
"CommentFeedback": {
+ "required": [
+ "value"
+ ],
"type": "object",
"allOf": [
{
@@ -5805,6 +6126,9 @@
}
},
"PeriodFeedback": {
+ "required": [
+ "value"
+ ],
"type": "object",
"allOf": [
{
@@ -5954,13 +6278,15 @@
"type": "array",
"items": {
"type": "string"
- },
- "readOnly": true
+ }
}
},
"discriminator": "hookType"
},
"EmailHookInfo": {
+ "required": [
+ "hookParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -5985,11 +6311,11 @@
"type": "string"
},
"username": {
- "description": "basic authentication",
+ "description": "(Deprecated) The username, if using basic authentication",
"type": "string"
},
"password": {
- "description": "basic authentication",
+ "description": "(Deprecated) The password, if using basic authentication",
"type": "string"
},
"headers": {
@@ -6000,16 +6326,19 @@
}
},
"certificateKey": {
- "description": "client certificate",
+ "description": "The certificate key/URL, if using client certificate, please read documents for more informations.",
"type": "string"
},
"certificatePassword": {
- "description": "client certificate password",
+ "description": "The certificate password, if using client certificate, please read documents for more informations.",
"type": "string"
}
}
},
"WebhookHookInfo": {
+ "required": [
+ "hookParameter"
+ ],
"type": "object",
"allOf": [
{
@@ -6049,6 +6378,19 @@
}
}
},
+ "EmailHookParameterPatch": {
+ "type": "object",
+ "properties": {
+ "toList": {
+ "description": "Email TO: list.",
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
"HookInfoPatch": {
"required": [
"hookType"
@@ -6085,8 +6427,7 @@
"type": "array",
"items": {
"type": "string"
- },
- "readOnly": true
+ }
}
},
"discriminator": "hookType"
@@ -6100,11 +6441,43 @@
],
"properties": {
"hookParameter": {
- "$ref": "#/definitions/EmailHookParameter"
+ "$ref": "#/definitions/EmailHookParameterPatch"
}
},
"x-ms-discriminator-value": "Email"
},
+ "WebhookHookParameterPatch": {
+ "type": "object",
+ "properties": {
+ "endpoint": {
+ "description": "API address, will be called when alert is triggered, only support POST method via SSL",
+ "type": "string"
+ },
+ "username": {
+ "description": "(Deprecated) The username, if using basic authentication",
+ "type": "string"
+ },
+ "password": {
+ "description": "(Deprecated) The password, if using basic authentication",
+ "type": "string"
+ },
+ "headers": {
+ "description": "custom headers in api call",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "certificateKey": {
+ "description": "The certificate key, if using client certificate",
+ "type": "string"
+ },
+ "certificatePassword": {
+ "description": "The certificate password, if using client certificate",
+ "type": "string"
+ }
+ }
+ },
"WebhookHookInfoPatch": {
"type": "object",
"allOf": [
@@ -6114,12 +6487,11 @@
],
"properties": {
"hookParameter": {
- "$ref": "#/definitions/WebhookHookParameter"
+ "$ref": "#/definitions/WebhookHookParameterPatch"
}
},
"example": {
- "hookName": "A webhook (modified)",
- "description": "This is a webhook. (modified)"
+ "description": "This is a webhook."
},
"x-ms-discriminator-value": "Webhook"
},
@@ -6247,16 +6619,16 @@
"properties": {
"startTime": {
"format": "date-time",
- "description": "start time of query a time series data, and format should be yyyy-MM-ddThh:mm:ssZ",
+ "description": "start time of query a time series data, and format should be yyyy-MM-ddThh:mm:ssZ. The maximum number of data points (series number * time range) is 10000.",
"type": "string"
},
"endTime": {
"format": "date-time",
- "description": "start time of query a time series data, and format should be yyyy-MM-ddThh:mm:ssZ",
+ "description": "start time of query a time series data, and format should be yyyy-MM-ddThh:mm:ssZ. The maximum number of data points (series number * time range) is 10000.",
"type": "string"
},
"series": {
- "description": "query specific series",
+ "description": "query specific series. The maximum number of series is 100.",
"type": "array",
"items": {
"type": "object",
@@ -6418,16 +6790,18 @@
}
},
"AnomalyDetectionConfigurationList": {
- "required": [
- "value"
- ],
"type": "object",
"properties": {
"value": {
"type": "array",
"items": {
"$ref": "#/definitions/AnomalyDetectionConfiguration"
- }
+ },
+ "readOnly": true
+ },
+ "@nextLink": {
+ "type": "string",
+ "readOnly": true
}
}
},
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/createDataFeed.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/createDataFeed.json
index f30e968aab67..053fc92f966b 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/createDataFeed.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/createDataFeed.json
@@ -5,7 +5,7 @@
"Content-Type": "application/json",
"body": {
"dataSourceParameter": {
- "connectionString": "Server=your_sql_server,1433;Initial Catalog=your_database;Persist Security Info=False;User ID=your_user;Password=your_password;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;",
+ "connectionString": "Server=PlaceholderSqlServer,1433;Initial Catalog=PlaceholderDatabase;User ID=PlaceholderUserName;Password=PlaceholderPassword;",
"query": "select * from your_table where timestamp = @StartTime"
},
"dataFeedName": "Sample - cost/revenue - city/category",
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getAnomaliesByAnomalyDetectionConfiguration.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getAnomaliesByAnomalyDetectionConfiguration.json
index fd65ebd4dd70..2946dbc626e4 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getAnomaliesByAnomalyDetectionConfiguration.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getAnomaliesByAnomalyDetectionConfiguration.json
@@ -28,6 +28,7 @@
"body": {
"value": [
{
+ "dataFeedId": "11111111-1111-1111-1111-000000000001",
"metricId": "22222222-2222-2222-2222-000000000001",
"anomalyDetectionConfigurationId": "33333333-3333-3333-3333-000000000001",
"timestamp": "2020-01-01T00:00:00.000Z",
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getAnomaliesFromAlertByAnomalyAlertingConfiguration.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getAnomaliesFromAlertByAnomalyAlertingConfiguration.json
index 041770dbc4b0..8c180c49e4bb 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getAnomaliesFromAlertByAnomalyAlertingConfiguration.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getAnomaliesFromAlertByAnomalyAlertingConfiguration.json
@@ -11,6 +11,7 @@
"body": {
"value": [
{
+ "dataFeedId": "11111111-1111-1111-1111-000000000001",
"metricId": "22222222-2222-2222-2222-000000000001",
"anomalyDetectionConfigurationId": "33333333-3333-3333-3333-000000000001",
"timestamp": "2020-01-01T00:00:00.000Z",
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getCredential.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getCredential.json
index e76d8a8c19ce..1cb2a96171eb 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getCredential.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getCredential.json
@@ -13,7 +13,6 @@
"clientSecret": "fake-client-secret",
"tenantId": "12345678-1234-1234-1234-123456788888"
},
- "dataSourceCredentialId": "01234567-0000-0000-0000-000000000002",
"dataSourceCredentialName": "A data source credential",
"dataSourceCredentialDescription": "This is a data source credential",
"dataSourceCredentialType": "ServicePrincipal"
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getDataFeedById.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getDataFeedById.json
index f8ad125f2454..d59b03e0249c 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getDataFeedById.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getDataFeedById.json
@@ -9,7 +9,7 @@
"headers": {},
"body": {
"dataSourceParameter": {
- "connectionString": "Server=your_sql_server,1433;Initial Catalog=your_database;Persist Security Info=False;User ID=your_user;Password=your_password;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;",
+ "connectionString": "Server=PlaceholderSqlServer,1433;Initial Catalog=PlaceholderDatabase;User ID=PlaceholderUserName;Password=PlaceholderPassword;",
"query": "select * from your_table where timestamp = @StartTime"
},
"dataFeedId": "11111111-1111-1111-1111-000000000001",
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getIncidentsByAnomalyDetectionConfiguration.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getIncidentsByAnomalyDetectionConfiguration.json
index 6a71efc28aa8..3d1018da8b54 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getIncidentsByAnomalyDetectionConfiguration.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getIncidentsByAnomalyDetectionConfiguration.json
@@ -24,6 +24,7 @@
"body": {
"value": [
{
+ "dataFeedId": "11111111-1111-1111-1111-000000000001",
"metricId": "22222222-2222-2222-2222-000000000001",
"anomalyDetectionConfigurationId": "33333333-3333-3333-3333-000000000001",
"incidentId": "iiiiiiiiiiii",
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getIncidentsByAnomalyDetectionConfigurationNextPages.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getIncidentsByAnomalyDetectionConfigurationNextPages.json
index 395b9963e97d..35c20aa92f71 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getIncidentsByAnomalyDetectionConfigurationNextPages.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getIncidentsByAnomalyDetectionConfigurationNextPages.json
@@ -10,6 +10,7 @@
"body": {
"value": [
{
+ "dataFeedId": "11111111-1111-1111-1111-000000000001",
"metricId": "22222222-2222-2222-2222-000000000001",
"anomalyDetectionConfigurationId": "33333333-3333-3333-3333-000000000001",
"incidentId": "iiiiiiiiiiii",
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getIncidentsFromAlertByAnomalyAlertingConfiguration.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getIncidentsFromAlertByAnomalyAlertingConfiguration.json
index e03e6c71b4f8..64d19d69a90e 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getIncidentsFromAlertByAnomalyAlertingConfiguration.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/getIncidentsFromAlertByAnomalyAlertingConfiguration.json
@@ -11,6 +11,7 @@
"body": {
"value": [
{
+ "dataFeedId": "11111111-1111-1111-1111-000000000001",
"metricId": "22222222-2222-2222-2222-000000000001",
"anomalyDetectionConfigurationId": "33333333-3333-3333-3333-000000000001",
"incidentId": "iiiiiiiiiiii",
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/listDataFeeds.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/listDataFeeds.json
index e94aa0242d07..5c4c10be8c67 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/listDataFeeds.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/listDataFeeds.json
@@ -16,7 +16,7 @@
"value": [
{
"dataSourceParameter": {
- "connectionString": "Server=your_sql_server,1433;Initial Catalog=your_database;Persist Security Info=False;User ID=your_user;Password=your_password;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;",
+ "connectionString": "Server=PlaceholderSqlServer,1433;Initial Catalog=PlaceholderDatabase;User ID=PlaceholderUserName;Password=PlaceholderPassword;",
"query": "select * from your_table where timestamp = @StartTime"
},
"dataFeedId": "11111111-1111-1111-1111-000000000001",
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateAnomalyAlertingConfiguration.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateAnomalyAlertingConfiguration.json
index 22d1df25b83d..0a5efd2f49d4 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateAnomalyAlertingConfiguration.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateAnomalyAlertingConfiguration.json
@@ -54,6 +54,57 @@
}
},
"responses": {
- "204": {}
+ "200": {
+ "headers": {},
+ "body": {
+ "anomalyAlertingConfigurationId": "44444444-4444-4444-4444-000000000001",
+ "name": "alerting configuration name",
+ "description": "this is an anomaly alerting configuration",
+ "crossMetricsOperator": "AND",
+ "hookIds": [
+ "00000000-0000-0000-0000-000000000001"
+ ],
+ "metricAlertingConfigurations": [
+ {
+ "anomalyDetectionConfigurationId": "33333333-3333-3333-3333-000000000001",
+ "anomalyScopeType": "All",
+ "negationOperation": false,
+ "severityFilter": {
+ "minAlertSeverity": "Medium",
+ "maxAlertSeverity": "High"
+ },
+ "snoozeFilter": {
+ "autoSnooze": 0,
+ "snoozeScope": "Series",
+ "onlyForSuccessive": true
+ }
+ },
+ {
+ "anomalyDetectionConfigurationId": "33333333-3333-3333-3333-000000000002",
+ "anomalyScopeType": "Dimension",
+ "negationOperation": false,
+ "dimensionAnomalyScope": {
+ "dimension": {
+ "city": "Beijing"
+ }
+ },
+ "severityFilter": {
+ "minAlertSeverity": "Low",
+ "maxAlertSeverity": "High"
+ },
+ "snoozeFilter": {
+ "autoSnooze": 0,
+ "snoozeScope": "Series",
+ "onlyForSuccessive": true
+ },
+ "valueFilter": {
+ "lower": 0.0,
+ "upper": 1000.0,
+ "direction": "Both"
+ }
+ }
+ ]
+ }
+ }
}
}
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateAnomalyDetectionConfiguration.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateAnomalyDetectionConfiguration.json
index 638e88d5724a..47a9941dd059 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateAnomalyDetectionConfiguration.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateAnomalyDetectionConfiguration.json
@@ -5,45 +5,22 @@
"configurationId": "33333333-3333-3333-3333-000000000001",
"Content-Type": "application/merge-patch+json",
"body": {
- "name": "Anomaly detection configuration name",
- "description": "Anomaly detection configuration description",
"wholeMetricConfiguration": {
- "conditionOperator": "AND",
"smartDetectionCondition": {
- "sensitivity": 91.0,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
- }
- },
- "hardThresholdCondition": {
- "lowerBound": 1.0,
- "upperBound": 100.0,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
- }
- },
- "changeThresholdCondition": {
- "changePercentage": 5.0,
- "shiftPoint": 1,
- "withinRange": false,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
- }
+ "sensitivity": 91.0
}
- },
- "dimensionGroupOverrideConfigurations": [
- {
- "group": {
- "dimension": {
- "city": "Beijing"
- }
- },
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "anomalyDetectionConfigurationId": "33333333-3333-3333-3333-000000000001",
+ "name": "Anomaly detection configuration name",
+ "description": "Anomaly detection configuration description",
+ "metricId": "22222222-2222-2222-2222-000000000001",
+ "wholeMetricConfiguration": {
"conditionOperator": "AND",
"smartDetectionCondition": {
"sensitivity": 91.0,
@@ -72,49 +49,83 @@
"minRatio": 100.0
}
}
- }
- ],
- "seriesOverrideConfigurations": [
- {
- "series": {
- "dimension": {
- "category": "Jewelry",
- "city": "Beijing"
- }
- },
- "conditionOperator": "AND",
- "smartDetectionCondition": {
- "sensitivity": 91.0,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
- }
- },
- "hardThresholdCondition": {
- "lowerBound": 1.0,
- "upperBound": 100.0,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
+ },
+ "dimensionGroupOverrideConfigurations": [
+ {
+ "group": {
+ "dimension": {
+ "city": "Beijing"
+ }
+ },
+ "conditionOperator": "AND",
+ "smartDetectionCondition": {
+ "sensitivity": 91.0,
+ "anomalyDetectorDirection": "Both",
+ "suppressCondition": {
+ "minNumber": 1,
+ "minRatio": 100.0
+ }
+ },
+ "hardThresholdCondition": {
+ "lowerBound": 1.0,
+ "upperBound": 100.0,
+ "anomalyDetectorDirection": "Both",
+ "suppressCondition": {
+ "minNumber": 1,
+ "minRatio": 100.0
+ }
+ },
+ "changeThresholdCondition": {
+ "changePercentage": 5.0,
+ "shiftPoint": 1,
+ "withinRange": false,
+ "anomalyDetectorDirection": "Both",
+ "suppressCondition": {
+ "minNumber": 1,
+ "minRatio": 100.0
+ }
}
- },
- "changeThresholdCondition": {
- "changePercentage": 5.0,
- "shiftPoint": 1,
- "withinRange": false,
- "anomalyDetectorDirection": "Both",
- "suppressCondition": {
- "minNumber": 1,
- "minRatio": 100.0
+ }
+ ],
+ "seriesOverrideConfigurations": [
+ {
+ "series": {
+ "dimension": {
+ "category": "Jewelry",
+ "city": "Beijing"
+ }
+ },
+ "conditionOperator": "AND",
+ "smartDetectionCondition": {
+ "sensitivity": 91.0,
+ "anomalyDetectorDirection": "Both",
+ "suppressCondition": {
+ "minNumber": 1,
+ "minRatio": 100.0
+ }
+ },
+ "hardThresholdCondition": {
+ "lowerBound": 1.0,
+ "upperBound": 100.0,
+ "anomalyDetectorDirection": "Both",
+ "suppressCondition": {
+ "minNumber": 1,
+ "minRatio": 100.0
+ }
+ },
+ "changeThresholdCondition": {
+ "changePercentage": 5.0,
+ "shiftPoint": 1,
+ "withinRange": false,
+ "anomalyDetectorDirection": "Both",
+ "suppressCondition": {
+ "minNumber": 1,
+ "minRatio": 100.0
+ }
}
}
- }
- ]
+ ]
+ }
}
- },
- "responses": {
- "204": {}
}
}
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateCredential.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateCredential.json
index 5fbdda3dddee..d530227374e8 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateCredential.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateCredential.json
@@ -5,12 +5,22 @@
"credentialId": "01234567-8901-2345-6789-012345678901",
"Content-Type": "application/merge-patch+json",
"body": {
- "dataSourceCredentialName": "A data source credential",
- "dataSourceCredentialDescription": "This is a data source credential",
- "dataSourceCredentialType": "AzureApplicationInsights"
+ "dataSourceCredentialDescription": "This is a data source credential"
}
},
"responses": {
- "204": {}
+ "200": {
+ "headers": {},
+ "body": {
+ "parameters": {
+ "clientId": "88888888-8888-8888-8888-888888888888",
+ "clientSecret": "fake-client-secret",
+ "tenantId": "12345678-1234-1234-1234-123456788888"
+ },
+ "dataSourceCredentialName": "A data source credential",
+ "dataSourceCredentialDescription": "This is a data source credential",
+ "dataSourceCredentialType": "ServicePrincipal"
+ }
+ }
}
}
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateDataFeed.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateDataFeed.json
index 54febb327084..9201dbb3b951 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateDataFeed.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateDataFeed.json
@@ -5,13 +5,65 @@
"dataFeedId": "01234567-8901-2345-6789-012345678901",
"Content-Type": "application/merge-patch+json",
"body": {
- "dataFeedName": "Sample - cost/revenue - city/category (modified)",
- "viewers": [
- "viewer@company.example"
- ]
+ "dataFeedName": "Sample - cost/revenue - city/category"
}
},
"responses": {
- "204": {}
+ "200": {
+ "headers": {},
+ "body": {
+ "dataSourceParameter": {
+ "connectionString": "Server=PlaceholderSqlServer,1433;Initial Catalog=PlaceholderDatabase;User ID=PlaceholderUserName;Password=PlaceholderPassword;",
+ "query": "select * from your_table where timestamp = @StartTime"
+ },
+ "dataFeedId": "11111111-1111-1111-1111-000000000001",
+ "dataFeedName": "Sample - cost/revenue - city/category",
+ "dataFeedDescription": "This is a sample data feed.",
+ "granularityName": "Daily",
+ "metrics": [
+ {
+ "metricId": "22222222-2222-2222-2222-000000000001",
+ "metricName": "cost",
+ "metricDisplayName": "cost"
+ },
+ {
+ "metricId": "22222222-2222-2222-2222-000000000002",
+ "metricName": "revenue",
+ "metricDisplayName": "revenue"
+ }
+ ],
+ "dimension": [
+ {
+ "dimensionName": "category",
+ "dimensionDisplayName": "category"
+ },
+ {
+ "dimensionName": "city",
+ "dimensionDisplayName": "city"
+ }
+ ],
+ "timestampColumn": "timestamp",
+ "dataStartFrom": "2020-01-01T00:00:00.000Z",
+ "dataSourceType": "SqlServer",
+ "startOffsetInSeconds": 86400,
+ "maxConcurrency": 5,
+ "minRetryIntervalInSeconds": 3600,
+ "stopRetryAfterInSeconds": 604800,
+ "needRollup": "NeedRollup",
+ "rollUpMethod": "Sum",
+ "allUpIdentification": "__SUM__",
+ "fillMissingPointType": "SmartFilling",
+ "viewMode": "Private",
+ "admins": [
+ "admin@company.example"
+ ],
+ "viewers": [],
+ "isAdmin": true,
+ "creator": "admin@company.example",
+ "status": "Active",
+ "createdTime": "2020-03-01T00:00:00.000Z",
+ "authenticationType": "Basic"
+ }
+ }
}
}
diff --git a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateHook.json b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateHook.json
index a6e131d7568e..03c526da7e45 100644
--- a/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateHook.json
+++ b/specification/cognitiveservices/data-plane/MetricsAdvisor/preview/v1.0/examples/updateHook.json
@@ -5,11 +5,25 @@
"hookId": "01234567-8901-2345-6789-012345678901",
"Content-Type": "application/merge-patch+json",
"body": {
- "hookName": "A webhook (modified)",
- "description": "This is a webhook. (modified)"
+ "description": "This is a webhook."
}
},
"responses": {
- "204": {}
+ "200": {
+ "headers": {},
+ "body": {
+ "hookParameter": {
+ "endpoint": "https://localhost/demo/post"
+ },
+ "hookId": "00000000-0000-0000-0000-000000000001",
+ "hookName": "A webhook",
+ "hookType": "Webhook",
+ "description": "This is a webhook.",
+ "externalLink": "",
+ "admins": [
+ "admin@company.example"
+ ]
+ }
+ }
}
}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/Personalizer.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/Personalizer.json
new file mode 100644
index 000000000000..ef0bf3bcda8a
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/Personalizer.json
@@ -0,0 +1,1843 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Personalizer Client v1.1-preview.1",
+ "description": "Personalizer Service is an Azure Cognitive Service that makes it easy to target content and experiences without complex pre-analysis or cleanup of past data. Given a context and featurized content, the Personalizer Service returns which content item to show to users in rewardActionId. As rewards are sent in response to the use of rewardActionId, the reinforcement learning algorithm will improve the model and improve performance of future rank calls.",
+ "version": "v1.1-preview.1"
+ },
+ "host": "localhost:5001",
+ "basePath": "/personalizer/v1.1-preview.1",
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/configurations/service": {
+ "put": {
+ "tags": [
+ "ConfigurationsV1Dot1Preview1"
+ ],
+ "summary": "Update Service Configuration.",
+ "description": "Update the Personalizer service configuration.",
+ "operationId": "ServiceConfiguration_Update",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "config",
+ "description": "The personalizer service configuration.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ServiceConfiguration"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ServiceConfiguration"
+ }
+ },
+ "default": {
+ "description": "Updating defaultReward, rewardWaitTime and rewardAggregation when changing learning mode from Online to Apprentice mode and vice versa is not allowed. Make the mode change and then change the additional settings with an additional API call.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful ServiceConfiguration_Update request": {
+ "$ref": "./examples/ServiceConfiguration_Update.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ConfigurationsV1Dot1Preview1"
+ ],
+ "summary": "Get Service Configuration.",
+ "description": "Get the Personalizer service configuration.",
+ "operationId": "ServiceConfiguration_Get",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ServiceConfiguration"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful ServiceConfiguration_Get request": {
+ "$ref": "./examples/ServiceConfiguration_Get.json"
+ }
+ }
+ }
+ },
+ "/configurations/policy": {
+ "get": {
+ "tags": [
+ "ConfigurationsV1Dot1Preview1"
+ ],
+ "summary": "Get Policy.",
+ "description": "Get the Learning Settings currently used by the Personalizer service.",
+ "operationId": "Policy_Get",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/PolicyContract"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Policy_Get request": {
+ "$ref": "./examples/Policy_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ConfigurationsV1Dot1Preview1"
+ ],
+ "summary": "Update Policy.",
+ "description": "Update the Learning Settings that the Personalizer service will use to train models.",
+ "operationId": "Policy_Update",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "policy",
+ "description": "The learning settings.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PolicyContract"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/PolicyContract"
+ }
+ },
+ "default": {
+ "description": "Invalid policy configuration.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Policy_Update request": {
+ "$ref": "./examples/Policy_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ConfigurationsV1Dot1Preview1"
+ ],
+ "summary": "Reset Policy.",
+ "description": "Resets the learning settings of the Personalizer service to default.",
+ "operationId": "Policy_Reset",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/PolicyContract"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Policy_Reset request": {
+ "$ref": "./examples/Policy_Reset.json"
+ }
+ }
+ }
+ },
+ "/configurations/applyFromEvaluation": {
+ "post": {
+ "tags": [
+ "ConfigurationsV1Dot1Preview1"
+ ],
+ "summary": "Apply Learning Settings and model from a pre-existing Offline Evaluation, making them the current online Learning Settings and model and replacing the previous ones.",
+ "operationId": "Evaluation_Apply",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PolicyReferenceContract"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Learning Settings not found in evaluation.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Evaluation_Apply request": {
+ "$ref": "./examples/Evaluation_Apply.json"
+ }
+ }
+ }
+ },
+ "/evaluations/{evaluationId}": {
+ "delete": {
+ "tags": [
+ "EvaluationsV1Dot1Preview1"
+ ],
+ "summary": "Delete Evaluation.",
+ "description": "Delete the Offline Evaluation associated with the Id.",
+ "operationId": "Evaluations_Delete",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "evaluationId",
+ "description": "Id of the Offline Evaluation to delete.",
+ "required": true,
+ "type": "string",
+ "maxLength": 256
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ }
+ },
+ "x-ms-examples": {
+ "Successful Evaluations_Delete request": {
+ "$ref": "./examples/Evaluations_Delete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "EvaluationsV1Dot1Preview1"
+ ],
+ "summary": "Get Evaluation.",
+ "description": "Get the Offline Evaluation associated with the Id.",
+ "operationId": "Evaluations_Get",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "evaluationId",
+ "description": "Id of the Offline Evaluation.",
+ "required": true,
+ "type": "string",
+ "maxLength": 256
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Evaluation"
+ }
+ },
+ "default": {
+ "description": "Offline Evaluation not found.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Evaluations_Get request": {
+ "$ref": "./examples/Evaluations_Get.json"
+ }
+ }
+ }
+ },
+ "/evaluations": {
+ "get": {
+ "tags": [
+ "EvaluationsV1Dot1Preview1"
+ ],
+ "summary": "List Offline Evaluations.",
+ "description": "List of all Offline Evaluations.",
+ "operationId": "Evaluations_List",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Evaluation"
+ }
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Evaluations_List request": {
+ "$ref": "./examples/Evaluations_List.json"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "EvaluationsV1Dot1Preview1"
+ ],
+ "summary": "Create Offline Evaluation.",
+ "description": "Submit a new Offline Evaluation job.",
+ "operationId": "Evaluations_Create",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "evaluation",
+ "description": "The Offline Evaluation job definition.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/EvaluationContract"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/Evaluation"
+ },
+ "headers": {
+ "Location": {
+ "description": "Location of the Offline Evaluation status and data.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Invalid evaluation contract.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Evaluations_Create request": {
+ "$ref": "./examples/Evaluations_Create.json"
+ }
+ }
+ }
+ },
+ "/events/{eventId}/reward": {
+ "post": {
+ "tags": [
+ "Events"
+ ],
+ "summary": "Post Reward.",
+ "description": "Report reward between 0 and 1 that resulted from using the action specified in rewardActionId, for the specified event.",
+ "operationId": "Events_Reward",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "eventId",
+ "description": "The event id this reward applies to.",
+ "required": true,
+ "type": "string",
+ "maxLength": 256
+ },
+ {
+ "in": "body",
+ "name": "reward",
+ "description": "The reward should be a floating point number, typically between 0 and 1.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RewardRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Invalid reward request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Events_Reward request": {
+ "$ref": "./examples/Events_Reward.json"
+ }
+ }
+ }
+ },
+ "/events/{eventId}/activate": {
+ "post": {
+ "tags": [
+ "Events"
+ ],
+ "summary": "Activate Event.",
+ "description": "Report that the specified event was actually used (e.g. by being displayed to the user) and a reward should be expected for it.",
+ "operationId": "Events_Activate",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "eventId",
+ "description": "The event ID to be activated.",
+ "required": true,
+ "type": "string",
+ "maxLength": 256
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Invalid activate event request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Events_Activate request": {
+ "$ref": "./examples/Events_Activate.json"
+ }
+ }
+ }
+ },
+ "/logs": {
+ "delete": {
+ "tags": [
+ "Logs"
+ ],
+ "summary": "Deletes Logs.",
+ "description": "Delete all logs of Rank and Reward calls stored by Personalizer.",
+ "operationId": "Log_Delete",
+ "responses": {
+ "204": {
+ "description": "Success"
+ }
+ },
+ "x-ms-examples": {
+ "Successful Log_Delete request": {
+ "$ref": "./examples/Log_Delete.json"
+ }
+ }
+ }
+ },
+ "/logs/properties": {
+ "get": {
+ "tags": [
+ "Logs"
+ ],
+ "summary": "Get Log Properties.",
+ "description": "Get properties of the Personalizer logs.",
+ "operationId": "Log_GetProperties",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/LogsProperties"
+ }
+ },
+ "default": {
+ "description": "Log properties not found.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Log_GetProperties request": {
+ "$ref": "./examples/Log_GetProperties.json"
+ }
+ }
+ }
+ },
+ "/model": {
+ "get": {
+ "tags": [
+ "Model"
+ ],
+ "summary": "Get Model.",
+ "description": "Get the model file generated by Personalizer service.",
+ "operationId": "Model_Get",
+ "produces": [
+ "application/octet-stream"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "type": "file"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Model_Get request": {
+ "$ref": "./examples/Model_Get.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Model"
+ ],
+ "summary": "Reset Model.",
+ "description": "Resets the model file generated by Personalizer service.",
+ "operationId": "Model_Reset",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Model reset failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Model_Reset request": {
+ "$ref": "./examples/Model_Reset.json"
+ }
+ }
+ }
+ },
+ "/model/properties": {
+ "get": {
+ "tags": [
+ "Model"
+ ],
+ "summary": "Get Model Properties.",
+ "description": "Get properties of the model file generated by Personalizer service.",
+ "operationId": "Model_GetProperties",
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ModelProperties"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Model_GetProperties request": {
+ "$ref": "./examples/Model_GetProperties.json"
+ }
+ }
+ }
+ },
+ "/multislot/events/{eventId}/reward": {
+ "post": {
+ "tags": [
+ "MultiSlotEvents"
+ ],
+ "summary": "Post multi-slot Rewards.",
+ "description": "Report reward that resulted from using the action specified in rewardActionId for the slot.",
+ "operationId": "MultiSlotEvents_Reward",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "eventId",
+ "description": "The event id this reward applies to.",
+ "required": true,
+ "type": "string",
+ "maxLength": 256
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "List of slot id and reward values. The reward should be a floating point number, typically between 0 and 1.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MultiSlotRewardRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Invalid reward request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful MultiSlotEvents_Reward request": {
+ "$ref": "./examples/MultiSlotEvents_Reward.json"
+ }
+ }
+ }
+ },
+ "/multislot/events/{eventId}/activate": {
+ "post": {
+ "tags": [
+ "MultiSlotEvents"
+ ],
+ "summary": "Activate multi-slot Event.",
+ "description": "Report that the specified event was actually used or displayed to the user and a rewards should be expected for it.",
+ "operationId": "MultiSlotEvents_Activate",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "eventId",
+ "description": "The event ID this activation applies to.",
+ "required": true,
+ "type": "string",
+ "maxLength": 256
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Invalid activate event request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful MultiSlotEvents_Activate request": {
+ "$ref": "./examples/MultiSlotEvents_Activate.json"
+ }
+ }
+ }
+ },
+ "/multislot/rank": {
+ "post": {
+ "tags": [
+ "MultiSlotRank"
+ ],
+ "summary": "Post multi-slot Rank.",
+ "description": "Submit a Personalizer multi-slot rank request. Receives a context, a list of actions, and a list of slots. Returns which of the provided actions should be used in each slot, in each rewardActionId.",
+ "operationId": "MultiSlot_Rank",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "body",
+ "description": "A Personalizer multi-slot Rank request.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MultiSlotRankRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/MultiSlotRankResponse"
+ }
+ },
+ "default": {
+ "description": "Invalid request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful MultiSlot_Rank request": {
+ "$ref": "./examples/MultiSlot_Rank.json"
+ }
+ }
+ }
+ },
+ "/rank": {
+ "post": {
+ "tags": [
+ "Rank"
+ ],
+ "summary": "Post Rank.",
+ "description": "Submit a Personalizer rank request. Receives a context and a list of actions. Returns which of the provided actions should be used by your application, in rewardActionId.",
+ "operationId": "Rank",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "rankRequest",
+ "description": "A Personalizer Rank request.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RankRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/RankResponse"
+ }
+ },
+ "default": {
+ "description": "Invalid request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Rank request": {
+ "$ref": "./examples/Rank.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ApprenticeLearningMetrics": {
+ "required": [
+ "numberOfEvents",
+ "numberOfImitatedEvents",
+ "sumOfImitatedRewards",
+ "sumOfRewards"
+ ],
+ "type": "object",
+ "properties": {
+ "numberOfEvents": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "sumOfRewards": {
+ "format": "float",
+ "type": "number"
+ },
+ "numberOfImitatedEvents": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "sumOfImitatedRewards": {
+ "format": "float",
+ "type": "number"
+ }
+ }
+ },
+ "ApprenticeModeMetrics": {
+ "required": [
+ "lastProcessedEventTime",
+ "numberOfEvents",
+ "numberOfImitatedEvents",
+ "startTime",
+ "sumOfImitatedRewards",
+ "sumOfRewards"
+ ],
+ "type": "object",
+ "properties": {
+ "startTime": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "lastProcessedEventTime": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "lastBatchMetrics": {
+ "$ref": "#/definitions/ApprenticeLearningMetrics"
+ },
+ "numberOfEvents": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "sumOfRewards": {
+ "format": "float",
+ "type": "number"
+ },
+ "numberOfImitatedEvents": {
+ "format": "int64",
+ "type": "integer"
+ },
+ "sumOfImitatedRewards": {
+ "format": "float",
+ "type": "number"
+ }
+ }
+ },
+ "ServiceConfiguration": {
+ "description": "The configuration of the service.",
+ "required": [
+ "defaultReward",
+ "explorationPercentage",
+ "logRetentionDays",
+ "modelExportFrequency",
+ "rewardAggregation",
+ "rewardWaitTime"
+ ],
+ "type": "object",
+ "properties": {
+ "rewardWaitTime": {
+ "format": "duration",
+ "description": "The time span waited until a request is marked with the default reward\r\nand should be between 5 seconds and 2 days.\r\nFor example, PT5M (5 mins). For information about the time format,\r\nsee http://en.wikipedia.org/wiki/ISO_8601#Durations",
+ "type": "string"
+ },
+ "defaultReward": {
+ "format": "float",
+ "description": "The reward given if a reward is not received within the specified wait time.",
+ "maximum": 1,
+ "minimum": -1,
+ "type": "number"
+ },
+ "rewardAggregation": {
+ "description": "The function used to process rewards, if multiple reward scores are received before rewardWaitTime is over.",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "explorationPercentage": {
+ "format": "float",
+ "description": "The percentage of rank responses that will use exploration.",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "modelExportFrequency": {
+ "format": "duration",
+ "description": "Personalizer will start using the most updated trained model for online ranks automatically every specified time period.\r\nFor example, PT5M (5 mins). For information about the time format,\r\nsee http://en.wikipedia.org/wiki/ISO_8601#Durations",
+ "type": "string"
+ },
+ "logMirrorEnabled": {
+ "description": "Flag indicates whether log mirroring is enabled.",
+ "type": "boolean"
+ },
+ "logMirrorSasUri": {
+ "description": "Azure storage account container SAS URI for log mirroring.",
+ "type": "string"
+ },
+ "logRetentionDays": {
+ "format": "int32",
+ "description": "Number of days historical logs are to be maintained. -1 implies the logs will never be deleted.",
+ "maximum": 2147483647,
+ "minimum": -1,
+ "type": "integer"
+ },
+ "lastConfigurationEditDate": {
+ "format": "date-time",
+ "description": "Last time model training configuration was updated",
+ "type": "string"
+ },
+ "learningMode": {
+ "description": "Learning Modes for Personalizer",
+ "enum": [
+ "Online",
+ "Apprentice",
+ "LoggingOnly"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "LearningMode",
+ "modelAsString": true
+ }
+ },
+ "latestApprenticeModeMetrics": {
+ "$ref": "#/definitions/ApprenticeModeMetrics"
+ },
+ "isAutoOptimizationEnabled": {
+ "description": "Flag indicating whether Personalizer will automatically optimize Learning Settings by running Offline Evaluations periodically.",
+ "type": "boolean"
+ },
+ "autoOptimizationFrequency": {
+ "format": "duration",
+ "description": "Frequency of automatic optimization. Only relevant if IsAutoOptimizationEnabled is true.\r\nFor example, PT5M (5 mins). For information about the time format,\r\n\\r\\nsee http://en.wikipedia.org/wiki/ISO_8601#Durations",
+ "type": "string"
+ },
+ "autoOptimizationStartDate": {
+ "format": "date-time",
+ "description": "Date when the first automatic optimization evaluation must be performed. Only relevant if IsAutoOptimizationEnabled is true.",
+ "type": "string"
+ }
+ }
+ },
+ "InternalError": {
+ "description": "An object containing more specific information than the parent object about the error.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Detailed error code.",
+ "type": "string"
+ },
+ "innererror": {
+ "$ref": "#/definitions/InternalError"
+ }
+ }
+ },
+ "PersonalizerError": {
+ "description": "The error object.",
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Error Codes returned by Personalizer",
+ "enum": [
+ "BadRequest",
+ "InvalidServiceConfiguration",
+ "InvalidLearningModeServiceConfiguration",
+ "InvalidPolicyConfiguration",
+ "InvalidPolicyContract",
+ "InvalidEvaluationContract",
+ "DuplicateCustomPolicyNames",
+ "NoLogsExistInDateRange",
+ "LogsSizeExceedAllowedLimit",
+ "InvalidRewardRequest",
+ "InvalidEventIdToActivate",
+ "InvalidRankRequest",
+ "InvalidExportLogsRequest",
+ "InvalidContainer",
+ "InvalidModelMetadata",
+ "ApprenticeModeNeverTurnedOn",
+ "MissingAppId",
+ "InvalidRewardWaitTime",
+ "InvalidMultiSlotApiAccess",
+ "ModelFileAccessDenied",
+ "ProblemTypeIncompatibleWithAutoOptimization",
+ "ResourceNotFound",
+ "FrontEndNotFound",
+ "EvaluationNotFound",
+ "LearningSettingsNotFound",
+ "EvaluationModelNotFound",
+ "LogsPropertiesNotFound",
+ "ModelRankingError",
+ "InternalServerError",
+ "RankNullResponse",
+ "UpdateConfigurationFailed",
+ "ModelResetFailed",
+ "ModelPublishFailed",
+ "ModelMetadataUpdateFailed",
+ "OperationNotAllowed"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "PersonalizerErrorCode",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "BadRequest",
+ "description": "Request could not be understood by the server."
+ },
+ {
+ "value": "InvalidServiceConfiguration",
+ "description": "Invalid service configuration."
+ },
+ {
+ "value": "InvalidLearningModeServiceConfiguration",
+ "description": "Updating defaultReward, rewardWaitTime and rewardAggregation when changing learning mode from Online to Apprentice mode and vice versa is not allowed. Make the mode change and then change the additional settings with an additional API call."
+ },
+ {
+ "value": "InvalidPolicyConfiguration",
+ "description": "Invalid policy configuration."
+ },
+ {
+ "value": "InvalidPolicyContract",
+ "description": "Invalid policy contract."
+ },
+ {
+ "value": "InvalidEvaluationContract",
+ "description": "Invalid evaluation contract."
+ },
+ {
+ "value": "DuplicateCustomPolicyNames",
+ "description": "Custom policy names should be unique."
+ },
+ {
+ "value": "NoLogsExistInDateRange",
+ "description": "No logs exist in date range."
+ },
+ {
+ "value": "LogsSizeExceedAllowedLimit",
+ "description": "Total size of logs exceed allowed limit."
+ },
+ {
+ "value": "InvalidRewardRequest",
+ "description": "Invalid reward request."
+ },
+ {
+ "value": "InvalidEventIdToActivate",
+ "description": "Invalid activate event request."
+ },
+ {
+ "value": "InvalidRankRequest",
+ "description": "Invalid request."
+ },
+ {
+ "value": "InvalidExportLogsRequest",
+ "description": "Invalid request."
+ },
+ {
+ "value": "InvalidContainer",
+ "description": "SAS Uri must be the Uri to a container that has write permissions."
+ },
+ {
+ "value": "InvalidModelMetadata",
+ "description": "Invalid model metadata."
+ },
+ {
+ "value": "ApprenticeModeNeverTurnedOn",
+ "description": "Apprentice mode never turned on."
+ },
+ {
+ "value": "MissingAppId",
+ "description": "AppId is missing in the header."
+ },
+ {
+ "value": "InvalidRewardWaitTime",
+ "description": "Reward wait time should be between 5 seconds and 2 days"
+ },
+ {
+ "value": "InvalidMultiSlotApiAccess",
+ "description": "Multi-slot feature is currently disabled. Please follow multi-slot Personalizer documentation to update your loop settings to enable multi-slot functionality."
+ },
+ {
+ "value": "ModelFileAccessDenied",
+ "description": "Key vault Key used for customer managed key cannot be accessed."
+ },
+ {
+ "value": "ProblemTypeIncompatibleWithAutoOptimization",
+ "description": "Auto-optimization is not compatible with multi-slot personalization."
+ },
+ {
+ "value": "ResourceNotFound",
+ "description": "Requested resource does not exist on the server."
+ },
+ {
+ "value": "FrontEndNotFound",
+ "description": "Front end not found."
+ },
+ {
+ "value": "EvaluationNotFound",
+ "description": "Offline Evaluation not found."
+ },
+ {
+ "value": "LearningSettingsNotFound",
+ "description": "Learning Settings not found in evaluation."
+ },
+ {
+ "value": "EvaluationModelNotFound",
+ "description": "Model not found in evaluation."
+ },
+ {
+ "value": "LogsPropertiesNotFound",
+ "description": "Log properties not found."
+ },
+ {
+ "value": "ModelRankingError",
+ "description": "Error while ranking actions using model. Please verify the learning settings are valid."
+ },
+ {
+ "value": "InternalServerError",
+ "description": "A generic error has occurred on the server."
+ },
+ {
+ "value": "RankNullResponse",
+ "description": "Rank call returned null response."
+ },
+ {
+ "value": "UpdateConfigurationFailed",
+ "description": "Failed to update configuration."
+ },
+ {
+ "value": "ModelResetFailed",
+ "description": "Model reset failed."
+ },
+ {
+ "value": "ModelPublishFailed",
+ "description": "Model publish failed."
+ },
+ {
+ "value": "ModelMetadataUpdateFailed",
+ "description": "Model metadata update failed."
+ },
+ {
+ "value": "OperationNotAllowed",
+ "description": "This operation is not allowed at this time."
+ }
+ ]
+ }
+ },
+ "message": {
+ "description": "A message explaining the error reported by the service.",
+ "type": "string"
+ },
+ "target": {
+ "description": "Error source element.",
+ "type": "string"
+ },
+ "details": {
+ "description": "An array of details about specific errors that led to this reported error.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PersonalizerError"
+ }
+ },
+ "innerError": {
+ "$ref": "#/definitions/InternalError"
+ }
+ }
+ },
+ "ErrorResponse": {
+ "description": "Used to return an error to the client",
+ "required": [
+ "error"
+ ],
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/PersonalizerError"
+ }
+ }
+ },
+ "PolicyContract": {
+ "description": "Learning settings specifying how to train the model.",
+ "required": [
+ "arguments",
+ "name"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the learning settings.",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "arguments": {
+ "description": "Arguments of the learning settings.",
+ "maxLength": 1024,
+ "type": "string"
+ }
+ }
+ },
+ "PolicyReferenceContract": {
+ "description": "Reference to the policy within the evaluation.",
+ "required": [
+ "evaluationId",
+ "policyName"
+ ],
+ "type": "object",
+ "properties": {
+ "evaluationId": {
+ "description": "Evaluation Id of the evaluation.",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "policyName": {
+ "description": "Name of the learning settings.",
+ "maxLength": 256,
+ "type": "string"
+ }
+ }
+ },
+ "PolicyResultSummary": {
+ "description": "This class contains the summary of evaluating a policy on a counterfactual evaluation.",
+ "type": "object",
+ "properties": {
+ "timeStamp": {
+ "format": "date-time",
+ "description": "Timestamp of the aggregation.",
+ "type": "string",
+ "readOnly": true
+ },
+ "ipsEstimatorNumerator": {
+ "format": "float",
+ "description": "Numerator for IPS estimator.",
+ "type": "number",
+ "readOnly": true
+ },
+ "ipsEstimatorDenominator": {
+ "format": "float",
+ "description": "Denominator for IPS estimator.",
+ "type": "number",
+ "readOnly": true
+ },
+ "snipsEstimatorDenominator": {
+ "format": "float",
+ "description": "Denominator for SNIPS estimator.",
+ "type": "number",
+ "readOnly": true
+ },
+ "aggregateTimeWindow": {
+ "format": "duration",
+ "description": "Time window for aggregation.\r\nFor example, PT5M (5 mins). For information about the time format,\r\nsee http://en.wikipedia.org/wiki/ISO_8601#Durations",
+ "type": "string",
+ "readOnly": true
+ },
+ "nonZeroProbability": {
+ "format": "float",
+ "description": "Probability of non-zero values for the Policy evaluation.",
+ "type": "number"
+ },
+ "sumOfSquares": {
+ "format": "float",
+ "description": "Sum of Squares for the Policy evaluation results.",
+ "type": "number",
+ "readOnly": true
+ },
+ "confidenceInterval": {
+ "format": "float",
+ "description": "Gaussian confidence interval for the Policy evaluation.",
+ "type": "number",
+ "readOnly": true
+ },
+ "averageReward": {
+ "format": "float",
+ "description": "Average reward.",
+ "type": "number",
+ "readOnly": true
+ }
+ }
+ },
+ "PolicyResult": {
+ "description": "This class contains the Learning Settings information and the results of the Offline Evaluation using that policy.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the Learning Settings.",
+ "type": "string",
+ "readOnly": true
+ },
+ "arguments": {
+ "description": "The arguments of the Learning Settings.",
+ "type": "string",
+ "readOnly": true
+ },
+ "policySource": {
+ "description": "The source of the Learning Settings.",
+ "enum": [
+ "Online",
+ "Baseline",
+ "Random",
+ "Custom",
+ "OfflineExperimentation"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "PolicySource",
+ "modelAsString": true
+ }
+ },
+ "summary": {
+ "description": "The aggregate results of the Offline Evaluation.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PolicyResultSummary"
+ },
+ "readOnly": true
+ },
+ "totalSummary": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/PolicyResultSummary"
+ }
+ ],
+ "readOnly": true
+ }
+ }
+ },
+ "Evaluation": {
+ "description": "A counterfactual evaluation.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The ID of the evaluation.",
+ "maxLength": 256,
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "The name of the evaluation.",
+ "maxLength": 256,
+ "type": "string",
+ "readOnly": true
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "The start time of the evaluation.",
+ "type": "string",
+ "readOnly": true
+ },
+ "endTime": {
+ "format": "date-time",
+ "description": "The end time of the evaluation.",
+ "type": "string",
+ "readOnly": true
+ },
+ "jobId": {
+ "description": "The ID of the job processing the evaluation.",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "The status of the job processing the evaluation.",
+ "enum": [
+ "completed",
+ "pending",
+ "failed",
+ "notSubmitted",
+ "timeout",
+ "optimalPolicyApplied",
+ "onlinePolicyRetained"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "EvaluationJobStatus",
+ "modelAsString": true
+ }
+ },
+ "policyResults": {
+ "description": "The results of the evaluation.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PolicyResult"
+ }
+ },
+ "featureImportance": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "evaluationType": {
+ "enum": [
+ "Manual",
+ "Auto"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "EvaluationType",
+ "modelAsString": true
+ }
+ },
+ "optimalPolicy": {
+ "type": "string"
+ },
+ "creationTime": {
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ },
+ "EvaluationContract": {
+ "description": "A counterfactual evaluation.",
+ "required": [
+ "endTime",
+ "name",
+ "policies",
+ "startTime"
+ ],
+ "type": "object",
+ "properties": {
+ "enableOfflineExperimentation": {
+ "description": "True if the evaluation should explore for a more optimal learning settings.",
+ "type": "boolean"
+ },
+ "name": {
+ "description": "The name of the evaluation.",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "The start time of the evaluation.",
+ "type": "string"
+ },
+ "endTime": {
+ "format": "date-time",
+ "description": "The end time of the evaluation.",
+ "type": "string"
+ },
+ "policies": {
+ "description": "Additional learning settings to evaluate.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PolicyContract"
+ }
+ }
+ }
+ },
+ "RewardRequest": {
+ "description": "Reward given to a rank response.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "format": "float",
+ "description": "Reward to be assigned to an action. Value is a float calculated by your application, typically between 0 and 1, and must be between -1 and 1.",
+ "type": "number"
+ }
+ }
+ },
+ "DateRange": {
+ "description": "A date range starting at From and ending at To.",
+ "type": "object",
+ "properties": {
+ "from": {
+ "format": "date-time",
+ "description": "Start date for the range.",
+ "type": "string",
+ "readOnly": true
+ },
+ "to": {
+ "format": "date-time",
+ "description": "End date for the range.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "LogsProperties": {
+ "description": "Properties related to data used to train the model.",
+ "type": "object",
+ "properties": {
+ "dateRange": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/DateRange"
+ }
+ ],
+ "readOnly": true
+ }
+ }
+ },
+ "ModelProperties": {
+ "description": "Properties related to the trained model.",
+ "type": "object",
+ "properties": {
+ "creationTime": {
+ "format": "date-time",
+ "description": "Creation time of the model.",
+ "type": "string",
+ "readOnly": true
+ },
+ "lastModifiedTime": {
+ "format": "date-time",
+ "description": "Last time the model was modified.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "SlotReward": {
+ "required": [
+ "slotId",
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "slotId": {
+ "description": "Slot id for which we are sending the reward.",
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "value": {
+ "format": "float",
+ "description": "Reward to be assigned to slotId. Value should be between -1 and 1 inclusive.",
+ "type": "number"
+ }
+ }
+ },
+ "MultiSlotRewardRequest": {
+ "description": "Reward given to a list of slots.",
+ "required": [
+ "reward"
+ ],
+ "type": "object",
+ "properties": {
+ "reward": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SlotReward"
+ }
+ }
+ }
+ },
+ "RankableAction": {
+ "description": "An action with its associated features used for ranking.",
+ "required": [
+ "features",
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Id of the action.",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "features": {
+ "description": "List of dictionaries containing features.",
+ "type": "array",
+ "items": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ "SlotRequest": {
+ "description": "A slot with it's associated features and list of excluded actions",
+ "required": [
+ "baselineAction",
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Slot ID",
+ "type": "string"
+ },
+ "features": {
+ "description": "List of dictionaries containing slot features.",
+ "type": "array",
+ "items": {
+ "type": "object"
+ }
+ },
+ "excludedActions": {
+ "description": "List of excluded action Ids.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "baselineAction": {
+ "description": "The 'baseline action' ID for the slot.\r\nThe BaselineAction is the Id of the Action your application would use in that slot if Personalizer didn't exist.\r\nBaselineAction must be defined for every slot.\r\nBaselineAction should never be part of ExcludedActions.\r\nEach slot must have a unique BaselineAction which corresponds to an an action from the event's Actions list.",
+ "type": "string"
+ }
+ }
+ },
+ "MultiSlotRankRequest": {
+ "required": [
+ "actions",
+ "slots"
+ ],
+ "type": "object",
+ "properties": {
+ "contextFeatures": {
+ "description": "Features of the context used for Personalizer as a\r\ndictionary of dictionaries. This is determined by your application, and\r\ntypically includes features about the current user, their\r\ndevice, profile information, aggregated data about time and date, etc.\r\nFeatures should not include personally identifiable information (PII),\r\nunique UserIDs, or precise timestamps.",
+ "type": "array",
+ "items": {
+ "type": "object"
+ }
+ },
+ "actions": {
+ "description": "The set of actions the Personalizer service can pick from.\r\nThe set should not contain more than 50 actions.\r\nThe order of the actions does not affect the rank result but the order\r\nshould match the sequence your application would have used to display them.\r\nThe first item in the array will be used as Baseline item in Offline Evaluations.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RankableAction"
+ }
+ },
+ "slots": {
+ "description": "The set of slots the Personalizer service should select actions for.\r\nThe set should not contain more than 50 slots.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SlotRequest"
+ }
+ },
+ "eventId": {
+ "description": "Optionally pass an eventId that uniquely identifies this Rank event.\r\nIf null, the service generates a unique eventId. The eventId will be used for\r\nassociating this request with its reward, as well as seeding the pseudo-random\r\ngenerator when making a Personalizer call.",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "deferActivation": {
+ "description": "Send false if it is certain the rewardActionId in rank results will be shown to the user, therefore\r\nPersonalizer will expect a Reward call, otherwise it will assign the default\r\nReward to the event. Send true if it is possible the user will not see the action specified in the rank results,\r\n(e.g. because the page is rendering later, or the Rank results may be overridden by code further downstream).\r\nYou must call the Activate Event API if the event output is shown to users, otherwise Rewards will be ignored.",
+ "default": false,
+ "type": "boolean"
+ }
+ }
+ },
+ "SlotResponse": {
+ "required": [
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Id is the slot ID.",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "rewardActionId": {
+ "description": "RewardActionID is the action ID recommended by Personalizer.",
+ "maxLength": 256,
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "MultiSlotRankResponse": {
+ "type": "object",
+ "properties": {
+ "slots": {
+ "description": "Each slot has a corresponding rewardActionID which is the action ID recommended by Personalizer.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SlotResponse"
+ },
+ "readOnly": true
+ },
+ "eventId": {
+ "description": "The eventId for the round trip from request to response.",
+ "maxLength": 256,
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "RankRequest": {
+ "description": "Request a set of actions to be ranked by the Personalizer service.",
+ "required": [
+ "actions"
+ ],
+ "type": "object",
+ "properties": {
+ "contextFeatures": {
+ "description": "Features of the context used for Personalizer as a\r\ndictionary of dictionaries. This is determined by your application, and\r\ntypically includes features about the current user, their\r\ndevice, profile information, aggregated data about time and date, etc.\r\nFeatures should not include personally identifiable information (PII),\r\nunique UserIDs, or precise timestamps.",
+ "type": "array",
+ "items": {
+ "type": "object"
+ }
+ },
+ "actions": {
+ "description": "The set of actions the Personalizer service can pick from.\r\nThe set should not contain more than 50 actions.\r\nThe order of the actions does not affect the rank result but the order\r\nshould match the sequence your application would have used to display them.\r\nThe first item in the array will be used as Baseline item in Offline Evaluations.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RankableAction"
+ }
+ },
+ "excludedActions": {
+ "description": "The set of action ids to exclude from ranking.\r\nPersonalizer will consider the first non-excluded item in the array as the Baseline action when performing Offline Evaluations.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "eventId": {
+ "description": "Optionally pass an eventId that uniquely identifies this Rank event.\r\nIf null, the service generates a unique eventId. The eventId will be used for\r\nassociating this request with its reward, as well as seeding the pseudo-random\r\ngenerator when making a Personalizer call.",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "deferActivation": {
+ "description": "Send false if it is certain the rewardActionId in rank results will be shown to the user, therefore\r\nPersonalizer will expect a Reward call, otherwise it will assign the default\r\nReward to the event. Send true if it is possible the user will not see the action specified in the rank results,\r\n(e.g. because the page is rendering later, or the Rank results may be overridden by code further downstream).\r\nYou must call the Activate Event API if the event output is shown to users, otherwise Rewards will be ignored.",
+ "default": false,
+ "type": "boolean"
+ }
+ }
+ },
+ "RankedAction": {
+ "description": "A ranked action with its resulting probability.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Id of the action",
+ "maxLength": 256,
+ "type": "string",
+ "readOnly": true
+ },
+ "probability": {
+ "format": "float",
+ "description": "Probability of the action",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number",
+ "readOnly": true
+ }
+ }
+ },
+ "RankResponse": {
+ "description": "Returns which action to use as rewardActionId, and additional information about each action as a result of a Rank request.",
+ "type": "object",
+ "properties": {
+ "ranking": {
+ "description": "The calculated ranking for the current request.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RankedAction"
+ },
+ "readOnly": true
+ },
+ "eventId": {
+ "description": "The eventId for the round trip from request to response.",
+ "maxLength": 256,
+ "type": "string",
+ "readOnly": true
+ },
+ "rewardActionId": {
+ "description": "The action chosen by the Personalizer service.\r\nThis is the action your application should display, and for which to report the reward.\r\nThis might not be the first found in 'ranking'.",
+ "maxLength": 256,
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ServiceStatus": {
+ "type": "object",
+ "properties": {
+ "service": {
+ "type": "string"
+ },
+ "apiStatus": {
+ "type": "string"
+ },
+ "apiStatusMessage": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "Endpoint": {
+ "in": "path",
+ "name": "Endpoint",
+ "description": "Supported Cognitive Services endpoint.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "client",
+ "x-ms-skip-url-encoding": true
+ }
+ },
+ "securityDefinitions": {
+ "apim_key": {
+ "type": "apiKey",
+ "name": "Ocp-Apim-Subscription-Key",
+ "in": "header"
+ }
+ },
+ "security": [
+ {
+ "apim_key": []
+ }
+ ],
+ "tags": [
+ {
+ "name": "ConfigurationsV1Dot1Preview1",
+ "description": "Manages configuration operations."
+ },
+ {
+ "name": "EvaluationsV1Dot1Preview1",
+ "description": "Manages counterfactual evaluation operations."
+ },
+ {
+ "name": "MultiSlotEvents",
+ "description": "Manages multi-slot event operations."
+ },
+ {
+ "name": "MultiSlotRank",
+ "description": "Manages multi-slot ranking operations."
+ },
+ {
+ "name": "Events",
+ "description": "Manages event operations."
+ },
+ {
+ "name": "Logs",
+ "description": "Manages reinforcement learning logs."
+ },
+ {
+ "name": "Model",
+ "description": "Manages reinforcement learning configuration operations."
+ },
+ {
+ "name": "Rank",
+ "description": "Manages ranking operations."
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{Endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluation_Apply.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluation_Apply.json
new file mode 100644
index 000000000000..17b6122af1f9
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluation_Apply.json
@@ -0,0 +1,13 @@
+{
+ "responses": {
+ "204": {}
+ },
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "body": {
+ "evaluationId": "b58c6d92-b727-48c1-9487-4be2782c9e0a",
+ "policyName": "online"
+ },
+ "Ocp-Apim-Subscription-Key": "{API key}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluations_Create.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluations_Create.json
new file mode 100644
index 000000000000..59151af299b1
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluations_Create.json
@@ -0,0 +1,43 @@
+{
+ "responses": {
+ "201": {
+ "headers": {
+ "Location": "{endpoint}/personalizer/v1.1-preview.1/evaluations/{evaluationId}"
+ },
+ "body": {
+ "id": "b58c6d92-b727-48c1-9487-4be2782c9e0a",
+ "name": "myFirstEvaluation",
+ "startTime": "2018-12-19T00:00:00Z",
+ "endTime": "2019-01-19T00:00:00Z",
+ "status": "pending",
+ "policyResults": [
+ {
+ "name": "Custom learning settings 1",
+ "arguments": "--cb_explore_adf --epsilon 0.2 --dsjson --cb_type ips -l 0.5 --l1 1E-07 --power_t 0.5",
+ "policySource": "Online"
+ }
+ ],
+ "featureImportance": [],
+ "evaluationType": "Manual",
+ "optimalPolicy": "",
+ "creationTime": "2019-01-20T00:00:00Z"
+ }
+ }
+ },
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "evaluation": {
+ "enableOfflineExperimentation": true,
+ "name": "myFirstEvaluation",
+ "startTime": "2018-12-19T00:00:00Z",
+ "endTime": "2019-01-19T00:00:00Z",
+ "policies": [
+ {
+ "name": "Custom learning settings 1",
+ "arguments": "--cb_explore_adf --epsilon 0.2 --dsjson --cb_type ips -l 0.5 --l1 1E-07 --power_t 0.5"
+ }
+ ]
+ },
+ "Ocp-Apim-Subscription-Key": "{API key}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluations_Delete.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluations_Delete.json
new file mode 100644
index 000000000000..1b8773e08e38
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluations_Delete.json
@@ -0,0 +1,10 @@
+{
+ "responses": {
+ "204": {}
+ },
+ "parameters": {
+ "evaluationId": "id",
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluations_Get.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluations_Get.json
new file mode 100644
index 000000000000..11eb9fc459e3
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluations_Get.json
@@ -0,0 +1,74 @@
+{
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "b58c6d92-b727-48c1-9487-4be2782c9e0a",
+ "name": "myFirstEvaluation",
+ "startTime": "2018-12-19T00:00:00Z",
+ "endTime": "2019-01-19T00:00:00Z",
+ "status": "completed",
+ "policyResults": [
+ {
+ "name": "Custom learning settings 1",
+ "arguments": "--cb_explore_adf --epsilon 0.2 --dsjson --cb_type ips -l 0.5 --l1 1E-07 --power_t 0.5",
+ "policySource": "Custom",
+ "summary": [
+ {
+ "timeStamp": "2018-12-19T00:00:00Z",
+ "ipsEstimatorNumerator": 0.0,
+ "ipsEstimatorDenominator": 170.0,
+ "snipsEstimatorDenominator": 308.25,
+ "aggregateTimeWindow": "PT0S",
+ "nonZeroProbability": 64.0,
+ "sumOfSquares": 0.0,
+ "confidenceInterval": 0.0,
+ "averageReward": 0.0
+ },
+ {
+ "timeStamp": "2018-12-19T00:05:00Z",
+ "ipsEstimatorNumerator": 2.2,
+ "ipsEstimatorDenominator": 196.0,
+ "snipsEstimatorDenominator": 193.761,
+ "aggregateTimeWindow": "PT0S",
+ "nonZeroProbability": 68.0,
+ "sumOfSquares": 2.424,
+ "confidenceInterval": 0.015529361,
+ "averageReward": 0.01122449
+ }
+ ],
+ "totalSummary": {
+ "timeStamp": "2019-01-19T00:00:00Z",
+ "ipsEstimatorNumerator": 22.2,
+ "ipsEstimatorDenominator": 1906.0,
+ "snipsEstimatorDenominator": 1993.761,
+ "aggregateTimeWindow": "PT0S",
+ "nonZeroProbability": 68.0,
+ "sumOfSquares": 2.484,
+ "confidenceInterval": 0.0015344538,
+ "averageReward": 0.011647429
+ }
+ }
+ ],
+ "featureImportance": [
+ [
+ "f1",
+ "f2"
+ ],
+ [
+ "f3",
+ "f4"
+ ]
+ ],
+ "evaluationType": "Manual",
+ "optimalPolicy": "Custom learning settings 1",
+ "creationTime": "2019-01-20T00:00:00Z"
+ }
+ }
+ },
+ "parameters": {
+ "evaluationId": "id",
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluations_List.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluations_List.json
new file mode 100644
index 000000000000..18fe22e94bf8
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Evaluations_List.json
@@ -0,0 +1,54 @@
+{
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "id": "b58c6d92-b727-48c1-9487-4be2782c9e0a",
+ "name": "myFirstEvaluation",
+ "startTime": "2018-11-19T00:00:00Z",
+ "endTime": "2018-12-19T00:00:00Z",
+ "status": "completed",
+ "policyResults": [
+ {
+ "name": "Custom learning settings 1",
+ "arguments": "--cb_explore_adf --epsilon 0.2 --dsjson --cb_type ips -l 0.5 --l1 1E-07 --power_t 0.5",
+ "policySource": "Online",
+ "totalSummary": {
+ "timeStamp": "2018-12-19T00:00:00Z",
+ "ipsEstimatorNumerator": 18.0,
+ "ipsEstimatorDenominator": 36.0,
+ "snipsEstimatorDenominator": 1.0,
+ "aggregateTimeWindow": "PT0S",
+ "nonZeroProbability": 1.1,
+ "sumOfSquares": 12.28,
+ "confidenceInterval": 0.100001775,
+ "averageReward": 0.5
+ }
+ }
+ ],
+ "featureImportance": [],
+ "evaluationType": "Manual",
+ "optimalPolicy": "Custom learning settings 1",
+ "creationTime": "2019-01-19T00:00:00Z"
+ },
+ {
+ "id": "21d03972-9130-4be9-8c8b-8ac3ec9b9dd1",
+ "name": "mySecondEvaluation",
+ "startTime": "2018-12-19T00:00:00Z",
+ "endTime": "2019-01-19T00:00:00Z",
+ "status": "pending",
+ "policyResults": [],
+ "featureImportance": [],
+ "evaluationType": "Manual",
+ "optimalPolicy": "",
+ "creationTime": "2019-01-19T00:00:00Z"
+ }
+ ]
+ }
+ },
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Events_Activate.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Events_Activate.json
new file mode 100644
index 000000000000..5ad279ba6d85
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Events_Activate.json
@@ -0,0 +1,10 @@
+{
+ "responses": {
+ "204": {}
+ },
+ "parameters": {
+ "eventId": "id",
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Events_Reward.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Events_Reward.json
new file mode 100644
index 000000000000..747305a2680f
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Events_Reward.json
@@ -0,0 +1,13 @@
+{
+ "responses": {
+ "204": {}
+ },
+ "parameters": {
+ "eventId": "id",
+ "Endpoint": "{Endpoint}",
+ "reward": {
+ "value": 1.0
+ },
+ "Ocp-Apim-Subscription-Key": "{API key}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Log_Delete.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Log_Delete.json
new file mode 100644
index 000000000000..3e1ff333b3b9
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Log_Delete.json
@@ -0,0 +1,9 @@
+{
+ "responses": {
+ "204": {}
+ },
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Log_GetProperties.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Log_GetProperties.json
new file mode 100644
index 000000000000..001264140641
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Log_GetProperties.json
@@ -0,0 +1,17 @@
+{
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "dateRange": {
+ "from": "2019-01-18T16:00:00-08:00",
+ "to": "2019-02-18T16:00:00-08:00"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Model_Get.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Model_Get.json
new file mode 100644
index 000000000000..97276daa2c84
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Model_Get.json
@@ -0,0 +1,12 @@
+{
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": ""
+ }
+ },
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Model_GetProperties.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Model_GetProperties.json
new file mode 100644
index 000000000000..b6e1f1c38d8a
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Model_GetProperties.json
@@ -0,0 +1,15 @@
+{
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "creationTime": "2019-01-18T16:00:00-08:00",
+ "lastModifiedTime": "2019-01-18T16:00:00-08:00"
+ }
+ }
+ },
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Model_Reset.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Model_Reset.json
new file mode 100644
index 000000000000..3e1ff333b3b9
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Model_Reset.json
@@ -0,0 +1,9 @@
+{
+ "responses": {
+ "204": {}
+ },
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/MultiSlotEvents_Activate.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/MultiSlotEvents_Activate.json
new file mode 100644
index 000000000000..5ad279ba6d85
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/MultiSlotEvents_Activate.json
@@ -0,0 +1,10 @@
+{
+ "responses": {
+ "204": {}
+ },
+ "parameters": {
+ "eventId": "id",
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/MultiSlotEvents_Reward.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/MultiSlotEvents_Reward.json
new file mode 100644
index 000000000000..ce9f5ef2badd
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/MultiSlotEvents_Reward.json
@@ -0,0 +1,22 @@
+{
+ "responses": {
+ "204": {}
+ },
+ "parameters": {
+ "eventId": "id",
+ "Endpoint": "{Endpoint}",
+ "body": {
+ "reward": [
+ {
+ "slotId": "Heroposition",
+ "value": 0.5
+ },
+ {
+ "slotId": "SideBar",
+ "value": 0.6
+ }
+ ]
+ },
+ "Ocp-Apim-Subscription-Key": "{API key}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/MultiSlot_Rank.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/MultiSlot_Rank.json
new file mode 100644
index 000000000000..5d8cd1ec1db2
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/MultiSlot_Rank.json
@@ -0,0 +1,104 @@
+{
+ "responses": {
+ "201": {
+ "headers": {},
+ "body": {
+ "slots": [
+ {
+ "id": "Main Article",
+ "rewardActionId": "EntertainmentArticle"
+ },
+ {
+ "id": "Side Bar",
+ "rewardActionId": "SportsArticle"
+ }
+ ],
+ "eventId": "75269AD0-BFEE-4598-8196-C57383D38E10"
+ }
+ }
+ },
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "body": {
+ "contextFeatures": [
+ {
+ "user": {
+ "profileType": "AnonymousUser",
+ "latLong": "47.6,-122.1"
+ }
+ },
+ {
+ "environment": {
+ "dayOfMonth": "28",
+ "monthOfYear": "8",
+ "weather": "Sunny"
+ }
+ },
+ {
+ "device": {
+ "mobile": true,
+ "windows": true
+ }
+ },
+ {
+ "recentActivity": {
+ "itemsInCart": 3
+ }
+ }
+ ],
+ "actions": [
+ {
+ "id": "NewsArticle",
+ "features": [
+ {
+ "type": "News"
+ }
+ ]
+ },
+ {
+ "id": "SportsArticle",
+ "features": [
+ {
+ "type": "Sports"
+ }
+ ]
+ },
+ {
+ "id": "EntertainmentArticle",
+ "features": [
+ {
+ "type": "Entertainment"
+ }
+ ]
+ }
+ ],
+ "slots": [
+ {
+ "id": "Main Article",
+ "features": [
+ {
+ "size": "Large",
+ "position": "Top Middle"
+ }
+ ],
+ "excludedActions": [
+ "SportsArticle"
+ ],
+ "baselineAction": "EntertainmentArticle"
+ },
+ {
+ "id": "Side Bar",
+ "features": [
+ {
+ "size": "Small"
+ }
+ ],
+ "baselineAction": "NewsArticle"
+ }
+ ],
+ "eventId": "75269AD0-BFEE-4598-8196-C57383D38E10",
+ "deferActivation": false
+ },
+ "Ocp-Apim-Subscription-Key": "{API key}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Policy_Get.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Policy_Get.json
new file mode 100644
index 000000000000..a59c927b68dd
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Policy_Get.json
@@ -0,0 +1,15 @@
+{
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "name": "myPersonalizer",
+ "arguments": "--cb_explore_adf --epsilon 0.2 --dsjson --cb_type ips -l 0.5 --l1 1E-07 --power_t 0.5"
+ }
+ }
+ },
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Policy_Reset.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Policy_Reset.json
new file mode 100644
index 000000000000..a59c927b68dd
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Policy_Reset.json
@@ -0,0 +1,15 @@
+{
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "name": "myPersonalizer",
+ "arguments": "--cb_explore_adf --epsilon 0.2 --dsjson --cb_type ips -l 0.5 --l1 1E-07 --power_t 0.5"
+ }
+ }
+ },
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Policy_Update.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Policy_Update.json
new file mode 100644
index 000000000000..00236ae7214a
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Policy_Update.json
@@ -0,0 +1,19 @@
+{
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "name": "myPersonalizer",
+ "arguments": "--cb_explore_adf --epsilon 0.2 --dsjson --cb_type ips -l 0.5 --l1 1E-07 --power_t 0.5"
+ }
+ }
+ },
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "policy": {
+ "name": "myPersonalizer",
+ "arguments": "--cb_explore_adf --epsilon 0.2 --dsjson --cb_type ips -l 0.5 --l1 1E-07 --power_t 0.5"
+ },
+ "Ocp-Apim-Subscription-Key": "{API key}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Rank.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Rank.json
new file mode 100644
index 000000000000..a3fd69260990
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/Rank.json
@@ -0,0 +1,88 @@
+{
+ "responses": {
+ "201": {
+ "headers": {},
+ "body": {
+ "ranking": [
+ {
+ "id": "EntertainmentArticle",
+ "probability": 0.8
+ },
+ {
+ "id": "SportsArticle",
+ "probability": 0.0
+ },
+ {
+ "id": "NewsArticle",
+ "probability": 0.2
+ }
+ ],
+ "eventId": "75269AD0-BFEE-4598-8196-C57383D38E10",
+ "rewardActionId": "EntertainmentArticle"
+ }
+ }
+ },
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "rankRequest": {
+ "contextFeatures": [
+ {
+ "user": {
+ "profileType": "AnonymousUser",
+ "latLong": "47.6,-122.1"
+ }
+ },
+ {
+ "environment": {
+ "dayOfMonth": "28",
+ "monthOfYear": "8",
+ "weather": "Sunny"
+ }
+ },
+ {
+ "device": {
+ "mobile": true,
+ "windows": true
+ }
+ },
+ {
+ "recentActivity": {
+ "itemsInCart": 3
+ }
+ }
+ ],
+ "actions": [
+ {
+ "id": "NewsArticle",
+ "features": [
+ {
+ "type": "News"
+ }
+ ]
+ },
+ {
+ "id": "SportsArticle",
+ "features": [
+ {
+ "type": "Sports"
+ }
+ ]
+ },
+ {
+ "id": "EntertainmentArticle",
+ "features": [
+ {
+ "type": "Entertainment"
+ }
+ ]
+ }
+ ],
+ "excludedActions": [
+ "SportsArticle"
+ ],
+ "eventId": "75269AD0-BFEE-4598-8196-C57383D38E10",
+ "deferActivation": false
+ },
+ "Ocp-Apim-Subscription-Key": "{API key}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/ServiceConfiguration_Get.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/ServiceConfiguration_Get.json
new file mode 100644
index 000000000000..fd4a7629b683
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/ServiceConfiguration_Get.json
@@ -0,0 +1,26 @@
+{
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "rewardWaitTime": "PT10M",
+ "defaultReward": 0.0,
+ "rewardAggregation": "earliest",
+ "explorationPercentage": 0.2,
+ "modelExportFrequency": "PT5M",
+ "logMirrorEnabled": true,
+ "logMirrorSasUri": "https://testblob.blob.core.windows.net/container?se=2020-08-13T00%3A00Z&sp=rwl&spr=https&sv=2018-11-09&sr=c&sig=signature",
+ "logRetentionDays": 7,
+ "lastConfigurationEditDate": "0001-01-01T00:00:00Z",
+ "learningMode": "Online",
+ "isAutoOptimizationEnabled": true,
+ "autoOptimizationFrequency": "P7D",
+ "autoOptimizationStartDate": "2019-01-19T00:00:00Z"
+ }
+ }
+ },
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/ServiceConfiguration_Update.json b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/ServiceConfiguration_Update.json
new file mode 100644
index 000000000000..d7282c6809a4
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/Personalizer/preview/v1.1-preview.1/examples/ServiceConfiguration_Update.json
@@ -0,0 +1,41 @@
+{
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "rewardWaitTime": "PT10M",
+ "defaultReward": 0.0,
+ "rewardAggregation": "earliest",
+ "explorationPercentage": 0.2,
+ "modelExportFrequency": "PT5M",
+ "logMirrorEnabled": true,
+ "logMirrorSasUri": "https://testblob.blob.core.windows.net/container?se=2020-08-13T00%3A00Z&sp=rwl&spr=https&sv=2018-11-09&sr=c&sig=signature",
+ "logRetentionDays": 7,
+ "lastConfigurationEditDate": "0001-01-01T00:00:00Z",
+ "learningMode": "Online",
+ "isAutoOptimizationEnabled": true,
+ "autoOptimizationFrequency": "P7D",
+ "autoOptimizationStartDate": "2019-01-19T00:00:00Z"
+ }
+ }
+ },
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "config": {
+ "rewardWaitTime": "PT10M",
+ "defaultReward": 0.0,
+ "rewardAggregation": "earliest",
+ "explorationPercentage": 0.2,
+ "modelExportFrequency": "PT5M",
+ "logMirrorEnabled": true,
+ "logMirrorSasUri": "https://testblob.blob.core.windows.net/container?se=2020-08-13T00%3A00Z&sp=rwl&spr=https&sv=2018-11-09&sr=c&sig=signature",
+ "logRetentionDays": 7,
+ "lastConfigurationEditDate": "0001-01-01T00:00:00Z",
+ "learningMode": "Online",
+ "isAutoOptimizationEnabled": true,
+ "autoOptimizationFrequency": "P7D",
+ "autoOptimizationStartDate": "2019-01-19T00:00:00Z"
+ },
+ "Ocp-Apim-Subscription-Key": "{API key}"
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/Personalizer/readme.md b/specification/cognitiveservices/data-plane/Personalizer/readme.md
index 888fcc5d55a7..612669f6ca1b 100644
--- a/specification/cognitiveservices/data-plane/Personalizer/readme.md
+++ b/specification/cognitiveservices/data-plane/Personalizer/readme.md
@@ -28,6 +28,14 @@ input-file:
- preview/v1.0/Personalizer.json
```
+### Release 1.0-Preview
+These settings apply only when `--tag=release_1_1_preview.1` is specified on the command line.
+
+``` yaml $(tag) == 'release_1_1_preview.1'
+input-file:
+ - preview/v1.1-preview.1/Personalizer.json
+```
+
## Swagger to SDK
This section describes what SDK should be generated by the automatic system.
diff --git a/specification/cognitiveservices/data-plane/QnAMaker/readme.md b/specification/cognitiveservices/data-plane/QnAMaker/readme.md
index c908d32475a4..e9fe9c5d81e9 100644
--- a/specification/cognitiveservices/data-plane/QnAMaker/readme.md
+++ b/specification/cognitiveservices/data-plane/QnAMaker/readme.md
@@ -74,7 +74,7 @@ These settings apply only when `--tag=release_5_0_preview.2` is specified on the
input-file: preview/v5.0-preview.2/QnAMaker.json
```
-``` yaml
+``` yaml $(multiapi)
batch:
- tag: release_4_0
- tag: runtime_release_4_0
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/TextAnalytics.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/TextAnalytics.json
new file mode 100644
index 000000000000..f45bd6164b6a
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/TextAnalytics.json
@@ -0,0 +1,2961 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "v3.1-preview.5",
+ "contact": {
+ "name": "Microsoft Cognitive Services",
+ "url": "https://azure.microsoft.com/en-us/services/cognitive-services/text-analytics/",
+ "email": "mlapi@microsoft.com"
+ },
+ "title": "Text Analytics Client",
+ "description": "The Text Analytics API is a suite of natural language processing (NLP) services built with best-in-class Microsoft machine learning algorithms. The API can be used to analyze unstructured text for tasks such as sentiment analysis, key phrase extraction and language detection. Functionality for analysis of text specific to the healthcare domain and personal information are also available in the API. Further documentation can be found in https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview"
+ },
+ "securityDefinitions": {
+ "apim_key": {
+ "type": "apiKey",
+ "name": "Ocp-Apim-Subscription-Key",
+ "in": "header"
+ }
+ },
+ "security": [
+ {
+ "apim_key": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{Endpoint}/text/analytics/v3.1-preview.5",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ },
+ "paths": {
+ "/analyze": {
+ "post": {
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "description": "Submit a collection of text documents for analysis. Specify one or more unique tasks to be executed.",
+ "operationId": "Analyze",
+ "summary": "Submit analysis job",
+ "parameters": [
+ {
+ "description": "Collection of documents to analyze and tasks to execute.",
+ "in": "body",
+ "name": "body",
+ "schema": {
+ "$ref": "#/definitions/AnalyzeBatchInput"
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "A successful call results with an Operation-Location header used to check the status of the analysis job.",
+ "headers": {
+ "Operation-Location": {
+ "type": "string"
+ }
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Submit analysis job request": {
+ "$ref": ".//examples//SuccessfulAnalyzeRequest.json"
+ }
+ },
+ "deprecated": false,
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/analyze/jobs/{jobId}": {
+ "get": {
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "description": "Get the status of an analysis job. A job may consist of one or more tasks. Once all tasks are completed, the job will transition to the completed state and results will be available for each task.",
+ "operationId": "AnalyzeStatus",
+ "summary": "Get analysis status and results",
+ "parameters": [
+ {
+ "$ref": "#/parameters/AnalyzeJobId"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "default": 20,
+ "description": "(Optional) Set the maximum number of results per task. When both $top and $skip are specified, $skip is applied first.",
+ "in": "query",
+ "maximum": 50,
+ "minimum": 1,
+ "name": "$top",
+ "type": "integer"
+ },
+ {
+ "default": 0,
+ "description": "(Optional) Set the number of elements to offset in the response. When both $top and $skip are specified, $skip is applied first.",
+ "in": "query",
+ "minimum": 0,
+ "name": "$skip",
+ "type": "integer"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Analysis job status and metadata.",
+ "schema": {
+ "$ref": "#/definitions/AnalyzeJobState"
+ }
+ },
+ "404": {
+ "description": "Job ID not found.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Get Analysis job status request": {
+ "$ref": ".//examples//SuccessfulAnalyzeStatusRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/entities/health/jobs/{jobId}": {
+ "get": {
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "description": "Get details of the healthcare prediction job specified by the jobId.",
+ "operationId": "HealthStatus",
+ "summary": "Get healthcare analysis job status and results",
+ "parameters": [
+ {
+ "$ref": "#/parameters/JobId"
+ },
+ {
+ "default": 20,
+ "description": "(Optional) Set the maximum number of results per task. When both $top and $skip are specified, $skip is applied first.",
+ "in": "query",
+ "maximum": 50,
+ "minimum": 1,
+ "name": "$top",
+ "type": "integer"
+ },
+ {
+ "default": 0,
+ "description": "(Optional) Set the number of elements to offset in the response. When both $top and $skip are specified, $skip is applied first.",
+ "in": "query",
+ "minimum": 0,
+ "name": "$skip",
+ "type": "integer"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/HealthcareJobState"
+ }
+ },
+ "404": {
+ "description": "Job ID not found.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Health request": {
+ "$ref": ".//examples//SuccessfulHealthStatusRequest.json"
+ }
+ },
+ "deprecated": false
+ },
+ "delete": {
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "description": "Cancel healthcare prediction job.",
+ "operationId": "CancelHealthJob",
+ "summary": "Cancel healthcare prediction job",
+ "parameters": [
+ {
+ "$ref": "#/parameters/JobId"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Cancel Job request has been received.",
+ "headers": {
+ "Operation-Location": {
+ "type": "string"
+ }
+ }
+ },
+ "404": {
+ "description": "Job ID not found.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Health request": {
+ "$ref": ".//examples//SuccessfulHealthDeleteRequest.json"
+ }
+ },
+ "deprecated": false,
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/entities/health/jobs": {
+ "post": {
+ "summary": "Submit healthcare analysis job",
+ "description": "Start a healthcare analysis job to recognize healthcare related entities (drugs, conditions, symptoms, etc) and their relations.",
+ "operationId": "Health",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ },
+ {
+ "$ref": "#/parameters/LoggingOptOut"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted - call results in a link where the status of the submitted job can be checked via the GET operation.",
+ "headers": {
+ "Operation-Location": {
+ "type": "string"
+ }
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Health request": {
+ "$ref": ".//examples//SuccessfulHealthRequest.json"
+ }
+ },
+ "deprecated": false,
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/entities/recognition/general": {
+ "post": {
+ "summary": "Named Entity Recognition",
+ "description": "The API returns a list of general named entities in a given document. For the list of supported entity types, check Supported Entity Types in Text Analytics API. See the Supported languages in Text Analytics API for the list of enabled languages.",
+ "operationId": "EntitiesRecognitionGeneral",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "$ref": "#/parameters/LoggingOptOut"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call results in a list of recognized entities returned for each valid document.",
+ "schema": {
+ "$ref": "#/definitions/EntitiesResult"
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Entities request": {
+ "$ref": ".//examples//SuccessfulEntitiesRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/entities/recognition/pii": {
+ "post": {
+ "summary": "Entities containing personal information",
+ "description": "The API returns a list of entities with personal information (\\\"SSN\\\", \\\"Bank Account\\\" etc) in the document. For the list of supported entity types, check Supported Entity Types in Text Analytics API. See the Supported languages in Text Analytics API for the list of enabled languages.\n",
+ "operationId": "EntitiesRecognitionPii",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "$ref": "#/parameters/LoggingOptOut"
+ },
+ {
+ "name": "domain",
+ "in": "query",
+ "description": "(Optional) if specified, will set the PII domain to include only a subset of the entity categories. Possible values include: 'PHI', 'none'.",
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
+ },
+ {
+ "$ref": "#/parameters/PiiCategories"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call results in a list of entities containing personal information returned for each valid document",
+ "schema": {
+ "$ref": "#/definitions/PiiResult"
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Entity PII request": {
+ "$ref": ".//examples//SuccessfulEntityPIIRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/entities/linking": {
+ "post": {
+ "summary": "Linked entities from a well known knowledge base",
+ "description": "The API returns a list of recognized entities with links to a well known knowledge base. See the Supported languages in Text Analytics API for the list of enabled languages.",
+ "operationId": "EntitiesLinking",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "$ref": "#/parameters/LoggingOptOut"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call results in a list of recognized entities with links to a well known knowledge base returned for each valid document",
+ "schema": {
+ "$ref": "#/definitions/EntityLinkingResult"
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Entity Linking request": {
+ "$ref": ".//examples//SuccessfulEntityLinkingRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/keyPhrases": {
+ "post": {
+ "summary": "Key Phrases",
+ "description": "The API returns a list of strings denoting the key phrases in the input text. See the Supported languages in Text Analytics API for the list of enabled languages.",
+ "operationId": "KeyPhrases",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "$ref": "#/parameters/LoggingOptOut"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response results in 0 or more key phrases identified in each valid document",
+ "schema": {
+ "$ref": "#/definitions/KeyPhraseResult"
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Key Phrase request": {
+ "$ref": ".//examples//SuccessfulKeyPhrasesRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/languages": {
+ "post": {
+ "summary": "Detect Language",
+ "description": "The API returns the detected language and a numeric score between 0 and 1. Scores close to 1 indicate 100% certainty that the identified language is true. See the Supported languages in Text Analytics API for the list of enabled languages.",
+ "operationId": "Languages",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "$ref": "#/parameters/LoggingOptOut"
+ },
+ {
+ "$ref": "#/parameters/LanguageInput"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call results in the detected language with the highest probability for each valid document",
+ "schema": {
+ "$ref": "#/definitions/LanguageResult"
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Detect Language request": {
+ "$ref": ".//examples//SuccessfulLanguagesRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/sentiment": {
+ "post": {
+ "summary": "Sentiment",
+ "description": "The API returns a detailed sentiment analysis for the input text. The analysis is done in multiple levels of granularity, start from the a document level, down to sentence and key terms (targets and assessments).",
+ "operationId": "Sentiment",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "$ref": "#/parameters/LoggingOptOut"
+ },
+ {
+ "name": "opinionMining",
+ "in": "query",
+ "description": "(Optional) if set to true, response will contain not only sentiment prediction but also opinion mining (aspect-based sentiment analysis) results.",
+ "type": "boolean"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call results in a document sentiment prediction, as well as sentiment scores for each sentiment class (Positive, Negative, and Neutral)",
+ "schema": {
+ "$ref": "#/definitions/SentimentResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "500": {
+ "description": "Internal error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Successful Sentiment request": {
+ "$ref": ".//examples//SuccessfulSentimentRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ }
+ },
+ "definitions": {
+ "JobManifest": {
+ "properties": {
+ "tasks": {
+ "description": "The set of tasks to execute on the input documents. Cannot specify the same task more than once.",
+ "properties": {
+ "entityRecognitionTasks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntitiesTask"
+ }
+ },
+ "entityRecognitionPiiTasks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PiiTask"
+ }
+ },
+ "keyPhraseExtractionTasks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/KeyPhrasesTask"
+ }
+ },
+ "entityLinkingTasks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityLinkingTask"
+ }
+ },
+ "sentimentAnalysisTasks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SentimentAnalysisTask"
+ }
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "tasks"
+ ],
+ "type": "object"
+ },
+ "MultiLanguageBatchInput": {
+ "type": "object",
+ "required": [
+ "documents"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "The set of documents to process as part of this batch.",
+ "items": {
+ "$ref": "#/definitions/MultiLanguageInput"
+ }
+ }
+ },
+ "description": "Contains a set of input documents to be analyzed by the service."
+ },
+ "MultiLanguageInput": {
+ "type": "object",
+ "required": [
+ "id",
+ "text"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "A unique, non-empty document identifier."
+ },
+ "text": {
+ "type": "string",
+ "description": "The input text to process."
+ },
+ "language": {
+ "type": "string",
+ "description": "(Optional) This is the 2 letter ISO 639-1 representation of a language. For example, use \"en\" for English; \"es\" for Spanish etc. If not set, use \"en\" for English as default."
+ }
+ },
+ "description": "Contains an input document to be analyzed by the service."
+ },
+ "DocumentError": {
+ "type": "object",
+ "required": [
+ "id",
+ "error"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Document Id."
+ },
+ "error": {
+ "type": "object",
+ "description": "Document Error.",
+ "$ref": "#/definitions/TextAnalyticsError"
+ }
+ }
+ },
+ "ErrorResponse": {
+ "type": "object",
+ "required": [
+ "error"
+ ],
+ "properties": {
+ "error": {
+ "type": "object",
+ "description": "Document Error.",
+ "$ref": "#/definitions/TextAnalyticsError"
+ }
+ }
+ },
+ "TextAnalyticsError": {
+ "type": "object",
+ "required": [
+ "code",
+ "message"
+ ],
+ "properties": {
+ "code": {
+ "type": "string",
+ "enum": [
+ "InvalidRequest",
+ "InvalidArgument",
+ "InternalServerError",
+ "ServiceUnavailable",
+ "NotFound"
+ ],
+ "x-ms-enum": {
+ "name": "ErrorCodeValue",
+ "modelAsString": false
+ },
+ "description": "Error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Error message."
+ },
+ "target": {
+ "type": "string",
+ "description": "Error target."
+ },
+ "innererror": {
+ "$ref": "#/definitions/InnerError",
+ "description": "Inner error contains more specific information."
+ },
+ "details": {
+ "type": "array",
+ "description": "Details about specific errors that led to this reported error.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsError"
+ }
+ }
+ }
+ },
+ "TextAnalyticsWarning": {
+ "type": "object",
+ "required": [
+ "code",
+ "message"
+ ],
+ "properties": {
+ "code": {
+ "type": "string",
+ "enum": [
+ "LongWordsInDocument",
+ "DocumentTruncated"
+ ],
+ "x-ms-enum": {
+ "name": "WarningCodeValue",
+ "modelAsString": true
+ },
+ "description": "Error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Warning message."
+ },
+ "targetRef": {
+ "type": "string",
+ "description": "A JSON pointer reference indicating the target object."
+ }
+ }
+ },
+ "PiiTask": {
+ "properties": {
+ "parameters": {
+ "properties": {
+ "domain": {
+ "default": "none",
+ "enum": [
+ "phi",
+ "none"
+ ],
+ "type": "string"
+ },
+ "model-version": {
+ "default": "latest",
+ "type": "string"
+ },
+ "loggingOptOut": {
+ "default": true,
+ "type": "boolean"
+ },
+ "pii-categories": {
+ "$ref": "#/definitions/PiiCategories"
+ },
+ "stringIndexType": {
+ "$ref": "#/definitions/StringIndexType"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "EntitiesTask": {
+ "properties": {
+ "parameters": {
+ "properties": {
+ "model-version": {
+ "default": "latest",
+ "type": "string"
+ },
+ "loggingOptOut": {
+ "default": false,
+ "type": "boolean"
+ },
+ "stringIndexType": {
+ "$ref": "#/definitions/StringIndexType"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "SentimentAnalysisTask": {
+ "properties": {
+ "parameters": {
+ "properties": {
+ "model-version": {
+ "default": "latest",
+ "type": "string"
+ },
+ "loggingOptOut": {
+ "default": false,
+ "type": "boolean"
+ },
+ "opinionMining": {
+ "default": false,
+ "type": "boolean"
+ },
+ "stringIndexType": {
+ "$ref": "#/definitions/StringIndexType"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "InnerError": {
+ "type": "object",
+ "required": [
+ "code",
+ "message"
+ ],
+ "properties": {
+ "code": {
+ "type": "string",
+ "enum": [
+ "InvalidParameterValue",
+ "InvalidRequestBodyFormat",
+ "EmptyRequest",
+ "MissingInputRecords",
+ "InvalidDocument",
+ "ModelVersionIncorrect",
+ "InvalidDocumentBatch",
+ "UnsupportedLanguageCode",
+ "InvalidCountryHint"
+ ],
+ "x-ms-enum": {
+ "name": "InnerErrorCodeValue",
+ "modelAsString": true
+ },
+ "description": "Error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Error message."
+ },
+ "details": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Error details."
+ },
+ "target": {
+ "type": "string",
+ "description": "Error target."
+ },
+ "innererror": {
+ "$ref": "#/definitions/InnerError",
+ "description": "Inner error contains more specific information."
+ }
+ }
+ },
+ "AnalyzeBatchInput": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobDescriptor"
+ },
+ {
+ "$ref": "#/definitions/AnalysisInput"
+ },
+ {
+ "$ref": "#/definitions/JobManifest"
+ }
+ ]
+ },
+ "AnalyzeJobState": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/AnalyzeJobMetadata"
+ },
+ {
+ "$ref": "#/definitions/TasksState"
+ },
+ {
+ "$ref": "#/definitions/AnalyzeJobErrorsAndStatistics"
+ },
+ {
+ "$ref": "#/definitions/Pagination"
+ }
+ ]
+ },
+ "SentimentResponse": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Sentiment analysis per document.",
+ "items": {
+ "$ref": "#/definitions/DocumentSentiment"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "TaskState": {
+ "properties": {
+ "lastUpdateDateTime": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "status": {
+ "enum": [
+ "notStarted",
+ "running",
+ "succeeded",
+ "failed",
+ "rejected",
+ "cancelled",
+ "cancelling"
+ ],
+ "x-ms-enum": {
+ "modelAsString": false,
+ "name": "State"
+ }
+ }
+ },
+ "required": [
+ "status",
+ "lastUpdateDateTime"
+ ],
+ "type": "object"
+ },
+ "TasksState": {
+ "properties": {
+ "tasks": {
+ "properties": {
+ "details": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/TaskState"
+ }
+ ],
+ "type": "object"
+ },
+ "completed": {
+ "type": "integer"
+ },
+ "failed": {
+ "type": "integer"
+ },
+ "inProgress": {
+ "type": "integer"
+ },
+ "total": {
+ "type": "integer"
+ },
+ "entityRecognitionTasks": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/TaskState"
+ },
+ {
+ "$ref": "#/definitions/EntitiesTaskResult"
+ }
+ ]
+ }
+ },
+ "entityRecognitionPiiTasks": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/TaskState"
+ },
+ {
+ "$ref": "#/definitions/PiiTaskResult"
+ }
+ ]
+ }
+ },
+ "keyPhraseExtractionTasks": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/TaskState"
+ },
+ {
+ "$ref": "#/definitions/KeyPhraseTaskResult"
+ }
+ ]
+ }
+ },
+ "entityLinkingTasks": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/TaskState"
+ },
+ {
+ "$ref": "#/definitions/EntityLinkingTaskResult"
+ }
+ ]
+ }
+ },
+ "sentimentAnalysisTasks": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/TaskState"
+ },
+ {
+ "$ref": "#/definitions/SentimentTaskResult"
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "total",
+ "completed",
+ "failed",
+ "inProgress"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "tasks"
+ ],
+ "type": "object"
+ },
+ "DocumentSentiment": {
+ "type": "object",
+ "required": [
+ "id",
+ "sentiment",
+ "confidenceScores",
+ "sentences",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "sentiment": {
+ "type": "string",
+ "description": "Predicted sentiment for document (Negative, Neutral, Positive, or Mixed).",
+ "enum": [
+ "positive",
+ "neutral",
+ "negative",
+ "mixed"
+ ],
+ "x-ms-enum": {
+ "name": "DocumentSentimentValue",
+ "modelAsString": false
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/DocumentStatistics"
+ },
+ "confidenceScores": {
+ "description": "Document level sentiment confidence scores between 0 and 1 for each sentiment class.",
+ "$ref": "#/definitions/SentimentConfidenceScorePerLabel"
+ },
+ "sentences": {
+ "type": "array",
+ "description": "Sentence level sentiment analysis.",
+ "items": {
+ "$ref": "#/definitions/SentenceSentiment"
+ }
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ }
+ }
+ },
+ "RequestStatistics": {
+ "type": "object",
+ "required": [
+ "documentsCount",
+ "validDocumentsCount",
+ "erroneousDocumentsCount",
+ "transactionsCount"
+ ],
+ "properties": {
+ "documentsCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of documents submitted in the request."
+ },
+ "validDocumentsCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of valid documents. This excludes empty, over-size limit or non-supported languages documents."
+ },
+ "erroneousDocumentsCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of invalid documents. This includes empty, over-size limit or non-supported languages documents."
+ },
+ "transactionsCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Number of transactions for the request."
+ }
+ },
+ "description": "if showStats=true was specified in the request this field will contain information about the request payload."
+ },
+ "DocumentStatistics": {
+ "type": "object",
+ "required": [
+ "charactersCount",
+ "transactionsCount"
+ ],
+ "properties": {
+ "charactersCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of text elements recognized in the document."
+ },
+ "transactionsCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of transactions for the document."
+ }
+ },
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload."
+ },
+ "SentimentConfidenceScorePerLabel": {
+ "type": "object",
+ "required": [
+ "positive",
+ "neutral",
+ "negative"
+ ],
+ "properties": {
+ "positive": {
+ "type": "number",
+ "format": "double"
+ },
+ "neutral": {
+ "type": "number",
+ "format": "double"
+ },
+ "negative": {
+ "type": "number",
+ "format": "double"
+ }
+ },
+ "description": "Represents the confidence scores between 0 and 1 across all sentiment classes: positive, neutral, negative."
+ },
+ "SentenceSentiment": {
+ "type": "object",
+ "required": [
+ "text",
+ "sentiment",
+ "confidenceScores",
+ "offset",
+ "length"
+ ],
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "The sentence text."
+ },
+ "sentiment": {
+ "type": "string",
+ "description": "The predicted Sentiment for the sentence.",
+ "enum": [
+ "positive",
+ "neutral",
+ "negative"
+ ],
+ "x-ms-enum": {
+ "name": "SentenceSentimentValue",
+ "modelAsString": false
+ }
+ },
+ "confidenceScores": {
+ "description": "The sentiment confidence score between 0 and 1 for the sentence for all classes.",
+ "$ref": "#/definitions/SentimentConfidenceScorePerLabel"
+ },
+ "offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The sentence offset from the start of the document."
+ },
+ "length": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The length of the sentence."
+ },
+ "targets": {
+ "type": "array",
+ "description": "The array of sentence targets for the sentence.",
+ "items": {
+ "$ref": "#/definitions/SentenceTarget"
+ }
+ },
+ "assessments": {
+ "type": "array",
+ "description": "The array of assessments for the sentence.",
+ "items": {
+ "$ref": "#/definitions/SentenceAssessment"
+ }
+ }
+ }
+ },
+ "SentenceTarget": {
+ "type": "object",
+ "required": [
+ "confidenceScores",
+ "length",
+ "offset",
+ "relations",
+ "sentiment",
+ "text"
+ ],
+ "properties": {
+ "sentiment": {
+ "type": "string",
+ "enum": [
+ "positive",
+ "mixed",
+ "negative"
+ ],
+ "x-ms-enum": {
+ "name": "TokenSentimentValue",
+ "modelAsString": false
+ },
+ "description": "Targeted sentiment in the sentence."
+ },
+ "confidenceScores": {
+ "description": "Target sentiment confidence scores for the target in the sentence.",
+ "$ref": "#/definitions/TargetConfidenceScoreLabel"
+ },
+ "offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The target offset from the start of the sentence."
+ },
+ "length": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The length of the target."
+ },
+ "text": {
+ "type": "string",
+ "description": "The target text detected."
+ },
+ "relations": {
+ "type": "array",
+ "description": "The array of either assessment or target objects which is related to the target.",
+ "items": {
+ "$ref": "#/definitions/TargetRelation"
+ }
+ }
+ }
+ },
+ "SentenceAssessment": {
+ "type": "object",
+ "required": [
+ "confidenceScores",
+ "isNegated",
+ "length",
+ "offset",
+ "sentiment",
+ "text"
+ ],
+ "properties": {
+ "sentiment": {
+ "type": "string",
+ "enum": [
+ "positive",
+ "mixed",
+ "negative"
+ ],
+ "x-ms-enum": {
+ "name": "TokenSentimentValue",
+ "modelAsString": false
+ },
+ "description": "Assessment sentiment in the sentence."
+ },
+ "confidenceScores": {
+ "description": "Assessment sentiment confidence scores in the sentence.",
+ "$ref": "#/definitions/TargetConfidenceScoreLabel"
+ },
+ "offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The assessment offset from the start of the sentence."
+ },
+ "length": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The length of the assessment."
+ },
+ "text": {
+ "type": "string",
+ "description": "The assessment text detected."
+ },
+ "isNegated": {
+ "type": "boolean",
+ "description": "The indicator representing if the assessment is negated."
+ }
+ }
+ },
+ "TargetRelation": {
+ "type": "object",
+ "required": [
+ "ref",
+ "relationType"
+ ],
+ "properties": {
+ "relationType": {
+ "type": "string",
+ "enum": [
+ "assessment",
+ "target"
+ ],
+ "x-ms-enum": {
+ "name": "TargetRelationType",
+ "modelAsString": false
+ },
+ "description": "The type related to the target."
+ },
+ "ref": {
+ "type": "string",
+ "description": "The JSON pointer indicating the linked object."
+ }
+ }
+ },
+ "TargetConfidenceScoreLabel": {
+ "type": "object",
+ "required": [
+ "negative",
+ "positive"
+ ],
+ "properties": {
+ "positive": {
+ "type": "number",
+ "format": "double"
+ },
+ "negative": {
+ "type": "number",
+ "format": "double"
+ }
+ },
+ "description": "Represents the confidence scores across all sentiment classes: positive, neutral, negative."
+ },
+ "EntitiesResult": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Response by document",
+ "items": {
+ "$ref": "#/definitions/DocumentEntities"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "DocumentEntities": {
+ "type": "object",
+ "required": [
+ "id",
+ "entities",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "entities": {
+ "type": "array",
+ "description": "Recognized entities in the document.",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ },
+ "statistics": {
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload.",
+ "$ref": "#/definitions/DocumentStatistics"
+ }
+ }
+ },
+ "PiiDocumentEntities": {
+ "type": "object",
+ "required": [
+ "id",
+ "redactedText",
+ "entities",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "redactedText": {
+ "type": "string",
+ "description": "Returns redacted text."
+ },
+ "entities": {
+ "type": "array",
+ "description": "Recognized entities in the document.",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ },
+ "statistics": {
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload.",
+ "$ref": "#/definitions/DocumentStatistics"
+ }
+ }
+ },
+ "Entity": {
+ "type": "object",
+ "required": [
+ "text",
+ "category",
+ "offset",
+ "length",
+ "confidenceScore"
+ ],
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "Entity text as appears in the request."
+ },
+ "category": {
+ "type": "string",
+ "description": "Entity type."
+ },
+ "subcategory": {
+ "type": "string",
+ "description": "(Optional) Entity sub type."
+ },
+ "offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Start position for the entity text. Use of different 'stringIndexType' values can affect the offset returned."
+ },
+ "length": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Length for the entity text. Use of different 'stringIndexType' values can affect the length returned."
+ },
+ "confidenceScore": {
+ "type": "number",
+ "format": "double",
+ "description": "Confidence score between 0 and 1 of the extracted entity."
+ }
+ }
+ },
+ "EntityLinkingResult": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Response by document",
+ "items": {
+ "$ref": "#/definitions/DocumentLinkedEntities"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "DocumentLinkedEntities": {
+ "type": "object",
+ "required": [
+ "id",
+ "entities",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "entities": {
+ "type": "array",
+ "description": "Recognized well known entities in the document.",
+ "items": {
+ "$ref": "#/definitions/LinkedEntity"
+ }
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ },
+ "statistics": {
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload.",
+ "$ref": "#/definitions/DocumentStatistics"
+ }
+ }
+ },
+ "HealthcareJobState": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobMetadata"
+ },
+ {
+ "$ref": "#/definitions/HealthcareTaskResult"
+ },
+ {
+ "$ref": "#/definitions/Pagination"
+ }
+ ]
+ },
+ "HealthcareResult": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Response by document",
+ "items": {
+ "$ref": "#/definitions/DocumentHealthcareEntities"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "DocumentHealthcareEntities": {
+ "type": "object",
+ "required": [
+ "id",
+ "entities",
+ "relations",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "entities": {
+ "description": "Healthcare entities.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthcareEntity"
+ }
+ },
+ "relations": {
+ "type": "array",
+ "description": "Healthcare entity relations.",
+ "items": {
+ "$ref": "#/definitions/HealthcareRelation"
+ }
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ },
+ "statistics": {
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload.",
+ "$ref": "#/definitions/DocumentStatistics"
+ }
+ }
+ },
+ "HealthcareEntity": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Entity"
+ },
+ {
+ "$ref": "#/definitions/HealthcareLinkingProperties"
+ }
+ ]
+ },
+ "HealthcareRelation": {
+ "type": "object",
+ "description": "Every relation is an entity graph of a certain relationType, where all entities are connected and have specific roles within the relation context.",
+ "required": [
+ "relationType",
+ "entities"
+ ],
+ "properties": {
+ "relationType": {
+ "description": "Type of relation. Examples include: `DosageOfMedication` or 'FrequencyOfMedication', etc.",
+ "type": "string",
+ "enum": [
+ "Abbreviation",
+ "DirectionOfBodyStructure",
+ "DirectionOfCondition",
+ "DirectionOfExamination",
+ "DirectionOfTreatment",
+ "DosageOfMedication",
+ "FormOfMedication",
+ "FrequencyOfMedication",
+ "FrequencyOfTreatment",
+ "QualifierOfCondition",
+ "RelationOfExamination",
+ "RouteOfMedication",
+ "TimeOfCondition",
+ "TimeOfEvent",
+ "TimeOfExamination",
+ "TimeOfMedication",
+ "TimeOfTreatment",
+ "UnitOfCondition",
+ "UnitOfExamination",
+ "ValueOfCondition",
+ "ValueOfExamination"
+ ],
+ "x-ms-enum": {
+ "name": "relationType",
+ "modelAsString": true
+ }
+ },
+ "entities": {
+ "description": "The entities in the relation.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthcareRelationEntity"
+ }
+ }
+ }
+ },
+ "HealthcareAssertion": {
+ "type": "object",
+ "properties": {
+ "conditionality": {
+ "description": "Describes any conditionality on the entity.",
+ "type": "string",
+ "enum": [
+ "hypothetical",
+ "conditional"
+ ],
+ "x-ms-enum": {
+ "name": "Conditionality",
+ "modelAsString": false
+ }
+ },
+ "certainty": {
+ "description": "Describes the entities certainty and polarity.",
+ "type": "string",
+ "enum": [
+ "positive",
+ "positivePossible",
+ "neutralPossible",
+ "negativePossible",
+ "negative"
+ ],
+ "x-ms-enum": {
+ "name": "Certainty",
+ "modelAsString": false
+ }
+ },
+ "association": {
+ "description": "Describes if the entity is the subject of the text or if it describes someone else.",
+ "type": "string",
+ "enum": [
+ "subject",
+ "other"
+ ],
+ "x-ms-enum": {
+ "name": "Association",
+ "modelAsString": false
+ }
+ }
+ }
+ },
+ "HealthcareRelationEntity": {
+ "type": "object",
+ "required": [
+ "ref",
+ "role"
+ ],
+ "properties": {
+ "ref": {
+ "description": "Reference link object, using a JSON pointer RFC 6901 (URI Fragment Identifier Representation), pointing to the entity .",
+ "type": "string"
+ },
+ "role": {
+ "description": "Role of entity in the relationship. For example: 'CD20-positive diffuse large B-cell lymphoma' has the following entities with their roles in parenthesis: CD20 (GeneOrProtein), Positive (Expression), diffuse large B-cell lymphoma (Diagnosis).",
+ "type": "string"
+ }
+ }
+ },
+ "HealthcareEntityLink": {
+ "type": "object",
+ "required": [
+ "dataSource",
+ "id"
+ ],
+ "properties": {
+ "dataSource": {
+ "description": "Entity Catalog. Examples include: UMLS, CHV, MSH, etc.",
+ "type": "string"
+ },
+ "id": {
+ "description": "Entity id in the given source catalog.",
+ "type": "string"
+ }
+ }
+ },
+ "HealthcareLinkingProperties": {
+ "properties": {
+ "assertion": {
+ "type": "object",
+ "$ref": "#/definitions/HealthcareAssertion"
+ },
+ "name": {
+ "description": "Preferred name for the entity. Example: 'histologically' would have a 'name' of 'histologic'.",
+ "type": "string"
+ },
+ "links": {
+ "description": "Entity references in known data sources.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthcareEntityLink"
+ }
+ }
+ }
+ },
+ "LinkedEntity": {
+ "type": "object",
+ "required": [
+ "name",
+ "matches",
+ "language",
+ "url",
+ "dataSource"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Entity Linking formal name."
+ },
+ "matches": {
+ "type": "array",
+ "description": "List of instances this entity appears in the text.",
+ "items": {
+ "$ref": "#/definitions/Match"
+ }
+ },
+ "language": {
+ "type": "string",
+ "description": "Language used in the data source."
+ },
+ "id": {
+ "type": "string",
+ "description": "Unique identifier of the recognized entity from the data source."
+ },
+ "url": {
+ "type": "string",
+ "description": "URL for the entity's page from the data source."
+ },
+ "dataSource": {
+ "type": "string",
+ "description": "Data source used to extract entity linking, such as Wiki/Bing etc."
+ },
+ "bingId": {
+ "type": "string",
+ "description": "Bing Entity Search API unique identifier of the recognized entity."
+ }
+ }
+ },
+ "Match": {
+ "type": "object",
+ "required": [
+ "confidenceScore",
+ "text",
+ "offset",
+ "length"
+ ],
+ "properties": {
+ "confidenceScore": {
+ "type": "number",
+ "format": "double",
+ "description": "If a well known item is recognized, a decimal number denoting the confidence level between 0 and 1 will be returned."
+ },
+ "text": {
+ "type": "string",
+ "description": "Entity text as appears in the request."
+ },
+ "offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Start position for the entity match text."
+ },
+ "length": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Length for the entity match text."
+ }
+ }
+ },
+ "AnalysisInput": {
+ "type": "object",
+ "required": [
+ "analysisInput"
+ ],
+ "properties": {
+ "analysisInput": {
+ "$ref": "#/definitions/MultiLanguageBatchInput"
+ }
+ }
+ },
+ "EntitiesTaskResult": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "$ref": "#/definitions/EntitiesResult"
+ }
+ }
+ },
+ "PiiTaskResult": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "$ref": "#/definitions/PiiResult"
+ }
+ }
+ },
+ "KeyPhraseTaskResult": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "$ref": "#/definitions/KeyPhraseResult"
+ }
+ }
+ },
+ "EntityLinkingTaskResult": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "$ref": "#/definitions/EntityLinkingResult"
+ }
+ }
+ },
+ "SentimentTaskResult": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "$ref": "#/definitions/SentimentResponse"
+ }
+ }
+ },
+ "HealthcareTaskResult": {
+ "properties": {
+ "results": {
+ "$ref": "#/definitions/HealthcareResult"
+ },
+ "errors": {
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsError"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "JobDescriptor": {
+ "properties": {
+ "displayName": {
+ "description": "Optional display name for the analysis job.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "JobMetadata": {
+ "properties": {
+ "createdDateTime": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "expirationDateTime": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "jobId": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "lastUpdateDateTime": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "status": {
+ "enum": [
+ "notStarted",
+ "running",
+ "succeeded",
+ "failed",
+ "cancelled",
+ "cancelling",
+ "partiallyCompleted"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "modelAsString": false,
+ "name": "State"
+ }
+ }
+ },
+ "required": [
+ "jobId",
+ "lastUpdateDateTime",
+ "createdDateTime",
+ "status"
+ ],
+ "type": "object"
+ },
+ "AnalyzeJobDisplayName": {
+ "properties": {
+ "displayName": {
+ "type": "string"
+ }
+ }
+ },
+ "AnalyzeJobMetadata": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobMetadata"
+ },
+ {
+ "$ref": "#/definitions/AnalyzeJobDisplayName"
+ }
+ ]
+ },
+ "AnalyzeJobErrorsAndStatistics": {
+ "properties": {
+ "errors": {
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsError"
+ },
+ "type": "array"
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ }
+ },
+ "type": "object"
+ },
+ "KeyPhraseResult": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Response by document",
+ "items": {
+ "$ref": "#/definitions/DocumentKeyPhrases"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "DocumentKeyPhrases": {
+ "type": "object",
+ "required": [
+ "id",
+ "keyPhrases",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "keyPhrases": {
+ "type": "array",
+ "description": "A list of representative words or phrases. The number of key phrases returned is proportional to the number of words in the input document.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ },
+ "statistics": {
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload.",
+ "$ref": "#/definitions/DocumentStatistics"
+ }
+ }
+ },
+ "KeyPhrasesTask": {
+ "properties": {
+ "parameters": {
+ "properties": {
+ "model-version": {
+ "default": "latest",
+ "type": "string"
+ },
+ "loggingOptOut": {
+ "default": false,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "EntityLinkingTask": {
+ "properties": {
+ "parameters": {
+ "properties": {
+ "model-version": {
+ "default": "latest",
+ "type": "string"
+ },
+ "loggingOptOut": {
+ "default": false,
+ "type": "boolean"
+ },
+ "stringIndexType": {
+ "$ref": "#/definitions/StringIndexType"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "LanguageBatchInput": {
+ "type": "object",
+ "required": [
+ "documents"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LanguageInput"
+ }
+ }
+ }
+ },
+ "LanguageInput": {
+ "type": "object",
+ "required": [
+ "id",
+ "text"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "text": {
+ "type": "string"
+ },
+ "countryHint": {
+ "type": "string"
+ }
+ }
+ },
+ "Pagination": {
+ "properties": {
+ "@nextLink": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "PiiResult": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Response by document",
+ "items": {
+ "$ref": "#/definitions/PiiDocumentEntities"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "LanguageResult": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Response by document",
+ "items": {
+ "$ref": "#/definitions/DocumentLanguage"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "DocumentLanguage": {
+ "type": "object",
+ "required": [
+ "id",
+ "detectedLanguage",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "detectedLanguage": {
+ "description": "Detected Language.",
+ "$ref": "#/definitions/DetectedLanguage"
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ },
+ "statistics": {
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload.",
+ "$ref": "#/definitions/DocumentStatistics"
+ }
+ }
+ },
+ "DetectedLanguage": {
+ "type": "object",
+ "required": [
+ "name",
+ "iso6391Name",
+ "confidenceScore"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Long name of a detected language (e.g. English, French)."
+ },
+ "iso6391Name": {
+ "type": "string",
+ "description": "A two letter representation of the detected language according to the ISO 639-1 standard (e.g. en, fr)."
+ },
+ "confidenceScore": {
+ "type": "number",
+ "format": "double",
+ "description": "A confidence score between 0 and 1. Scores close to 1 indicate 100% certainty that the identified language is true."
+ }
+ }
+ },
+ "StringIndexType": {
+ "default": "TextElement_v8",
+ "enum": [
+ "TextElement_v8",
+ "UnicodeCodePoint",
+ "Utf16CodeUnit"
+ ],
+ "x-ms-enum": {
+ "name": "StringIndexType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "TextElement_v8",
+ "description": "Returned offset and length values will correspond to TextElements (Graphemes and Grapheme clusters) confirming to the Unicode 8.0.0 standard. Use this option if your application is written in .Net Framework or .Net Core and you will be using StringInfo."
+ },
+ {
+ "value": "UnicodeCodePoint",
+ "description": "Returned offset and length values will correspond to Unicode code points. Use this option if your application is written in a language that support Unicode, for example Python."
+ },
+ {
+ "value": "Utf16CodeUnit",
+ "description": "Returned offset and length values will correspond to UTF-16 code units. Use this option if your application is written in a language that support Unicode, for example Java, JavaScript."
+ }
+ ]
+ },
+ "type": "string"
+ },
+ "PiiCategories": {
+ "description": "(Optional) describes the PII categories to return",
+ "items": {
+ "type": "string",
+ "x-ms-enum": {
+ "name": "PiiCategory",
+ "modelAsString": true
+ },
+ "enum": [
+ "ABARoutingNumber",
+ "ARNationalIdentityNumber",
+ "AUBankAccountNumber",
+ "AUDriversLicenseNumber",
+ "AUMedicalAccountNumber",
+ "AUPassportNumber",
+ "AUTaxFileNumber",
+ "AUBusinessNumber",
+ "AUCompanyNumber",
+ "ATIdentityCard",
+ "ATTaxIdentificationNumber",
+ "ATValueAddedTaxNumber",
+ "AzureDocumentDBAuthKey",
+ "AzureIAASDatabaseConnectionAndSQLString",
+ "AzureIoTConnectionString",
+ "AzurePublishSettingPassword",
+ "AzureRedisCacheString",
+ "AzureSAS",
+ "AzureServiceBusString",
+ "AzureStorageAccountKey",
+ "AzureStorageAccountGeneric",
+ "BENationalNumber",
+ "BENationalNumberV2",
+ "BEValueAddedTaxNumber",
+ "BRCPFNumber",
+ "BRLegalEntityNumber",
+ "BRNationalIDRG",
+ "BGUniformCivilNumber",
+ "CABankAccountNumber",
+ "CADriversLicenseNumber",
+ "CAHealthServiceNumber",
+ "CAPassportNumber",
+ "CAPersonalHealthIdentification",
+ "CASocialInsuranceNumber",
+ "CLIdentityCardNumber",
+ "CNResidentIdentityCardNumber",
+ "CreditCardNumber",
+ "HRIdentityCardNumber",
+ "HRNationalIDNumber",
+ "HRPersonalIdentificationNumber",
+ "HRPersonalIdentificationOIBNumberV2",
+ "CYIdentityCard",
+ "CYTaxIdentificationNumber",
+ "CZPersonalIdentityNumber",
+ "CZPersonalIdentityV2",
+ "DKPersonalIdentificationNumber",
+ "DKPersonalIdentificationV2",
+ "DrugEnforcementAgencyNumber",
+ "EEPersonalIdentificationCode",
+ "EUDebitCardNumber",
+ "EUDriversLicenseNumber",
+ "EUGPSCoordinates",
+ "EUNationalIdentificationNumber",
+ "EUPassportNumber",
+ "EUSocialSecurityNumber",
+ "EUTaxIdentificationNumber",
+ "FIEuropeanHealthNumber",
+ "FINationalID",
+ "FINationalIDV2",
+ "FIPassportNumber",
+ "FRDriversLicenseNumber",
+ "FRHealthInsuranceNumber",
+ "FRNationalID",
+ "FRPassportNumber",
+ "FRSocialSecurityNumber",
+ "FRTaxIdentificationNumber",
+ "FRValueAddedTaxNumber",
+ "DEDriversLicenseNumber",
+ "DEPassportNumber",
+ "DEIdentityCardNumber",
+ "DETaxIdentificationNumber",
+ "DEValueAddedNumber",
+ "GRNationalIDCard",
+ "GRNationalIDV2",
+ "GRTaxIdentificationNumber",
+ "HKIdentityCardNumber",
+ "HUValueAddedNumber",
+ "HUPersonalIdentificationNumber",
+ "HUTaxIdentificationNumber",
+ "INPermanentAccount",
+ "INUniqueIdentificationNumber",
+ "IDIdentityCardNumber",
+ "InternationalBankingAccountNumber",
+ "IEPersonalPublicServiceNumber",
+ "IEPersonalPublicServiceNumberV2",
+ "ILBankAccountNumber",
+ "ILNationalID",
+ "ITDriversLicenseNumber",
+ "ITFiscalCode",
+ "ITValueAddedTaxNumber",
+ "JPBankAccountNumber",
+ "JPDriversLicenseNumber",
+ "JPPassportNumber",
+ "JPResidentRegistrationNumber",
+ "JPSocialInsuranceNumber",
+ "JPMyNumberCorporate",
+ "JPMyNumberPersonal",
+ "JPResidenceCardNumber",
+ "LVPersonalCode",
+ "LTPersonalCode",
+ "LUNationalIdentificationNumberNatural",
+ "LUNationalIdentificationNumberNonNatural",
+ "MYIdentityCardNumber",
+ "MTIdentityCardNumber",
+ "MTTaxIDNumber",
+ "NLCitizensServiceNumber",
+ "NLCitizensServiceNumberV2",
+ "NLTaxIdentificationNumber",
+ "NLValueAddedTaxNumber",
+ "NZBankAccountNumber",
+ "NZDriversLicenseNumber",
+ "NZInlandRevenueNumber",
+ "NZMinistryOfHealthNumber",
+ "NZSocialWelfareNumber",
+ "NOIdentityNumber",
+ "PHUnifiedMultiPurposeIDNumber",
+ "PLIdentityCard",
+ "PLNationalID",
+ "PLNationalIDV2",
+ "PLPassportNumber",
+ "PLTaxIdentificationNumber",
+ "PLREGONNumber",
+ "PTCitizenCardNumber",
+ "PTCitizenCardNumberV2",
+ "PTTaxIdentificationNumber",
+ "ROPersonalNumericalCode",
+ "RUPassportNumberDomestic",
+ "RUPassportNumberInternational",
+ "SANationalID",
+ "SGNationalRegistrationIdentityCardNumber",
+ "SKPersonalNumber",
+ "SITaxIdentificationNumber",
+ "SIUniqueMasterCitizenNumber",
+ "ZAIdentificationNumber",
+ "KRResidentRegistrationNumber",
+ "ESDNI",
+ "ESSocialSecurityNumber",
+ "ESTaxIdentificationNumber",
+ "SQLServerConnectionString",
+ "SENationalID",
+ "SENationalIDV2",
+ "SEPassportNumber",
+ "SETaxIdentificationNumber",
+ "SWIFTCode",
+ "CHSocialSecurityNumber",
+ "TWNationalID",
+ "TWPassportNumber",
+ "TWResidentCertificate",
+ "THPopulationIdentificationCode",
+ "TRNationalIdentificationNumber",
+ "UKDriversLicenseNumber",
+ "UKElectoralRollNumber",
+ "UKNationalHealthNumber",
+ "UKNationalInsuranceNumber",
+ "UKUniqueTaxpayerNumber",
+ "USUKPassportNumber",
+ "USBankAccountNumber",
+ "USDriversLicenseNumber",
+ "USIndividualTaxpayerIdentification",
+ "USSocialSecurityNumber",
+ "UAPassportNumberDomestic",
+ "UAPassportNumberInternational",
+ "Organization",
+ "Email",
+ "URL",
+ "Age",
+ "PhoneNumber",
+ "IPAddress",
+ "Date",
+ "Person",
+ "Address",
+ "All",
+ "Default"
+ ]
+ },
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "parameters": {
+ "Endpoint": {
+ "name": "Endpoint",
+ "description": "Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus.api.cognitive.microsoft.com).",
+ "x-ms-parameter-location": "client",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ },
+ "StringIndexType": {
+ "name": "stringIndexType",
+ "in": "query",
+ "type": "string",
+ "description": "(Optional) Specifies the method used to interpret string offsets. Defaults to Text Elements (Graphemes) according to Unicode v8.0.0. For additional information see https://aka.ms/text-analytics-offsets",
+ "default": "TextElement_v8",
+ "enum": [
+ "TextElement_v8",
+ "UnicodeCodePoint",
+ "Utf16CodeUnit"
+ ],
+ "x-ms-enum": {
+ "name": "StringIndexType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "TextElement_v8",
+ "description": "Returned offset and length values will correspond to TextElements (Graphemes and Grapheme clusters) confirming to the Unicode 8.0.0 standard. Use this option if your application is written in .Net Framework or .Net Core and you will be using StringInfo."
+ },
+ {
+ "value": "UnicodeCodePoint",
+ "description": "Returned offset and length values will correspond to Unicode code points. Use this option if your application is written in a language that support Unicode, for example Python."
+ },
+ {
+ "value": "Utf16CodeUnit",
+ "description": "Returned offset and length values will correspond to UTF-16 code units. Use this option if your application is written in a language that support Unicode, for example Java, JavaScript."
+ }
+ ]
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "PiiCategories": {
+ "description": "(Optional) describes the PII categories to return",
+ "in": "query",
+ "collectionFormat": "csv",
+ "items": {
+ "type": "string",
+ "x-ms-enum": {
+ "name": "PiiCategory",
+ "modelAsString": true
+ },
+ "enum": [
+ "ABARoutingNumber",
+ "ARNationalIdentityNumber",
+ "AUBankAccountNumber",
+ "AUDriversLicenseNumber",
+ "AUMedicalAccountNumber",
+ "AUPassportNumber",
+ "AUTaxFileNumber",
+ "AUBusinessNumber",
+ "AUCompanyNumber",
+ "ATIdentityCard",
+ "ATTaxIdentificationNumber",
+ "ATValueAddedTaxNumber",
+ "AzureDocumentDBAuthKey",
+ "AzureIAASDatabaseConnectionAndSQLString",
+ "AzureIoTConnectionString",
+ "AzurePublishSettingPassword",
+ "AzureRedisCacheString",
+ "AzureSAS",
+ "AzureServiceBusString",
+ "AzureStorageAccountKey",
+ "AzureStorageAccountGeneric",
+ "BENationalNumber",
+ "BENationalNumberV2",
+ "BEValueAddedTaxNumber",
+ "BRCPFNumber",
+ "BRLegalEntityNumber",
+ "BRNationalIDRG",
+ "BGUniformCivilNumber",
+ "CABankAccountNumber",
+ "CADriversLicenseNumber",
+ "CAHealthServiceNumber",
+ "CAPassportNumber",
+ "CAPersonalHealthIdentification",
+ "CASocialInsuranceNumber",
+ "CLIdentityCardNumber",
+ "CNResidentIdentityCardNumber",
+ "CreditCardNumber",
+ "HRIdentityCardNumber",
+ "HRNationalIDNumber",
+ "HRPersonalIdentificationNumber",
+ "HRPersonalIdentificationOIBNumberV2",
+ "CYIdentityCard",
+ "CYTaxIdentificationNumber",
+ "CZPersonalIdentityNumber",
+ "CZPersonalIdentityV2",
+ "DKPersonalIdentificationNumber",
+ "DKPersonalIdentificationV2",
+ "DrugEnforcementAgencyNumber",
+ "EEPersonalIdentificationCode",
+ "EUDebitCardNumber",
+ "EUDriversLicenseNumber",
+ "EUGPSCoordinates",
+ "EUNationalIdentificationNumber",
+ "EUPassportNumber",
+ "EUSocialSecurityNumber",
+ "EUTaxIdentificationNumber",
+ "FIEuropeanHealthNumber",
+ "FINationalID",
+ "FINationalIDV2",
+ "FIPassportNumber",
+ "FRDriversLicenseNumber",
+ "FRHealthInsuranceNumber",
+ "FRNationalID",
+ "FRPassportNumber",
+ "FRSocialSecurityNumber",
+ "FRTaxIdentificationNumber",
+ "FRValueAddedTaxNumber",
+ "DEDriversLicenseNumber",
+ "DEPassportNumber",
+ "DEIdentityCardNumber",
+ "DETaxIdentificationNumber",
+ "DEValueAddedNumber",
+ "GRNationalIDCard",
+ "GRNationalIDV2",
+ "GRTaxIdentificationNumber",
+ "HKIdentityCardNumber",
+ "HUValueAddedNumber",
+ "HUPersonalIdentificationNumber",
+ "HUTaxIdentificationNumber",
+ "INPermanentAccount",
+ "INUniqueIdentificationNumber",
+ "IDIdentityCardNumber",
+ "InternationalBankingAccountNumber",
+ "IEPersonalPublicServiceNumber",
+ "IEPersonalPublicServiceNumberV2",
+ "ILBankAccountNumber",
+ "ILNationalID",
+ "ITDriversLicenseNumber",
+ "ITFiscalCode",
+ "ITValueAddedTaxNumber",
+ "JPBankAccountNumber",
+ "JPDriversLicenseNumber",
+ "JPPassportNumber",
+ "JPResidentRegistrationNumber",
+ "JPSocialInsuranceNumber",
+ "JPMyNumberCorporate",
+ "JPMyNumberPersonal",
+ "JPResidenceCardNumber",
+ "LVPersonalCode",
+ "LTPersonalCode",
+ "LUNationalIdentificationNumberNatural",
+ "LUNationalIdentificationNumberNonNatural",
+ "MYIdentityCardNumber",
+ "MTIdentityCardNumber",
+ "MTTaxIDNumber",
+ "NLCitizensServiceNumber",
+ "NLCitizensServiceNumberV2",
+ "NLTaxIdentificationNumber",
+ "NLValueAddedTaxNumber",
+ "NZBankAccountNumber",
+ "NZDriversLicenseNumber",
+ "NZInlandRevenueNumber",
+ "NZMinistryOfHealthNumber",
+ "NZSocialWelfareNumber",
+ "NOIdentityNumber",
+ "PHUnifiedMultiPurposeIDNumber",
+ "PLIdentityCard",
+ "PLNationalID",
+ "PLNationalIDV2",
+ "PLPassportNumber",
+ "PLTaxIdentificationNumber",
+ "PLREGONNumber",
+ "PTCitizenCardNumber",
+ "PTCitizenCardNumberV2",
+ "PTTaxIdentificationNumber",
+ "ROPersonalNumericalCode",
+ "RUPassportNumberDomestic",
+ "RUPassportNumberInternational",
+ "SANationalID",
+ "SGNationalRegistrationIdentityCardNumber",
+ "SKPersonalNumber",
+ "SITaxIdentificationNumber",
+ "SIUniqueMasterCitizenNumber",
+ "ZAIdentificationNumber",
+ "KRResidentRegistrationNumber",
+ "ESDNI",
+ "ESSocialSecurityNumber",
+ "ESTaxIdentificationNumber",
+ "SQLServerConnectionString",
+ "SENationalID",
+ "SENationalIDV2",
+ "SEPassportNumber",
+ "SETaxIdentificationNumber",
+ "SWIFTCode",
+ "CHSocialSecurityNumber",
+ "TWNationalID",
+ "TWPassportNumber",
+ "TWResidentCertificate",
+ "THPopulationIdentificationCode",
+ "TRNationalIdentificationNumber",
+ "UKDriversLicenseNumber",
+ "UKElectoralRollNumber",
+ "UKNationalHealthNumber",
+ "UKNationalInsuranceNumber",
+ "UKUniqueTaxpayerNumber",
+ "USUKPassportNumber",
+ "USBankAccountNumber",
+ "USDriversLicenseNumber",
+ "USIndividualTaxpayerIdentification",
+ "USSocialSecurityNumber",
+ "UAPassportNumberDomestic",
+ "UAPassportNumberInternational",
+ "Organization",
+ "Email",
+ "URL",
+ "Age",
+ "PhoneNumber",
+ "IPAddress",
+ "Date",
+ "Person",
+ "Address",
+ "All",
+ "Default"
+ ]
+ },
+ "name": "piiCategories",
+ "required": false,
+ "type": "array",
+ "uniqueItems": true,
+ "x-ms-parameter-location": "method"
+ },
+ "JobId": {
+ "description": "Job ID",
+ "format": "uuid",
+ "in": "path",
+ "name": "jobId",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "AnalyzeJobId": {
+ "description": "Job ID for Analyze",
+ "in": "path",
+ "name": "jobId",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "ShowStats": {
+ "name": "showStats",
+ "in": "query",
+ "description": "(Optional) if set to true, response will contain request and document level statistics.",
+ "type": "boolean",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "LoggingOptOut": {
+ "name": "loggingOptOut",
+ "in": "query",
+ "description": "(Optional) If set to true, you opt-out of having your text input logged for troubleshooting. By default, Text Analytics logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the Text Analytics natural language processing functions. Setting this parameter to true, disables input logging and may limit our ability to remediate issues that occur. Please see Cognitive Services Compliance and Privacy notes at https://aka.ms/cs-compliance for additional details, and Microsoft Responsible AI principles at https://www.microsoft.com/en-us/ai/responsible-ai.",
+ "type": "boolean",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "ModelVersion": {
+ "name": "model-version",
+ "in": "query",
+ "description": "(Optional) This value indicates which model will be used for scoring. If a model-version is not specified, the API should default to the latest, non-preview version. ",
+ "type": "string",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "MultiLanguageInput": {
+ "in": "body",
+ "name": "input",
+ "description": "Collection of documents to analyze.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MultiLanguageBatchInput"
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "LanguageInput": {
+ "in": "body",
+ "name": "input",
+ "description": "Collection of documents to analyze for language endpoint.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/LanguageBatchInput"
+ },
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulAnalyzeRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulAnalyzeRequest.json
new file mode 100644
index 000000000000..e1b8c498d32d
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulAnalyzeRequest.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "jobId": "{Job ID}",
+ "input": {
+ "displayName": "Extracting Location & US Region",
+ "analysisInput": {
+ "documents": [
+ {
+ "id": "1",
+ "language": "en",
+ "text": "I had a wonderful trip to Seattle last week."
+ },
+ {
+ "id": "2",
+ "language": "en",
+ "text": "I'm flying to NYC tomorrow. See you there."
+ }
+ ]
+ },
+ "tasks": {
+ "entityRecognitionTasks": [
+ {
+ "parameters": {
+ "model-version": "latest"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Operation-Location": "{endpoint}/text/analytics/v3.1-preview.5/analyze/jobs/{jobId}"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulAnalyzeStatusRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulAnalyzeStatusRequest.json
new file mode 100644
index 000000000000..93d23bfe90a3
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulAnalyzeStatusRequest.json
@@ -0,0 +1,112 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "jobId": "{Job ID}"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "createdDateTime": "2020-10-01T15:00:45Z",
+ "displayName": "Extracting Location & US Region",
+ "expirationDateTime": "2020-10-03T15:01:03Z",
+ "jobId": "c0f2a446-05d9-48fc-ba8f-3ef4af8d0b18",
+ "lastUpdateDateTime": "2020-10-01T15:01:03Z",
+ "status": "succeeded",
+ "tasks": {
+ "completed": 2,
+ "failed": 0,
+ "inProgress": 0,
+ "total": 2,
+ "entityRecognitionTasks": [
+ {
+ "name": "Recognize Entities (2020-04-01)",
+ "lastUpdateDateTime": "2020-10-01T15:01:03Z",
+ "status": "succeeded",
+ "results": {
+ "documents": [
+ {
+ "entities": [
+ {
+ "category": "Event",
+ "confidenceScore": 0.61,
+ "length": 4,
+ "offset": 18,
+ "text": "trip"
+ },
+ {
+ "category": "Location",
+ "confidenceScore": 0.82,
+ "length": 7,
+ "offset": 26,
+ "subcategory": "GPE",
+ "text": "Seattle"
+ },
+ {
+ "category": "DateTime",
+ "confidenceScore": 0.8,
+ "length": 9,
+ "offset": 34,
+ "subcategory": "DateRange",
+ "text": "last week"
+ }
+ ],
+ "id": "1",
+ "warnings": []
+ },
+ {
+ "entities": [
+ {
+ "category": "Location",
+ "confidenceScore": 0.52,
+ "length": 3,
+ "offset": 14,
+ "subcategory": "GPE",
+ "text": "NYC"
+ },
+ {
+ "category": "DateTime",
+ "confidenceScore": 0.8,
+ "length": 8,
+ "offset": 18,
+ "subcategory": "Date",
+ "text": "tomorrow"
+ }
+ ],
+ "id": "2",
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2020-04-01"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "404": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "NotFound",
+ "message": "Not Found",
+ "innererror": {
+ "code": "JobIdNotFound",
+ "message": "Job ID not found."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulEntitiesRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulEntitiesRequest.json
new file mode 100644
index 000000000000..d6c9a0221153
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulEntitiesRequest.json
@@ -0,0 +1,94 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "id": "1",
+ "language": "en",
+ "text": "Microsoft was founded by Bill Gates and Paul Allen."
+ },
+ {
+ "id": "2",
+ "language": "en",
+ "text": "Pike place market is my favorite Seattle attraction."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "entities": [
+ {
+ "category": "Organization",
+ "confidenceScore": 0.84,
+ "length": 9,
+ "offset": 0,
+ "text": "Microsoft"
+ },
+ {
+ "category": "Person",
+ "confidenceScore": 0.85,
+ "length": 10,
+ "offset": 25,
+ "text": "Bill Gates"
+ },
+ {
+ "category": "Person",
+ "confidenceScore": 0.9,
+ "length": 10,
+ "offset": 40,
+ "text": "Paul Allen"
+ }
+ ],
+ "id": "1",
+ "warnings": []
+ },
+ {
+ "entities": [
+ {
+ "category": "Location",
+ "confidenceScore": 0.55,
+ "length": 7,
+ "offset": 33,
+ "subcategory": "GPE",
+ "text": "Seattle"
+ }
+ ],
+ "id": "2",
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2020-04-01"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulEntityLinkingRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulEntityLinkingRequest.json
new file mode 100644
index 000000000000..998ac1d65bab
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulEntityLinkingRequest.json
@@ -0,0 +1,140 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "id": "1",
+ "language": "en",
+ "text": "Microsoft was founded by Bill Gates and Paul Allen."
+ },
+ {
+ "id": "2",
+ "language": "en",
+ "text": "Pike place market is my favorite Seattle attraction."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "entities": [
+ {
+ "dataSource": "Wikipedia",
+ "id": "Bill Gates",
+ "language": "en",
+ "matches": [
+ {
+ "confidenceScore": 0.52,
+ "length": 10,
+ "offset": 25,
+ "text": "Bill Gates"
+ }
+ ],
+ "name": "Bill Gates",
+ "url": "https://en.wikipedia.org/wiki/Bill_Gates"
+ },
+ {
+ "dataSource": "Wikipedia",
+ "id": "Paul Allen",
+ "language": "en",
+ "matches": [
+ {
+ "confidenceScore": 0.54,
+ "length": 10,
+ "offset": 40,
+ "text": "Paul Allen"
+ }
+ ],
+ "name": "Paul Allen",
+ "url": "https://en.wikipedia.org/wiki/Paul_Allen"
+ },
+ {
+ "dataSource": "Wikipedia",
+ "id": "Microsoft",
+ "language": "en",
+ "matches": [
+ {
+ "confidenceScore": 0.49,
+ "length": 9,
+ "offset": 0,
+ "text": "Microsoft"
+ }
+ ],
+ "name": "Microsoft",
+ "url": "https://en.wikipedia.org/wiki/Microsoft"
+ }
+ ],
+ "id": "1",
+ "warnings": []
+ },
+ {
+ "entities": [
+ {
+ "dataSource": "Wikipedia",
+ "id": "Pike Place Market",
+ "language": "en",
+ "matches": [
+ {
+ "confidenceScore": 0.86,
+ "length": 17,
+ "offset": 0,
+ "text": "Pike place market"
+ }
+ ],
+ "name": "Pike Place Market",
+ "url": "https://en.wikipedia.org/wiki/Pike_Place_Market"
+ },
+ {
+ "dataSource": "Wikipedia",
+ "id": "Seattle",
+ "language": "en",
+ "matches": [
+ {
+ "confidenceScore": 0.27,
+ "length": 7,
+ "offset": 33,
+ "text": "Seattle"
+ }
+ ],
+ "name": "Seattle",
+ "url": "https://en.wikipedia.org/wiki/Seattle"
+ }
+ ],
+ "id": "2",
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2020-02-01"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulEntityPIIRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulEntityPIIRequest.json
new file mode 100644
index 000000000000..d125525bda91
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulEntityPIIRequest.json
@@ -0,0 +1,100 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "id": "1",
+ "language": "en",
+ "text": "My SSN is 859-98-0987"
+ },
+ {
+ "id": "2",
+ "language": "en",
+ "text": "Your ABA number - 111000025 - is the first 9 digits in the lower left hand corner of your personal check."
+ },
+ {
+ "id": "3",
+ "language": "en",
+ "text": "Is 998.214.865-68 your Brazilian CPF number?"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "id": "1",
+ "redactedText": "My SSN is ***********",
+ "entities": [
+ {
+ "category": "U.S. Social Security Number (SSN)",
+ "confidenceScore": 0.65,
+ "length": 11,
+ "offset": 28,
+ "text": "859-98-0987"
+ }
+ ],
+ "warnings": []
+ },
+ {
+ "id": "2",
+ "redactedText": "Your ABA number - ********* - is the first 9 digits in the lower left hand corner of your personal check.",
+ "entities": [
+ {
+ "category": "ABA Routing Number",
+ "confidenceScore": 0.75,
+ "length": 9,
+ "offset": 18,
+ "text": "111000025"
+ }
+ ],
+ "warnings": []
+ },
+ {
+ "id": "3",
+ "redactedText": "Is ************** your Brazilian CPF number?",
+ "entities": [
+ {
+ "category": "Brazil CPF Number",
+ "confidenceScore": 0.85,
+ "length": 14,
+ "offset": 3,
+ "text": "998.214.865-68"
+ }
+ ],
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2019-10-01"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulHealthDeleteRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulHealthDeleteRequest.json
new file mode 100644
index 000000000000..569ae75df649
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulHealthDeleteRequest.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "jobId": "{Job ID}"
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Operation-Location": "{endpoint}/text/analytics/v3.1-preview.5/entities/healthcare/jobs/{jobId}"
+ }
+ },
+ "404": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "NotFound",
+ "message": "Not Found",
+ "innererror": {
+ "code": "JobIdNotFound",
+ "message": "Job ID not found."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulHealthRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulHealthRequest.json
new file mode 100644
index 000000000000..2fa1e9978902
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulHealthRequest.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "jobId": "{Job ID}",
+ "input": {
+ "documents": [
+ {
+ "id": "1",
+ "language": "en",
+ "text": "Subject is taking 100mg of ibuprofen twice daily."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Operation-Location": "{endpoint}/text/analytics/v3.1-preview.5/entities/healthcare/jobs/{jobId}"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulHealthStatusRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulHealthStatusRequest.json
new file mode 100644
index 000000000000..1bb24e508072
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulHealthStatusRequest.json
@@ -0,0 +1,227 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "jobId": "{Job ID}"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "createdDateTime": "2020-10-01T15:01:03Z",
+ "expirationDateTime": "2020-10-03T15:01:03Z",
+ "jobId": "c0f2a446-05d9-48fc-ba8f-3ef4af8d0b18",
+ "lastUpdateDateTime": "2020-10-01T15:01:03Z",
+ "status": "succeeded",
+ "results": {
+ "documents": [
+ {
+ "id": "1",
+ "entities": [
+ {
+ "offset": 18,
+ "length": 5,
+ "text": "100mg",
+ "category": "Dosage",
+ "confidenceScore": 0.99
+ },
+ {
+ "offset": 27,
+ "length": 9,
+ "text": "ibuprofen",
+ "category": "MedicationName",
+ "confidenceScore": 1.0,
+ "assertion": {
+ "certainty": "positive"
+ },
+ "links": [
+ {
+ "id": "C0020740",
+ "dataSource": "UMLS"
+ },
+ {
+ "id": "0000019879",
+ "dataSource": "AOD"
+ },
+ {
+ "id": "M01AE01",
+ "dataSource": "ATC"
+ },
+ {
+ "id": "0046165",
+ "dataSource": "CCPSS"
+ },
+ {
+ "id": "0000006519",
+ "dataSource": "CHV"
+ },
+ {
+ "id": "2270-2077",
+ "dataSource": "CSP"
+ },
+ {
+ "id": "DB01050",
+ "dataSource": "DRUGBANK"
+ },
+ {
+ "id": "1611",
+ "dataSource": "GS"
+ },
+ {
+ "id": "sh97005926",
+ "dataSource": "LCH_NW"
+ },
+ {
+ "id": "LP16165-0",
+ "dataSource": "LNC"
+ },
+ {
+ "id": "40458",
+ "dataSource": "MEDCIN"
+ },
+ {
+ "id": "d00015",
+ "dataSource": "MMSL"
+ },
+ {
+ "id": "D007052",
+ "dataSource": "MSH"
+ },
+ {
+ "id": "WK2XYI10QM",
+ "dataSource": "MTHSPL"
+ },
+ {
+ "id": "C561",
+ "dataSource": "NCI"
+ },
+ {
+ "id": "C561",
+ "dataSource": "NCI_CTRP"
+ },
+ {
+ "id": "00803",
+ "dataSource": "NCI_DCP"
+ },
+ {
+ "id": "NSC0256857",
+ "dataSource": "NCI_DTP"
+ },
+ {
+ "id": "WK2XYI10QM",
+ "dataSource": "NCI_FDA"
+ },
+ {
+ "id": "CDR0000613511",
+ "dataSource": "NCI_NCI-GLOSS"
+ },
+ {
+ "id": "002377",
+ "dataSource": "NDDF"
+ },
+ {
+ "id": "CDR0000040475",
+ "dataSource": "PDQ"
+ },
+ {
+ "id": "x02MO",
+ "dataSource": "RCD"
+ },
+ {
+ "id": "5640",
+ "dataSource": "RXNORM"
+ },
+ {
+ "id": "E-7772",
+ "dataSource": "SNM"
+ },
+ {
+ "id": "C-603C0",
+ "dataSource": "SNMI"
+ },
+ {
+ "id": "387207008",
+ "dataSource": "SNOMEDCT_US"
+ },
+ {
+ "id": "m39860",
+ "dataSource": "USP"
+ },
+ {
+ "id": "MTHU000060",
+ "dataSource": "USPMG"
+ },
+ {
+ "id": "4017840",
+ "dataSource": "VANDF"
+ }
+ ]
+ },
+ {
+ "offset": 37,
+ "length": 11,
+ "text": "twice daily",
+ "category": "Frequency",
+ "confidenceScore": 1
+ }
+ ],
+ "relations": [
+ {
+ "relationType": "DosageOfMedication",
+ "entities": [
+ {
+ "ref": "#/documents/0/entities/0",
+ "role": "Attribute"
+ },
+ {
+ "ref": "#/documents/0/entities/1",
+ "role": "Entity"
+ }
+ ]
+ },
+ {
+ "relationType": "FrequencyOfMedication",
+ "entities": [
+ {
+ "ref": "#/documents/0/entities/2",
+ "role": "Attribute"
+ },
+ {
+ "ref": "#/documents/0/entities/1",
+ "role": "Entity"
+ }
+ ]
+ }
+ ],
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2020-05-08"
+ }
+ }
+ },
+ "404": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "NotFound",
+ "message": "Not Found",
+ "innererror": {
+ "code": "JobIdNotFound",
+ "message": "Job ID not found."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulKeyPhrasesRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulKeyPhrasesRequest.json
new file mode 100644
index 000000000000..f45b74e027f5
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulKeyPhrasesRequest.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "id": "1",
+ "language": "en",
+ "text": "Microsoft was founded by Bill Gates and Paul Allen."
+ },
+ {
+ "id": "2",
+ "language": "en",
+ "text": "Text Analytics is one of the Azure Cognitive Services."
+ },
+ {
+ "id": "3",
+ "language": "en",
+ "text": "My cat might need to see a veterinarian."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "id": "1",
+ "keyPhrases": [
+ "Bill Gates",
+ "Paul Allen",
+ "Microsoft"
+ ],
+ "warnings": []
+ },
+ {
+ "id": "2",
+ "keyPhrases": [
+ "Azure Cognitive Services",
+ "Text Analytics"
+ ],
+ "warnings": []
+ },
+ {
+ "id": "3",
+ "keyPhrases": [
+ "cat",
+ "veterinarian"
+ ],
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2019-10-01"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulLanguagesRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulLanguagesRequest.json
new file mode 100644
index 000000000000..b1077b92db58
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulLanguagesRequest.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "id": "1",
+ "text": "Hello world"
+ },
+ {
+ "id": "2",
+ "text": "Bonjour tout le monde"
+ },
+ {
+ "id": "3",
+ "text": "Hola mundo"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "detectedLanguage": {
+ "confidenceScore": 1,
+ "iso6391Name": "en",
+ "name": "English"
+ },
+ "id": "1",
+ "warnings": []
+ },
+ {
+ "detectedLanguage": {
+ "confidenceScore": 1,
+ "iso6391Name": "fr",
+ "name": "French"
+ },
+ "id": "2",
+ "warnings": []
+ },
+ {
+ "detectedLanguage": {
+ "confidenceScore": 1,
+ "iso6391Name": "es",
+ "name": "Spanish"
+ },
+ "id": "3",
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2020-04-01"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulSentimentRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulSentimentRequest.json
new file mode 100644
index 000000000000..c751289f2ac1
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.5/examples/SuccessfulSentimentRequest.json
@@ -0,0 +1,160 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "id": "1",
+ "language": "en",
+ "text": "Great atmosphere. Close to plenty of restaurants, hotels, and transit! Staff are friendly and helpful."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "confidenceScores": {
+ "negative": 0,
+ "neutral": 0,
+ "positive": 1
+ },
+ "id": "1",
+ "sentences": [
+ {
+ "targets": [
+ {
+ "confidenceScores": {
+ "negative": 0,
+ "positive": 1
+ },
+ "length": 10,
+ "offset": 6,
+ "relations": [
+ {
+ "ref": "#/documents/0/sentences/0/assessments/0",
+ "relationType": "assessment"
+ }
+ ],
+ "sentiment": "positive",
+ "text": "atmosphere"
+ }
+ ],
+ "confidenceScores": {
+ "negative": 0,
+ "neutral": 0,
+ "positive": 1
+ },
+ "length": 17,
+ "offset": 0,
+ "assessments": [
+ {
+ "confidenceScores": {
+ "negative": 0,
+ "positive": 1
+ },
+ "isNegated": false,
+ "length": 5,
+ "offset": 0,
+ "sentiment": "positive",
+ "text": "great"
+ }
+ ],
+ "sentiment": "positive",
+ "text": "Great atmosphere."
+ },
+ {
+ "targets": [
+ {
+ "confidenceScores": {
+ "negative": 0.01,
+ "positive": 0.99
+ },
+ "length": 11,
+ "offset": 37,
+ "relations": [
+ {
+ "ref": "#/documents/0/sentences/1/assessments/0",
+ "relationType": "assessment"
+ }
+ ],
+ "sentiment": "positive",
+ "text": "restaurants"
+ },
+ {
+ "confidenceScores": {
+ "negative": 0.01,
+ "positive": 0.99
+ },
+ "length": 6,
+ "offset": 50,
+ "relations": [
+ {
+ "ref": "#/documents/0/sentences/1/assessments/0",
+ "relationType": "assessment"
+ }
+ ],
+ "sentiment": "positive",
+ "text": "hotels"
+ }
+ ],
+ "confidenceScores": {
+ "negative": 0.01,
+ "neutral": 0.86,
+ "positive": 0.13
+ },
+ "length": 52,
+ "offset": 18,
+ "assessments": [
+ {
+ "confidenceScores": {
+ "negative": 0.01,
+ "positive": 0.99
+ },
+ "isNegated": false,
+ "length": 15,
+ "offset": 18,
+ "sentiment": "positive",
+ "text": "Close to plenty"
+ }
+ ],
+ "sentiment": "neutral",
+ "text": "Close to plenty of restaurants, hotels, and transit!"
+ }
+ ],
+ "sentiment": "positive",
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2020-04-01"
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InvalidRequest",
+ "message": "Invalid Request.",
+ "innererror": {
+ "code": "MissingInputRecords",
+ "message": "Missing input records."
+ }
+ }
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "error": {
+ "code": "InternalServerError",
+ "message": "Internal Server Error"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/readme.md b/specification/cognitiveservices/data-plane/TextAnalytics/readme.md
index a349ea5f0210..3565ecfa5880 100644
--- a/specification/cognitiveservices/data-plane/TextAnalytics/readme.md
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/readme.md
@@ -108,6 +108,14 @@ These settings apply only when `--tag=release_3_1_preview.4` is specified on the
input-file: preview/v3.1-preview.4/TextAnalytics.json
```
+### Release 3.1-Preview.5
+
+These settings apply only when `--tag=release_3_1_preview.5` is specified on the command line.
+
+```yaml $(tag) == 'release_3_1_preview.5'
+input-file: preview/v3.1-preview.5/TextAnalytics.json
+```
+
## Swagger to SDK
This section describes what SDK should be generated by the automatic system.
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/readme.python.md b/specification/cognitiveservices/data-plane/TextAnalytics/readme.python.md
index f1f64c8a2a92..4a0a38e2519f 100644
--- a/specification/cognitiveservices/data-plane/TextAnalytics/readme.python.md
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/readme.python.md
@@ -60,4 +60,10 @@ output-folder: $(python-sdks-folder)/textanalytics/azure-ai-textanalytics/azure/
``` yaml $(tag) == 'release_3_1_preview.4'
namespace: azure.ai.textanalytics.v3_1_preview_4
output-folder: $(python-sdks-folder)/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/v3_1_preview_4
+```
+
+### Tag: release_3_1_preview_5
+``` yaml $(tag) == 'release_3_1_preview.5'
+namespace: azure.ai.textanalytics.v3_1_preview_5
+output-folder: $(python-sdks-folder)/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/v3_1_preview_5
```
\ No newline at end of file
diff --git a/specification/cognitiveservices/data-plane/TranslatorText/preview/v1.0-preview.1/TranslatorBatch.json b/specification/cognitiveservices/data-plane/TranslatorText/preview/v1.0-preview.1/TranslatorBatch.json
index 2f49d9301271..a5bc7cadf0d3 100644
--- a/specification/cognitiveservices/data-plane/TranslatorText/preview/v1.0-preview.1/TranslatorBatch.json
+++ b/specification/cognitiveservices/data-plane/TranslatorText/preview/v1.0-preview.1/TranslatorBatch.json
@@ -12,7 +12,7 @@
],
"summary": "Submit a document translation request to the Document Translation service",
"description": "Use this API to submit a bulk (batch) translation request to the Document Translation service.\r\nEach request can contain multiple documents and must contain a source and destination container for each document.\r\n \r\nThe prefix and suffix filter (if supplied) are used to filter folders. The prefix is applied to the subpath after the container name.\r\n \r\nGlossaries / Translation memory can be included in the request and are applied by the service when the document is translated.\r\n \r\nIf the glossary is invalid or unreachable during translation, an error is indicated in the document status.\r\nIf a file with the same name already exists at the destination, it will be overwritten. The targetUrl for each target language must be unique.",
- "operationId": "DocumentTranslation_SubmitBatchRequest",
+ "operationId": "DocumentTranslation_StartTranslation",
"consumes": [
"application/json",
"text/json",
@@ -23,11 +23,12 @@
],
"parameters": [
{
+ "required": true,
"in": "body",
"name": "body",
"description": "request details",
"schema": {
- "$ref": "#/definitions/BatchSubmissionRequest"
+ "$ref": "#/definitions/StartTranslationDetails"
}
}
],
@@ -45,7 +46,7 @@
"400": {
"description": "Invalid request. Check input parameters",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InvalidRequest\",\r\n \"message\": \"Some argument is incorrect\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"SASTokenInvalid\",\r\n \"message\": \"SAS token for storage is invalid\"\r\n }\r\n }\r\n}"
@@ -55,7 +56,7 @@
"401": {
"description": "Unauthorized. Please check your credentials",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"User is not authorized\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"Operation is not authorized\"\r\n }\r\n }\r\n}"
@@ -65,7 +66,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -75,7 +76,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -85,7 +86,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -109,7 +110,7 @@
],
"summary": "Returns a list of batch requests submitted and the status for each request",
"description": "Returns a list of batch requests submitted and the status for each request.\r\nThis list only contains batch requests submitted by the user (based on the resource).\r\n \r\nIf the number of requests exceeds our paging limit, server-side paging is used. Paginated responses indicate a partial result and include a continuation token in the response.\r\nThe absence of a continuation token means that no additional pages are available.\r\n \r\n$top, $skip and $maxpagesize query parameters can be used to specify a number of results to return and an offset for the collection.\r\n \r\n$top indicates the total number of records the user wants to be returned across all pages.\r\n$skip indicates the number of records to skip from the list of batches based on the sorting method specified. By default, we sort by descending start time.\r\n$maxpagesize is the maximum items returned in a page. If more items are requested via $top (or $top is not specified and there are more items to be returned), @nextLink will contain the link to the next page.\r\n \r\n$orderBy query parameter can be used to sort the returned list (ex \"$orderBy=createdDateTimeUtc asc\" or \"$orderBy=createdDateTimeUtc desc\").\r\nThe default sorting is descending by createdDateTimeUtc.\r\nSome query parameters can be used to filter the returned list (ex: \"status=Succeeded,Cancelled\") will only return succeeded and cancelled operations.\r\ncreatedDateTimeUtcStart and createdDateTimeUtcEnd can be used combined or separately to specify a range of datetime to filter the returned list by.\r\nThe supported filtering query parameters are (status, ids, createdDateTimeUtcStart, createdDateTimeUtcEnd).\r\n \r\nThe server honors the values specified by the client. However, clients must be prepared to handle responses that contain a different page size or contain a continuation token.\r\n \r\nWhen both $top and $skip are included, the server should first apply $skip and then $top on the collection.\r\nNote: If the server can't honor $top and/or $skip, the server must return an error to the client informing about it instead of just ignoring the query options.\r\nThis reduces the risk of the client making assumptions about the data returned.",
- "operationId": "DocumentTranslation_GetOperations",
+ "operationId": "DocumentTranslation_GetTranslationsStatus",
"produces": [
"application/json"
],
@@ -193,7 +194,7 @@
"200": {
"description": "Successful request and returns the status of the all the operations",
"schema": {
- "$ref": "#/definitions/BatchStatusResponse"
+ "$ref": "#/definitions/TranslationsStatus"
},
"headers": {
"Retry-After": {
@@ -211,7 +212,7 @@
"400": {
"description": "Invalid request. Check input parameters",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InvalidRequest\",\r\n \"message\": \"Some argument is incorrect\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"SASTokenInvalid\",\r\n \"message\": \"SAS token for storage is invalid\"\r\n }\r\n }\r\n}"
@@ -221,7 +222,7 @@
"401": {
"description": "Unauthorized. Please check your credentials",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"User is not authorized\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"Operation is not authorized\"\r\n }\r\n }\r\n}"
@@ -231,7 +232,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -241,7 +242,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -251,7 +252,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -302,7 +303,7 @@
"200": {
"description": "Successful request and it is accepted by the service. The operation details are returned",
"schema": {
- "$ref": "#/definitions/DocumentStatusDetail"
+ "$ref": "#/definitions/DocumentStatus"
},
"headers": {
"Retry-After": {
@@ -320,7 +321,7 @@
"401": {
"description": "Unauthorized. Please check your credentials",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"User is not authorized\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"Operation is not authorized\"\r\n }\r\n }\r\n}"
@@ -330,7 +331,7 @@
"404": {
"description": "Resource is not found",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"id not found\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"Resource requested is not found\"\r\n }\r\n }\r\n}"
@@ -340,7 +341,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -350,7 +351,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -360,7 +361,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -382,7 +383,7 @@
],
"summary": "Returns the status for a document translation request",
"description": "Returns the status for a document translation request.\r\nThe status includes the overall request status, as well as the status for documents that are being translated as part of that request.",
- "operationId": "DocumentTranslation_GetOperationStatus",
+ "operationId": "DocumentTranslation_GetTranslationStatus",
"produces": [
"application/json"
],
@@ -400,7 +401,7 @@
"200": {
"description": "Successful request and returns the status of the batch translation operation",
"schema": {
- "$ref": "#/definitions/BatchStatusDetail"
+ "$ref": "#/definitions/TranslationStatus"
},
"headers": {
"Retry-After": {
@@ -418,7 +419,7 @@
"401": {
"description": "Unauthorized. Please check your credentials",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"User is not authorized\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"Operation is not authorized\"\r\n }\r\n }\r\n}"
@@ -428,7 +429,7 @@
"404": {
"description": "Resource is not found",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"id not found\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"Resource requested is not found\"\r\n }\r\n }\r\n}"
@@ -438,7 +439,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -448,7 +449,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -458,7 +459,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -476,9 +477,9 @@
"tags": [
"Document Translation"
],
- "summary": "Cancel a currently processing or queued operation",
- "description": "Cancel a currently processing or queued operation.\r\nCancel a currently processing or queued operation.\r\nAn operation will not be cancelled if it is already completed or failed or cancelling. A bad request will be returned.\r\nAll documents that have completed translation will not be cancelled and will be charged.\r\nAll pending documents will be cancelled if possible.",
- "operationId": "DocumentTranslation_CancelOperation",
+ "summary": "Cancel a currently processing or queued translation",
+ "description": "Cancel a currently processing or queued translation.\r\nCancel a currently processing or queued translation.\r\nA translation will not be cancelled if it is already completed or failed or cancelling. A bad request will be returned.\r\nAll documents that have completed translation will not be cancelled and will be charged.\r\nAll pending documents will be cancelled if possible.",
+ "operationId": "DocumentTranslation_CancelTranslation",
"produces": [
"application/json"
],
@@ -496,13 +497,13 @@
"200": {
"description": "Cancel request has been submitted",
"schema": {
- "$ref": "#/definitions/BatchStatusDetail"
+ "$ref": "#/definitions/TranslationStatus"
}
},
"401": {
"description": "Unauthorized. Please check your credentials",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"User is not authorized\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"Operation is not authorized\"\r\n }\r\n }\r\n}"
@@ -512,7 +513,7 @@
"404": {
"description": "Resource is not found",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"id not found\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"Resource requested is not found\"\r\n }\r\n }\r\n}"
@@ -522,7 +523,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -532,7 +533,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -542,7 +543,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -564,7 +565,7 @@
],
"summary": "Returns the status for all documents in a batch document translation request",
"description": "Returns the status for all documents in a batch document translation request.\r\n \r\nIf the number of documents in the response exceeds our paging limit, server-side paging is used.\r\nPaginated responses indicate a partial result and include a continuation token in the response. The absence of a continuation token means that no additional pages are available.\r\n \r\n$top, $skip and $maxpagesize query parameters can be used to specify a number of results to return and an offset for the collection.\r\n \r\n$top indicates the total number of records the user wants to be returned across all pages.\r\n$skip indicates the number of records to skip from the list of document status held by the server based on the sorting method specified. By default, we sort by descending start time.\r\n$maxpagesize is the maximum items returned in a page. If more items are requested via $top (or $top is not specified and there are more items to be returned), @nextLink will contain the link to the next page.\r\n \r\n$orderBy query parameter can be used to sort the returned list (ex \"$orderBy=createdDateTimeUtc asc\" or \"$orderBy=createdDateTimeUtc desc\").\r\nThe default sorting is descending by createdDateTimeUtc.\r\nSome query parameters can be used to filter the returned list (ex: \"status=Succeeded,Cancelled\") will only return succeeded and cancelled documents.\r\ncreatedDateTimeUtcStart and createdDateTimeUtcEnd can be used combined or separately to specify a range of datetime to filter the returned list by.\r\nThe supported filtering query parameters are (status, ids, createdDateTimeUtcStart, createdDateTimeUtcEnd).\r\n \r\nWhen both $top and $skip are included, the server should first apply $skip and then $top on the collection.\r\nNote: If the server can't honor $top and/or $skip, the server must return an error to the client informing about it instead of just ignoring the query options.\r\nThis reduces the risk of the client making assumptions about the data returned.",
- "operationId": "DocumentTranslation_GetOperationDocumentsStatus",
+ "operationId": "DocumentTranslation_GetDocumentsStatus",
"produces": [
"application/json"
],
@@ -656,7 +657,7 @@
"200": {
"description": "Successful request and returns the status of the documents",
"schema": {
- "$ref": "#/definitions/DocumentStatusResponse"
+ "$ref": "#/definitions/DocumentsStatus"
},
"headers": {
"Retry-After": {
@@ -674,7 +675,7 @@
"400": {
"description": "Invalid request. Check input parameters",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InvalidRequest\",\r\n \"message\": \"Some argument is incorrect\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"SASTokenInvalid\",\r\n \"message\": \"SAS token for storage is invalid\"\r\n }\r\n }\r\n}"
@@ -684,7 +685,7 @@
"401": {
"description": "Unauthorized. Please check your credentials",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"User is not authorized\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"Operation is not authorized\"\r\n }\r\n }\r\n}"
@@ -694,7 +695,7 @@
"404": {
"description": "Resource is not found",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"id not found\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"Resource requested is not found\"\r\n }\r\n }\r\n}"
@@ -704,7 +705,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -714,7 +715,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -724,7 +725,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -749,7 +750,7 @@
],
"summary": "Returns a list of supported document formats",
"description": "The list of supported document formats supported by the Document Translation service.\r\nThe list includes the common file extension, as well as the content-type if using the upload API.",
- "operationId": "DocumentTranslation_GetDocumentFormats",
+ "operationId": "DocumentTranslation_GetSupportedDocumentFormats",
"produces": [
"application/json"
],
@@ -757,7 +758,7 @@
"200": {
"description": "Returns the list of supported document file formats",
"schema": {
- "$ref": "#/definitions/FileFormatListResult"
+ "$ref": "#/definitions/SupportedFileFormats"
},
"headers": {
"Retry-After": {
@@ -770,7 +771,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"format\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -780,7 +781,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"format\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -790,7 +791,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"format\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -812,7 +813,7 @@
],
"summary": "Returns the list of supported glossary formats",
"description": "The list of supported glossary formats supported by the Document Translation service.\r\nThe list includes the common file extension used.",
- "operationId": "DocumentTranslation_GetGlossaryFormats",
+ "operationId": "DocumentTranslation_GetSupportedGlossaryFormats",
"produces": [
"application/json"
],
@@ -820,7 +821,7 @@
"200": {
"description": "Returns the list of supported glossary file formats",
"schema": {
- "$ref": "#/definitions/FileFormatListResult"
+ "$ref": "#/definitions/SupportedFileFormats"
},
"headers": {
"Retry-After": {
@@ -833,7 +834,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"format\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -843,7 +844,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"format\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -853,7 +854,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"format\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -875,7 +876,7 @@
],
"summary": "Returns a list of supported storage sources",
"description": "Returns a list of storage sources/options supported by the Document Translation service.",
- "operationId": "DocumentTranslation_GetDocumentStorageSource",
+ "operationId": "DocumentTranslation_GetSupportedStorageSources",
"produces": [
"application/json"
],
@@ -883,7 +884,7 @@
"200": {
"description": "Successful request and returns the list of storage sources",
"schema": {
- "$ref": "#/definitions/StorageSourceListResult"
+ "$ref": "#/definitions/SupportedStorageSources"
},
"headers": {
"Retry-After": {
@@ -896,7 +897,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"source\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -906,7 +907,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"source\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -916,7 +917,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"source\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -1095,8 +1096,8 @@
}
}
},
- "BatchSubmissionRequest": {
- "description": "Job submission batch request",
+ "StartTranslationDetails": {
+ "description": "Translation job submission batch request",
"required": [
"inputs"
],
@@ -1151,7 +1152,7 @@
]
}
},
- "ErrorCodeV2": {
+ "TranslationErrorCode": {
"description": "Enums containing high level error codes.",
"enum": [
"InvalidRequest",
@@ -1164,7 +1165,7 @@
],
"type": "string",
"x-ms-enum": {
- "name": "ErrorCodeV2",
+ "name": "TranslationErrorCode",
"modelAsString": true,
"values": [
{
@@ -1191,7 +1192,7 @@
]
}
},
- "InnerErrorV2": {
+ "InnerTranslationError": {
"description": "New Inner Error format which conforms to Cognitive Services API Guidelines which is available at https://microsoft.sharepoint.com/%3Aw%3A/t/CognitiveServicesPMO/EUoytcrjuJdKpeOKIK_QRC8BPtUYQpKBi8JsWyeDMRsWlQ?e=CPq8ow.\r\nThis contains required properties ErrorCode, message and optional properties target, details(key value pair), inner error(this can be nested).",
"required": [
"code",
@@ -1213,11 +1214,11 @@
"readOnly": true
},
"innerError": {
- "$ref": "#/definitions/InnerErrorV2"
+ "$ref": "#/definitions/InnerTranslationError"
}
}
},
- "ErrorV2": {
+ "TranslationError": {
"description": "This contains an outer error with error code, message, details, target and an inner error with more descriptive details.",
"required": [
"code",
@@ -1226,7 +1227,7 @@
"type": "object",
"properties": {
"code": {
- "$ref": "#/definitions/ErrorCodeV2"
+ "$ref": "#/definitions/TranslationErrorCode"
},
"message": {
"description": "Gets high level error message.",
@@ -1238,7 +1239,7 @@
"readOnly": true
},
"innerError": {
- "$ref": "#/definitions/InnerErrorV2"
+ "$ref": "#/definitions/InnerTranslationError"
}
}
},
@@ -1297,8 +1298,8 @@
}
}
},
- "BatchStatusDetail": {
- "description": "Job status response",
+ "TranslationStatus": {
+ "description": "Translation job status response",
"required": [
"createdDateTimeUtc",
"id",
@@ -1330,15 +1331,15 @@
"$ref": "#/definitions/Status"
},
"error": {
- "$ref": "#/definitions/ErrorV2"
+ "$ref": "#/definitions/TranslationError"
},
"summary": {
"$ref": "#/definitions/StatusSummary"
}
}
},
- "BatchStatusResponse": {
- "description": "Document Status Response",
+ "TranslationsStatus": {
+ "description": "Translation job Status Response",
"required": [
"value"
],
@@ -1348,7 +1349,7 @@
"description": "The summary status of individual operation",
"type": "array",
"items": {
- "$ref": "#/definitions/BatchStatusDetail"
+ "$ref": "#/definitions/TranslationStatus"
}
},
"@nextLink": {
@@ -1358,7 +1359,8 @@
}
}
},
- "DocumentStatusDetail": {
+ "DocumentStatus": {
+ "description": "Document Status Response",
"required": [
"createdDateTimeUtc",
"id",
@@ -1400,7 +1402,7 @@
"type": "string"
},
"error": {
- "$ref": "#/definitions/ErrorV2"
+ "$ref": "#/definitions/TranslationError"
},
"progress": {
"format": "float",
@@ -1423,8 +1425,8 @@
}
}
},
- "DocumentStatusResponse": {
- "description": "Document Status Response",
+ "DocumentsStatus": {
+ "description": "Documents Status Response",
"required": [
"value"
],
@@ -1434,7 +1436,7 @@
"description": "The detail status of individual documents",
"type": "array",
"items": {
- "$ref": "#/definitions/DocumentStatusDetail"
+ "$ref": "#/definitions/DocumentStatus"
}
},
"@nextLink": {
@@ -1484,7 +1486,7 @@
}
}
},
- "FileFormatListResult": {
+ "SupportedFileFormats": {
"description": "Base type for List return in our api",
"required": [
"value"
@@ -1500,7 +1502,7 @@
}
}
},
- "StorageSourceListResult": {
+ "SupportedStorageSources": {
"description": "Base type for List return in our api",
"required": [
"value"
@@ -1516,12 +1518,12 @@
}
}
},
- "ErrorResponseV2": {
+ "TranslationErrorResponse": {
"description": "Contains unified error information used for HTTP responses across any Cognitive Service. Instances\r\ncan be created either through Microsoft.CloudAI.Containers.HttpStatusExceptionV2 or by returning it directly from\r\na controller.",
"type": "object",
"properties": {
"error": {
- "$ref": "#/definitions/ErrorV2"
+ "$ref": "#/definitions/TranslationError"
}
}
}
diff --git a/specification/cognitiveservices/data-plane/TranslatorText/preview/v1.0-preview.1/examples/batch.json b/specification/cognitiveservices/data-plane/TranslatorText/preview/v1.0-preview.1/examples/batch.json
index 7108552c493f..aed28e872002 100644
--- a/specification/cognitiveservices/data-plane/TranslatorText/preview/v1.0-preview.1/examples/batch.json
+++ b/specification/cognitiveservices/data-plane/TranslatorText/preview/v1.0-preview.1/examples/batch.json
@@ -5,7 +5,7 @@
"resourceGroupName": "TestResourceGroup",
"endpoint": "{endpoint}",
"Ocp-Apim-Subscription-Key": "{API key}",
- "batchRequest": {
+ "body": {
"inputs": [
{
"source": {
@@ -25,7 +25,8 @@
"glossaries": [
{
"glossaryUrl": "https://myblob.blob.core.windows.net/myglossary/en_fr_glossary.xlf",
- "storageSource": "AzureBlob"
+ "storageSource": "AzureBlob",
+ "format": "XLIFF"
}
],
"storageSource": "AzureBlob"
diff --git a/specification/cognitiveservices/data-plane/TranslatorText/stable/v1.0/TranslatorBatch.json b/specification/cognitiveservices/data-plane/TranslatorText/stable/v1.0/TranslatorBatch.json
index 3552e8d6d13b..c2e8963456e5 100644
--- a/specification/cognitiveservices/data-plane/TranslatorText/stable/v1.0/TranslatorBatch.json
+++ b/specification/cognitiveservices/data-plane/TranslatorText/stable/v1.0/TranslatorBatch.json
@@ -12,7 +12,7 @@
],
"summary": "Submit a document translation request to the Document Translation service",
"description": "Use this API to submit a bulk (batch) translation request to the Document Translation service.\r\nEach request can contain multiple documents and must contain a source and destination container for each document.\r\n \r\nThe prefix and suffix filter (if supplied) are used to filter folders. The prefix is applied to the subpath after the container name.\r\n \r\nGlossaries / Translation memory can be included in the request and are applied by the service when the document is translated.\r\n \r\nIf the glossary is invalid or unreachable during translation, an error is indicated in the document status.\r\nIf a file with the same name already exists at the destination, it will be overwritten. The targetUrl for each target language must be unique.",
- "operationId": "DocumentTranslation_SubmitBatchRequest",
+ "operationId": "DocumentTranslation_StartTranslation",
"consumes": [
"application/json",
"text/json",
@@ -23,11 +23,12 @@
],
"parameters": [
{
+ "required": true,
"in": "body",
"name": "body",
"description": "request details",
"schema": {
- "$ref": "#/definitions/BatchSubmissionRequest"
+ "$ref": "#/definitions/StartTranslationDetails"
}
}
],
@@ -45,7 +46,7 @@
"400": {
"description": "Invalid request. Check input parameters",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InvalidRequest\",\r\n \"message\": \"Some argument is incorrect\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"SASTokenInvalid\",\r\n \"message\": \"SAS token for storage is invalid\"\r\n }\r\n }\r\n}"
@@ -55,7 +56,7 @@
"401": {
"description": "Unauthorized. Please check your credentials",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"User is not authorized\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"Operation is not authorized\"\r\n }\r\n }\r\n}"
@@ -65,7 +66,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -75,7 +76,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -85,7 +86,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -109,7 +110,7 @@
],
"summary": "Returns a list of batch requests submitted and the status for each request",
"description": "Returns a list of batch requests submitted and the status for each request.\r\nThis list only contains batch requests submitted by the user (based on the resource).\r\n \r\nIf the number of requests exceeds our paging limit, server-side paging is used. Paginated responses indicate a partial result and include a continuation token in the response.\r\nThe absence of a continuation token means that no additional pages are available.\r\n \r\n$top, $skip and $maxpagesize query parameters can be used to specify a number of results to return and an offset for the collection.\r\n \r\n$top indicates the total number of records the user wants to be returned across all pages.\r\n$skip indicates the number of records to skip from the list of batches based on the sorting method specified. By default, we sort by descending start time.\r\n$maxpagesize is the maximum items returned in a page. If more items are requested via $top (or $top is not specified and there are more items to be returned), @nextLink will contain the link to the next page.\r\n \r\n$orderBy query parameter can be used to sort the returned list (ex \"$orderBy=createdDateTimeUtc asc\" or \"$orderBy=createdDateTimeUtc desc\").\r\nThe default sorting is descending by createdDateTimeUtc.\r\nSome query parameters can be used to filter the returned list (ex: \"status=Succeeded,Cancelled\") will only return succeeded and cancelled operations.\r\ncreatedDateTimeUtcStart and createdDateTimeUtcEnd can be used combined or separately to specify a range of datetime to filter the returned list by.\r\nThe supported filtering query parameters are (status, ids, createdDateTimeUtcStart, createdDateTimeUtcEnd).\r\n \r\nThe server honors the values specified by the client. However, clients must be prepared to handle responses that contain a different page size or contain a continuation token.\r\n \r\nWhen both $top and $skip are included, the server should first apply $skip and then $top on the collection.\r\nNote: If the server can't honor $top and/or $skip, the server must return an error to the client informing about it instead of just ignoring the query options.\r\nThis reduces the risk of the client making assumptions about the data returned.",
- "operationId": "DocumentTranslation_GetOperations",
+ "operationId": "DocumentTranslation_GetTranslationsStatus",
"produces": [
"application/json"
],
@@ -193,7 +194,7 @@
"200": {
"description": "Successful request and returns the status of the all the operations",
"schema": {
- "$ref": "#/definitions/BatchStatusResponse"
+ "$ref": "#/definitions/TranslationsStatus"
},
"headers": {
"Retry-After": {
@@ -211,7 +212,7 @@
"400": {
"description": "Invalid request. Check input parameters",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InvalidRequest\",\r\n \"message\": \"Some argument is incorrect\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"SASTokenInvalid\",\r\n \"message\": \"SAS token for storage is invalid\"\r\n }\r\n }\r\n}"
@@ -221,7 +222,7 @@
"401": {
"description": "Unauthorized. Please check your credentials",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"User is not authorized\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"Operation is not authorized\"\r\n }\r\n }\r\n}"
@@ -231,7 +232,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -241,7 +242,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -251,7 +252,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -302,7 +303,7 @@
"200": {
"description": "Successful request and it is accepted by the service. The operation details are returned",
"schema": {
- "$ref": "#/definitions/DocumentStatusDetail"
+ "$ref": "#/definitions/DocumentStatus"
},
"headers": {
"Retry-After": {
@@ -320,7 +321,7 @@
"401": {
"description": "Unauthorized. Please check your credentials",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"User is not authorized\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"Operation is not authorized\"\r\n }\r\n }\r\n}"
@@ -330,7 +331,7 @@
"404": {
"description": "Resource is not found",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"id not found\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"Resource requested is not found\"\r\n }\r\n }\r\n}"
@@ -340,7 +341,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -350,7 +351,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -360,7 +361,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -382,7 +383,7 @@
],
"summary": "Returns the status for a document translation request",
"description": "Returns the status for a document translation request.\r\nThe status includes the overall request status, as well as the status for documents that are being translated as part of that request.",
- "operationId": "DocumentTranslation_GetOperationStatus",
+ "operationId": "DocumentTranslation_GetTranslationStatus",
"produces": [
"application/json"
],
@@ -400,7 +401,7 @@
"200": {
"description": "Successful request and returns the status of the batch translation operation",
"schema": {
- "$ref": "#/definitions/BatchStatusDetail"
+ "$ref": "#/definitions/TranslationStatus"
},
"headers": {
"Retry-After": {
@@ -418,7 +419,7 @@
"401": {
"description": "Unauthorized. Please check your credentials",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"User is not authorized\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"Operation is not authorized\"\r\n }\r\n }\r\n}"
@@ -428,7 +429,7 @@
"404": {
"description": "Resource is not found",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"id not found\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"Resource requested is not found\"\r\n }\r\n }\r\n}"
@@ -438,7 +439,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -448,7 +449,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -458,7 +459,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -476,9 +477,9 @@
"tags": [
"Document Translation"
],
- "summary": "Cancel a currently processing or queued operation",
- "description": "Cancel a currently processing or queued operation.\r\nCancel a currently processing or queued operation.\r\nAn operation will not be cancelled if it is already completed or failed or cancelling. A bad request will be returned.\r\nAll documents that have completed translation will not be cancelled and will be charged.\r\nAll pending documents will be cancelled if possible.",
- "operationId": "DocumentTranslation_CancelOperation",
+ "summary": "Cancel a currently processing or queued translation",
+ "description": "Cancel a currently processing or queued translation.\r\nCancel a currently processing or queued translation.\r\nA translation will not be cancelled if it is already completed or failed or cancelling. A bad request will be returned.\r\nAll documents that have completed translation will not be cancelled and will be charged.\r\nAll pending documents will be cancelled if possible.",
+ "operationId": "DocumentTranslation_CancelTranslation",
"produces": [
"application/json"
],
@@ -496,13 +497,13 @@
"200": {
"description": "Cancel request has been submitted",
"schema": {
- "$ref": "#/definitions/BatchStatusDetail"
+ "$ref": "#/definitions/TranslationStatus"
}
},
"401": {
"description": "Unauthorized. Please check your credentials",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"User is not authorized\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"Operation is not authorized\"\r\n }\r\n }\r\n}"
@@ -512,7 +513,7 @@
"404": {
"description": "Resource is not found",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"id not found\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"Resource requested is not found\"\r\n }\r\n }\r\n}"
@@ -522,7 +523,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -532,7 +533,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -542,7 +543,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"batch\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -564,7 +565,7 @@
],
"summary": "Returns the status for all documents in a batch document translation request",
"description": "Returns the status for all documents in a batch document translation request.\r\n \r\nIf the number of documents in the response exceeds our paging limit, server-side paging is used.\r\nPaginated responses indicate a partial result and include a continuation token in the response. The absence of a continuation token means that no additional pages are available.\r\n \r\n$top, $skip and $maxpagesize query parameters can be used to specify a number of results to return and an offset for the collection.\r\n \r\n$top indicates the total number of records the user wants to be returned across all pages.\r\n$skip indicates the number of records to skip from the list of document status held by the server based on the sorting method specified. By default, we sort by descending start time.\r\n$maxpagesize is the maximum items returned in a page. If more items are requested via $top (or $top is not specified and there are more items to be returned), @nextLink will contain the link to the next page.\r\n \r\n$orderBy query parameter can be used to sort the returned list (ex \"$orderBy=createdDateTimeUtc asc\" or \"$orderBy=createdDateTimeUtc desc\").\r\nThe default sorting is descending by createdDateTimeUtc.\r\nSome query parameters can be used to filter the returned list (ex: \"status=Succeeded,Cancelled\") will only return succeeded and cancelled documents.\r\ncreatedDateTimeUtcStart and createdDateTimeUtcEnd can be used combined or separately to specify a range of datetime to filter the returned list by.\r\nThe supported filtering query parameters are (status, ids, createdDateTimeUtcStart, createdDateTimeUtcEnd).\r\n \r\nWhen both $top and $skip are included, the server should first apply $skip and then $top on the collection.\r\nNote: If the server can't honor $top and/or $skip, the server must return an error to the client informing about it instead of just ignoring the query options.\r\nThis reduces the risk of the client making assumptions about the data returned.",
- "operationId": "DocumentTranslation_GetOperationDocumentsStatus",
+ "operationId": "DocumentTranslation_GetDocumentsStatus",
"produces": [
"application/json"
],
@@ -656,7 +657,7 @@
"200": {
"description": "Successful request and returns the status of the documents",
"schema": {
- "$ref": "#/definitions/DocumentStatusResponse"
+ "$ref": "#/definitions/DocumentsStatus"
},
"headers": {
"Retry-After": {
@@ -674,7 +675,7 @@
"400": {
"description": "Invalid request. Check input parameters",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InvalidRequest\",\r\n \"message\": \"Some argument is incorrect\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"SASTokenInvalid\",\r\n \"message\": \"SAS token for storage is invalid\"\r\n }\r\n }\r\n}"
@@ -684,7 +685,7 @@
"401": {
"description": "Unauthorized. Please check your credentials",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"User is not authorized\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"Unauthorized\",\r\n \"message\": \"Operation is not authorized\"\r\n }\r\n }\r\n}"
@@ -694,7 +695,7 @@
"404": {
"description": "Resource is not found",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"id not found\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"Resource requested is not found\"\r\n }\r\n }\r\n}"
@@ -704,7 +705,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -714,7 +715,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -724,7 +725,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"document\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -749,7 +750,7 @@
],
"summary": "Returns a list of supported document formats",
"description": "The list of supported document formats supported by the Document Translation service.\r\nThe list includes the common file extension, as well as the content-type if using the upload API.",
- "operationId": "DocumentTranslation_GetDocumentFormats",
+ "operationId": "DocumentTranslation_GetSupportedDocumentFormats",
"produces": [
"application/json"
],
@@ -757,7 +758,7 @@
"200": {
"description": "Returns the list of supported document file formats",
"schema": {
- "$ref": "#/definitions/FileFormatListResult"
+ "$ref": "#/definitions/SupportedFileFormats"
},
"headers": {
"Retry-After": {
@@ -770,7 +771,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"format\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -780,7 +781,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"format\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -790,7 +791,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"format\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -812,7 +813,7 @@
],
"summary": "Returns the list of supported glossary formats",
"description": "The list of supported glossary formats supported by the Document Translation service.\r\nThe list includes the common file extension used.",
- "operationId": "DocumentTranslation_GetGlossaryFormats",
+ "operationId": "DocumentTranslation_GetSupportedGlossaryFormats",
"produces": [
"application/json"
],
@@ -820,7 +821,7 @@
"200": {
"description": "Returns the list of supported glossary file formats",
"schema": {
- "$ref": "#/definitions/FileFormatListResult"
+ "$ref": "#/definitions/SupportedFileFormats"
},
"headers": {
"Retry-After": {
@@ -833,7 +834,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"format\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -843,7 +844,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"format\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -853,7 +854,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"format\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -875,7 +876,7 @@
],
"summary": "Returns a list of supported storage sources",
"description": "Returns a list of storage sources/options supported by the Document Translation service.",
- "operationId": "DocumentTranslation_GetDocumentStorageSource",
+ "operationId": "DocumentTranslation_GetSupportedStorageSources",
"produces": [
"application/json"
],
@@ -883,7 +884,7 @@
"200": {
"description": "Successful request and returns the list of storage sources",
"schema": {
- "$ref": "#/definitions/StorageSourceListResult"
+ "$ref": "#/definitions/SupportedStorageSources"
},
"headers": {
"Retry-After": {
@@ -896,7 +897,7 @@
"429": {
"description": "Too many requests",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"RequestRateTooHigh\",\r\n \"message\": \"User's request rate is too high\",\r\n \"target\": \"source\",\r\n \"innerError\": {\r\n \"code\": \"RateTooHigh\",\r\n \"message\": \"Request rate is too high\"\r\n }\r\n }\r\n}"
@@ -906,7 +907,7 @@
"500": {
"description": "Internal Server Error",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Internal Server Error\",\r\n \"target\": \"source\",\r\n \"innerError\": {\r\n \"code\": \"InternalServerError\",\r\n \"message\": \"Unexpected internal server error has occurred\"\r\n }\r\n }\r\n}"
@@ -916,7 +917,7 @@
"503": {
"description": "Server temporary unavailable",
"schema": {
- "$ref": "#/definitions/ErrorResponseV2"
+ "$ref": "#/definitions/TranslationErrorResponse"
},
"examples": {
"application/json": "{\r\n \"error\": {\r\n \"code\": \"ServiceUnavailable\",\r\n \"message\": \"Service is temporary unavailable\",\r\n \"target\": \"source\",\r\n \"innerError\": {\r\n \"code\": \"ServiceTemporaryUnavailable\",\r\n \"message\": \"Service is currently unavailable. Please try again later\"\r\n }\r\n }\r\n}"
@@ -1095,8 +1096,8 @@
}
}
},
- "BatchSubmissionRequest": {
- "description": "Job submission batch request",
+ "StartTranslationDetails": {
+ "description": "Translation job submission batch request",
"required": [
"inputs"
],
@@ -1151,7 +1152,7 @@
]
}
},
- "ErrorCodeV2": {
+ "TranslationErrorCode": {
"description": "Enums containing high level error codes.",
"enum": [
"InvalidRequest",
@@ -1164,7 +1165,7 @@
],
"type": "string",
"x-ms-enum": {
- "name": "ErrorCodeV2",
+ "name": "TranslationErrorCode",
"modelAsString": true,
"values": [
{
@@ -1191,7 +1192,7 @@
]
}
},
- "InnerErrorV2": {
+ "InnerTranslationError": {
"description": "New Inner Error format which conforms to Cognitive Services API Guidelines which is available at https://microsoft.sharepoint.com/%3Aw%3A/t/CognitiveServicesPMO/EUoytcrjuJdKpeOKIK_QRC8BPtUYQpKBi8JsWyeDMRsWlQ?e=CPq8ow.\r\nThis contains required properties ErrorCode, message and optional properties target, details(key value pair), inner error(this can be nested).",
"required": [
"code",
@@ -1213,11 +1214,11 @@
"readOnly": true
},
"innerError": {
- "$ref": "#/definitions/InnerErrorV2"
+ "$ref": "#/definitions/InnerTranslationError"
}
}
},
- "ErrorV2": {
+ "TranslationError": {
"description": "This contains an outer error with error code, message, details, target and an inner error with more descriptive details.",
"required": [
"code",
@@ -1226,7 +1227,7 @@
"type": "object",
"properties": {
"code": {
- "$ref": "#/definitions/ErrorCodeV2"
+ "$ref": "#/definitions/TranslationErrorCode"
},
"message": {
"description": "Gets high level error message.",
@@ -1238,7 +1239,7 @@
"readOnly": true
},
"innerError": {
- "$ref": "#/definitions/InnerErrorV2"
+ "$ref": "#/definitions/InnerTranslationError"
}
}
},
@@ -1297,8 +1298,8 @@
}
}
},
- "BatchStatusDetail": {
- "description": "Job status response",
+ "TranslationStatus": {
+ "description": "Translation job status response",
"required": [
"createdDateTimeUtc",
"id",
@@ -1330,15 +1331,15 @@
"$ref": "#/definitions/Status"
},
"error": {
- "$ref": "#/definitions/ErrorV2"
+ "$ref": "#/definitions/TranslationError"
},
"summary": {
"$ref": "#/definitions/StatusSummary"
}
}
},
- "BatchStatusResponse": {
- "description": "Document Status Response",
+ "TranslationsStatus": {
+ "description": "Translation job Status Response",
"required": [
"value"
],
@@ -1348,7 +1349,7 @@
"description": "The summary status of individual operation",
"type": "array",
"items": {
- "$ref": "#/definitions/BatchStatusDetail"
+ "$ref": "#/definitions/TranslationStatus"
}
},
"@nextLink": {
@@ -1358,7 +1359,8 @@
}
}
},
- "DocumentStatusDetail": {
+ "DocumentStatus": {
+ "description": "Document Status Response",
"required": [
"createdDateTimeUtc",
"id",
@@ -1400,7 +1402,7 @@
"type": "string"
},
"error": {
- "$ref": "#/definitions/ErrorV2"
+ "$ref": "#/definitions/TranslationError"
},
"progress": {
"format": "float",
@@ -1423,8 +1425,8 @@
}
}
},
- "DocumentStatusResponse": {
- "description": "Document Status Response",
+ "DocumentsStatus": {
+ "description": "Documents Status Response",
"required": [
"value"
],
@@ -1434,7 +1436,7 @@
"description": "The detail status of individual documents",
"type": "array",
"items": {
- "$ref": "#/definitions/DocumentStatusDetail"
+ "$ref": "#/definitions/DocumentStatus"
}
},
"@nextLink": {
@@ -1484,7 +1486,7 @@
}
}
},
- "FileFormatListResult": {
+ "SupportedFileFormats": {
"description": "Base type for List return in our api",
"required": [
"value"
@@ -1500,7 +1502,7 @@
}
}
},
- "StorageSourceListResult": {
+ "SupportedStorageSources": {
"description": "Base type for List return in our api",
"required": [
"value"
@@ -1516,12 +1518,12 @@
}
}
},
- "ErrorResponseV2": {
+ "TranslationErrorResponse": {
"description": "Contains unified error information used for HTTP responses across any Cognitive Service. Instances\r\ncan be created either through Microsoft.CloudAI.Containers.HttpStatusExceptionV2 or by returning it directly from\r\na controller.",
"type": "object",
"properties": {
"error": {
- "$ref": "#/definitions/ErrorV2"
+ "$ref": "#/definitions/TranslationError"
}
}
}
diff --git a/specification/cognitiveservices/data-plane/TranslatorText/stable/v1.0/examples/batch.json b/specification/cognitiveservices/data-plane/TranslatorText/stable/v1.0/examples/batch.json
index 12c6a974c6f1..a3701c732f22 100644
--- a/specification/cognitiveservices/data-plane/TranslatorText/stable/v1.0/examples/batch.json
+++ b/specification/cognitiveservices/data-plane/TranslatorText/stable/v1.0/examples/batch.json
@@ -5,7 +5,7 @@
"resourceGroupName": "TestResourceGroup",
"endpoint": "{endpoint}",
"Ocp-Apim-Subscription-Key": "{API key}",
- "batchRequest": {
+ "body": {
"inputs": [
{
"source": {
@@ -25,7 +25,8 @@
"glossaries": [
{
"glossaryUrl": "https://myblob.blob.core.windows.net/myglossary/en_fr_glossary.xlf",
- "storageSource": "AzureBlob"
+ "storageSource": "AzureBlob",
+ "format": "XLIFF"
}
],
"storageSource": "AzureBlob"
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/cognitiveservices.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/cognitiveservices.json
new file mode 100644
index 000000000000..93a179e56746
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/cognitiveservices.json
@@ -0,0 +1,2166 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "CognitiveServicesManagementClient",
+ "description": "Cognitive Services Management Client",
+ "version": "2021-04-30"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}": {
+ "put": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "description": "Create Cognitive Services Account. Accounts is a resource group wide resource type. It holds the keys for developer to access intelligent APIs. It's also the resource type for billing.",
+ "operationId": "Accounts_Create",
+ "x-ms-examples": {
+ "Create Account": {
+ "$ref": "./examples/CreateAccount.json"
+ },
+ "Create Account Min": {
+ "$ref": "./examples/CreateAccountMin.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "name": "account",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Account"
+ },
+ "description": "The parameters to provide for the created account."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "If resource is created successfully or already existed, the service should return 200 (OK).",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ },
+ "201": {
+ "description": "If resource is created successfully, the service should return 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "description": "Updates a Cognitive Services account",
+ "operationId": "Accounts_Update",
+ "x-ms-examples": {
+ "Update Account": {
+ "$ref": "./examples/UpdateAccount.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "name": "account",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Account"
+ },
+ "description": "The parameters to provide for the created account."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. ",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource group *or* resource does not exist, 404 (NotFound) should be returned.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "description": "Deletes a Cognitive Services account from the resource group. ",
+ "operationId": "Accounts_Delete",
+ "x-ms-examples": {
+ "Delete Account": {
+ "$ref": "./examples/DeleteAccount.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A 200 (OK) should be returned if the object exists and was deleted successfully;"
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously."
+ },
+ "204": {
+ "description": "a 204 (NoContent) should be used if the resource does not exist and the request is well formed."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "description": "Returns a Cognitive Services account specified by the parameters.",
+ "operationId": "Accounts_Get",
+ "x-ms-examples": {
+ "Get Account": {
+ "$ref": "./examples/GetAccount.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully.\nFor a detailed explanation of each field in the response body, please refer to the request body description in the PUT resource section. The only GET specific properties are \"name,\" \"type\" and \"id.\"\nField\tDescription\nKind\trequired. String.\n\tThe API set for this API account. It can be \n\t· a single API, for example: Face API, Vision API, Speech API. \n\ta bundle of APIs: Face + Speech, Vision + Emotion, etc.\nsku.name\tRequired.\n\tThe pricing tier/plan of this API. Could be: \n\tF0 - Free\n\tB0 - Basic\n\tS0 - Standard\n\tP0 - Premium\n",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource does not exist, 404 (NotFound) should be returned.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/locations/{location}/resourceGroups/{resourceGroupName}/deletedAccounts/{accountName}": {
+ "get": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "description": "Returns a Cognitive Services account specified by the parameters.",
+ "operationId": "DeletedAccounts_Get",
+ "x-ms-examples": {
+ "Get Account": {
+ "$ref": "./examples/GetDeletedAccount.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully.\nFor a detailed explanation of each field in the response body, please refer to the request body description in the PUT resource section. The only GET specific properties are \"name,\" \"type\" and \"id.\"\nField\tDescription\nKind\trequired. String.\n\tThe API set for this API account. It can be \n\t· a single API, for example: Face API, Vision API, Speech API. \n\ta bundle of APIs: Face + Speech, Vision + Emotion, etc.\nsku.name\tRequired.\n\tThe pricing tier/plan of this API. Could be: \n\tF0 - Free\n\tB0 - Basic\n\tS0 - Standard\n\tP0 - Premium\n",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource does not exist, 404 (NotFound) should be returned.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "description": "Deletes a Cognitive Services account from the resource group. ",
+ "operationId": "DeletedAccounts_Purge",
+ "x-ms-examples": {
+ "Delete Account": {
+ "$ref": "./examples/PurgeDeletedAccount.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A 200 (OK) should be returned if the object exists and was deleted successfully;"
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously."
+ },
+ "204": {
+ "description": "a 204 (NoContent) should be used if the resource does not exist and the request is well formed."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts": {
+ "get": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "description": "Returns all the resources of a particular type belonging to a resource group",
+ "operationId": "Accounts_ListByResourceGroup",
+ "x-ms-examples": {
+ "List Accounts by Resource Group": {
+ "$ref": "./examples/ListAccountsByResourceGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.\nThe nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses here. If a resource provider does not support paging, it should return the same body (JSON object with \"value\" property) but omit nextLink entirely (or set to null, *not* empty string) for future compatibility.\nThe nextLink should be implemented using following query parameters:\n· skipToken: opaque token that allows the resource provider to skip resources already enumerated. This value is defined and returned by the RP after first request via nextLink.\n· top: the optional client query parameter which defines the maximum number of records to be returned by the server.\nImplementation details:\n· NextLink may include all the query parameters (specifically OData $filter) used by the client in the first query. \n· Server may return less records than requested with nextLink. Returning zero records with NextLink is an acceptable response. \nClients must fetch records until the nextLink is not returned back / null. Clients should never rely on number of returned records to determinate if pagination is completed.",
+ "schema": {
+ "$ref": "#/definitions/AccountListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource group does not exist, 404 (NotFound) will be returned.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/accounts": {
+ "get": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "description": "Returns all the resources of a particular type belonging to a subscription.",
+ "operationId": "Accounts_List",
+ "x-ms-examples": {
+ "List Accounts by Subscription": {
+ "$ref": "./examples/ListAccountsBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.\nThe nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses. If a resource provider does not support paging, it should return the same body but leave nextLink empty for future compatibility.\nFor a detailed explanation of each field in the response body, please refer to the request body description in the PUT resource section. ",
+ "schema": {
+ "$ref": "#/definitions/AccountListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/deletedAccounts": {
+ "get": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "description": "Returns all the resources of a particular type belonging to a subscription.",
+ "operationId": "DeletedAccounts_List",
+ "x-ms-examples": {
+ "List Deleted Accounts by Subscription": {
+ "$ref": "./examples/ListAccountsBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.\nThe nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses. If a resource provider does not support paging, it should return the same body but leave nextLink empty for future compatibility.\nFor a detailed explanation of each field in the response body, please refer to the request body description in the PUT resource section. ",
+ "schema": {
+ "$ref": "#/definitions/AccountListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/listKeys": {
+ "post": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "operationId": "Accounts_ListKeys",
+ "description": "Lists the account keys for the specified Cognitive Services account.",
+ "x-ms-examples": {
+ "List Keys": {
+ "$ref": "./examples/ListKeys.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns with a response body containing the subscription keys for the resource: key1\nThe first API key for authentication when client calls the API endpoint.\n\nkey2\nThe second API key for authentication when client calls the API endpoint.",
+ "schema": {
+ "$ref": "#/definitions/ApiKeys"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/regenerateKey": {
+ "post": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "operationId": "Accounts_RegenerateKey",
+ "description": "Regenerates the specified account key for the specified Cognitive Services account.",
+ "x-ms-examples": {
+ "Regenerate Keys": {
+ "$ref": "./examples/RegenerateKey.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/RegenerateKeyParameters"
+ },
+ "description": "regenerate key parameters."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/ApiKeys"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/skus": {
+ "get": {
+ "tags": [
+ "Skus",
+ "CognitiveServicesAccounts"
+ ],
+ "operationId": "ResourceSkus_List",
+ "description": "Gets the list of Microsoft.CognitiveServices SKUs available for your Subscription.",
+ "x-ms-examples": {
+ "Regenerate Keys": {
+ "$ref": "./examples/GetSkus.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ResourceSkuListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/skus": {
+ "get": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "description": "List available SKUs for the requested Cognitive Services account",
+ "x-ms-examples": {
+ "List SKUs": {
+ "$ref": "./examples/ListSkus.json"
+ }
+ },
+ "operationId": "Accounts_ListSkus",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource provider should return 200 (OK) to indicate that the operation completed successfully.\nFor a detailed explanation of each field in the response body, please refer to the request body description in the PUT resource section. The only GET specific properties are \"name,\" \"type\" and \"id.\"\nField\tDescription\nsku\tRequired, object\n\tThe exact set of keys that define this sku. This matches the fields on the respective resource.\nsku.name\tRequired, string\n\tThe name of the SKU. This is typically a letter + number code, such as A0 or P3\nsku.tier\tRequired, string\n\tThe tier of this particular SKU. Typically one of:\n\t· Free\n\t· Basic\n\t· Standard\n\t· Premium\n",
+ "schema": {
+ "$ref": "#/definitions/AccountSkuListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource does not exist, 404 (NotFound) will be returned.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/usages": {
+ "get": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "description": "Get usages for the requested Cognitive Services account",
+ "x-ms-examples": {
+ "Get Usages": {
+ "$ref": "./examples/GetUsages.json"
+ }
+ },
+ "operationId": "Accounts_ListUsages",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/usageFilterParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The usages for Cognitive Services account were retrieved successfully.",
+ "schema": {
+ "$ref": "#/definitions/UsageListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the resource does not exist, 404 (NotFound) will be returned.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.CognitiveServices/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Lists all the available Cognitive Services account operations.",
+ "operationId": "Operations_List",
+ "x-ms-examples": {
+ "Get Operations": {
+ "$ref": "./examples/GetOperations.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/locations/{location}/checkSkuAvailability": {
+ "post": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "operationId": "CheckSkuAvailability",
+ "description": "Check available SKUs.",
+ "x-ms-examples": {
+ "Check SKU Availability": {
+ "$ref": "./examples/CheckSkuAvailability.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/CheckSkuAvailabilityParameter"
+ },
+ "description": "Check SKU Availability POST body."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/SkuAvailabilityListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/checkDomainAvailability": {
+ "post": {
+ "tags": [
+ "CognitiveServicesAccounts"
+ ],
+ "operationId": "CheckDomainAvailability",
+ "description": "Check whether a domain is available.",
+ "x-ms-examples": {
+ "Check SKU Availability": {
+ "$ref": "./examples/CheckDomainAvailability.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "x-ms-client-flatten": true,
+ "schema": {
+ "$ref": "#/definitions/CheckDomainAvailabilityParameter"
+ },
+ "description": "Check Domain Availability parameter."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/DomainAvailability"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_List",
+ "description": "Gets the private endpoint connections associated with the Cognitive Services account.",
+ "x-ms-examples": {
+ "GetPrivateEndpointConnection": {
+ "$ref": "./examples/ListPrivateEndpointConnections.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved private endpoint connections.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Get",
+ "description": "Gets the specified private endpoint connection associated with the Cognitive Services account.",
+ "x-ms-examples": {
+ "GetPrivateEndpointConnection": {
+ "$ref": "./examples/GetPrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Get the private endpoint connection properties successfully.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_CreateOrUpdate",
+ "description": "Update the state of specified private endpoint connection associated with the Cognitive Services account.",
+ "x-ms-examples": {
+ "PutPrivateEndpointConnection": {
+ "$ref": "./examples/PutPrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionNameParameter"
+ },
+ {
+ "name": "properties",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "The private endpoint connection properties."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Update the private endpoint connection properties successfully.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Delete",
+ "description": "Deletes the specified private endpoint connection associated with the Cognitive Services account.",
+ "x-ms-examples": {
+ "DeletePrivateEndpointConnection": {
+ "$ref": "./examples/DeletePrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Delete the private endpoint connection successfully."
+ },
+ "202": {
+ "description": "Accepted -- the operation was successfully started and will complete asynchronously."
+ },
+ "204": {
+ "description": "No Content -- The private endpoint connection does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "PrivateLinkResources"
+ ],
+ "operationId": "PrivateLinkResources_List",
+ "description": "Gets the private link resources that need to be created for a Cognitive Services account.",
+ "x-ms-examples": {
+ "ListPrivateLinkResources": {
+ "$ref": "./examples/ListPrivateLinkResources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved private link resources.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResourceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Kind": {
+ "type": "string",
+ "description": "The kind (type) of cognitive service account."
+ },
+ "Sku": {
+ "description": "The resource model definition representing SKU",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the SKU. Ex - P3. It is typically a letter+number code"
+ },
+ "tier": {
+ "type": "string",
+ "enum": [
+ "Free",
+ "Basic",
+ "Standard",
+ "Premium",
+ "Enterprise"
+ ],
+ "x-ms-enum": {
+ "name": "SkuTier",
+ "modelAsString": true
+ },
+ "description": "This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT."
+ },
+ "size": {
+ "type": "string",
+ "description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. "
+ },
+ "family": {
+ "type": "string",
+ "description": "If the service has different generations of hardware, for the same SKU, then that can be captured here."
+ },
+ "capacity": {
+ "type": "integer",
+ "format": "int32",
+ "description": "If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted."
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "SkuName": {
+ "type": "string",
+ "description": "The name of SKU."
+ },
+ "Account": {
+ "description": "Cognitive Services account is an Azure resource representing the provisioned account, it's type, location and SKU.",
+ "type": "object",
+ "properties": {
+ "kind": {
+ "$ref": "#/definitions/Kind",
+ "description": "The Kind of the resource."
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku"
+ },
+ "identity": {
+ "$ref": "#/definitions/Identity"
+ },
+ "systemData": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData",
+ "readOnly": true
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "x-ms-mutability": [
+ "read",
+ "create",
+ "update"
+ ],
+ "description": "Resource tags."
+ },
+ "location": {
+ "type": "string",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ],
+ "description": "The geo-location where the resource lives"
+ },
+ "properties": {
+ "$ref": "#/definitions/AccountProperties",
+ "description": "Properties of Cognitive Services account."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/AzureEntityResource"
+ }
+ ]
+ },
+ "AccountListResult": {
+ "type": "object",
+ "properties": {
+ "nextLink": {
+ "description": "The link used to get the next page of accounts.",
+ "type": "string"
+ },
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Account"
+ },
+ "description": "Gets the list of Cognitive Services accounts and their properties."
+ }
+ },
+ "description": "The list of cognitive services accounts operation response."
+ },
+ "AccountProperties": {
+ "type": "object",
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Gets the status of the cognitive services account at the time the operation was called.",
+ "enum": [
+ "Accepted",
+ "Creating",
+ "Deleting",
+ "Moving",
+ "Failed",
+ "Succeeded",
+ "ResolvingDNS"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "endpoint": {
+ "type": "string",
+ "description": "Endpoint of the created account.",
+ "readOnly": true
+ },
+ "internalId": {
+ "type": "string",
+ "description": "The internal identifier (deprecated, do not use this property).",
+ "readOnly": true
+ },
+ "capabilities": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SkuCapability"
+ },
+ "description": "Gets the capabilities of the cognitive services account. Each item indicates the capability of a specific feature. The values are read-only and for reference only."
+ },
+ "isMigrated": {
+ "type": "boolean",
+ "description": "If the resource is migrated from an existing key.",
+ "readOnly": true
+ },
+ "migrationToken": {
+ "type": "string",
+ "description": "Resource migration token."
+ },
+ "skuChangeInfo": {
+ "$ref": "#/definitions/SkuChangeInfo",
+ "description": "Sku change info of account.",
+ "readOnly": true
+ },
+ "customSubDomainName": {
+ "type": "string",
+ "description": "Optional subdomain name used for token-based authentication."
+ },
+ "networkAcls": {
+ "$ref": "#/definitions/NetworkRuleSet",
+ "description": "A collection of rules governing the accessibility from specific network locations."
+ },
+ "encryption": {
+ "$ref": "#/definitions/Encryption",
+ "description": "The encryption properties for this resource."
+ },
+ "userOwnedStorage": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UserOwnedStorage"
+ },
+ "description": "The storage accounts for this resource."
+ },
+ "privateEndpointConnections": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "The private endpoint connection associated with the Cognitive Services account."
+ },
+ "publicNetworkAccess": {
+ "type": "string",
+ "description": "Whether or not public endpoint access is allowed for this account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "PublicNetworkAccess",
+ "modelAsString": true
+ }
+ },
+ "apiProperties": {
+ "$ref": "#/definitions/ApiProperties",
+ "description": "The api properties for special APIs."
+ },
+ "dateCreated": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Gets the date of cognitive services account creation."
+ },
+ "callRateLimit": {
+ "readOnly": true,
+ "$ref": "#/definitions/CallRateLimit"
+ },
+ "quotaLimit": {
+ "readOnly": true,
+ "$ref": "#/definitions/QuotaLimit"
+ },
+ "restrictOutboundNetworkAccess": {
+ "type": "boolean"
+ },
+ "allowedFqdnList": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "disableLocalAuth": {
+ "type": "boolean"
+ },
+ "endpoints": {
+ "readOnly": true,
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "restore": {
+ "type": "boolean"
+ }
+ },
+ "description": "Properties of Cognitive Services account."
+ },
+ "ApiProperties": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "properties": {
+ "qnaRuntimeEndpoint": {
+ "type": "string",
+ "description": "(QnAMaker Only) The runtime endpoint of QnAMaker."
+ },
+ "qnaAzureSearchEndpointKey": {
+ "type": "string",
+ "description": "(QnAMaker Only) The Azure Search endpoint key of QnAMaker."
+ },
+ "qnaAzureSearchEndpointId": {
+ "type": "string",
+ "description": "(QnAMaker Only) The Azure Search endpoint id of QnAMaker."
+ },
+ "statisticsEnabled": {
+ "type": "boolean",
+ "description": "(Bing Search Only) The flag to enable statistics of Bing Search."
+ },
+ "eventHubConnectionString": {
+ "type": "string",
+ "description": "(Personalization Only) The flag to enable statistics of Bing Search.",
+ "pattern": "^( *)Endpoint=sb://(.*);( *)SharedAccessKeyName=(.*);( *)SharedAccessKey=(.*)$",
+ "maxLength": 1000
+ },
+ "storageAccountConnectionString": {
+ "type": "string",
+ "description": "(Personalization Only) The storage account connection string.",
+ "pattern": "^(( *)DefaultEndpointsProtocol=(http|https)( *);( *))?AccountName=(.*)AccountKey=(.*)EndpointSuffix=(.*)$",
+ "maxLength": 1000
+ },
+ "aadClientId": {
+ "type": "string",
+ "description": "(Metrics Advisor Only) The Azure AD Client Id (Application Id).",
+ "maxLength": 500
+ },
+ "aadTenantId": {
+ "type": "string",
+ "description": "(Metrics Advisor Only) The Azure AD Tenant Id.",
+ "maxLength": 500
+ },
+ "superUser": {
+ "type": "string",
+ "description": "(Metrics Advisor Only) The super user of Metrics Advisor.",
+ "maxLength": 500
+ },
+ "websiteName": {
+ "type": "string",
+ "description": "(Metrics Advisor Only) The website name of Metrics Advisor.",
+ "maxLength": 500
+ }
+ },
+ "description": "The api properties for special APIs."
+ },
+ "CallRateLimit": {
+ "type": "object",
+ "properties": {
+ "count": {
+ "type": "number",
+ "description": "The count value of Call Rate Limit."
+ },
+ "renewalPeriod": {
+ "type": "number",
+ "description": "The renewal period in seconds of Call Rate Limit."
+ },
+ "rules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ThrottlingRule"
+ }
+ }
+ },
+ "description": "The call rate limit Cognitive Services account."
+ },
+ "QuotaLimit": {
+ "type": "object",
+ "properties": {
+ "count": {
+ "type": "number"
+ },
+ "renewalPeriod": {
+ "type": "number"
+ },
+ "rules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ThrottlingRule"
+ }
+ }
+ }
+ },
+ "ThrottlingRule": {
+ "type": "object",
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "renewalPeriod": {
+ "type": "number"
+ },
+ "count": {
+ "type": "number"
+ },
+ "minCount": {
+ "type": "number"
+ },
+ "dynamicThrottlingEnabled": {
+ "type": "boolean"
+ },
+ "matchPatterns": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RequestMatchPattern"
+ }
+ }
+ }
+ },
+ "RequestMatchPattern": {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string"
+ },
+ "method": {
+ "type": "string"
+ }
+ }
+ },
+ "ApiKeys": {
+ "type": "object",
+ "properties": {
+ "key1": {
+ "type": "string",
+ "description": "Gets the value of key 1."
+ },
+ "key2": {
+ "type": "string",
+ "description": "Gets the value of key 2."
+ }
+ },
+ "description": "The access keys for the cognitive services account."
+ },
+ "SkuChangeInfo": {
+ "type": "object",
+ "properties": {
+ "countOfDowngrades": {
+ "type": "number",
+ "description": "Gets the count of downgrades."
+ },
+ "countOfUpgradesAfterDowngrades": {
+ "type": "number",
+ "description": "Gets the count of upgrades after downgrades."
+ },
+ "lastChangeDate": {
+ "type": "string",
+ "description": "Gets the last change date."
+ }
+ },
+ "description": "Sku change info of account."
+ },
+ "RegenerateKeyParameters": {
+ "type": "object",
+ "properties": {
+ "keyName": {
+ "type": "string",
+ "description": "key name to generate (Key1|Key2)",
+ "enum": [
+ "Key1",
+ "Key2"
+ ],
+ "x-ms-enum": {
+ "name": "KeyName",
+ "modelAsString": false
+ }
+ }
+ },
+ "required": [
+ "keyName"
+ ],
+ "description": "Regenerate key parameters."
+ },
+ "AccountSkuListResult": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AccountSku"
+ },
+ "description": "Gets the list of Cognitive Services accounts and their properties."
+ }
+ },
+ "description": "The list of cognitive services accounts operation response."
+ },
+ "AccountSku": {
+ "type": "object",
+ "properties": {
+ "resourceType": {
+ "type": "string",
+ "description": "Resource Namespace and Type"
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The SKU of Cognitive Services account."
+ }
+ },
+ "description": "Cognitive Services resource type and SKU."
+ },
+ "UsageListResult": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Usage"
+ },
+ "description": "The list of usages for Cognitive Service account."
+ }
+ },
+ "description": "The response to a list usage request."
+ },
+ "Usage": {
+ "type": "object",
+ "properties": {
+ "unit": {
+ "description": "The unit of the metric.",
+ "$ref": "#/definitions/UnitType"
+ },
+ "name": {
+ "$ref": "#/definitions/MetricName",
+ "description": "The name information for the metric."
+ },
+ "quotaPeriod": {
+ "type": "string",
+ "description": "The quota period used to summarize the usage values."
+ },
+ "limit": {
+ "type": "number",
+ "format": "double",
+ "description": "Maximum value for this metric."
+ },
+ "currentValue": {
+ "type": "number",
+ "format": "double",
+ "description": "Current value for this metric."
+ },
+ "nextResetTime": {
+ "type": "string",
+ "description": "Next reset time for current quota."
+ },
+ "status": {
+ "type": "string",
+ "description": "Cognitive Services account quota usage status.",
+ "enum": [
+ "Included",
+ "Blocked",
+ "InOverage",
+ "Unknown"
+ ],
+ "x-ms-enum": {
+ "name": "QuotaUsageStatus",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "The usage data for a usage request."
+ },
+ "MetricName": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "The name of the metric."
+ },
+ "localizedValue": {
+ "type": "string",
+ "description": "The friendly name of the metric."
+ }
+ },
+ "description": "A metric name."
+ },
+ "UnitType": {
+ "type": "string",
+ "description": "The unit of the metric.",
+ "enum": [
+ "Count",
+ "Bytes",
+ "Seconds",
+ "Percent",
+ "CountPerSecond",
+ "BytesPerSecond",
+ "Milliseconds"
+ ],
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "UnitType"
+ }
+ },
+ "CheckSkuAvailabilityParameter": {
+ "type": "object",
+ "description": "Check SKU availability parameter.",
+ "properties": {
+ "skus": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SkuName"
+ },
+ "description": "The SKU of the resource."
+ },
+ "kind": {
+ "$ref": "#/definitions/Kind",
+ "description": "The Kind of the resource."
+ },
+ "type": {
+ "type": "string",
+ "description": "The Type of the resource."
+ }
+ },
+ "required": [
+ "skus",
+ "kind",
+ "type"
+ ]
+ },
+ "SkuAvailabilityListResult": {
+ "type": "object",
+ "description": "Check SKU availability result list.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SkuAvailability"
+ },
+ "description": "Check SKU availability result list."
+ }
+ }
+ },
+ "SkuAvailability": {
+ "type": "object",
+ "description": "SKU availability.",
+ "properties": {
+ "kind": {
+ "$ref": "#/definitions/Kind",
+ "description": "The Kind of the resource."
+ },
+ "type": {
+ "type": "string",
+ "description": "The Type of the resource."
+ },
+ "skuName": {
+ "$ref": "#/definitions/SkuName",
+ "description": "The SKU of Cognitive Services account."
+ },
+ "skuAvailable": {
+ "type": "boolean",
+ "description": "Indicates the given SKU is available or not."
+ },
+ "reason": {
+ "type": "string",
+ "description": "Reason why the SKU is not available."
+ },
+ "message": {
+ "type": "string",
+ "description": "Additional error message."
+ }
+ }
+ },
+ "SkuCapability": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the SkuCapability."
+ },
+ "value": {
+ "type": "string",
+ "description": "The value of the SkuCapability."
+ }
+ },
+ "description": "SkuCapability indicates the capability of a certain feature."
+ },
+ "CheckDomainAvailabilityParameter": {
+ "type": "object",
+ "description": "Check Domain availability parameter.",
+ "properties": {
+ "subdomainName": {
+ "type": "string",
+ "description": "The subdomain name to use."
+ },
+ "type": {
+ "type": "string",
+ "description": "The Type of the resource."
+ }
+ },
+ "required": [
+ "subdomainName",
+ "type"
+ ]
+ },
+ "DomainAvailability": {
+ "type": "object",
+ "description": "Domain availability.",
+ "properties": {
+ "isSubdomainAvailable": {
+ "type": "boolean",
+ "description": "Indicates the given SKU is available or not."
+ },
+ "reason": {
+ "type": "string",
+ "description": "Reason why the SKU is not available."
+ },
+ "subdomainName": {
+ "type": "string",
+ "description": "The subdomain name to use."
+ },
+ "type": {
+ "type": "string",
+ "description": "The Type of the resource."
+ }
+ }
+ },
+ "ResourceSkuRestrictions": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "The type of restrictions.",
+ "enum": [
+ "Location",
+ "Zone"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceSkuRestrictionsType",
+ "modelAsString": false
+ }
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted."
+ },
+ "restrictionInfo": {
+ "$ref": "#/definitions/ResourceSkuRestrictionInfo",
+ "description": "The information about the restriction where the SKU cannot be used."
+ },
+ "reasonCode": {
+ "type": "string",
+ "description": "The reason for restriction.",
+ "enum": [
+ "QuotaId",
+ "NotAvailableForSubscription"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceSkuRestrictionsReasonCode",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Describes restrictions of a SKU."
+ },
+ "ResourceSku": {
+ "type": "object",
+ "properties": {
+ "resourceType": {
+ "type": "string",
+ "description": "The type of resource the SKU applies to."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of SKU."
+ },
+ "tier": {
+ "type": "string",
+ "description": "Specifies the tier of Cognitive Services account."
+ },
+ "kind": {
+ "type": "string",
+ "description": "The Kind of resources that are supported in this SKU."
+ },
+ "locations": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The set of locations that the SKU is available."
+ },
+ "restrictions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceSkuRestrictions"
+ },
+ "description": "The restrictions because of which SKU cannot be used. This is empty if there are no restrictions."
+ }
+ },
+ "description": "Describes an available Cognitive Services SKU."
+ },
+ "ResourceSkuRestrictionInfo": {
+ "type": "object",
+ "properties": {
+ "locations": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Locations where the SKU is restricted"
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of availability zones where the SKU is restricted."
+ }
+ }
+ },
+ "ResourceSkuListResult": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceSku"
+ },
+ "description": "The list of skus available for the subscription."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of Skus."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The Get Skus operation response."
+ },
+ "NetworkRuleSet": {
+ "type": "object",
+ "properties": {
+ "defaultAction": {
+ "type": "string",
+ "description": "The default action when no rule from ipRules and from virtualNetworkRules match. This is only used after the bypass property has been evaluated.",
+ "enum": [
+ "Allow",
+ "Deny"
+ ],
+ "x-ms-enum": {
+ "name": "NetworkRuleAction",
+ "modelAsString": true
+ }
+ },
+ "ipRules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IpRule"
+ },
+ "description": "The list of IP address rules."
+ },
+ "virtualNetworkRules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualNetworkRule"
+ },
+ "description": "The list of virtual network rules."
+ }
+ },
+ "description": "A set of rules governing the network accessibility."
+ },
+ "IpRule": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "An IPv4 address range in CIDR notation, such as '124.56.78.91' (simple IP address) or '124.56.78.0/24' (all addresses that start with 124.56.78)."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "A rule governing the accessibility from a specific ip address or ip range."
+ },
+ "VirtualNetworkRule": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Full resource id of a vnet subnet, such as '/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1'."
+ },
+ "state": {
+ "type": "string",
+ "description": "Gets the state of virtual network rule."
+ },
+ "ignoreMissingVnetServiceEndpoint": {
+ "type": "boolean",
+ "description": "Ignore missing vnet service endpoint or not."
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "description": "A rule governing the accessibility from a specific virtual network."
+ },
+ "Identity": {
+ "type": "object",
+ "description": "Identity for the resource.",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "The identity type.",
+ "enum": [
+ "None",
+ "SystemAssigned",
+ "UserAssigned",
+ "SystemAssigned, UserAssigned"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceIdentityType",
+ "modelAsString": false
+ }
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant ID of resource."
+ },
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal ID of resource identity."
+ },
+ "userAssignedIdentities": {
+ "description": "The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}",
+ "type": "object",
+ "additionalProperties": {
+ "description": "User-assigned managed identity.",
+ "$ref": "#/definitions/UserAssignedIdentity"
+ }
+ }
+ }
+ },
+ "UserAssignedIdentity": {
+ "type": "object",
+ "description": "User-assigned managed identity.",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Azure Active Directory principal ID associated with this Identity."
+ },
+ "clientId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Client App Id associated with this identity."
+ }
+ }
+ },
+ "Encryption": {
+ "type": "object",
+ "properties": {
+ "keyVaultProperties": {
+ "$ref": "#/definitions/KeyVaultProperties",
+ "description": "Properties of KeyVault"
+ },
+ "keySource": {
+ "type": "string",
+ "description": "Enumerates the possible value of keySource for Encryption",
+ "default": "Microsoft.KeyVault",
+ "enum": [
+ "Microsoft.CognitiveServices",
+ "Microsoft.KeyVault"
+ ],
+ "x-ms-enum": {
+ "name": "keySource",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Properties to configure Encryption"
+ },
+ "KeyVaultProperties": {
+ "type": "object",
+ "properties": {
+ "keyName": {
+ "type": "string",
+ "description": "Name of the Key from KeyVault"
+ },
+ "keyVersion": {
+ "type": "string",
+ "description": "Version of the Key from KeyVault"
+ },
+ "keyVaultUri": {
+ "type": "string",
+ "description": "Uri of KeyVault"
+ },
+ "identityClientId": {
+ "type": "string"
+ }
+ },
+ "description": "Properties to configure keyVault Properties"
+ },
+ "UserOwnedStorage": {
+ "type": "object",
+ "properties": {
+ "resourceId": {
+ "type": "string",
+ "description": "Full resource id of a Microsoft.Storage resource."
+ },
+ "identityClientId": {
+ "type": "string"
+ }
+ },
+ "description": "The user owned storage for Cognitive Services account."
+ },
+ "PrivateEndpointConnectionListResult": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "Array of private endpoint connections",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ }
+ },
+ "description": "A list of private endpoint connections"
+ },
+ "PrivateEndpointConnection": {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "description": "Resource properties."
+ },
+ "systemData": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData",
+ "readOnly": true
+ },
+ "location": {
+ "type": "string",
+ "description": "The location of the private endpoint connection"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/AzureEntityResource"
+ }
+ ],
+ "description": "The Private Endpoint Connection resource."
+ },
+ "PrivateEndpointConnectionProperties": {
+ "type": "object",
+ "properties": {
+ "privateEndpoint": {
+ "$ref": "../../../../../common-types/resource-management/v2/privatelinks.json#/definitions/PrivateEndpoint",
+ "description": "The resource of private end point."
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "../../../../../common-types/resource-management/v2/privatelinks.json#/definitions/PrivateLinkServiceConnectionState",
+ "description": "A collection of information about the state of the connection between service consumer and provider."
+ },
+ "provisioningState": {
+ "$ref": "../../../../../common-types/resource-management/v2/privatelinks.json#/definitions/PrivateEndpointConnectionProvisioningState",
+ "description": "The provisioning state of the private endpoint connection resource."
+ },
+ "groupIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The private link resource group ids."
+ }
+ },
+ "required": [
+ "privateLinkServiceConnectionState"
+ ],
+ "description": "Properties of the PrivateEndpointConnectProperties."
+ },
+ "PrivateLinkResourceListResult": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "Array of private link resources",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ }
+ }
+ },
+ "description": "A list of private link resources"
+ },
+ "PrivateLinkResource": {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateLinkResourceProperties",
+ "description": "Resource properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/Resource"
+ }
+ ],
+ "description": "A private link resource"
+ },
+ "PrivateLinkResourceProperties": {
+ "type": "object",
+ "properties": {
+ "groupId": {
+ "description": "The private link resource group id.",
+ "type": "string",
+ "readOnly": true
+ },
+ "requiredMembers": {
+ "description": "The private link resource required member names.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "requiredZoneNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The private link resource Private link DNS zone name."
+ },
+ "displayName": {
+ "description": "The private link resource display name.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "description": "Properties of a private link resource."
+ }
+ },
+ "parameters": {
+ "accountNameParameter": {
+ "name": "accountName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "maxLength": 64,
+ "minLength": 2,
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]*$",
+ "description": "The name of Cognitive Services account.",
+ "x-ms-parameter-location": "method"
+ },
+ "locationParameter": {
+ "name": "location",
+ "in": "path",
+ "description": "Resource location.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "usageFilterParameter": {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData filter expression that describes a subset of usages to return. The supported parameter is name.value (name of the metric, can have an or of multiple names).",
+ "x-ms-parameter-location": "method"
+ },
+ "privateEndpointConnectionNameParameter": {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint connection associated with the Cognitive Services Account",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/CheckDomainAvailability.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/CheckDomainAvailability.json
new file mode 100644
index 000000000000..fd28b9feb382
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/CheckDomainAvailability.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "location": "westus",
+ "parameters": {
+ "subdomainName": "contosodemoapp1",
+ "type": "Microsoft.CognitiveServices/accounts"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "isSubdomainAvailable": false,
+ "reason": "Sub domain name 'contosodemoapp1' is not valid",
+ "subdomainName": "contosodemoapp1",
+ "type": "Microsoft.CognitiveServices/accounts"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/CheckSkuAvailability.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/CheckSkuAvailability.json
new file mode 100644
index 000000000000..5048c5ca5ddb
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/CheckSkuAvailability.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "location": "westus",
+ "parameters": {
+ "skus": [
+ "S0"
+ ],
+ "kind": "Face",
+ "type": "Microsoft.CognitiveServices/accounts"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "kind": "Face",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "skuName": "S0",
+ "skuAvailable": true,
+ "reason": null,
+ "message": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/CreateAccount.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/CreateAccount.json
new file mode 100644
index 000000000000..c0abce84738d
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/CreateAccount.json
@@ -0,0 +1,140 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "accountName": "testCreate1",
+ "account": {
+ "location": "West US",
+ "kind": "Emotion",
+ "sku": {
+ "name": "S0"
+ },
+ "properties": {
+ "encryption": {
+ "keyVaultProperties": {
+ "keyName": "KeyName",
+ "keyVersion": "891CF236-D241-4738-9462-D506AF493DFA",
+ "keyVaultUri": "https://pltfrmscrts-use-pc-dev.vault.azure.net/"
+ },
+ "keySource": "Microsoft.KeyVault"
+ },
+ "userOwnedStorage": [
+ {
+ "resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount"
+ }
+ ]
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.CognitiveServices/accounts/testCreate1",
+ "name": "testCreate1",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "West US",
+ "sku": {
+ "name": "S0"
+ },
+ "kind": "Emotion",
+ "etag": "W/\"datetime'2017-04-10T08%3A00%3A05.445595Z'\"",
+ "properties": {
+ "endpoint": "https://westus.api.cognitive.microsoft.com/emotion/v1.0",
+ "provisioningState": "Succeeded",
+ "encryption": {
+ "keySource": "Microsoft.KeyVault",
+ "keyVaultProperties": {
+ "keyName": "FakeKeyName",
+ "keyVersion": "891CF236-D241-4738-9462-D506AF493DFA",
+ "keyVaultUri": "https://pltfrmscrts-use-pc-dev.vault.azure.net/"
+ }
+ },
+ "userOwnedStorage": [
+ {
+ "resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount"
+ }
+ ]
+ },
+ "identity": {
+ "principalId": "b5cf119e-a5c2-42c7-802f-592e0efb169f",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.CognitiveServices/accounts/testCreate1",
+ "name": "testCreate1",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "West US",
+ "sku": {
+ "name": "S0"
+ },
+ "kind": "Emotion",
+ "etag": "W/\"datetime'2017-04-10T07%3A57%3A48.4582781Z'\"",
+ "properties": {
+ "endpoint": "https://westus.api.cognitive.microsoft.com/emotion/v1.0",
+ "provisioningState": "Succeeded",
+ "encryption": {
+ "keySource": "Microsoft.KeyVault",
+ "keyVaultProperties": {
+ "keyName": "FakeKeyName",
+ "keyVersion": "891CF236-D241-4738-9462-D506AF493DFA",
+ "keyVaultUri": "https://pltfrmscrts-use-pc-dev.vault.azure.net/"
+ }
+ },
+ "userOwnedStorage": [
+ {
+ "resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount"
+ }
+ ]
+ },
+ "identity": {
+ "principalId": "b5cf119e-a5c2-42c7-802f-592e0efb169f",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.CognitiveServices/accounts/testCreate1",
+ "name": "testCreate1",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "West US",
+ "sku": {
+ "name": "S0"
+ },
+ "kind": "Emotion",
+ "etag": "W/\"datetime'2017-04-10T07%3A57%3A48.4582781Z'\"",
+ "properties": {
+ "endpoint": "https://westus.api.cognitive.microsoft.com/emotion/v1.0",
+ "provisioningState": "Succeeded",
+ "encryption": {
+ "keySource": "Microsoft.KeyVault",
+ "keyVaultProperties": {
+ "keyName": "FakeKeyName",
+ "keyVersion": "891CF236-D241-4738-9462-D506AF493DFA",
+ "keyVaultUri": "https://pltfrmscrts-use-pc-dev.vault.azure.net/"
+ }
+ },
+ "userOwnedStorage": [
+ {
+ "resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount"
+ }
+ ]
+ },
+ "identity": {
+ "principalId": "b5cf119e-a5c2-42c7-802f-592e0efb169f",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "type": "SystemAssigned"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/CreateAccountMin.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/CreateAccountMin.json
new file mode 100644
index 000000000000..4f70576cc046
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/CreateAccountMin.json
@@ -0,0 +1,87 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "accountName": "testCreate1",
+ "account": {
+ "location": "West US",
+ "kind": "CognitiveServices",
+ "sku": {
+ "name": "S0"
+ },
+ "properties": {},
+ "identity": {
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.CognitiveServices/accounts/testCreate1",
+ "name": "testCreate1",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "West US",
+ "sku": {
+ "name": "S0"
+ },
+ "kind": "Emotion",
+ "etag": "W/\"datetime'2017-04-10T08%3A00%3A05.445595Z'\"",
+ "properties": {
+ "endpoint": "https://westus.api.cognitive.microsoft.com/emotion/v1.0",
+ "provisioningState": "Succeeded"
+ },
+ "identity": {
+ "principalId": "b5cf119e-a5c2-42c7-802f-592e0efb169f",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.CognitiveServices/accounts/testCreate1",
+ "name": "testCreate1",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "West US",
+ "sku": {
+ "name": "S0"
+ },
+ "kind": "Emotion",
+ "etag": "W/\"datetime'2017-04-10T07%3A57%3A48.4582781Z'\"",
+ "properties": {
+ "endpoint": "https://westus.api.cognitive.microsoft.com/emotion/v1.0",
+ "provisioningState": "Succeeded"
+ },
+ "identity": {
+ "principalId": "b5cf119e-a5c2-42c7-802f-592e0efb169f",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.CognitiveServices/accounts/testCreate1",
+ "name": "testCreate1",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "West US",
+ "sku": {
+ "name": "S0"
+ },
+ "kind": "Emotion",
+ "etag": "W/\"datetime'2017-04-10T07%3A57%3A48.4582781Z'\"",
+ "properties": {
+ "endpoint": "https://westus.api.cognitive.microsoft.com/emotion/v1.0",
+ "provisioningState": "Succeeded"
+ },
+ "identity": {
+ "principalId": "b5cf119e-a5c2-42c7-802f-592e0efb169f",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "type": "SystemAssigned"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/DeleteAccount.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/DeleteAccount.json
new file mode 100644
index 000000000000..9ef6f2cfe52e
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/DeleteAccount.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "accountName": "PropTest01"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/DeletePrivateEndpointConnection.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/DeletePrivateEndpointConnection.json
new file mode 100644
index 000000000000..a66b35c8dab7
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/DeletePrivateEndpointConnection.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res6977",
+ "accountName": "sto2527",
+ "privateEndpointConnectionName": "{privateEndpointConnectionName}",
+ "api-version": "2021-04-30",
+ "monitor": "true"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetAccount.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetAccount.json
new file mode 100644
index 000000000000..759986188a6f
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetAccount.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "accountName": "myAccount"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.CognitiveServices/accounts/myAccount",
+ "name": "myAccount",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "westus",
+ "sku": {
+ "name": "F0"
+ },
+ "kind": "Emotion",
+ "tags": {
+ "Owner": "felixwa",
+ "ExpiredDate": "2017/09/01"
+ },
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "endpoint": "https://westus.api.cognitive.microsoft.com/emotion/v1.0",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetDeletedAccount.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetDeletedAccount.json
new file mode 100644
index 000000000000..55e033d774a0
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetDeletedAccount.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "accountName": "myAccount",
+ "location": "westus"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.CognitiveServices/locations/westus/resourceGroups/myResourceGroup/deletedAccounts/myAccount",
+ "name": "myAccount",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "westus",
+ "sku": {
+ "name": "F0"
+ },
+ "kind": "Emotion",
+ "tags": {
+ "Owner": "felixwa",
+ "ExpiredDate": "2017/09/01"
+ },
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "endpoint": "https://westus.api.cognitive.microsoft.com/emotion/v1.0",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetOperations.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetOperations.json
new file mode 100644
index 000000000000..feeb95c2bdb5
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetOperations.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.CognitiveServices/accounts/read",
+ "display": {
+ "provider": "Microsoft Cognitive Services",
+ "resource": "Cognitive Services API Account",
+ "operation": "Read API Account",
+ "description": "Reads API accounts."
+ },
+ "origin": "user,system"
+ },
+ {
+ "name": "Microsoft.CognitiveServices/accounts/write",
+ "display": {
+ "provider": "Microsoft Cognitive Services",
+ "resource": "Cognitive Services API Account",
+ "operation": "Write API Account",
+ "description": "Writes API Accounts."
+ },
+ "origin": "user,system"
+ },
+ {
+ "name": "Microsoft.CognitiveServices/accounts/delete",
+ "display": {
+ "provider": "Microsoft Cognitive Services",
+ "resource": "Cognitive Services API Account",
+ "operation": "Delete API Account",
+ "description": "Deletes API accounts"
+ },
+ "origin": "user,system"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetPrivateEndpointConnection.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetPrivateEndpointConnection.json
new file mode 100644
index 000000000000..ca5b42f2d4da
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetPrivateEndpointConnection.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res6977",
+ "accountName": "sto2527",
+ "privateEndpointConnectionName": "{privateEndpointConnectionName}",
+ "api-version": "2021-04-30",
+ "monitor": "true"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.CognitiveServices/accounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}",
+ "name": "{privateEndpointConnectionName}",
+ "type": "Microsoft.CognitiveServices/accounts/privateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetSkus.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetSkus.json
new file mode 100644
index 000000000000..d8afa28a033a
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetSkus.json
@@ -0,0 +1,2164 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "f1c637e4-72ec-4f89-8d2b-0f933c036002"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Bing.Speech",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "Bing.Speech",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "SpeechTranslation",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "SpeechTranslation",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "SpeechTranslation",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "SpeechTranslation",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "SpeechTranslation",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "TextTranslation",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "TextTranslation",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "TextTranslation",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "TextTranslation",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "TextTranslation",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "Bing.Search.v7",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "Bing.Search.v7",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "Bing.Search.v7",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "Bing.Search.v7",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S5",
+ "tier": "Standard",
+ "kind": "Bing.Search.v7",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S6",
+ "tier": "Standard",
+ "kind": "Bing.Search.v7",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S7",
+ "tier": "Standard",
+ "kind": "Bing.Search.v7",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S8",
+ "tier": "Standard",
+ "kind": "Bing.Search.v7",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "Bing.Autosuggest.v7",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "Bing.CustomSearch",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "Bing.SpellCheck.v7",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Bing.EntitySearch",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "Bing.EntitySearch",
+ "locations": [
+ "GLOBAL"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Face",
+ "locations": [
+ "AUSTRALIAEAST"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "Face",
+ "locations": [
+ "AUSTRALIAEAST"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ComputerVision",
+ "locations": [
+ "AUSTRALIAEAST"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "ComputerVision",
+ "locations": [
+ "AUSTRALIAEAST"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ContentModerator",
+ "locations": [
+ "AUSTRALIAEAST"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "ContentModerator",
+ "locations": [
+ "AUSTRALIAEAST"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "TextAnalytics",
+ "locations": [
+ "AUSTRALIAEAST"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "AUSTRALIAEAST"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "AUSTRALIAEAST"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "AUSTRALIAEAST"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "AUSTRALIAEAST"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "AUSTRALIAEAST"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "LUIS",
+ "locations": [
+ "AUSTRALIAEAST"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "LUIS",
+ "locations": [
+ "AUSTRALIAEAST"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Face",
+ "locations": [
+ "BRAZILSOUTH"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "Face",
+ "locations": [
+ "BRAZILSOUTH"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ComputerVision",
+ "locations": [
+ "BRAZILSOUTH"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "ComputerVision",
+ "locations": [
+ "BRAZILSOUTH"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ContentModerator",
+ "locations": [
+ "BRAZILSOUTH"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "ContentModerator",
+ "locations": [
+ "BRAZILSOUTH"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "TextAnalytics",
+ "locations": [
+ "BRAZILSOUTH"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "BRAZILSOUTH"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "BRAZILSOUTH"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "BRAZILSOUTH"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "BRAZILSOUTH"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "BRAZILSOUTH"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "LUIS",
+ "locations": [
+ "BRAZILSOUTH"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "LUIS",
+ "locations": [
+ "BRAZILSOUTH"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Face",
+ "locations": [
+ "CENTRALUSEUAP"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "Face",
+ "locations": [
+ "CENTRALUSEUAP"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ComputerVision",
+ "locations": [
+ "CENTRALUSEUAP"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "ComputerVision",
+ "locations": [
+ "CENTRALUSEUAP"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "TextAnalytics",
+ "locations": [
+ "CENTRALUSEUAP"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "CENTRALUSEUAP"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "CENTRALUSEUAP"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "CENTRALUSEUAP"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "CENTRALUSEUAP"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "CENTRALUSEUAP"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ContentModerator",
+ "locations": [
+ "CENTRALUSEUAP"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "ContentModerator",
+ "locations": [
+ "CENTRALUSEUAP"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "LUIS",
+ "locations": [
+ "CENTRALUSEUAP"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "LUIS",
+ "locations": [
+ "CENTRALUSEUAP"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ContentModerator",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "ContentModerator",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "LUIS",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "LUIS",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Face",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "Face",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "SpeakerRecognition",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "SpeakerRecognition",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "CustomSpeech",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "CustomSpeech",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ComputerVision",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "ComputerVision",
+ "locations": [
+ "WESTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Face",
+ "locations": [
+ "WESTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "Face",
+ "locations": [
+ "WESTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ComputerVision",
+ "locations": [
+ "WESTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "ComputerVision",
+ "locations": [
+ "WESTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ContentModerator",
+ "locations": [
+ "WESTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "ContentModerator",
+ "locations": [
+ "WESTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "LUIS",
+ "locations": [
+ "WESTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "LUIS",
+ "locations": [
+ "WESTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Face",
+ "locations": [
+ "WESTEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "Face",
+ "locations": [
+ "WESTEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "LUIS",
+ "locations": [
+ "WESTEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "LUIS",
+ "locations": [
+ "WESTEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ContentModerator",
+ "locations": [
+ "WESTEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "ContentModerator",
+ "locations": [
+ "WESTEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ComputerVision",
+ "locations": [
+ "WESTEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "ComputerVision",
+ "locations": [
+ "WESTEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Face",
+ "locations": [
+ "NORTHEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "Face",
+ "locations": [
+ "NORTHEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ComputerVision",
+ "locations": [
+ "NORTHEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "ComputerVision",
+ "locations": [
+ "NORTHEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ContentModerator",
+ "locations": [
+ "NORTHEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "ContentModerator",
+ "locations": [
+ "NORTHEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "TextAnalytics",
+ "locations": [
+ "NORTHEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "NORTHEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "NORTHEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "NORTHEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "NORTHEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "NORTHEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "LUIS",
+ "locations": [
+ "NORTHEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "LUIS",
+ "locations": [
+ "NORTHEUROPE"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Face",
+ "locations": [
+ "SOUTHEASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "Face",
+ "locations": [
+ "SOUTHEASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ContentModerator",
+ "locations": [
+ "SOUTHEASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "ContentModerator",
+ "locations": [
+ "SOUTHEASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "LUIS",
+ "locations": [
+ "SOUTHEASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "LUIS",
+ "locations": [
+ "SOUTHEASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ComputerVision",
+ "locations": [
+ "SOUTHEASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "ComputerVision",
+ "locations": [
+ "SOUTHEASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "TextAnalytics",
+ "locations": [
+ "SOUTHEASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "SOUTHEASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "SOUTHEASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "SOUTHEASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "SOUTHEASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "SOUTHEASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Face",
+ "locations": [
+ "EASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "Face",
+ "locations": [
+ "EASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ComputerVision",
+ "locations": [
+ "EASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "ComputerVision",
+ "locations": [
+ "EASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ContentModerator",
+ "locations": [
+ "EASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "ContentModerator",
+ "locations": [
+ "EASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "LUIS",
+ "locations": [
+ "EASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "LUIS",
+ "locations": [
+ "EASTASIA"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Face",
+ "locations": [
+ "WESTCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "Face",
+ "locations": [
+ "WESTCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ContentModerator",
+ "locations": [
+ "WESTCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "ContentModerator",
+ "locations": [
+ "WESTCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "LUIS",
+ "locations": [
+ "WESTCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "LUIS",
+ "locations": [
+ "WESTCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ComputerVision",
+ "locations": [
+ "WESTCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "ComputerVision",
+ "locations": [
+ "WESTCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "WESTCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Face",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "Face",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ComputerVision",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "ComputerVision",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ContentModerator",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "ContentModerator",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "TextAnalytics",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "LUIS",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "LUIS",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "CustomVision.Training",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "CustomVision.Training",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "CustomVision.Prediction",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "CustomVision.Prediction",
+ "locations": [
+ "SOUTHCENTRALUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Face",
+ "locations": [
+ "EASTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "Face",
+ "locations": [
+ "EASTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ComputerVision",
+ "locations": [
+ "EASTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "ComputerVision",
+ "locations": [
+ "EASTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ContentModerator",
+ "locations": [
+ "EASTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "ContentModerator",
+ "locations": [
+ "EASTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "LUIS",
+ "locations": [
+ "EASTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "LUIS",
+ "locations": [
+ "EASTUS"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ContentModerator",
+ "locations": [
+ "EASTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "ContentModerator",
+ "locations": [
+ "EASTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "Face",
+ "locations": [
+ "EASTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "Face",
+ "locations": [
+ "EASTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "LUIS",
+ "locations": [
+ "EASTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "LUIS",
+ "locations": [
+ "EASTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "ComputerVision",
+ "locations": [
+ "EASTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "ComputerVision",
+ "locations": [
+ "EASTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "F0",
+ "tier": "Free",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S0",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S1",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S2",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S3",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTUS2"
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "accounts",
+ "name": "S4",
+ "tier": "Standard",
+ "kind": "TextAnalytics",
+ "locations": [
+ "EASTUS2"
+ ],
+ "restrictions": []
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetUsages.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetUsages.json
new file mode 100644
index 000000000000..10c730650e04
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/GetUsages.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "5a4f5c2e-6983-4ccb-bd34-2196d5b5bbd3",
+ "resourceGroupName": "myResourceGroup",
+ "accountName": "TestUsage02"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": {
+ "value": "Face.Transactions",
+ "localizedValue": "Face.Transactions"
+ },
+ "status": "Included",
+ "currentValue": 3,
+ "limit": 30000,
+ "nextResetTime": "2018-03-28T09:33:51Z",
+ "quotaPeriod": "30.00:00:00",
+ "unit": "Count"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListAccountsByResourceGroup.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListAccountsByResourceGroup.json
new file mode 100644
index 000000000000..5f08b2196518
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListAccountsByResourceGroup.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.CognitiveServices/accounts/myAccount",
+ "name": "myAccount",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "westus",
+ "sku": {
+ "name": "F0"
+ },
+ "kind": "Emotion",
+ "tags": {
+ "Owner": "felixwa",
+ "ExpiredDate": "2017/09/01"
+ },
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "endpoint": "https://westus.api.cognitive.microsoft.com/emotion/v1.0",
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.CognitiveServices/accounts/TestPropertyWU2",
+ "name": "TestPropertyWU2",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "westus",
+ "sku": {
+ "name": "S0"
+ },
+ "kind": "Face",
+ "tags": {},
+ "etag": "W/\"datetime'2017-04-07T04%3A32%3A38.9187216Z'\"",
+ "properties": {
+ "endpoint": "https://westus.api.cognitive.microsoft.com/face/v1.0",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListAccountsBySubscription.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListAccountsBySubscription.json
new file mode 100644
index 000000000000..2596697fac3c
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListAccountsBySubscription.json
@@ -0,0 +1,77 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/bvttest/providers/Microsoft.CognitiveServices/accounts/bingSearch",
+ "name": "bingSearch",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "global",
+ "sku": {
+ "name": "S1"
+ },
+ "kind": "Bing.Search",
+ "etag": "W/\"datetime'2017-03-27T11%3A19%3A08.762494Z'\"",
+ "properties": {
+ "endpoint": "https://api.cognitive.microsoft.com/bing/v5.0",
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/bvttest/providers/Microsoft.CognitiveServices/accounts/CrisProd",
+ "name": "CrisProd",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "westus",
+ "sku": {
+ "name": "S0"
+ },
+ "kind": "CRIS",
+ "tags": {
+ "can't delete it successfully": "v-yunjin"
+ },
+ "etag": "W/\"datetime'2017-03-31T08%3A57%3A07.4499566Z'\"",
+ "properties": {
+ "endpoint": "https://westus.api.cognitive.microsoft.com/sts/v1.0",
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/bvttest/providers/Microsoft.CognitiveServices/accounts/rayrptest0308",
+ "name": "rayrptest0308",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "westus",
+ "sku": {
+ "name": "S0"
+ },
+ "kind": "Face",
+ "etag": "W/\"datetime'2017-03-27T11%3A15%3A23.5232645Z'\"",
+ "properties": {
+ "endpoint": "https://westus.api.cognitive.microsoft.com/face/v1.0",
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/bvttest/providers/Microsoft.CognitiveServices/accounts/raytest02",
+ "name": "raytest02",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "westus",
+ "sku": {
+ "name": "S0"
+ },
+ "kind": "Emotion",
+ "etag": "W/\"datetime'2017-04-04T02%3A07%3A07.3957572Z'\"",
+ "properties": {
+ "endpoint": "https://westus.api.cognitive.microsoft.com/emotion/v1.0",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListKeys.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListKeys.json
new file mode 100644
index 000000000000..2a03c0e64aa7
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListKeys.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "accountName": "myAccount"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "key1": "KEY1",
+ "key2": "KEY2"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListPrivateEndpointConnections.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListPrivateEndpointConnections.json
new file mode 100644
index 000000000000..039a1894fc6f
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListPrivateEndpointConnections.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res6977",
+ "accountName": "sto2527",
+ "api-version": "2021-04-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.CognitiveServices/accounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}",
+ "name": "{privateEndpointConnectionName}",
+ "type": "Microsoft.CognitiveServices/accounts/privateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListPrivateLinkResources.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListPrivateLinkResources.json
new file mode 100644
index 000000000000..c3a4f2766585
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListPrivateLinkResources.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res6977",
+ "accountName": "sto2527",
+ "api-version": "2021-04-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.CognitiveServices/accounts/sto2527/privateLinkResources/account",
+ "name": "blob",
+ "type": "Microsoft.CognitiveServices/accounts/privateLinkResources",
+ "properties": {
+ "groupId": "account",
+ "requiredMembers": [
+ "default"
+ ],
+ "requiredZoneNames": [
+ "privatelink.cognitiveservices.azure.com"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListSkus.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListSkus.json
new file mode 100644
index 000000000000..94d0f63205e3
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/ListSkus.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "accountName": "myAccount"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "resourceType": "Microsoft.CognitiveServices/accounts",
+ "sku": {
+ "name": "F0",
+ "tier": "Free"
+ }
+ },
+ {
+ "resourceType": "Microsoft.CognitiveServices/accounts",
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/PurgeDeletedAccount.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/PurgeDeletedAccount.json
new file mode 100644
index 000000000000..5a439ad8c41f
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/PurgeDeletedAccount.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "accountName": "PropTest01",
+ "location": "westus"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/PutPrivateEndpointConnection.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/PutPrivateEndpointConnection.json
new file mode 100644
index 000000000000..a6f8a1a23f40
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/PutPrivateEndpointConnection.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res7687",
+ "accountName": "sto9699",
+ "privateEndpointConnectionName": "{privateEndpointConnectionName}",
+ "api-version": "2021-04-30",
+ "monitor": "true",
+ "properties": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.CognitiveServices/accounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}",
+ "name": "{privateEndpointConnectionName}",
+ "type": "Microsoft.CognitiveServices/accounts/privateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.CognitiveServices/accounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}",
+ "name": "{privateEndpointConnectionName}",
+ "type": "Microsoft.CognitiveServices/accounts/privateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/RegenerateKey.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/RegenerateKey.json
new file mode 100644
index 000000000000..6f2c8b9acb41
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/RegenerateKey.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "myResourceGroup",
+ "accountName": "myAccount",
+ "parameters": {
+ "keyName": "Key2"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "key1": "KEY1",
+ "key2": "KEY2"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/UpdateAccount.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/UpdateAccount.json
new file mode 100644
index 000000000000..d2cfec18c150
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2021-04-30/examples/UpdateAccount.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "api-version": "2021-04-30",
+ "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "resourceGroupName": "bvttest",
+ "accountName": "bingSearch",
+ "account": {
+ "location": "global",
+ "sku": {
+ "name": "S2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/bvttest/providers/Microsoft.CognitiveServices/accounts/bingSearch",
+ "name": "bingSearch",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "global",
+ "sku": {
+ "name": "S2"
+ },
+ "kind": "Bing.Search",
+ "etag": "W/\"datetime'2017-04-10T07%3A46%3A21.5618831Z'\"",
+ "properties": {
+ "endpoint": "https://api.cognitive.microsoft.com/bing/v5.0",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/bvttest/providers/Microsoft.CognitiveServices/accounts/bingSearch",
+ "name": "bingSearch",
+ "type": "Microsoft.CognitiveServices/accounts",
+ "location": "global",
+ "sku": {
+ "name": "S2"
+ },
+ "kind": "Bing.Search",
+ "etag": "W/\"datetime'2017-04-10T07%3A46%3A21.5618831Z'\"",
+ "properties": {
+ "endpoint": "https://api.cognitive.microsoft.com/bing/v5.0",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/readme.azureresourceschema.md b/specification/cognitiveservices/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index b39fda607747..000000000000
--- a/specification/cognitiveservices/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,36 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-cognitiveservices-2017-04-18
- - tag: schema-cognitiveservices-2016-02-01-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-cognitiveservices-2017-04-18 and azureresourceschema
-
-``` yaml $(tag) == 'schema-cognitiveservices-2017-04-18' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.CognitiveServices/stable/2017-04-18/cognitiveservices.json
-
-```
-
-### Tag: schema-cognitiveservices-2016-02-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-cognitiveservices-2016-02-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.CognitiveServices/preview/2016-02-01-preview/cognitiveservices.json
-
-```
diff --git a/specification/cognitiveservices/resource-manager/readme.go.md b/specification/cognitiveservices/resource-manager/readme.go.md
index 0b784788d841..4b6500b266ac 100644
--- a/specification/cognitiveservices/resource-manager/readme.go.md
+++ b/specification/cognitiveservices/resource-manager/readme.go.md
@@ -13,10 +13,20 @@ go:
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-2021-04
- tag: package-2017-04
- tag: package-2016-02-preview
```
+### Tag: package-2021-04 and go
+
+These settings apply only when `--tag=package-2021-04 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2021-04' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2021-04-30/$(namespace)
+```
+
### Tag: package-2017-04 and go
These settings apply only when `--tag=package-2017-04 --go` is specified on the command line.
diff --git a/specification/cognitiveservices/resource-manager/readme.md b/specification/cognitiveservices/resource-manager/readme.md
index 6a6be724ecc5..fe2aad3a95f4 100644
--- a/specification/cognitiveservices/resource-manager/readme.md
+++ b/specification/cognitiveservices/resource-manager/readme.md
@@ -27,10 +27,19 @@ These are the global settings for the CognitiveServices API.
``` yaml
openapi-type: arm
-tag: package-2017-04
+tag: package-2021-04
```
+### Tag: package-2021-04
+
+These settings apply only when `--tag=package-2021-04` is specified on the command line.
+
+``` yaml $(tag) == 'package-2021-04'
+input-file:
+- Microsoft.CognitiveServices/stable/2021-04-30/cognitiveservices.json
+```
+
### Tag: package-2017-04
These settings apply only when `--tag=package-2017-04` is specified on the command line.
@@ -63,6 +72,7 @@ This is not used by Autorest itself.
swagger-to-sdk:
- repo: azure-sdk-for-net
- repo: azure-sdk-for-python
+ - repo: azure-sdk-for-python-track2
- repo: azure-sdk-for-java
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
@@ -71,8 +81,6 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_cognitive_services']
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js cognitiveservices/resource-manager
```
@@ -90,6 +98,10 @@ csharp:
clear-output-folder: true
```
+## Python
+
+See configuration in [readme.python.md](./readme.python.md)
+
## Go
See configuration in [readme.go.md](./readme.go.md)
@@ -144,7 +156,5 @@ generate-interface: true
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/commerce/resource-manager/readme.azureresourceschema.md b/specification/commerce/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 10ddf94097fb..000000000000
--- a/specification/commerce/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,24 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-commerce-2015-06-01-preview
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-commerce-2015-06-01-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-commerce-2015-06-01-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Commerce/preview/2015-06-01-preview/commerce.json
-
-```
diff --git a/specification/commerce/resource-manager/readme.md b/specification/commerce/resource-manager/readme.md
index ac7b98eabc54..78eeba4be483 100644
--- a/specification/commerce/resource-manager/readme.md
+++ b/specification/commerce/resource-manager/readme.md
@@ -70,8 +70,6 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_commerce']
- repo: azure-resource-manager-schemas
- after_scripts:
- - node sdkauto_afterscript.js commerce/resource-manager
```
@@ -155,7 +153,5 @@ generate-interface: true
-## AzureResourceSchema
-See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/common-types/resource-management/v2/privatelinks.json b/specification/common-types/resource-management/v2/privatelinks.json
new file mode 100644
index 000000000000..be415f3555ea
--- /dev/null
+++ b/specification/common-types/resource-management/v2/privatelinks.json
@@ -0,0 +1,174 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2.0",
+ "title": "Common types"
+ },
+ "paths": {},
+ "definitions": {
+ "PrivateEndpoint": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The ARM identifier for Private Endpoint"
+ }
+ },
+ "description": "The Private Endpoint resource."
+ },
+ "PrivateEndpointConnection": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "x-ms-client-flatten": true,
+ "description": "Resource properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./types.json#/definitions/Resource"
+ }
+ ],
+ "description": "The Private Endpoint Connection resource."
+ },
+ "PrivateEndpointConnectionProperties": {
+ "properties": {
+ "privateEndpoint": {
+ "$ref": "#/definitions/PrivateEndpoint",
+ "description": "The resource of private end point."
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "#/definitions/PrivateLinkServiceConnectionState",
+ "description": "A collection of information about the state of the connection between service consumer and provider."
+ },
+ "provisioningState": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState",
+ "description": "The provisioning state of the private endpoint connection resource."
+ }
+ },
+ "required": [
+ "privateLinkServiceConnectionState"
+ ],
+ "description": "Properties of the PrivateEndpointConnectProperties."
+ },
+ "PrivateLinkServiceConnectionState": {
+ "properties": {
+ "status": {
+ "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus",
+ "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service."
+ },
+ "description": {
+ "type": "string",
+ "description": "The reason for approval/rejection of the connection."
+ },
+ "actionsRequired": {
+ "type": "string",
+ "description": "A message indicating if changes on the service provider require any updates on the consumer."
+ }
+ },
+ "description": "A collection of information about the state of the connection between service consumer and provider."
+ },
+ "PrivateEndpointServiceConnectionStatus": {
+ "type": "string",
+ "description": "The private endpoint connection status.",
+ "enum": [
+ "Pending",
+ "Approved",
+ "Rejected"
+ ],
+ "x-ms-enum": {
+ "name": "PrivateEndpointServiceConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "PrivateEndpointConnectionProvisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The current provisioning state.",
+ "enum": [
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "PrivateEndpointConnectionProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "PrivateLinkResource": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateLinkResourceProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "./types.json#/definitions/Resource"
+ }
+ ],
+ "description": "A private link resource"
+ },
+ "PrivateLinkResourceProperties": {
+ "properties": {
+ "groupId": {
+ "description": "The private link resource group id.",
+ "type": "string",
+ "readOnly": true
+ },
+ "requiredMembers": {
+ "description": "The private link resource required member names.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "requiredZoneNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The private link resource Private link DNS zone name."
+ }
+ },
+ "description": "Properties of a private link resource."
+ },
+ "PrivateEndpointConnectionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "Array of private endpoint connections",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ }
+ },
+ "description": "List of private endpoint connection associated with the specified storage account"
+ },
+ "PrivateLinkResourceListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "Array of private link resources",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ }
+ }
+ },
+ "description": "A list of private link resources"
+ }
+ },
+ "parameters": {
+ "PrivateEndpointConnectionName": {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint connection associated with the Azure resource",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/communicationserviceschat.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/communicationserviceschat.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/communicationserviceschat.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/communicationserviceschat.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Conversations_ListChatReadReceipts.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Conversations_ListChatReadReceipts.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Conversations_ListChatReadReceipts.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Conversations_ListChatReadReceipts.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Conversations_SendChatReadReceipt.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Conversations_SendChatReadReceipt.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Conversations_SendChatReadReceipt.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Conversations_SendChatReadReceipt.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_DeleteChatMessage.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Messages_DeleteChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_DeleteChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Messages_DeleteChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_GetChatMessage.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Messages_GetChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_GetChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Messages_GetChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_ListChatMessagesWithPageSize.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Messages_ListChatMessagesWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_ListChatMessagesWithPageSize.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Messages_ListChatMessagesWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_SendChatMessage.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Messages_SendChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_SendChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Messages_SendChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_SendTypingNotification.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Messages_SendTypingNotification.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_SendTypingNotification.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Messages_SendTypingNotification.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_UpdateChatMessage.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Messages_UpdateChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_UpdateChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Messages_UpdateChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_AddChatThreadMembers.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/ThreadMembers_AddChatThreadMembers.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_AddChatThreadMembers.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/ThreadMembers_AddChatThreadMembers.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_ListChatThreadMembers.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/ThreadMembers_ListChatThreadMembers.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_ListChatThreadMembers.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/ThreadMembers_ListChatThreadMembers.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_RemoveChatThreadMember.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/ThreadMembers_RemoveChatThreadMember.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_RemoveChatThreadMember.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/ThreadMembers_RemoveChatThreadMember.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_CreateChatThread.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Threads_CreateChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_CreateChatThread.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Threads_CreateChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_DeleteChatThread.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Threads_DeleteChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_DeleteChatThread.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Threads_DeleteChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_GetChatThread.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Threads_GetChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_GetChatThread.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Threads_GetChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_ListChatThreadsWithPageSize.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Threads_ListChatThreadsWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_ListChatThreadsWithPageSize.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Threads_ListChatThreadsWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_UpdateChatThreadTopic.json b/specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Threads_UpdateChatThreadTopic.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_UpdateChatThreadTopic.json
rename to specification/communication/data-plane/Chat/preview/2020-09-21-preview2/examples/Threads_UpdateChatThreadTopic.json
diff --git a/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/communicationserviceschat.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/communicationserviceschat.json
new file mode 100644
index 000000000000..ca14efb9e7ce
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/communicationserviceschat.json
@@ -0,0 +1,1703 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Communication Chat Service",
+ "description": "Azure Communication Chat Service",
+ "version": "2020-11-01-preview3"
+ },
+ "paths": {
+ "/chat/threads/{chatThreadId}/readReceipts": {
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets chat message read receipts for a thread.",
+ "operationId": "ChatThread_ListChatReadReceipts",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to get the chat message read receipts for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of chat message read receipts to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "skip",
+ "description": "Skips chat message read receipts up to a specified position in response.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns the requested `ChatMessageReadReceipt` resources.",
+ "schema": {
+ "$ref": "#/definitions/ChatMessageReadReceiptsCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get thread read receipts with pagination (max page size)": {
+ "$ref": "./examples/Conversations_ListChatReadReceiptsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ },
+ "post": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Sends a read receipt event to a thread, on behalf of a user.",
+ "operationId": "ChatThread_SendChatReadReceipt",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to send the read receipt event to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "sendReadReceiptRequest",
+ "description": "Read receipt details.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SendReadReceiptRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Send read receipt": {
+ "$ref": "./examples/Conversations_SendChatReadReceipt.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/messages": {
+ "post": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Sends a message to a thread.",
+ "operationId": "ChatThread_SendChatMessage",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to send the message to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "sendChatMessageRequest",
+ "description": "Details of the message to send.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SendChatMessageRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Message sent, the `Location` header contains the URL for the newly sent message.",
+ "schema": {
+ "$ref": "#/definitions/SendChatMessageResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Send Message": {
+ "$ref": "./examples/Messages_SendChatMessage.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Gets a list of messages from a thread.",
+ "operationId": "ChatThread_ListChatMessages",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id of the message.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of messages to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "startTime",
+ "description": "The earliest point in time to get messages up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ChatMessagesCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get messages with pagination (max page size)": {
+ "$ref": "./examples/Messages_ListChatMessagesWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/messages/{chatMessageId}": {
+ "get": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Gets a message by id.",
+ "operationId": "ChatThread_GetChatMessage",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a `Message` resource.",
+ "schema": {
+ "$ref": "#/definitions/ChatMessage"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get Message": {
+ "$ref": "./examples/Messages_GetChatMessage.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Updates a message.",
+ "operationId": "ChatThread_UpdateChatMessage",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "updateChatMessageRequest",
+ "description": "Details of the request to update the message.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateChatMessageRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Message is successfully updated."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Update message content": {
+ "$ref": "./examples/Messages_UpdateChatMessage.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Deletes a message.",
+ "operationId": "ChatThread_DeleteChatMessage",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Delete message": {
+ "$ref": "./examples/Messages_DeleteChatMessage.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/typing": {
+ "post": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Posts a typing event to a thread, on behalf of a user.",
+ "operationId": "ChatThread_SendTypingNotification",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Post typing event to a thread": {
+ "$ref": "./examples/Messages_SendTypingNotification.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants": {
+ "get": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Gets the participants of a thread.",
+ "operationId": "ChatThread_ListChatParticipants",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to get participants for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of participants to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "skip",
+ "description": "Skips participants up to a specified position in response.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns the participants of a thread.",
+ "schema": {
+ "$ref": "#/definitions/ChatParticipantsCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get participants with pagination (max page size)": {
+ "$ref": "./examples/Participants_ListChatParticipantsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants/{chatParticipantId}": {
+ "delete": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Remove a participant from a thread.",
+ "operationId": "ChatThread_RemoveChatParticipant",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to remove the participant from.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatParticipantId",
+ "description": "Id of the thread participant to remove from the thread.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Remove participant": {
+ "$ref": "./examples/Participants_RemoveChatParticipant.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants/:add": {
+ "post": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Adds thread participants to a thread. If participants already exist, no change occurs.",
+ "operationId": "ChatThread_AddChatParticipants",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread to add participants to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "addChatParticipantsRequest",
+ "description": "Thread participants to be added to the thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AddChatParticipantsRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The participants were successfully added.",
+ "schema": {
+ "$ref": "#/definitions/AddChatParticipantsResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Add participants": {
+ "$ref": "./examples/Participants_AddChatParticipants.json"
+ }
+ }
+ }
+ },
+ "/chat/threads": {
+ "post": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Creates a chat thread.",
+ "operationId": "Chat_CreateChatThread",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "header",
+ "name": "repeatability-Request-ID",
+ "description": "If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-ID and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-ID is an opaque string representing a client-generated, globally unique for all time, identifier for the request. It is recommended to use version 4 (random) UUIDs.",
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "createChatThreadRequest",
+ "description": "Request payload for creating a chat thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CreateChatThreadRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Thread created, the `Location` header would contain the URL for the newly created thread.",
+ "schema": {
+ "$ref": "#/definitions/CreateChatThreadResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Create chat thread": {
+ "$ref": "./examples/Threads_CreateChatThread.json"
+ },
+ "Create chat thread with repeatability request id header": {
+ "$ref": "./examples/Threads_CreateChatThreadWithRepeatabilityRequestId.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets the list of chat threads of a user.",
+ "operationId": "Chat_ListChatThreads",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of chat threads returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "startTime",
+ "description": "The earliest point in time to get chat threads up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a `GetThreadsResponse` resource.",
+ "schema": {
+ "$ref": "#/definitions/ChatThreadsInfoCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get threads with pagination (Max Page Size)": {
+ "$ref": "./examples/Threads_ListChatThreadsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}": {
+ "patch": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Updates a thread's properties.",
+ "operationId": "ChatThread_UpdateChatThread",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The id of the thread to update.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "updateChatThreadRequest",
+ "description": "Request payload for updating a chat thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateChatThreadRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Thread was successfully updated."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Update chat thread topic": {
+ "$ref": "./examples/Threads_UpdateChatThreadTopic.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets a chat thread.",
+ "operationId": "Chat_GetChatThread",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a chat thread.",
+ "schema": {
+ "$ref": "#/definitions/ChatThread"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get chat thread": {
+ "$ref": "./examples/Threads_GetChatThread.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Deletes a thread.",
+ "operationId": "Chat_DeleteChatThread",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Delete chat thread": {
+ "$ref": "./examples/Threads_DeleteChatThread.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ChatMessageReadReceipt": {
+ "description": "A chat message read receipt indicates the time a chat message was read by a recipient.",
+ "required": [
+ "chatMessageId",
+ "readOn",
+ "senderId"
+ ],
+ "type": "object",
+ "properties": {
+ "senderId": {
+ "description": "Id of the participant who read the message.",
+ "type": "string",
+ "example": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ },
+ "chatMessageId": {
+ "description": "Id of the chat message that has been read. This id is generated by the server.",
+ "type": "string",
+ "example": "1591137790240"
+ },
+ "readOn": {
+ "format": "date-time",
+ "description": "The time at which the message was read. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatMessageReadReceiptsCollection": {
+ "description": "A paged collection of chat message read receipts.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat message read receipts.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatMessageReadReceipt"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat message read receipts that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "Error": {
+ "$ref": "../../../Common/preview/2020-11-19-preview1/common.json#/definitions/CommunicationError"
+ },
+ "ErrorResponse": {
+ "$ref": "../../../Common/preview/2020-11-19-preview1/common.json#/definitions/CommunicationErrorResponse"
+ },
+ "SendReadReceiptRequest": {
+ "description": "Request payload for sending a read receipt.",
+ "required": [
+ "chatMessageId"
+ ],
+ "type": "object",
+ "properties": {
+ "chatMessageId": {
+ "description": "Id of the latest chat message read by the user.",
+ "type": "string",
+ "example": "1592435762364"
+ }
+ }
+ },
+ "ChatMessageType": {
+ "description": "The chat message type.",
+ "enum": [
+ "text",
+ "html",
+ "topicUpdated",
+ "participantAdded",
+ "participantRemoved"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ChatMessageType",
+ "modelAsString": true
+ }
+ },
+ "SendChatMessageRequest": {
+ "description": "Details of the message to send.",
+ "required": [
+ "content"
+ ],
+ "type": "object",
+ "properties": {
+ "content": {
+ "description": "Chat message content.",
+ "type": "string",
+ "example": "Come one guys, lets go for lunch together."
+ },
+ "senderDisplayName": {
+ "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
+ "type": "string",
+ "example": "Bob Admin"
+ },
+ "type": {
+ "$ref": "#/definitions/ChatMessageType"
+ }
+ }
+ },
+ "SendChatMessageResult": {
+ "description": "Result of the send message operation.",
+ "required": [
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "A server-generated message id.",
+ "type": "string",
+ "example": "123456789"
+ }
+ }
+ },
+ "ChatParticipant": {
+ "description": "A participant of the chat thread.",
+ "required": [
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The id of the chat participant.",
+ "type": "string",
+ "example": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ },
+ "displayName": {
+ "description": "Display name for the chat participant.",
+ "type": "string",
+ "example": "Bob"
+ },
+ "shareHistoryTime": {
+ "format": "date-time",
+ "description": "Time from which the chat history is shared with the participant. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatMessageContent": {
+ "description": "Content of a chat message.",
+ "type": "object",
+ "properties": {
+ "message": {
+ "description": "Chat message content for messages of types text or html.",
+ "type": "string",
+ "example": "Come one guys, lets go for lunch together."
+ },
+ "topic": {
+ "description": "Chat message content for messages of type topicUpdated.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "participants": {
+ "description": "Chat message content for messages of types participantAdded or participantRemoved.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ },
+ "initiator": {
+ "description": "Chat message content for messages of types participantAdded or participantRemoved.",
+ "type": "string",
+ "example": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ }
+ },
+ "ChatMessage": {
+ "description": "Chat message.",
+ "required": [
+ "createdOn",
+ "id",
+ "sequenceId",
+ "type",
+ "version"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The id of the chat message. This id is server generated.",
+ "type": "string",
+ "example": "123456789"
+ },
+ "type": {
+ "$ref": "#/definitions/ChatMessageType"
+ },
+ "sequenceId": {
+ "description": "Sequence of the chat message in the conversation.",
+ "type": "string"
+ },
+ "version": {
+ "description": "Version of the chat message.",
+ "type": "string"
+ },
+ "content": {
+ "$ref": "#/definitions/ChatMessageContent"
+ },
+ "senderDisplayName": {
+ "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
+ "type": "string",
+ "example": "Jane"
+ },
+ "createdOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "senderId": {
+ "description": "The id of the chat message sender.",
+ "type": "string",
+ "example": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp (if applicable) when the message was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "editedOn": {
+ "format": "date-time",
+ "description": "The last timestamp (if applicable) when the message was edited. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatMessagesCollection": {
+ "description": "Collection of chat messages for a particular chat thread.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat messages.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatMessage"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat messages that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UpdateChatMessageRequest": {
+ "description": "Request payload for updating a chat message.",
+ "type": "object",
+ "properties": {
+ "content": {
+ "description": "Chat message content.",
+ "type": "string",
+ "example": "Let's go for lunch together."
+ }
+ }
+ },
+ "ChatParticipantsCollection": {
+ "description": "Collection of participants belong to a particular thread.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Chat participants.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat participants that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "AddChatParticipantsRequest": {
+ "description": "Participants to be added to the thread.",
+ "required": [
+ "participants"
+ ],
+ "type": "object",
+ "properties": {
+ "participants": {
+ "description": "Participants to add to a chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ }
+ }
+ },
+ "AddChatParticipantsErrors": {
+ "description": "Errors encountered during the addition of the chat participant to the chat thread.",
+ "required": [
+ "invalidParticipants"
+ ],
+ "type": "object",
+ "properties": {
+ "invalidParticipants": {
+ "description": "The participants that failed to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "AddChatParticipantsResult": {
+ "description": "Result of the add chat participants operation.",
+ "type": "object",
+ "properties": {
+ "errors": {
+ "$ref": "#/definitions/AddChatParticipantsErrors"
+ }
+ }
+ },
+ "CreateChatThreadRequest": {
+ "description": "Request payload for creating a chat thread.",
+ "required": [
+ "participants",
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "topic": {
+ "description": "The chat thread topic.",
+ "type": "string",
+ "example": "Lunch Thread"
+ },
+ "participants": {
+ "description": "Participants to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ }
+ }
+ },
+ "ChatThread": {
+ "description": "Chat thread.",
+ "required": [
+ "createdBy",
+ "createdOn",
+ "id",
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Chat thread id.",
+ "type": "string",
+ "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
+ },
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "createdOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was created. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "createdBy": {
+ "description": "Id of the chat thread owner.",
+ "type": "string",
+ "example": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "CreateChatThreadErrors": {
+ "description": "Errors encountered during the creation of the chat thread.",
+ "type": "object",
+ "properties": {
+ "invalidParticipants": {
+ "description": "The participants that failed to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Error"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "CreateChatThreadResult": {
+ "description": "Result of the create chat thread operation.",
+ "type": "object",
+ "properties": {
+ "chatThread": {
+ "$ref": "#/definitions/ChatThread"
+ },
+ "errors": {
+ "$ref": "#/definitions/CreateChatThreadErrors"
+ }
+ }
+ },
+ "ChatThreadInfo": {
+ "description": "Summary information of a chat thread.",
+ "required": [
+ "id",
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Chat thread id.",
+ "type": "string",
+ "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
+ },
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "lastMessageReceivedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the last message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "readOnly": true,
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatThreadsInfoCollection": {
+ "description": "Collection of chat threads.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat threads.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatThreadInfo"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat threads that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UpdateChatThreadRequest": {
+ "description": "Request payload for updating a chat thread.",
+ "type": "object",
+ "properties": {
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Thread"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "in": "query",
+ "name": "api-version",
+ "description": "Version of API to invoke.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "Endpoint": {
+ "in": "path",
+ "name": "endpoint",
+ "description": "The endpoint of the Azure Communication resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-skip-url-encoding": true,
+ "x-ms-parameter-location": "client"
+ }
+ },
+ "securityDefinitions": {
+ "Authorization": {
+ "type": "apiKey",
+ "name": "Authorization",
+ "in": "header",
+ "description": "An ACS (Azure Communication Services) user access token."
+ }
+ },
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Conversations_ListChatReadReceiptsWithPageSize.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Conversations_ListChatReadReceiptsWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Conversations_ListChatReadReceiptsWithPageSize.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Conversations_ListChatReadReceiptsWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Conversations_SendChatReadReceipt.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Conversations_SendChatReadReceipt.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Conversations_SendChatReadReceipt.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Conversations_SendChatReadReceipt.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Messages_DeleteChatMessage.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Messages_DeleteChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Messages_DeleteChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Messages_DeleteChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Messages_GetChatMessage.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Messages_GetChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Messages_GetChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Messages_GetChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Messages_ListChatMessagesWithPageSize.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Messages_ListChatMessagesWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Messages_ListChatMessagesWithPageSize.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Messages_ListChatMessagesWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Messages_SendChatMessage.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Messages_SendChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Messages_SendChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Messages_SendChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Messages_SendTypingNotification.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Messages_SendTypingNotification.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Messages_SendTypingNotification.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Messages_SendTypingNotification.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Messages_UpdateChatMessage.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Messages_UpdateChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Messages_UpdateChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Messages_UpdateChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Participants_AddChatParticipants.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Participants_AddChatParticipants.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Participants_AddChatParticipants.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Participants_AddChatParticipants.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Participants_ListChatParticipantsWithPageSize.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Participants_ListChatParticipantsWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Participants_ListChatParticipantsWithPageSize.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Participants_ListChatParticipantsWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Participants_RemoveChatParticipant.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Participants_RemoveChatParticipant.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Participants_RemoveChatParticipant.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Participants_RemoveChatParticipant.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Threads_CreateChatThread.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Threads_CreateChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Threads_CreateChatThread.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Threads_CreateChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Threads_CreateChatThreadWithRepeatabilityRequestId.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Threads_CreateChatThreadWithRepeatabilityRequestId.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Threads_CreateChatThreadWithRepeatabilityRequestId.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Threads_CreateChatThreadWithRepeatabilityRequestId.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Threads_DeleteChatThread.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Threads_DeleteChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Threads_DeleteChatThread.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Threads_DeleteChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Threads_GetChatThread.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Threads_GetChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Threads_GetChatThread.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Threads_GetChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Threads_ListChatThreadsWithPageSize.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Threads_ListChatThreadsWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Threads_ListChatThreadsWithPageSize.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Threads_ListChatThreadsWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Threads_UpdateChatThreadTopic.json b/specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Threads_UpdateChatThreadTopic.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/examples/Threads_UpdateChatThreadTopic.json
rename to specification/communication/data-plane/Chat/preview/2020-11-01-preview3/examples/Threads_UpdateChatThreadTopic.json
diff --git a/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/communicationserviceschat.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/communicationserviceschat.json
new file mode 100644
index 000000000000..5a8591949517
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/communicationserviceschat.json
@@ -0,0 +1,1711 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Communication Chat Service",
+ "description": "Azure Communication Chat Service",
+ "version": "2021-01-27-preview4"
+ },
+ "paths": {
+ "/chat/threads/{chatThreadId}/readReceipts": {
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets chat message read receipts for a thread.",
+ "operationId": "ChatThread_ListChatReadReceipts",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to get the chat message read receipts for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of chat message read receipts to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "skip",
+ "description": "Skips chat message read receipts up to a specified position in response.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns the requested `ChatMessageReadReceipt` resources.",
+ "schema": {
+ "$ref": "#/definitions/ChatMessageReadReceiptsCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get thread read receipts with pagination (max page size)": {
+ "$ref": "./examples/Conversations_ListChatReadReceiptsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ },
+ "post": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Sends a read receipt event to a thread, on behalf of a user.",
+ "operationId": "ChatThread_SendChatReadReceipt",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to send the read receipt event to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "sendReadReceiptRequest",
+ "description": "Read receipt details.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SendReadReceiptRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Send read receipt": {
+ "$ref": "./examples/Conversations_SendChatReadReceipt.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/messages": {
+ "post": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Sends a message to a thread.",
+ "operationId": "ChatThread_SendChatMessage",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to send the message to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "sendChatMessageRequest",
+ "description": "Details of the message to send.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SendChatMessageRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Message sent, the `Location` header contains the URL for the newly sent message.",
+ "schema": {
+ "$ref": "#/definitions/SendChatMessageResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Send Message": {
+ "$ref": "./examples/Messages_SendChatMessage.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Gets a list of messages from a thread.",
+ "operationId": "ChatThread_ListChatMessages",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id of the message.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of messages to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "startTime",
+ "description": "The earliest point in time to get messages up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ChatMessagesCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get messages with pagination (max page size)": {
+ "$ref": "./examples/Messages_ListChatMessagesWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/messages/{chatMessageId}": {
+ "get": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Gets a message by id.",
+ "operationId": "ChatThread_GetChatMessage",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a `Message` resource.",
+ "schema": {
+ "$ref": "#/definitions/ChatMessage"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get Message": {
+ "$ref": "./examples/Messages_GetChatMessage.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Updates a message.",
+ "operationId": "ChatThread_UpdateChatMessage",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "updateChatMessageRequest",
+ "description": "Details of the request to update the message.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateChatMessageRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Message is successfully updated."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Update message content": {
+ "$ref": "./examples/Messages_UpdateChatMessage.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Deletes a message.",
+ "operationId": "ChatThread_DeleteChatMessage",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Delete message": {
+ "$ref": "./examples/Messages_DeleteChatMessage.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/typing": {
+ "post": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Posts a typing event to a thread, on behalf of a user.",
+ "operationId": "ChatThread_SendTypingNotification",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Post typing event to a thread": {
+ "$ref": "./examples/Messages_SendTypingNotification.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants": {
+ "get": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Gets the participants of a thread.",
+ "operationId": "ChatThread_ListChatParticipants",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to get participants for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of participants to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "skip",
+ "description": "Skips participants up to a specified position in response.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns the participants of a thread.",
+ "schema": {
+ "$ref": "#/definitions/ChatParticipantsCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get participants with pagination (max page size)": {
+ "$ref": "./examples/Participants_ListChatParticipantsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants/:remove": {
+ "post": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Remove a participant from a thread.",
+ "operationId": "ChatThread_RemoveChatParticipant",
+ "consumes": [
+ "application/json",
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to remove the participant from.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "participantCommunicationIdentifier",
+ "description": "Id of the thread participant to remove from the thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Remove participant": {
+ "$ref": "./examples/Participants_RemoveChatParticipant.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants/:add": {
+ "post": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Adds thread participants to a thread. If participants already exist, no change occurs.",
+ "operationId": "ChatThread_AddChatParticipants",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread to add participants to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "addChatParticipantsRequest",
+ "description": "Thread participants to be added to the thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AddChatParticipantsRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The participants were successfully added.",
+ "schema": {
+ "$ref": "#/definitions/AddChatParticipantsResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Add participants": {
+ "$ref": "./examples/Participants_AddChatParticipants.json"
+ }
+ }
+ }
+ },
+ "/chat/threads": {
+ "post": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Creates a chat thread.",
+ "operationId": "Chat_CreateChatThread",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "header",
+ "name": "repeatability-Request-Id",
+ "description": "If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-Id and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-Id is an opaque string representing a client-generated, globally unique for all time, identifier for the request. It is recommended to use version 4 (random) UUIDs.",
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "createChatThreadRequest",
+ "description": "Request payload for creating a chat thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CreateChatThreadRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Thread created, the `Location` header would contain the URL for the newly created thread.",
+ "schema": {
+ "$ref": "#/definitions/CreateChatThreadResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Create chat thread": {
+ "$ref": "./examples/Threads_CreateChatThread.json"
+ },
+ "Create chat thread with repeatability request id header": {
+ "$ref": "./examples/Threads_CreateChatThreadWithRepeatabilityRequestId.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets the list of chat threads of a user.",
+ "operationId": "Chat_ListChatThreads",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of chat threads returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "startTime",
+ "description": "The earliest point in time to get chat threads up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a `GetThreadsResponse` resource.",
+ "schema": {
+ "$ref": "#/definitions/ChatThreadsInfoCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get threads with pagination (Max Page Size)": {
+ "$ref": "./examples/Threads_ListChatThreadsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}": {
+ "patch": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Updates a thread's properties.",
+ "operationId": "ChatThread_UpdateChatThread",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The id of the thread to update.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "updateChatThreadRequest",
+ "description": "Request payload for updating a chat thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateChatThreadRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Thread was successfully updated."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Update chat thread topic": {
+ "$ref": "./examples/Threads_UpdateChatThreadTopic.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets a chat thread.",
+ "operationId": "Chat_GetChatThread",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a chat thread.",
+ "schema": {
+ "$ref": "#/definitions/ChatThread"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get chat thread": {
+ "$ref": "./examples/Threads_GetChatThread.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Deletes a thread.",
+ "operationId": "Chat_DeleteChatThread",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Delete chat thread": {
+ "$ref": "./examples/Threads_DeleteChatThread.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CommunicationUserIdentifierModel": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationUserIdentifierModel"
+ },
+ "CommunicationCloudEnvironment": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationCloudEnvironmentModel"
+ },
+ "MicrosoftTeamsUserIdentifierModel": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/MicrosoftTeamsUserIdentifierModel"
+ },
+ "CommunicationIdentifierModel": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationIdentifierModel"
+ },
+ "ChatMessageReadReceipt": {
+ "description": "A chat message read receipt indicates the time a chat message was read by a recipient.",
+ "required": [
+ "chatMessageId",
+ "readOn",
+ "senderCommunicationIdentifier"
+ ],
+ "type": "object",
+ "properties": {
+ "senderCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "chatMessageId": {
+ "description": "Id of the chat message that has been read. This id is generated by the server.",
+ "type": "string",
+ "example": "1591137790240"
+ },
+ "readOn": {
+ "format": "date-time",
+ "description": "The time at which the message was read. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatMessageReadReceiptsCollection": {
+ "description": "A paged collection of chat message read receipts.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat message read receipts.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatMessageReadReceipt"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat message read receipts that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "Error": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationError"
+ },
+ "ErrorResponse": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ },
+ "SendReadReceiptRequest": {
+ "description": "Request payload for sending a read receipt.",
+ "required": [
+ "chatMessageId"
+ ],
+ "type": "object",
+ "properties": {
+ "chatMessageId": {
+ "description": "Id of the latest chat message read by the user.",
+ "type": "string",
+ "example": "1592435762364"
+ }
+ }
+ },
+ "ChatMessageType": {
+ "description": "The chat message type.",
+ "enum": [
+ "text",
+ "html",
+ "topicUpdated",
+ "participantAdded",
+ "participantRemoved"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ChatMessageType",
+ "modelAsString": true
+ }
+ },
+ "SendChatMessageRequest": {
+ "description": "Details of the message to send.",
+ "required": [
+ "content"
+ ],
+ "type": "object",
+ "properties": {
+ "content": {
+ "description": "Chat message content.",
+ "type": "string",
+ "example": "Come one guys, lets go for lunch together."
+ },
+ "senderDisplayName": {
+ "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
+ "type": "string",
+ "example": "Bob Admin"
+ },
+ "type": {
+ "$ref": "#/definitions/ChatMessageType"
+ }
+ }
+ },
+ "SendChatMessageResult": {
+ "description": "Result of the send message operation.",
+ "required": [
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "A server-generated message id.",
+ "type": "string",
+ "example": "123456789"
+ }
+ }
+ },
+ "ChatParticipant": {
+ "description": "A participant of the chat thread.",
+ "required": [
+ "communicationIdentifier"
+ ],
+ "type": "object",
+ "properties": {
+ "communicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "displayName": {
+ "description": "Display name for the chat participant.",
+ "type": "string",
+ "example": "Bob"
+ },
+ "shareHistoryTime": {
+ "format": "date-time",
+ "description": "Time from which the chat history is shared with the participant. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatMessageContent": {
+ "description": "Content of a chat message.",
+ "type": "object",
+ "properties": {
+ "message": {
+ "description": "Chat message content for messages of types text or html.",
+ "type": "string",
+ "example": "Come one guys, lets go for lunch together."
+ },
+ "topic": {
+ "description": "Chat message content for messages of type topicUpdated.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "participants": {
+ "description": "Chat message content for messages of types participantAdded or participantRemoved.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ },
+ "initiatorCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ }
+ }
+ },
+ "ChatMessage": {
+ "description": "Chat message.",
+ "required": [
+ "createdOn",
+ "id",
+ "sequenceId",
+ "type",
+ "version"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The id of the chat message. This id is server generated.",
+ "type": "string",
+ "example": "123456789"
+ },
+ "type": {
+ "$ref": "#/definitions/ChatMessageType"
+ },
+ "sequenceId": {
+ "description": "Sequence of the chat message in the conversation.",
+ "type": "string"
+ },
+ "version": {
+ "description": "Version of the chat message.",
+ "type": "string"
+ },
+ "content": {
+ "$ref": "#/definitions/ChatMessageContent"
+ },
+ "senderDisplayName": {
+ "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
+ "type": "string",
+ "example": "Jane"
+ },
+ "createdOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "senderCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp (if applicable) when the message was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "editedOn": {
+ "format": "date-time",
+ "description": "The last timestamp (if applicable) when the message was edited. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatMessagesCollection": {
+ "description": "Collection of chat messages for a particular chat thread.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat messages.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatMessage"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat messages that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UpdateChatMessageRequest": {
+ "description": "Request payload for updating a chat message.",
+ "type": "object",
+ "properties": {
+ "content": {
+ "description": "Chat message content.",
+ "type": "string",
+ "example": "Let's go for lunch together."
+ }
+ }
+ },
+ "ChatParticipantsCollection": {
+ "description": "Collection of participants belong to a particular thread.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Chat participants.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat participants that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "AddChatParticipantsRequest": {
+ "description": "Participants to be added to the thread.",
+ "required": [
+ "participants"
+ ],
+ "type": "object",
+ "properties": {
+ "participants": {
+ "description": "Participants to add to a chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ }
+ }
+ },
+ "AddChatParticipantsErrors": {
+ "description": "Errors encountered during the addition of the chat participant to the chat thread.",
+ "required": [
+ "invalidParticipants"
+ ],
+ "type": "object",
+ "properties": {
+ "invalidParticipants": {
+ "description": "The participants that failed to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ },
+ "AddChatParticipantsResult": {
+ "description": "Result of the add chat participants operation.",
+ "type": "object",
+ "properties": {
+ "errors": {
+ "$ref": "#/definitions/AddChatParticipantsErrors"
+ }
+ }
+ },
+ "CreateChatThreadRequest": {
+ "description": "Request payload for creating a chat thread.",
+ "required": [
+ "participants",
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "topic": {
+ "description": "The chat thread topic.",
+ "type": "string",
+ "example": "Lunch Thread"
+ },
+ "participants": {
+ "description": "Participants to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ }
+ }
+ },
+ "ChatThread": {
+ "description": "Chat thread.",
+ "required": [
+ "createdByCommunicationIdentifier",
+ "createdOn",
+ "id",
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Chat thread id.",
+ "type": "string",
+ "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
+ },
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "createdOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was created. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "createdByCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "CreateChatThreadErrors": {
+ "description": "Errors encountered during the creation of the chat thread.",
+ "type": "object",
+ "properties": {
+ "invalidParticipants": {
+ "description": "The participants that failed to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Error"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "CreateChatThreadResult": {
+ "description": "Result of the create chat thread operation.",
+ "type": "object",
+ "properties": {
+ "chatThread": {
+ "$ref": "#/definitions/ChatThread"
+ },
+ "errors": {
+ "$ref": "#/definitions/CreateChatThreadErrors"
+ }
+ }
+ },
+ "ChatThreadInfo": {
+ "description": "Summary information of a chat thread.",
+ "required": [
+ "id",
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Chat thread id.",
+ "type": "string",
+ "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
+ },
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "lastMessageReceivedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the last message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "readOnly": true,
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatThreadsInfoCollection": {
+ "description": "Collection of chat threads.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat threads.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatThreadInfo"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat threads that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UpdateChatThreadRequest": {
+ "description": "Request payload for updating a chat thread.",
+ "type": "object",
+ "properties": {
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Thread"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "in": "query",
+ "name": "api-version",
+ "description": "Version of API to invoke.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "Endpoint": {
+ "in": "path",
+ "name": "endpoint",
+ "description": "The endpoint of the Azure Communication resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-skip-url-encoding": true,
+ "x-ms-parameter-location": "client"
+ }
+ },
+ "securityDefinitions": {
+ "Authorization": {
+ "type": "apiKey",
+ "name": "Authorization",
+ "in": "header",
+ "description": "An ACS (Azure Communication Services) user access token."
+ }
+ },
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Conversations_ListChatReadReceiptsWithPageSize.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Conversations_ListChatReadReceiptsWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Conversations_ListChatReadReceiptsWithPageSize.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Conversations_ListChatReadReceiptsWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Conversations_SendChatReadReceipt.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Conversations_SendChatReadReceipt.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Conversations_SendChatReadReceipt.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Conversations_SendChatReadReceipt.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Messages_DeleteChatMessage.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Messages_DeleteChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Messages_DeleteChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Messages_DeleteChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Messages_GetChatMessage.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Messages_GetChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Messages_GetChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Messages_GetChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Messages_ListChatMessagesWithPageSize.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Messages_ListChatMessagesWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Messages_ListChatMessagesWithPageSize.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Messages_ListChatMessagesWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Messages_SendChatMessage.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Messages_SendChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Messages_SendChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Messages_SendChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Messages_SendTypingNotification.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Messages_SendTypingNotification.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Messages_SendTypingNotification.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Messages_SendTypingNotification.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Messages_UpdateChatMessage.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Messages_UpdateChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Messages_UpdateChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Messages_UpdateChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Participants_AddChatParticipants.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Participants_AddChatParticipants.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Participants_AddChatParticipants.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Participants_AddChatParticipants.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Participants_ListChatParticipantsWithPageSize.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Participants_ListChatParticipantsWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Participants_ListChatParticipantsWithPageSize.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Participants_ListChatParticipantsWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Participants_RemoveChatParticipant.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Participants_RemoveChatParticipant.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Participants_RemoveChatParticipant.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Participants_RemoveChatParticipant.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Threads_CreateChatThread.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Threads_CreateChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Threads_CreateChatThread.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Threads_CreateChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Threads_CreateChatThreadWithRepeatabilityRequestId.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Threads_CreateChatThreadWithRepeatabilityRequestId.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Threads_CreateChatThreadWithRepeatabilityRequestId.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Threads_CreateChatThreadWithRepeatabilityRequestId.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Threads_DeleteChatThread.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Threads_DeleteChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Threads_DeleteChatThread.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Threads_DeleteChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Threads_GetChatThread.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Threads_GetChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Threads_GetChatThread.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Threads_GetChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Threads_ListChatThreadsWithPageSize.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Threads_ListChatThreadsWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Threads_ListChatThreadsWithPageSize.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Threads_ListChatThreadsWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Threads_UpdateChatThreadTopic.json b/specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Threads_UpdateChatThreadTopic.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/examples/Threads_UpdateChatThreadTopic.json
rename to specification/communication/data-plane/Chat/preview/2021-01-27-preview4/examples/Threads_UpdateChatThreadTopic.json
diff --git a/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/communicationserviceschat.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/communicationserviceschat.json
new file mode 100644
index 000000000000..2455fb4586e4
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/communicationserviceschat.json
@@ -0,0 +1,1690 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Communication Chat Service",
+ "description": "Azure Communication Chat Service",
+ "version": "2021-03-01-preview5"
+ },
+ "paths": {
+ "/chat/threads/{chatThreadId}/readReceipts": {
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets chat message read receipts for a thread.",
+ "operationId": "ChatThread_ListChatReadReceipts",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to get the chat message read receipts for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of chat message read receipts to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "skip",
+ "description": "Skips chat message read receipts up to a specified position in response.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns the requested `ChatMessageReadReceipt` resources.",
+ "schema": {
+ "$ref": "#/definitions/ChatMessageReadReceiptsCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get thread read receipts with pagination (max page size)": {
+ "$ref": "./examples/Conversations_ListChatReadReceiptsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ },
+ "post": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Sends a read receipt event to a thread, on behalf of a user.",
+ "operationId": "ChatThread_SendChatReadReceipt",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to send the read receipt event to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "sendReadReceiptRequest",
+ "description": "Read receipt details.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SendReadReceiptRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Send read receipt": {
+ "$ref": "./examples/Conversations_SendChatReadReceipt.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/messages": {
+ "post": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Sends a message to a thread.",
+ "operationId": "ChatThread_SendChatMessage",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to send the message to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "sendChatMessageRequest",
+ "description": "Details of the message to send.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SendChatMessageRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Message sent, the `Location` header contains the URL for the newly sent message.",
+ "schema": {
+ "$ref": "#/definitions/SendChatMessageResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Send Message": {
+ "$ref": "./examples/Messages_SendChatMessage.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Gets a list of messages from a thread.",
+ "operationId": "ChatThread_ListChatMessages",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id of the message.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of messages to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "startTime",
+ "description": "The earliest point in time to get messages up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ChatMessagesCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get messages with pagination (max page size)": {
+ "$ref": "./examples/Messages_ListChatMessagesWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/messages/{chatMessageId}": {
+ "get": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Gets a message by id.",
+ "operationId": "ChatThread_GetChatMessage",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a `Message` resource.",
+ "schema": {
+ "$ref": "#/definitions/ChatMessage"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get Message": {
+ "$ref": "./examples/Messages_GetChatMessage.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Updates a message.",
+ "operationId": "ChatThread_UpdateChatMessage",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "updateChatMessageRequest",
+ "description": "Details of the request to update the message.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateChatMessageRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Message is successfully updated."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Update message content": {
+ "$ref": "./examples/Messages_UpdateChatMessage.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Deletes a message.",
+ "operationId": "ChatThread_DeleteChatMessage",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Delete message": {
+ "$ref": "./examples/Messages_DeleteChatMessage.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/typing": {
+ "post": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Posts a typing event to a thread, on behalf of a user.",
+ "operationId": "ChatThread_SendTypingNotification",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Post typing event to a thread": {
+ "$ref": "./examples/Messages_SendTypingNotification.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants": {
+ "get": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Gets the participants of a thread.",
+ "operationId": "ChatThread_ListChatParticipants",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to get participants for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of participants to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "skip",
+ "description": "Skips participants up to a specified position in response.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns the participants of a thread.",
+ "schema": {
+ "$ref": "#/definitions/ChatParticipantsCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get participants with pagination (max page size)": {
+ "$ref": "./examples/Participants_ListChatParticipantsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants/:remove": {
+ "post": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Remove a participant from a thread.",
+ "operationId": "ChatThread_RemoveChatParticipant",
+ "consumes": [
+ "application/json",
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to remove the participant from.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "participantCommunicationIdentifier",
+ "description": "Id of the thread participant to remove from the thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Remove participant": {
+ "$ref": "./examples/Participants_RemoveChatParticipant.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants/:add": {
+ "post": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Adds thread participants to a thread. If participants already exist, no change occurs.",
+ "operationId": "ChatThread_AddChatParticipants",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread to add participants to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "addChatParticipantsRequest",
+ "description": "Thread participants to be added to the thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AddChatParticipantsRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The participants were successfully added.",
+ "schema": {
+ "$ref": "#/definitions/AddChatParticipantsResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Add participants": {
+ "$ref": "./examples/Participants_AddChatParticipants.json"
+ }
+ }
+ }
+ },
+ "/chat/threads": {
+ "post": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Creates a chat thread.",
+ "operationId": "Chat_CreateChatThread",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "header",
+ "name": "idempotency-token",
+ "description": "If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Idempotency-Token and get back an appropriate response without the server executing the request multiple times. The value of the Idempotency-Token is an opaque string representing a client-generated, globally unique for all time, identifier for the request. It is recommended to use version 4 (random) UUIDs.",
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "createChatThreadRequest",
+ "description": "Request payload for creating a chat thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CreateChatThreadRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Thread created, the `Location` header would contain the URL for the newly created thread.",
+ "schema": {
+ "$ref": "#/definitions/CreateChatThreadResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Create chat thread": {
+ "$ref": "./examples/Threads_CreateChatThread.json"
+ },
+ "Create chat thread with repeatability request id header": {
+ "$ref": "./examples/Threads_CreateChatThreadWithIdempotencyToken.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets the list of chat threads of a user.",
+ "operationId": "Chat_ListChatThreads",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of chat threads returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "startTime",
+ "description": "The earliest point in time to get chat threads up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a `GetThreadsResponse` resource.",
+ "schema": {
+ "$ref": "#/definitions/ChatThreadsItemCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get threads with pagination (Max Page Size)": {
+ "$ref": "./examples/Threads_ListChatThreadsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}": {
+ "patch": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Updates a thread's properties.",
+ "operationId": "ChatThread_UpdateChatThreadProperties",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The id of the thread to update.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "updateChatThreadRequest",
+ "description": "Request payload for updating a chat thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateChatThreadRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Thread was successfully updated."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Update chat thread topic": {
+ "$ref": "./examples/Threads_UpdateChatThreadTopic.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets a chat thread's properties.",
+ "operationId": "ChatThread_GetChatThreadProperties",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a chat thread.",
+ "schema": {
+ "$ref": "#/definitions/ChatThreadProperties"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get chat thread": {
+ "$ref": "./examples/Threads_GetChatThread.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Deletes a thread.",
+ "operationId": "Chat_DeleteChatThread",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Delete chat thread": {
+ "$ref": "./examples/Threads_DeleteChatThread.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CommunicationUserIdentifierModel": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationUserIdentifierModel"
+ },
+ "CommunicationCloudEnvironment": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationCloudEnvironmentModel"
+ },
+ "MicrosoftTeamsUserIdentifierModel": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/MicrosoftTeamsUserIdentifierModel"
+ },
+ "CommunicationIdentifierModel": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationIdentifierModel"
+ },
+ "ChatMessageReadReceipt": {
+ "description": "A chat message read receipt indicates the time a chat message was read by a recipient.",
+ "required": [
+ "chatMessageId",
+ "readOn",
+ "senderCommunicationIdentifier"
+ ],
+ "type": "object",
+ "properties": {
+ "senderCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "chatMessageId": {
+ "description": "Id of the chat message that has been read. This id is generated by the server.",
+ "type": "string",
+ "example": "1591137790240"
+ },
+ "readOn": {
+ "format": "date-time",
+ "description": "The time at which the message was read. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatMessageReadReceiptsCollection": {
+ "description": "A paged collection of chat message read receipts.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat message read receipts.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatMessageReadReceipt"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat message read receipts that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "CommunicationError": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationError"
+ },
+ "CommunicationErrorResponse": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ },
+ "SendReadReceiptRequest": {
+ "description": "Request payload for sending a read receipt.",
+ "required": [
+ "chatMessageId"
+ ],
+ "type": "object",
+ "properties": {
+ "chatMessageId": {
+ "description": "Id of the latest chat message read by the user.",
+ "type": "string",
+ "example": "1592435762364"
+ }
+ }
+ },
+ "ChatMessageType": {
+ "description": "The chat message type.",
+ "enum": [
+ "text",
+ "html",
+ "topicUpdated",
+ "participantAdded",
+ "participantRemoved"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ChatMessageType",
+ "modelAsString": true
+ }
+ },
+ "SendChatMessageRequest": {
+ "description": "Details of the message to send.",
+ "required": [
+ "content"
+ ],
+ "type": "object",
+ "properties": {
+ "content": {
+ "description": "Chat message content.",
+ "type": "string",
+ "example": "Come one guys, lets go for lunch together."
+ },
+ "senderDisplayName": {
+ "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
+ "type": "string",
+ "example": "Bob Admin"
+ },
+ "type": {
+ "$ref": "#/definitions/ChatMessageType"
+ }
+ }
+ },
+ "SendChatMessageResult": {
+ "description": "Result of the send message operation.",
+ "required": [
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "A server-generated message id.",
+ "type": "string",
+ "example": "123456789"
+ }
+ }
+ },
+ "ChatParticipant": {
+ "description": "A participant of the chat thread.",
+ "required": [
+ "communicationIdentifier"
+ ],
+ "type": "object",
+ "properties": {
+ "communicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "displayName": {
+ "description": "Display name for the chat participant.",
+ "type": "string",
+ "example": "Bob"
+ },
+ "shareHistoryTime": {
+ "format": "date-time",
+ "description": "Time from which the chat history is shared with the participant. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatMessageContent": {
+ "description": "Content of a chat message.",
+ "type": "object",
+ "properties": {
+ "message": {
+ "description": "Chat message content for messages of types text or html.",
+ "type": "string",
+ "example": "Come one guys, lets go for lunch together."
+ },
+ "topic": {
+ "description": "Chat message content for messages of type topicUpdated.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "participants": {
+ "description": "Chat message content for messages of types participantAdded or participantRemoved.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ },
+ "initiatorCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ }
+ }
+ },
+ "ChatMessage": {
+ "description": "Chat message.",
+ "required": [
+ "createdOn",
+ "id",
+ "sequenceId",
+ "type",
+ "version"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The id of the chat message. This id is server generated.",
+ "type": "string",
+ "example": "123456789"
+ },
+ "type": {
+ "$ref": "#/definitions/ChatMessageType"
+ },
+ "sequenceId": {
+ "description": "Sequence of the chat message in the conversation.",
+ "type": "string"
+ },
+ "version": {
+ "description": "Version of the chat message.",
+ "type": "string"
+ },
+ "content": {
+ "$ref": "#/definitions/ChatMessageContent"
+ },
+ "senderDisplayName": {
+ "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
+ "type": "string",
+ "example": "Jane"
+ },
+ "createdOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "senderCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp (if applicable) when the message was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "editedOn": {
+ "format": "date-time",
+ "description": "The last timestamp (if applicable) when the message was edited. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatMessagesCollection": {
+ "description": "Collection of chat messages for a particular chat thread.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat messages.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatMessage"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat messages that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UpdateChatMessageRequest": {
+ "description": "Request payload for updating a chat message.",
+ "type": "object",
+ "properties": {
+ "content": {
+ "description": "Chat message content.",
+ "type": "string",
+ "example": "Let's go for lunch together."
+ }
+ }
+ },
+ "ChatParticipantsCollection": {
+ "description": "Collection of participants belong to a particular thread.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Chat participants.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat participants that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "AddChatParticipantsRequest": {
+ "description": "Participants to be added to the thread.",
+ "required": [
+ "participants"
+ ],
+ "type": "object",
+ "properties": {
+ "participants": {
+ "description": "Participants to add to a chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ }
+ }
+ },
+ "AddChatParticipantsResult": {
+ "description": "Result of the add chat participants operation.",
+ "type": "object",
+ "properties": {
+ "invalidParticipants": {
+ "description": "The participants that failed to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CommunicationError"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "CreateChatThreadRequest": {
+ "description": "Request payload for creating a chat thread.",
+ "required": [
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "topic": {
+ "description": "The chat thread topic.",
+ "type": "string",
+ "example": "Lunch Thread"
+ },
+ "participants": {
+ "description": "Participants to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ }
+ }
+ },
+ "ChatThreadProperties": {
+ "description": "Chat thread.",
+ "required": [
+ "createdByCommunicationIdentifier",
+ "createdOn",
+ "id",
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Chat thread id.",
+ "type": "string",
+ "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
+ },
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "createdOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was created. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "createdByCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "CreateChatThreadResult": {
+ "description": "Result of the create chat thread operation.",
+ "type": "object",
+ "properties": {
+ "chatThread": {
+ "$ref": "#/definitions/ChatThreadProperties"
+ },
+ "invalidParticipants": {
+ "description": "The participants that failed to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CommunicationError"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "ChatThreadItem": {
+ "description": "Summary information of a chat thread.",
+ "required": [
+ "id",
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Chat thread id.",
+ "type": "string",
+ "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
+ },
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "lastMessageReceivedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the last message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "readOnly": true,
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatThreadsItemCollection": {
+ "description": "Collection of chat threads.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat threads.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatThreadItem"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat threads that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UpdateChatThreadRequest": {
+ "description": "Request payload for updating a chat thread.",
+ "type": "object",
+ "properties": {
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Thread"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "in": "query",
+ "name": "api-version",
+ "description": "Version of API to invoke.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "Endpoint": {
+ "in": "path",
+ "name": "endpoint",
+ "description": "The endpoint of the Azure Communication resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-skip-url-encoding": true,
+ "x-ms-parameter-location": "client"
+ }
+ },
+ "securityDefinitions": {
+ "Authorization": {
+ "type": "apiKey",
+ "name": "Authorization",
+ "in": "header",
+ "description": "An ACS (Azure Communication Services) user access token."
+ }
+ },
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Conversations_ListChatReadReceiptsWithPageSize.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Conversations_ListChatReadReceiptsWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Conversations_ListChatReadReceiptsWithPageSize.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Conversations_ListChatReadReceiptsWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Conversations_SendChatReadReceipt.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Conversations_SendChatReadReceipt.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Conversations_SendChatReadReceipt.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Conversations_SendChatReadReceipt.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Messages_DeleteChatMessage.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Messages_DeleteChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Messages_DeleteChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Messages_DeleteChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Messages_GetChatMessage.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Messages_GetChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Messages_GetChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Messages_GetChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Messages_ListChatMessagesWithPageSize.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Messages_ListChatMessagesWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Messages_ListChatMessagesWithPageSize.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Messages_ListChatMessagesWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Messages_SendChatMessage.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Messages_SendChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Messages_SendChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Messages_SendChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Messages_SendTypingNotification.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Messages_SendTypingNotification.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Messages_SendTypingNotification.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Messages_SendTypingNotification.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Messages_UpdateChatMessage.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Messages_UpdateChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Messages_UpdateChatMessage.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Messages_UpdateChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Participants_AddChatParticipants.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Participants_AddChatParticipants.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Participants_AddChatParticipants.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Participants_AddChatParticipants.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Participants_ListChatParticipantsWithPageSize.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Participants_ListChatParticipantsWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Participants_ListChatParticipantsWithPageSize.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Participants_ListChatParticipantsWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Participants_RemoveChatParticipant.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Participants_RemoveChatParticipant.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Participants_RemoveChatParticipant.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Participants_RemoveChatParticipant.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Threads_CreateChatThread.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Threads_CreateChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Threads_CreateChatThread.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Threads_CreateChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Threads_CreateChatThreadWithIdempotencyToken.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Threads_CreateChatThreadWithIdempotencyToken.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Threads_CreateChatThreadWithIdempotencyToken.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Threads_CreateChatThreadWithIdempotencyToken.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Threads_DeleteChatThread.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Threads_DeleteChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Threads_DeleteChatThread.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Threads_DeleteChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Threads_GetChatThread.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Threads_GetChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Threads_GetChatThread.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Threads_GetChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Threads_ListChatThreadsWithPageSize.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Threads_ListChatThreadsWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Threads_ListChatThreadsWithPageSize.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Threads_ListChatThreadsWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Threads_UpdateChatThreadTopic.json b/specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Threads_UpdateChatThreadTopic.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/examples/Threads_UpdateChatThreadTopic.json
rename to specification/communication/data-plane/Chat/preview/2021-03-01-preview5/examples/Threads_UpdateChatThreadTopic.json
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/communicationserviceschat.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/communicationserviceschat.json
new file mode 100644
index 000000000000..667c70287e62
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/communicationserviceschat.json
@@ -0,0 +1,1711 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Communication Chat Service",
+ "description": "Azure Communication Chat Service",
+ "version": "2021-04-05-preview6"
+ },
+ "paths": {
+ "/chat/threads/{chatThreadId}/readReceipts": {
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets chat message read receipts for a thread.",
+ "operationId": "ChatThread_ListChatReadReceipts",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to get the chat message read receipts for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of chat message read receipts to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "skip",
+ "description": "Skips chat message read receipts up to a specified position in response.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns the requested `ChatMessageReadReceipt` resources.",
+ "schema": {
+ "$ref": "#/definitions/ChatMessageReadReceiptsCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get thread read receipts with pagination (max page size)": {
+ "$ref": "./examples/Conversations_ListChatReadReceiptsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ },
+ "post": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Sends a read receipt event to a thread, on behalf of a user.",
+ "operationId": "ChatThread_SendChatReadReceipt",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to send the read receipt event to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "sendReadReceiptRequest",
+ "description": "Read receipt details.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SendReadReceiptRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Send read receipt": {
+ "$ref": "./examples/Conversations_SendChatReadReceipt.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/messages": {
+ "post": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Sends a message to a thread.",
+ "operationId": "ChatThread_SendChatMessage",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to send the message to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "sendChatMessageRequest",
+ "description": "Details of the message to send.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SendChatMessageRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Message sent, the `Location` header contains the URL for the newly sent message.",
+ "schema": {
+ "$ref": "#/definitions/SendChatMessageResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Send Message": {
+ "$ref": "./examples/Messages_SendChatMessage.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Gets a list of messages from a thread.",
+ "operationId": "ChatThread_ListChatMessages",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id of the message.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of messages to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "startTime",
+ "description": "The earliest point in time to get messages up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ChatMessagesCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get messages with pagination (max page size)": {
+ "$ref": "./examples/Messages_ListChatMessagesWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/messages/{chatMessageId}": {
+ "get": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Gets a message by id.",
+ "operationId": "ChatThread_GetChatMessage",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a `Message` resource.",
+ "schema": {
+ "$ref": "#/definitions/ChatMessage"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get Message": {
+ "$ref": "./examples/Messages_GetChatMessage.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Updates a message.",
+ "operationId": "ChatThread_UpdateChatMessage",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "updateChatMessageRequest",
+ "description": "Details of the request to update the message.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateChatMessageRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Message is successfully updated."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Update message content": {
+ "$ref": "./examples/Messages_UpdateChatMessage.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Deletes a message.",
+ "operationId": "ChatThread_DeleteChatMessage",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Delete message": {
+ "$ref": "./examples/Messages_DeleteChatMessage.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/typing": {
+ "post": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Posts a typing event to a thread, on behalf of a user.",
+ "operationId": "ChatThread_SendTypingNotification",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Post typing event to a thread": {
+ "$ref": "./examples/Messages_SendTypingNotification.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants": {
+ "get": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Gets the participants of a thread.",
+ "operationId": "ChatThread_ListChatParticipants",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to get participants for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of participants to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "skip",
+ "description": "Skips participants up to a specified position in response.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns the participants of a thread.",
+ "schema": {
+ "$ref": "#/definitions/ChatParticipantsCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get participants with pagination (max page size)": {
+ "$ref": "./examples/Participants_ListChatParticipantsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants/:remove": {
+ "post": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Remove a participant from a thread.",
+ "operationId": "ChatThread_RemoveChatParticipant",
+ "consumes": [
+ "application/json",
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to remove the participant from.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "participantCommunicationIdentifier",
+ "description": "Id of the thread participant to remove from the thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Remove participant": {
+ "$ref": "./examples/Participants_RemoveChatParticipant.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants/:add": {
+ "post": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Adds thread participants to a thread. If participants already exist, no change occurs.",
+ "operationId": "ChatThread_AddChatParticipants",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread to add participants to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "addChatParticipantsRequest",
+ "description": "Thread participants to be added to the thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AddChatParticipantsRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The participants were successfully added.",
+ "schema": {
+ "$ref": "#/definitions/AddChatParticipantsResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Add participants": {
+ "$ref": "./examples/Participants_AddChatParticipants.json"
+ }
+ }
+ }
+ },
+ "/chat/threads": {
+ "post": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Creates a chat thread.",
+ "operationId": "Chat_CreateChatThread",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "header",
+ "name": "repeatability-request-id",
+ "description": "If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-Id and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-Id is an opaque string representing a client-generated, globally unique for all time, identifier for the request. It is recommended to use version 4 (random) UUIDs.",
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "createChatThreadRequest",
+ "description": "Request payload for creating a chat thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CreateChatThreadRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Thread created, the `Location` header would contain the URL for the newly created thread.",
+ "schema": {
+ "$ref": "#/definitions/CreateChatThreadResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Create chat thread": {
+ "$ref": "./examples/Threads_CreateChatThread.json"
+ },
+ "Create chat thread with repeatability request id header": {
+ "$ref": "./examples/Threads_CreateChatThreadWithIdempotencyToken.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets the list of chat threads of a user.",
+ "operationId": "Chat_ListChatThreads",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of chat threads returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "startTime",
+ "description": "The earliest point in time to get chat threads up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a `GetThreadsResponse` resource.",
+ "schema": {
+ "$ref": "#/definitions/ChatThreadsItemCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get threads with pagination (Max Page Size)": {
+ "$ref": "./examples/Threads_ListChatThreadsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}": {
+ "patch": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Updates a thread's properties.",
+ "operationId": "ChatThread_UpdateChatThreadProperties",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The id of the thread to update.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "updateChatThreadRequest",
+ "description": "Request payload for updating a chat thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateChatThreadRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Thread was successfully updated."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Update chat thread topic": {
+ "$ref": "./examples/Threads_UpdateChatThreadTopic.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets a chat thread's properties.",
+ "operationId": "ChatThread_GetChatThreadProperties",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a chat thread.",
+ "schema": {
+ "$ref": "#/definitions/ChatThreadProperties"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get chat thread": {
+ "$ref": "./examples/Threads_GetChatThread.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Deletes a thread.",
+ "operationId": "Chat_DeleteChatThread",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Delete chat thread": {
+ "$ref": "./examples/Threads_DeleteChatThread.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CommunicationUserIdentifierModel": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationUserIdentifierModel"
+ },
+ "CommunicationCloudEnvironment": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationCloudEnvironmentModel"
+ },
+ "MicrosoftTeamsUserIdentifierModel": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/MicrosoftTeamsUserIdentifierModel"
+ },
+ "CommunicationIdentifierModel": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationIdentifierModel"
+ },
+ "ChatMessageReadReceipt": {
+ "description": "A chat message read receipt indicates the time a chat message was read by a recipient.",
+ "required": [
+ "chatMessageId",
+ "readOn",
+ "senderCommunicationIdentifier"
+ ],
+ "type": "object",
+ "properties": {
+ "senderCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "chatMessageId": {
+ "description": "Id of the chat message that has been read. This id is generated by the server.",
+ "type": "string",
+ "example": "1591137790240"
+ },
+ "readOn": {
+ "format": "date-time",
+ "description": "The time at which the message was read. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatMessageReadReceiptsCollection": {
+ "description": "A paged collection of chat message read receipts.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat message read receipts.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatMessageReadReceipt"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat message read receipts that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "CommunicationError": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationError"
+ },
+ "CommunicationErrorResponse": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ },
+ "SendReadReceiptRequest": {
+ "description": "Request payload for sending a read receipt.",
+ "required": [
+ "chatMessageId"
+ ],
+ "type": "object",
+ "properties": {
+ "chatMessageId": {
+ "description": "Id of the latest chat message read by the user.",
+ "type": "string",
+ "example": "1592435762364"
+ }
+ }
+ },
+ "ChatMessageType": {
+ "description": "The chat message type.",
+ "enum": [
+ "text",
+ "html",
+ "topicUpdated",
+ "participantAdded",
+ "participantRemoved"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ChatMessageType",
+ "modelAsString": true
+ }
+ },
+ "SendChatMessageRequest": {
+ "description": "Details of the message to send.",
+ "required": [
+ "content"
+ ],
+ "type": "object",
+ "properties": {
+ "content": {
+ "description": "Chat message content.",
+ "type": "string",
+ "example": "Come one guys, lets go for lunch together."
+ },
+ "senderDisplayName": {
+ "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
+ "type": "string",
+ "example": "Bob Admin"
+ },
+ "type": {
+ "$ref": "#/definitions/ChatMessageType"
+ },
+ "metadata": {
+ "description": "Message metadata.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "SendChatMessageResult": {
+ "description": "Result of the send message operation.",
+ "required": [
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "A server-generated message id.",
+ "type": "string",
+ "example": "123456789"
+ }
+ }
+ },
+ "ChatParticipant": {
+ "description": "A participant of the chat thread.",
+ "required": [
+ "communicationIdentifier"
+ ],
+ "type": "object",
+ "properties": {
+ "communicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "displayName": {
+ "description": "Display name for the chat participant.",
+ "type": "string",
+ "example": "Bob"
+ },
+ "shareHistoryTime": {
+ "format": "date-time",
+ "description": "Time from which the chat history is shared with the participant. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatMessageContent": {
+ "description": "Content of a chat message.",
+ "type": "object",
+ "properties": {
+ "message": {
+ "description": "Chat message content for messages of types text or html.",
+ "type": "string",
+ "example": "Come one guys, lets go for lunch together."
+ },
+ "topic": {
+ "description": "Chat message content for messages of type topicUpdated.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "participants": {
+ "description": "Chat message content for messages of types participantAdded or participantRemoved.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ },
+ "initiatorCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ }
+ }
+ },
+ "ChatMessage": {
+ "description": "Chat message.",
+ "required": [
+ "createdOn",
+ "id",
+ "sequenceId",
+ "type",
+ "version"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The id of the chat message. This id is server generated.",
+ "type": "string",
+ "example": "123456789"
+ },
+ "type": {
+ "$ref": "#/definitions/ChatMessageType"
+ },
+ "sequenceId": {
+ "description": "Sequence of the chat message in the conversation.",
+ "type": "string"
+ },
+ "version": {
+ "description": "Version of the chat message.",
+ "type": "string"
+ },
+ "content": {
+ "$ref": "#/definitions/ChatMessageContent"
+ },
+ "senderDisplayName": {
+ "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
+ "type": "string",
+ "example": "Jane"
+ },
+ "createdOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "senderCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp (if applicable) when the message was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "editedOn": {
+ "format": "date-time",
+ "description": "The last timestamp (if applicable) when the message was edited. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "metadata": {
+ "description": "Message metadata.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "ChatMessagesCollection": {
+ "description": "Collection of chat messages for a particular chat thread.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat messages.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatMessage"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat messages that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UpdateChatMessageRequest": {
+ "description": "Request payload for updating a chat message.",
+ "type": "object",
+ "properties": {
+ "content": {
+ "description": "Chat message content.",
+ "type": "string",
+ "example": "Let's go for lunch together."
+ },
+ "metadata": {
+ "description": "Message metadata.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "ChatParticipantsCollection": {
+ "description": "Collection of participants belong to a particular thread.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Chat participants.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat participants that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "AddChatParticipantsRequest": {
+ "description": "Participants to be added to the thread.",
+ "required": [
+ "participants"
+ ],
+ "type": "object",
+ "properties": {
+ "participants": {
+ "description": "Participants to add to a chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ }
+ }
+ },
+ "AddChatParticipantsResult": {
+ "description": "Result of the add chat participants operation.",
+ "type": "object",
+ "properties": {
+ "invalidParticipants": {
+ "description": "The participants that failed to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CommunicationError"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "CreateChatThreadRequest": {
+ "description": "Request payload for creating a chat thread.",
+ "required": [
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "topic": {
+ "description": "The chat thread topic.",
+ "type": "string",
+ "example": "Lunch Thread"
+ },
+ "participants": {
+ "description": "Participants to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ }
+ }
+ },
+ "ChatThreadProperties": {
+ "description": "Chat thread.",
+ "required": [
+ "createdByCommunicationIdentifier",
+ "createdOn",
+ "id",
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Chat thread id.",
+ "type": "string",
+ "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
+ },
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "createdOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was created. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "createdByCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "CreateChatThreadResult": {
+ "description": "Result of the create chat thread operation.",
+ "type": "object",
+ "properties": {
+ "chatThread": {
+ "$ref": "#/definitions/ChatThreadProperties"
+ },
+ "invalidParticipants": {
+ "description": "The participants that failed to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CommunicationError"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "ChatThreadItem": {
+ "description": "Summary information of a chat thread.",
+ "required": [
+ "id",
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Chat thread id.",
+ "type": "string",
+ "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
+ },
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "lastMessageReceivedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the last message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "readOnly": true,
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatThreadsItemCollection": {
+ "description": "Collection of chat threads.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat threads.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatThreadItem"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat threads that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UpdateChatThreadRequest": {
+ "description": "Request payload for updating a chat thread.",
+ "type": "object",
+ "properties": {
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Thread"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "in": "query",
+ "name": "api-version",
+ "description": "Version of API to invoke.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "Endpoint": {
+ "in": "path",
+ "name": "endpoint",
+ "description": "The endpoint of the Azure Communication resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-skip-url-encoding": true,
+ "x-ms-parameter-location": "client"
+ }
+ },
+ "securityDefinitions": {
+ "Authorization": {
+ "type": "apiKey",
+ "name": "Authorization",
+ "in": "header",
+ "description": "An ACS (Azure Communication Services) user access token."
+ }
+ },
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Conversations_ListChatReadReceiptsWithPageSize.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Conversations_ListChatReadReceiptsWithPageSize.json
new file mode 100644
index 000000000000..9386c3cf4fb7
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Conversations_ListChatReadReceiptsWithPageSize.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "chatThreadId": "19:uni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2",
+ "maxPageSize": 2
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "senderCommunicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ },
+ "chatMessageId": "1591137790240",
+ "readOn": "2020-06-06T05:55:41.6460000Z"
+ },
+ {
+ "senderCommunicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a"
+ }
+ },
+ "chatMessageId": "1591768249318",
+ "readOn": "2020-06-06T05:55:41.6460000Z"
+ }
+ ],
+ "nextLink": "https://contoso.westus.communications.azure.com/chat/threads/19:453dafb77b26481ea2e73bcada0324af@thread.v2/readReceipts?skip=2&maxPageSize=2&api-version=2021-04-05-preview6"
+ }
+ },
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Conversations_SendChatReadReceipt.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Conversations_SendChatReadReceipt.json
new file mode 100644
index 000000000000..5697ceb4b422
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Conversations_SendChatReadReceipt.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "chatThreadId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "sendReadReceiptRequest": {
+ "chatMessageId": "1591137790240"
+ }
+ },
+ "responses": {
+ "200": {},
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_DeleteChatMessage.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_DeleteChatMessage.json
new file mode 100644
index 000000000000..7392dbd0ce13
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_DeleteChatMessage.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "chatThreadId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "chatMessageId": "1591768249318"
+ },
+ "responses": {
+ "204": {},
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_GetChatMessage.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_GetChatMessage.json
new file mode 100644
index 000000000000..d6b113c08006
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_GetChatMessage.json
@@ -0,0 +1,65 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "chatThreadId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "chatMessageId": "1591768249318"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "1591768249318",
+ "sequenceId": "1",
+ "type": "text",
+ "version": "1599016601134",
+ "content": {
+ "message": "Let's head out for lunch in 15 minutes."
+ },
+ "senderDisplayName": "Jane",
+ "createdOn": "2020-06-10T05:50:49.3180000Z",
+ "senderCommunicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ },
+ "metadata": {
+ "someKey1": "someValue1",
+ "someKey2": "someValue2"
+ }
+ }
+ },
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_ListChatMessagesWithPageSize.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_ListChatMessagesWithPageSize.json
new file mode 100644
index 000000000000..8be72a33e4d0
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_ListChatMessagesWithPageSize.json
@@ -0,0 +1,157 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "chatThreadId": "19:453dafb77b26481ea2e73bcada0324af@thread.v2",
+ "maxPageSize": 5
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "1593107077690",
+ "type": "text",
+ "version": "1593107077683",
+ "sequenceId": "5",
+ "content": {
+ "message": "So where should we get lunch from today?"
+ },
+ "senderDisplayName": "Jane",
+ "createdOn": "2020-06-25T17:44:37.6830000Z",
+ "senderCommunicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ }
+ },
+ {
+ "id": "1593107077683",
+ "type": "text",
+ "sequenceId": "4",
+ "version": "1593107077683",
+ "content": {
+ "message": "Let's use this chat to decide what to get for lunch today."
+ },
+ "senderDisplayName": "Jane",
+ "createdOn": "2020-06-25T17:44:37.6830000Z",
+ "senderCommunicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ }
+ },
+ {
+ "id": "1593107046498",
+ "type": "text",
+ "sequenceId": "3",
+ "version": "1593107046498",
+ "content": {
+ "message": "Good morning everyone!"
+ },
+ "senderDisplayName": "Jane",
+ "createdOn": "2020-06-25T17:44:06.4980000Z",
+ "senderCommunicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ }
+ },
+ {
+ "id": "1593106976785",
+ "type": "topicUpdated",
+ "sequenceId": "2",
+ "version": "1593106976785",
+ "content": {
+ "initiatorCommunicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ },
+ "topic": "Lunch"
+ },
+ "createdOn": "2020-06-25T17:42:56.7850000Z"
+ },
+ {
+ "id": "1593106976753",
+ "type": "participantAdded",
+ "version": "1593106976753",
+ "sequenceId": "1",
+ "content": {
+ "initiatorCommunicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ },
+ "participants": [
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ }
+ },
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c"
+ }
+ }
+ },
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10d",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10d"
+ }
+ }
+ }
+ ]
+ },
+ "createdOn": "2020-06-25T17:42:56.7530000Z"
+ }
+ ],
+ "nextLink": "https://contoso.westus.communications.azure.com/chat/threads/19:453dafb77b26481ea2e73bcada0324af@thread.v2/messages?syncState=3e4700000031393a756e6930315f7a626e68336e74326466756666657a6333736f7837646f67377766686b36793571653272776c6e66686c68647a69726968647071407468726561642e763201451fe6e77201000004357fea72010000&startTime=0&maxPageSize=5&api-version=2021-04-05-preview6"
+ }
+ },
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_SendChatMessage.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_SendChatMessage.json
new file mode 100644
index 000000000000..00efc9913c6a
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_SendChatMessage.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "chatThreadId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "sendChatMessageRequest": {
+ "content": "Let's head out for lunch in 15 minutes.",
+ "senderDisplayName": "Jane",
+ "metadata": {
+ "someKey1": "someValue1",
+ "someKey2": "someValue2"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "Location": "https://contoso.westus.communications.azure.com/chat/threads/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/messages/1593072104708"
+ },
+ "body": {
+ "id": "1593072104708"
+ }
+ },
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_SendTypingNotification.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_SendTypingNotification.json
new file mode 100644
index 000000000000..c49f8efc76e7
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_SendTypingNotification.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "chatThreadId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345"
+ },
+ "responses": {
+ "200": {},
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_UpdateChatMessage.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_UpdateChatMessage.json
new file mode 100644
index 000000000000..fec6af7a20ed
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Messages_UpdateChatMessage.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "content-type": "application/merge-patch+json",
+ "api-version": "2021-04-05-preview6",
+ "chatThreadId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "chatMessageId": "1591768249318",
+ "updateChatMessageRequest": {
+ "content": "Updated message content",
+ "metadata": {
+ "someKey1": "someValue1",
+ "someKey2": "someValue2"
+ }
+ }
+ },
+ "responses": {
+ "204": {},
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Participants_AddChatParticipants.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Participants_AddChatParticipants.json
new file mode 100644
index 000000000000..2c5550f803f9
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Participants_AddChatParticipants.json
@@ -0,0 +1,91 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "chatThreadId": "19:f2167429acf6482880c6b7790a9086c1@thread.v2",
+ "addChatParticipantsRequest": {
+ "participants": [
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a"
+ }
+ },
+ "displayName": "Alex",
+ "shareHistoryTime": "2020-06-06T05:55:41Z"
+ },
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ },
+ "displayName": "Peter",
+ "shareHistoryTime": "2020-06-06T05:55:41Z"
+ },
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c"
+ }
+ },
+ "displayName": "Rama",
+ "shareHistoryTime": "2020-06-06T05:55:41Z"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "invalidParticipants": [
+ {
+ "target": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c",
+ "code": "403",
+ "message": "Permissions check failed"
+ },
+ {
+ "target": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "code": "404",
+ "message": "Not found"
+ }
+ ]
+ }
+ },
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Participants_ListChatParticipantsWithPageSize.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Participants_ListChatParticipantsWithPageSize.json
new file mode 100644
index 000000000000..822ef846c3e8
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Participants_ListChatParticipantsWithPageSize.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "chatThreadId": "19:f2167429acf6482880c6b7790a9086c1@thread.v2",
+ "maxPageSize": 2
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a"
+ }
+ },
+ "displayName": "Jane",
+ "shareHistoryTime": "2020-06-06T05:55:41Z"
+ },
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ },
+ "displayName": "Alex",
+ "shareHistoryTime": "2020-06-06T05:55:41Z"
+ }
+ ],
+ "nextLink": "https://contoso.westus.communications.azure.com/chat/threads/19:453dafb77b26481ea2e73bcada0324af@thread.v2/participants?skip=2&maxPageSize=2&api-version=2021-04-05-preview6"
+ }
+ },
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Participants_RemoveChatParticipant.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Participants_RemoveChatParticipant.json
new file mode 100644
index 000000000000..89802e325387
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Participants_RemoveChatParticipant.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "chatThreadId": "19:f2167429acf6482880c6b7790a9086c1@thread.v2",
+ "participantCommunicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ }
+ },
+ "responses": {
+ "204": {},
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_CreateChatThread.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_CreateChatThread.json
new file mode 100644
index 000000000000..1632996cfa2a
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_CreateChatThread.json
@@ -0,0 +1,111 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "createChatThreadRequest": {
+ "topic": "Lunch",
+ "participants": [
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a"
+ }
+ },
+ "displayName": "Jane"
+ },
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ },
+ "displayName": "Alex"
+ },
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c"
+ }
+ },
+ "displayName": "Bob"
+ },
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10d",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10d"
+ }
+ },
+ "displayName": "Peter"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "Location": "https://contoso.westus.communications.azure.com/chat/threads/19%3Auni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2"
+ },
+ "body": {
+ "chatThread": {
+ "id": "19:uni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2",
+ "topic": "Lunch",
+ "createdOn": "2020-06-06T05:55:41.6460000Z",
+ "createdByCommunicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a"
+ }
+ }
+ },
+ "invalidParticipants": [
+ {
+ "target": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c",
+ "code": "403",
+ "message": "Permissions check failed"
+ },
+ {
+ "target": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10d",
+ "code": "404",
+ "message": "Not found"
+ }
+ ]
+ }
+ },
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_CreateChatThreadWithIdempotencyToken.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_CreateChatThreadWithIdempotencyToken.json
new file mode 100644
index 000000000000..4bd465bfb78e
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_CreateChatThreadWithIdempotencyToken.json
@@ -0,0 +1,112 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "idempotency-token": "35dd6e71-251b-5e29-8376-ba93d09c3fbf",
+ "createChatThreadRequest": {
+ "topic": "Lunch",
+ "participants": [
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a"
+ }
+ },
+ "displayName": "Jane"
+ },
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ },
+ "displayName": "Alex"
+ },
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c"
+ }
+ },
+ "displayName": "Bob"
+ },
+ {
+ "communicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10d",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10d"
+ }
+ },
+ "displayName": "Peter"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "Location": "https://contoso.westus.communications.azure.com/chat/threads/19%3Auni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2"
+ },
+ "body": {
+ "chatThread": {
+ "id": "19:uni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2",
+ "topic": "Lunch",
+ "createdOn": "2020-06-06T05:55:41.6460000Z",
+ "createdByCommunicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a"
+ }
+ }
+ },
+ "invalidParticipants": [
+ {
+ "target": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c",
+ "code": "403",
+ "message": "Permissions check failed"
+ },
+ {
+ "target": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10d",
+ "code": "404",
+ "message": "Not found"
+ }
+ ]
+ }
+ },
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_DeleteChatThread.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_DeleteChatThread.json
new file mode 100644
index 000000000000..21f2d9b6d6f2
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_DeleteChatThread.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "chatThreadId": "19:9525281ac1f947fc884bcee1a9f983c2@thread.v2"
+ },
+ "responses": {
+ "204": {},
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_GetChatThread.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_GetChatThread.json
new file mode 100644
index 000000000000..bc0611625ca8
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_GetChatThread.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "chatThreadId": "19:uni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "19:uni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2",
+ "topic": "Lunch",
+ "createdOn": "2020-06-06T05:55:41.6460000Z",
+ "createdByCommunicationIdentifier": {
+ "rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "communicationUser": {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ }
+ }
+ },
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_ListChatThreadsWithPageSize.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_ListChatThreadsWithPageSize.json
new file mode 100644
index 000000000000..6698ae1b3a48
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_ListChatThreadsWithPageSize.json
@@ -0,0 +1,74 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2021-04-05-preview6",
+ "maxPageSize": 5
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "19:uni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2",
+ "topic": "Chat with Samantha",
+ "lastMessageReceivedOn": "2020-06-06T05:55:41.6460000Z"
+ },
+ {
+ "id": "19:a0dfe5fc10e04a7f8d8a64d455f4196d@thread.v2",
+ "topic": "Presentation Brainstorming",
+ "lastMessageReceivedOn": "2020-06-06T05:55:41.6460000Z"
+ },
+ {
+ "id": "19:uni01_n242d2bzammtwxiib7pbjtozeevjqzavzn654ku3dajocexfo2na@thread.v2",
+ "topic": "Chat with Alex",
+ "lastMessageReceivedOn": "2020-06-06T05:55:41.6460000Z"
+ },
+ {
+ "id": "19:0062022a28be4e0983734f7e45cd8566@thread.v2",
+ "topic": "Lunch",
+ "deletedOn": "2020-07-07T05:55:41.6460000Z",
+ "lastMessageReceivedOn": "2020-06-06T05:55:41.6460000Z"
+ },
+ {
+ "id": "19:uni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpe@thread.v2",
+ "topic": "Chat with Bob",
+ "lastMessageReceivedOn": "2020-06-06T05:55:41.6460000Z"
+ }
+ ],
+ "nextLink": "https://contoso.westus.communications.azure.com/chat/threads?syncState=W3sic3RhcnQiOiIyMDIwLTA2LTIzVDIzOjMyOjQ3LjMwNSswMDowMCIsImVuZCI6IjIwMjAtMDYtMjVUMDY6NTY6MjMuNjk2KzAwOjAwIn0seyJzdGFydCI6IjE5NzAtMDEtMDFUMDA6MDA6MDArMDA6MDAiLCJlbmQiOiIxOTcwLTAxLTAxVDAwOjAwOjAwKzAwOjAwIn1d&api-version=2021-04-05-preview6&maxPageSize=5"
+ }
+ },
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_UpdateChatThreadTopic.json b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_UpdateChatThreadTopic.json
new file mode 100644
index 000000000000..854159ac7dfc
--- /dev/null
+++ b/specification/communication/data-plane/Chat/preview/2021-04-05-preview6/examples/Threads_UpdateChatThreadTopic.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "content-type": "application/merge-patch+json",
+ "api-version": "2021-04-05-preview6",
+ "chatThreadId": "19:uni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2",
+ "updateChatThreadRequest": {
+ "topic": "Updated Thread Topic"
+ }
+ },
+ "responses": {
+ "204": {},
+ "401": {
+ "body": {
+ "error": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ }
+ },
+ "403": {
+ "body": {
+ "error": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ }
+ },
+ "429": {
+ "body": {
+ "error": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ }
+ },
+ "503": {
+ "body": {
+ "error": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/readme.csharp.md b/specification/communication/data-plane/Chat/readme.csharp.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/readme.csharp.md
rename to specification/communication/data-plane/Chat/readme.csharp.md
diff --git a/specification/communication/data-plane/Chat/readme.md b/specification/communication/data-plane/Chat/readme.md
new file mode 100644
index 000000000000..d16ec6148aad
--- /dev/null
+++ b/specification/communication/data-plane/Chat/readme.md
@@ -0,0 +1,151 @@
+# communicationservices
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for communicationservices.
+
+## Getting Started
+
+To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run:
+
+> `autorest readme.md`
+
+To see additional help and options, run:
+
+> `autorest --help`
+
+For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page.
+
+---
+
+## Configuration
+
+### Basic Information
+
+These are the global settings for the communicationservices.
+
+```yaml
+openapi-type: data-plane
+tag: package-chat-2021-03-07
+```
+
+### Tag: package-2020-09-21-preview2
+
+These settings apply only when `--tag=package-2020-09-21-preview2` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-09-21-preview2'
+input-file:
+ - preview/2020-09-21-preview2/communicationserviceschat.json
+title:
+ Azure Communication Services
+```
+
+### Tag: package-2020-11-01-preview3
+
+These settings apply only when `--tag=package-2020-11-01-preview3` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-11-01-preview3'
+input-file:
+ - preview/2020-11-01-preview3/communicationserviceschat.json
+title:
+ Azure Communication Services
+```
+
+### Tag: package-2021-01-27-preview4
+
+These settings apply only when `--tag=package-2021-01-27-preview4` is specified on the command line.
+
+```yaml $(tag) == 'package-2021-01-27-preview4'
+input-file:
+ - preview/2021-01-27-preview4/communicationserviceschat.json
+title:
+ Azure Communication Services
+```
+
+### Tag: package-2021-03-01-preview5
+
+These settings apply only when `--tag=package-2021-03-01-preview5` is specified on the command line.
+
+```yaml $(tag) == 'package-2021-03-01-preview5'
+input-file:
+ - preview/2021-03-01-preview5/communicationserviceschat.json
+title:
+ Azure Communication Services
+```
+
+### Tag: package-chat-2021-03-07
+
+These settings apply only when `--tag=package-chat-2021-03-07` is specified on the command line.
+
+```yaml $(tag) == 'package-chat-2021-03-07'
+input-file:
+ - stable/2021-03-07/communicationserviceschat.json
+title:
+ Azure Communication Services
+```
+
+### Tag: package-chat-2021-04-05-preview6
+
+These settings apply only when `--tag=package-2021-04-05-preview6` is specified on the command line.
+
+```yaml $(tag) == 'package-chat-2021-04-05-preview6'
+input-file:
+ - preview/2021-04-05-preview6/communicationserviceschat.json
+title:
+ Azure Communication Services
+```
+
+---
+
+# Code Generation
+
+## Swagger to SDK
+
+This section describes what SDK should be generated by the automatic system.
+This is not used by Autorest itself.
+
+## Python
+
+See configuration in [readme.python.md](./readme.python.md)
+
+## Ruby
+
+See configuration in [readme.ruby.md](./readme.ruby.md)
+
+## TypeScript
+
+See configuration in [readme.typescript.md](./readme.typescript.md)
+
+## CSharp
+
+See configuration in [readme.csharp.md](./readme.csharp.md)
+
+## Swift
+
+These settings apply only when `--swift` is specified on the command line.
+
+```yaml $(swift)
+clear-output-folder: false
+namespace: AzureCommunicationChat
+title: AzureCommunicationChat
+package-name: AzureCommunicationChat
+package-version: 1.0.0
+license-header: MICROSOFT_MIT_NO_VERSION
+add-credential: true
+generate-as-internal: >
+ AzureCommunicationChatClient=ChatClientInternal
+ CreateChatThreadResult=CreateChatThreadResultInternal
+ CreateChatThreadRequest=CreateChatThreadRequestInternal
+ ChatMessage=ChatMessageInternal
+ ChatMessageContent=ChatMessageContentInternal
+ ChatParticipant=ChatParticipantInternal
+ ChatMessageReadReceipt=ChatMessageReadReceiptInternal
+ ChatThreadProperties=ChatThreadPropertiesInternal
+directive:
+# Rename CommunicationError to ChatError
+- from: swagger-document
+ where: '$.definitions.CommunicationError'
+ transform: >
+ $["x-ms-client-name"] = "ChatError";
+```
+
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/readme.python.md b/specification/communication/data-plane/Chat/readme.python.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/readme.python.md
rename to specification/communication/data-plane/Chat/readme.python.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/readme.ruby.md b/specification/communication/data-plane/Chat/readme.ruby.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/readme.ruby.md
rename to specification/communication/data-plane/Chat/readme.ruby.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/readme.typescript.md b/specification/communication/data-plane/Chat/readme.typescript.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/readme.typescript.md
rename to specification/communication/data-plane/Chat/readme.typescript.md
diff --git a/specification/communication/data-plane/Chat/stable/2021-03-07/communicationserviceschat.json b/specification/communication/data-plane/Chat/stable/2021-03-07/communicationserviceschat.json
new file mode 100644
index 000000000000..9587acc5cf5e
--- /dev/null
+++ b/specification/communication/data-plane/Chat/stable/2021-03-07/communicationserviceschat.json
@@ -0,0 +1,1690 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Communication Chat Service",
+ "description": "Azure Communication Chat Service",
+ "version": "2021-03-07"
+ },
+ "paths": {
+ "/chat/threads/{chatThreadId}/readReceipts": {
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets chat message read receipts for a thread.",
+ "operationId": "ChatThread_ListChatReadReceipts",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to get the chat message read receipts for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of chat message read receipts to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "skip",
+ "description": "Skips chat message read receipts up to a specified position in response.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns the requested `ChatMessageReadReceipt` resources.",
+ "schema": {
+ "$ref": "#/definitions/ChatMessageReadReceiptsCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get thread read receipts with pagination (max page size)": {
+ "$ref": "./examples/Conversations_ListChatReadReceiptsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ },
+ "post": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Sends a read receipt event to a thread, on behalf of a user.",
+ "operationId": "ChatThread_SendChatReadReceipt",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to send the read receipt event to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "sendReadReceiptRequest",
+ "description": "Read receipt details.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SendReadReceiptRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Send read receipt": {
+ "$ref": "./examples/Conversations_SendChatReadReceipt.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/messages": {
+ "post": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Sends a message to a thread.",
+ "operationId": "ChatThread_SendChatMessage",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to send the message to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "sendChatMessageRequest",
+ "description": "Details of the message to send.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SendChatMessageRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Message sent, the `Location` header contains the URL for the newly sent message.",
+ "schema": {
+ "$ref": "#/definitions/SendChatMessageResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Send Message": {
+ "$ref": "./examples/Messages_SendChatMessage.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Gets a list of messages from a thread.",
+ "operationId": "ChatThread_ListChatMessages",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id of the message.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of messages to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "startTime",
+ "description": "The earliest point in time to get messages up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ChatMessagesCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get messages with pagination (max page size)": {
+ "$ref": "./examples/Messages_ListChatMessagesWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/messages/{chatMessageId}": {
+ "get": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Gets a message by id.",
+ "operationId": "ChatThread_GetChatMessage",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a `Message` resource.",
+ "schema": {
+ "$ref": "#/definitions/ChatMessage"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get Message": {
+ "$ref": "./examples/Messages_GetChatMessage.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Updates a message.",
+ "operationId": "ChatThread_UpdateChatMessage",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "updateChatMessageRequest",
+ "description": "Details of the request to update the message.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateChatMessageRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Message is successfully updated."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Update message content": {
+ "$ref": "./examples/Messages_UpdateChatMessage.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Deletes a message.",
+ "operationId": "ChatThread_DeleteChatMessage",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The thread id to which the message was sent.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMessageId",
+ "description": "The message id.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Delete message": {
+ "$ref": "./examples/Messages_DeleteChatMessage.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/typing": {
+ "post": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Posts a typing event to a thread, on behalf of a user.",
+ "operationId": "ChatThread_SendTypingNotification",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Post typing event to a thread": {
+ "$ref": "./examples/Messages_SendTypingNotification.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants": {
+ "get": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Gets the participants of a thread.",
+ "operationId": "ChatThread_ListChatParticipants",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to get participants for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of participants to be returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "skip",
+ "description": "Skips participants up to a specified position in response.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns the participants of a thread.",
+ "schema": {
+ "$ref": "#/definitions/ChatParticipantsCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get participants with pagination (max page size)": {
+ "$ref": "./examples/Participants_ListChatParticipantsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants/:remove": {
+ "post": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Remove a participant from a thread.",
+ "operationId": "ChatThread_RemoveChatParticipant",
+ "consumes": [
+ "application/json",
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to remove the participant from.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "participantCommunicationIdentifier",
+ "description": "Id of the thread participant to remove from the thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Remove participant": {
+ "$ref": "./examples/Participants_RemoveChatParticipant.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/participants/:add": {
+ "post": {
+ "tags": [
+ "Participants"
+ ],
+ "summary": "Adds thread participants to a thread. If participants already exist, no change occurs.",
+ "operationId": "ChatThread_AddChatParticipants",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread to add participants to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "addChatParticipantsRequest",
+ "description": "Thread participants to be added to the thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AddChatParticipantsRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The participants were successfully added.",
+ "schema": {
+ "$ref": "#/definitions/AddChatParticipantsResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Add participants": {
+ "$ref": "./examples/Participants_AddChatParticipants.json"
+ }
+ }
+ }
+ },
+ "/chat/threads": {
+ "post": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Creates a chat thread.",
+ "operationId": "Chat_CreateChatThread",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "header",
+ "name": "repeatability-request-id",
+ "description": "If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-Id and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-Id is an opaque string representing a client-generated, globally unique for all time, identifier for the request. It is recommended to use version 4 (random) UUIDs.",
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "createChatThreadRequest",
+ "description": "Request payload for creating a chat thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CreateChatThreadRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Thread created, the `Location` header would contain the URL for the newly created thread.",
+ "schema": {
+ "$ref": "#/definitions/CreateChatThreadResult"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Create chat thread": {
+ "$ref": "./examples/Threads_CreateChatThread.json"
+ },
+ "Create chat thread with repeatability request id header": {
+ "$ref": "./examples/Threads_CreateChatThreadWithIdempotencyToken.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets the list of chat threads of a user.",
+ "operationId": "Chat_ListChatThreads",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "maxPageSize",
+ "description": "The maximum number of chat threads returned per page.",
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "in": "query",
+ "name": "startTime",
+ "description": "The earliest point in time to get chat threads up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a `GetThreadsResponse` resource.",
+ "schema": {
+ "$ref": "#/definitions/ChatThreadsItemCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get threads with pagination (Max Page Size)": {
+ "$ref": "./examples/Threads_ListChatThreadsWithPageSize.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}": {
+ "patch": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Updates a thread's properties.",
+ "operationId": "ChatThread_UpdateChatThreadProperties",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "The id of the thread to update.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "updateChatThreadRequest",
+ "description": "Request payload for updating a chat thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateChatThreadRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Thread was successfully updated."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Update chat thread topic": {
+ "$ref": "./examples/Threads_UpdateChatThreadTopic.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets a chat thread's properties.",
+ "operationId": "ChatThread_GetChatThreadProperties",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a chat thread.",
+ "schema": {
+ "$ref": "#/definitions/ChatThreadProperties"
+ }
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get chat thread": {
+ "$ref": "./examples/Threads_GetChatThread.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Deletes a thread.",
+ "operationId": "Chat_DeleteChatThread",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationErrorResponse"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Delete chat thread": {
+ "$ref": "./examples/Threads_DeleteChatThread.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CommunicationUserIdentifierModel": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationUserIdentifierModel"
+ },
+ "CommunicationCloudEnvironment": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationCloudEnvironmentModel"
+ },
+ "MicrosoftTeamsUserIdentifierModel": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/MicrosoftTeamsUserIdentifierModel"
+ },
+ "CommunicationIdentifierModel": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationIdentifierModel"
+ },
+ "ChatMessageReadReceipt": {
+ "description": "A chat message read receipt indicates the time a chat message was read by a recipient.",
+ "required": [
+ "chatMessageId",
+ "readOn",
+ "senderCommunicationIdentifier"
+ ],
+ "type": "object",
+ "properties": {
+ "senderCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "chatMessageId": {
+ "description": "Id of the chat message that has been read. This id is generated by the server.",
+ "type": "string",
+ "example": "1591137790240"
+ },
+ "readOn": {
+ "format": "date-time",
+ "description": "The time at which the message was read. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatMessageReadReceiptsCollection": {
+ "description": "A paged collection of chat message read receipts.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat message read receipts.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatMessageReadReceipt"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat message read receipts that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "CommunicationError": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationError"
+ },
+ "CommunicationErrorResponse": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ },
+ "SendReadReceiptRequest": {
+ "description": "Request payload for sending a read receipt.",
+ "required": [
+ "chatMessageId"
+ ],
+ "type": "object",
+ "properties": {
+ "chatMessageId": {
+ "description": "Id of the latest chat message read by the user.",
+ "type": "string",
+ "example": "1592435762364"
+ }
+ }
+ },
+ "ChatMessageType": {
+ "description": "The chat message type.",
+ "enum": [
+ "text",
+ "html",
+ "topicUpdated",
+ "participantAdded",
+ "participantRemoved"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ChatMessageType",
+ "modelAsString": true
+ }
+ },
+ "SendChatMessageRequest": {
+ "description": "Details of the message to send.",
+ "required": [
+ "content"
+ ],
+ "type": "object",
+ "properties": {
+ "content": {
+ "description": "Chat message content.",
+ "type": "string",
+ "example": "Come one guys, lets go for lunch together."
+ },
+ "senderDisplayName": {
+ "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
+ "type": "string",
+ "example": "Bob Admin"
+ },
+ "type": {
+ "$ref": "#/definitions/ChatMessageType"
+ }
+ }
+ },
+ "SendChatMessageResult": {
+ "description": "Result of the send message operation.",
+ "required": [
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "A server-generated message id.",
+ "type": "string",
+ "example": "123456789"
+ }
+ }
+ },
+ "ChatParticipant": {
+ "description": "A participant of the chat thread.",
+ "required": [
+ "communicationIdentifier"
+ ],
+ "type": "object",
+ "properties": {
+ "communicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "displayName": {
+ "description": "Display name for the chat participant.",
+ "type": "string",
+ "example": "Bob"
+ },
+ "shareHistoryTime": {
+ "format": "date-time",
+ "description": "Time from which the chat history is shared with the participant. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatMessageContent": {
+ "description": "Content of a chat message.",
+ "type": "object",
+ "properties": {
+ "message": {
+ "description": "Chat message content for messages of types text or html.",
+ "type": "string",
+ "example": "Come one guys, lets go for lunch together."
+ },
+ "topic": {
+ "description": "Chat message content for messages of type topicUpdated.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "participants": {
+ "description": "Chat message content for messages of types participantAdded or participantRemoved.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ },
+ "initiatorCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ }
+ }
+ },
+ "ChatMessage": {
+ "description": "Chat message.",
+ "required": [
+ "createdOn",
+ "id",
+ "sequenceId",
+ "type",
+ "version"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The id of the chat message. This id is server generated.",
+ "type": "string",
+ "example": "123456789"
+ },
+ "type": {
+ "$ref": "#/definitions/ChatMessageType"
+ },
+ "sequenceId": {
+ "description": "Sequence of the chat message in the conversation.",
+ "type": "string"
+ },
+ "version": {
+ "description": "Version of the chat message.",
+ "type": "string"
+ },
+ "content": {
+ "$ref": "#/definitions/ChatMessageContent"
+ },
+ "senderDisplayName": {
+ "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
+ "type": "string",
+ "example": "Jane"
+ },
+ "createdOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "senderCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp (if applicable) when the message was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "editedOn": {
+ "format": "date-time",
+ "description": "The last timestamp (if applicable) when the message was edited. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatMessagesCollection": {
+ "description": "Collection of chat messages for a particular chat thread.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat messages.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatMessage"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat messages that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UpdateChatMessageRequest": {
+ "description": "Request payload for updating a chat message.",
+ "type": "object",
+ "properties": {
+ "content": {
+ "description": "Chat message content.",
+ "type": "string",
+ "example": "Let's go for lunch together."
+ }
+ }
+ },
+ "ChatParticipantsCollection": {
+ "description": "Collection of participants belong to a particular thread.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Chat participants.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat participants that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "AddChatParticipantsRequest": {
+ "description": "Participants to be added to the thread.",
+ "required": [
+ "participants"
+ ],
+ "type": "object",
+ "properties": {
+ "participants": {
+ "description": "Participants to add to a chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ }
+ }
+ },
+ "AddChatParticipantsResult": {
+ "description": "Result of the add chat participants operation.",
+ "type": "object",
+ "properties": {
+ "invalidParticipants": {
+ "description": "The participants that failed to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CommunicationError"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "CreateChatThreadRequest": {
+ "description": "Request payload for creating a chat thread.",
+ "required": [
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "topic": {
+ "description": "The chat thread topic.",
+ "type": "string",
+ "example": "Lunch Thread"
+ },
+ "participants": {
+ "description": "Participants to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatParticipant"
+ }
+ }
+ }
+ },
+ "ChatThreadProperties": {
+ "description": "Chat thread.",
+ "required": [
+ "createdByCommunicationIdentifier",
+ "createdOn",
+ "id",
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Chat thread id.",
+ "type": "string",
+ "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
+ },
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "createdOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was created. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "createdByCommunicationIdentifier": {
+ "$ref": "#/definitions/CommunicationIdentifierModel"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "CreateChatThreadResult": {
+ "description": "Result of the create chat thread operation.",
+ "type": "object",
+ "properties": {
+ "chatThread": {
+ "$ref": "#/definitions/ChatThreadProperties"
+ },
+ "invalidParticipants": {
+ "description": "The participants that failed to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CommunicationError"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "ChatThreadItem": {
+ "description": "Summary information of a chat thread.",
+ "required": [
+ "id",
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Chat thread id.",
+ "type": "string",
+ "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
+ },
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "lastMessageReceivedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the last message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "readOnly": true,
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatThreadsItemCollection": {
+ "description": "Collection of chat threads.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat threads.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatThreadItem"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat threads that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UpdateChatThreadRequest": {
+ "description": "Request payload for updating a chat thread.",
+ "type": "object",
+ "properties": {
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Thread"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "in": "query",
+ "name": "api-version",
+ "description": "Version of API to invoke.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "Endpoint": {
+ "in": "path",
+ "name": "endpoint",
+ "description": "The endpoint of the Azure Communication resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-skip-url-encoding": true,
+ "x-ms-parameter-location": "client"
+ }
+ },
+ "securityDefinitions": {
+ "Authorization": {
+ "type": "apiKey",
+ "name": "Authorization",
+ "in": "header",
+ "description": "An ACS (Azure Communication Services) user access token."
+ }
+ },
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Conversations_ListChatReadReceiptsWithPageSize.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Conversations_ListChatReadReceiptsWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Conversations_ListChatReadReceiptsWithPageSize.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Conversations_ListChatReadReceiptsWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Conversations_SendChatReadReceipt.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Conversations_SendChatReadReceipt.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Conversations_SendChatReadReceipt.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Conversations_SendChatReadReceipt.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Messages_DeleteChatMessage.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Messages_DeleteChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Messages_DeleteChatMessage.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Messages_DeleteChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Messages_GetChatMessage.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Messages_GetChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Messages_GetChatMessage.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Messages_GetChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Messages_ListChatMessagesWithPageSize.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Messages_ListChatMessagesWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Messages_ListChatMessagesWithPageSize.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Messages_ListChatMessagesWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Messages_SendChatMessage.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Messages_SendChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Messages_SendChatMessage.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Messages_SendChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Messages_SendTypingNotification.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Messages_SendTypingNotification.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Messages_SendTypingNotification.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Messages_SendTypingNotification.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Messages_UpdateChatMessage.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Messages_UpdateChatMessage.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Messages_UpdateChatMessage.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Messages_UpdateChatMessage.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Participants_AddChatParticipants.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Participants_AddChatParticipants.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Participants_AddChatParticipants.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Participants_AddChatParticipants.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Participants_ListChatParticipantsWithPageSize.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Participants_ListChatParticipantsWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Participants_ListChatParticipantsWithPageSize.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Participants_ListChatParticipantsWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Participants_RemoveChatParticipant.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Participants_RemoveChatParticipant.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Participants_RemoveChatParticipant.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Participants_RemoveChatParticipant.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Threads_CreateChatThread.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Threads_CreateChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Threads_CreateChatThread.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Threads_CreateChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Threads_CreateChatThreadWithIdempotencyToken.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Threads_CreateChatThreadWithIdempotencyToken.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Threads_CreateChatThreadWithIdempotencyToken.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Threads_CreateChatThreadWithIdempotencyToken.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Threads_DeleteChatThread.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Threads_DeleteChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Threads_DeleteChatThread.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Threads_DeleteChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Threads_GetChatThread.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Threads_GetChatThread.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Threads_GetChatThread.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Threads_GetChatThread.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Threads_ListChatThreadsWithPageSize.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Threads_ListChatThreadsWithPageSize.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Threads_ListChatThreadsWithPageSize.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Threads_ListChatThreadsWithPageSize.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Threads_UpdateChatThreadTopic.json b/specification/communication/data-plane/Chat/stable/2021-03-07/examples/Threads_UpdateChatThreadTopic.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/examples/Threads_UpdateChatThreadTopic.json
rename to specification/communication/data-plane/Chat/stable/2021-03-07/examples/Threads_UpdateChatThreadTopic.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesCommon/preview/2020-11-19-preview1/common.json b/specification/communication/data-plane/Common/preview/2020-11-19-preview1/common.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesCommon/preview/2020-11-19-preview1/common.json
rename to specification/communication/data-plane/Common/preview/2020-11-19-preview1/common.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/readme.csharp.md b/specification/communication/data-plane/Common/readme.csharp.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/readme.csharp.md
rename to specification/communication/data-plane/Common/readme.csharp.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesCommon/readme.md b/specification/communication/data-plane/Common/readme.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesCommon/readme.md
rename to specification/communication/data-plane/Common/readme.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/readme.python.md b/specification/communication/data-plane/Common/readme.python.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/readme.python.md
rename to specification/communication/data-plane/Common/readme.python.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/readme.ruby.md b/specification/communication/data-plane/Common/readme.ruby.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/readme.ruby.md
rename to specification/communication/data-plane/Common/readme.ruby.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/readme.typescript.md b/specification/communication/data-plane/Common/readme.typescript.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesChat/readme.typescript.md
rename to specification/communication/data-plane/Common/readme.typescript.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json b/specification/communication/data-plane/Common/stable/2021-03-07/common.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json
rename to specification/communication/data-plane/Common/stable/2021-03-07/common.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/CommunicationIdentity.json b/specification/communication/data-plane/Identity/preview/2020-07-20-preview2/CommunicationIdentity.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/CommunicationIdentity.json
rename to specification/communication/data-plane/Identity/preview/2020-07-20-preview2/CommunicationIdentity.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/CreateIdentity.json b/specification/communication/data-plane/Identity/preview/2020-07-20-preview2/examples/CreateIdentity.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/CreateIdentity.json
rename to specification/communication/data-plane/Identity/preview/2020-07-20-preview2/examples/CreateIdentity.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/DeleteIdentity.json b/specification/communication/data-plane/Identity/preview/2020-07-20-preview2/examples/DeleteIdentity.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/DeleteIdentity.json
rename to specification/communication/data-plane/Identity/preview/2020-07-20-preview2/examples/DeleteIdentity.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/IssueToken.json b/specification/communication/data-plane/Identity/preview/2020-07-20-preview2/examples/IssueToken.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/IssueToken.json
rename to specification/communication/data-plane/Identity/preview/2020-07-20-preview2/examples/IssueToken.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/UpdateIdentity.json b/specification/communication/data-plane/Identity/preview/2020-07-20-preview2/examples/UpdateIdentity.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/UpdateIdentity.json
rename to specification/communication/data-plane/Identity/preview/2020-07-20-preview2/examples/UpdateIdentity.json
diff --git a/specification/communication/data-plane/Identity/preview/2021-02-22-preview1/CommunicationIdentity.json b/specification/communication/data-plane/Identity/preview/2021-02-22-preview1/CommunicationIdentity.json
new file mode 100644
index 000000000000..d74310e9d361
--- /dev/null
+++ b/specification/communication/data-plane/Identity/preview/2021-02-22-preview1/CommunicationIdentity.json
@@ -0,0 +1,313 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "CommunicationIdentityClient",
+ "description": "Azure Communication Identity Service",
+ "version": "2021-02-22-preview1"
+ },
+ "paths": {
+ "/identities": {
+ "post": {
+ "tags": [
+ "Identity"
+ ],
+ "summary": "Create a new identity.",
+ "operationId": "CommunicationIdentity_Create",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityCreateRequest"
+ }
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ }
+ },
+ "201": {
+ "description": "Created - Returns the created identity.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityAccessTokenResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create an Identity": {
+ "$ref": "./examples/CreateIdentity.json"
+ }
+ }
+ }
+ },
+ "/identities/{id}": {
+ "delete": {
+ "tags": [
+ "Identity"
+ ],
+ "summary": "Delete the identity, revoke all tokens for the identity and delete all associated data.",
+ "operationId": "CommunicationIdentity_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "id",
+ "description": "Identifier of the identity to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ }
+ },
+ "204": {
+ "description": "Success"
+ }
+ },
+ "x-ms-examples": {
+ "Delete an identity": {
+ "$ref": "./examples/DeleteIdentity.json"
+ }
+ }
+ }
+ },
+ "/identities/{id}/:revokeAccessTokens": {
+ "post": {
+ "tags": [
+ "Identity"
+ ],
+ "summary": "Revoke all access tokens for the specific identity.",
+ "operationId": "CommunicationIdentity_RevokeAccessTokens",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "id",
+ "description": "Identifier of the identity.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ }
+ },
+ "204": {
+ "description": "Success"
+ }
+ },
+ "x-ms-examples": {
+ "Revoke access tokens": {
+ "$ref": "./examples/RevokeAccessTokens.json"
+ }
+ }
+ }
+ },
+ "/identities/{id}/:issueAccessToken": {
+ "post": {
+ "tags": [
+ "Token"
+ ],
+ "summary": "Issue a new token for an identity.",
+ "operationId": "CommunicationIdentity_IssueAccessToken",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "id",
+ "description": "Identifier of the identity to issue token for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "Requesting scopes for the new token.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityAccessTokenRequest"
+ }
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityAccessToken"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Issue an access token": {
+ "$ref": "./examples/IssueAccessToken.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CommunicationIdentityTokenScope": {
+ "description": "List of scopes for an access token.",
+ "enum": [
+ "chat",
+ "voip"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "CommunicationIdentityTokenScope",
+ "modelAsString": true
+ }
+ },
+ "CommunicationIdentityCreateRequest": {
+ "type": "object",
+ "properties": {
+ "createTokenWithScopes": {
+ "description": "Also create access token for the created identity.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CommunicationIdentityTokenScope"
+ }
+ }
+ }
+ },
+ "CommunicationIdentity": {
+ "description": "A communication identity.",
+ "required": [
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Identifier of the identity.",
+ "type": "string"
+ }
+ }
+ },
+ "CommunicationIdentityAccessToken": {
+ "description": "An access token.",
+ "required": [
+ "expiresOn",
+ "token"
+ ],
+ "type": "object",
+ "properties": {
+ "token": {
+ "description": "The access token issued for the identity.",
+ "type": "string"
+ },
+ "expiresOn": {
+ "format": "date-time",
+ "description": "The expiry time of the token.",
+ "type": "string"
+ }
+ }
+ },
+ "CommunicationIdentityAccessTokenResult": {
+ "description": "A communication identity with access token.",
+ "required": [
+ "identity"
+ ],
+ "type": "object",
+ "properties": {
+ "identity": {
+ "$ref": "#/definitions/CommunicationIdentity"
+ },
+ "accessToken": {
+ "$ref": "#/definitions/CommunicationIdentityAccessToken"
+ }
+ }
+ },
+ "CommunicationIdentityAccessTokenRequest": {
+ "required": [
+ "scopes"
+ ],
+ "type": "object",
+ "properties": {
+ "scopes": {
+ "description": "List of scopes attached to the token.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CommunicationIdentityTokenScope"
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "in": "query",
+ "name": "api-version",
+ "description": "Version of API to invoke.",
+ "required": true,
+ "type": "string"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "name": "endpoint",
+ "description": "The communication resource, for example https://my-resource.communication.azure.com",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true,
+ "x-ms-parameter-location": "client"
+ }
+ ]
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2021-02-22-preview1/examples/CreateIdentity.json b/specification/communication/data-plane/Identity/preview/2021-02-22-preview1/examples/CreateIdentity.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2021-02-22-preview1/examples/CreateIdentity.json
rename to specification/communication/data-plane/Identity/preview/2021-02-22-preview1/examples/CreateIdentity.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2021-02-22-preview1/examples/DeleteIdentity.json b/specification/communication/data-plane/Identity/preview/2021-02-22-preview1/examples/DeleteIdentity.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2021-02-22-preview1/examples/DeleteIdentity.json
rename to specification/communication/data-plane/Identity/preview/2021-02-22-preview1/examples/DeleteIdentity.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2021-02-22-preview1/examples/IssueAccessToken.json b/specification/communication/data-plane/Identity/preview/2021-02-22-preview1/examples/IssueAccessToken.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2021-02-22-preview1/examples/IssueAccessToken.json
rename to specification/communication/data-plane/Identity/preview/2021-02-22-preview1/examples/IssueAccessToken.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2021-02-22-preview1/examples/RevokeAccessTokens.json b/specification/communication/data-plane/Identity/preview/2021-02-22-preview1/examples/RevokeAccessTokens.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2021-02-22-preview1/examples/RevokeAccessTokens.json
rename to specification/communication/data-plane/Identity/preview/2021-02-22-preview1/examples/RevokeAccessTokens.json
diff --git a/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/CommunicationIdentity.json b/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/CommunicationIdentity.json
new file mode 100644
index 000000000000..733c00773e78
--- /dev/null
+++ b/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/CommunicationIdentity.json
@@ -0,0 +1,372 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "CommunicationIdentityClient",
+ "description": "Azure Communication Identity Service",
+ "version": "2021-03-31-preview1"
+ },
+ "paths": {
+ "/identities": {
+ "post": {
+ "tags": [
+ "Identity"
+ ],
+ "summary": "Create a new identity.",
+ "operationId": "CommunicationIdentity_Create",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityCreateRequest"
+ }
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ }
+ },
+ "201": {
+ "description": "Created - Returns the created identity.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityAccessTokenResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create an Identity": {
+ "$ref": "./examples/CreateIdentity.json"
+ }
+ }
+ }
+ },
+ "/identities/{id}": {
+ "delete": {
+ "tags": [
+ "Identity"
+ ],
+ "summary": "Delete the identity, revoke all tokens for the identity and delete all associated data.",
+ "operationId": "CommunicationIdentity_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "id",
+ "description": "Identifier of the identity to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ }
+ },
+ "204": {
+ "description": "Success"
+ }
+ },
+ "x-ms-examples": {
+ "Delete an identity": {
+ "$ref": "./examples/DeleteIdentity.json"
+ }
+ }
+ }
+ },
+ "/identities/{id}/:revokeAccessTokens": {
+ "post": {
+ "tags": [
+ "Identity"
+ ],
+ "summary": "Revoke all access tokens for the specific identity.",
+ "operationId": "CommunicationIdentity_RevokeAccessTokens",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "id",
+ "description": "Identifier of the identity.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ }
+ },
+ "204": {
+ "description": "Success"
+ }
+ },
+ "x-ms-examples": {
+ "Revoke access tokens": {
+ "$ref": "./examples/RevokeAccessTokens.json"
+ }
+ }
+ }
+ },
+ "/teamsUser/:exchangeAccessToken": {
+ "post": {
+ "tags": [
+ "TeamsUser"
+ ],
+ "summary": "Exchange an AAD access token of a Teams user for a new ACS access token.",
+ "operationId": "CommunicationIdentity_ExchangeTeamsUserAccessToken",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TeamsUserAccessTokenRequest"
+ }
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityAccessToken"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Exchange a Teams user access token": {
+ "$ref": "./examples/ExchangeTeamsUserAccessToken.json"
+ }
+ }
+ }
+ },
+ "/identities/{id}/:issueAccessToken": {
+ "post": {
+ "tags": [
+ "Token"
+ ],
+ "summary": "Issue a new token for an identity.",
+ "operationId": "CommunicationIdentity_IssueAccessToken",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "id",
+ "description": "Identifier of the identity to issue token for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "Requesting scopes for the new token.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityAccessTokenRequest"
+ }
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityAccessToken"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Issue an access token": {
+ "$ref": "./examples/IssueAccessToken.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CommunicationIdentityTokenScope": {
+ "description": "List of scopes for an access token.",
+ "enum": [
+ "chat",
+ "voip"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "CommunicationIdentityTokenScope",
+ "modelAsString": true
+ }
+ },
+ "CommunicationIdentityCreateRequest": {
+ "type": "object",
+ "properties": {
+ "createTokenWithScopes": {
+ "description": "Also create access token for the created identity.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CommunicationIdentityTokenScope"
+ }
+ }
+ }
+ },
+ "CommunicationIdentity": {
+ "description": "A communication identity.",
+ "required": [
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Identifier of the identity.",
+ "type": "string"
+ }
+ }
+ },
+ "CommunicationIdentityAccessToken": {
+ "description": "An access token.",
+ "required": [
+ "expiresOn",
+ "token"
+ ],
+ "type": "object",
+ "properties": {
+ "token": {
+ "description": "The access token issued for the identity.",
+ "type": "string"
+ },
+ "expiresOn": {
+ "format": "date-time",
+ "description": "The expiry time of the token.",
+ "type": "string"
+ }
+ }
+ },
+ "CommunicationIdentityAccessTokenResult": {
+ "description": "A communication identity with access token.",
+ "required": [
+ "identity"
+ ],
+ "type": "object",
+ "properties": {
+ "identity": {
+ "$ref": "#/definitions/CommunicationIdentity"
+ },
+ "accessToken": {
+ "$ref": "#/definitions/CommunicationIdentityAccessToken"
+ }
+ }
+ },
+ "TeamsUserAccessTokenRequest": {
+ "required": [
+ "token"
+ ],
+ "type": "object",
+ "properties": {
+ "token": {
+ "description": "Azure Active Directory access token to acquire a new ACS access token.",
+ "type": "string"
+ }
+ }
+ },
+ "CommunicationIdentityAccessTokenRequest": {
+ "required": [
+ "scopes"
+ ],
+ "type": "object",
+ "properties": {
+ "scopes": {
+ "description": "List of scopes attached to the token.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CommunicationIdentityTokenScope"
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "in": "query",
+ "name": "api-version",
+ "description": "Version of API to invoke.",
+ "required": true,
+ "type": "string"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "name": "endpoint",
+ "description": "The communication resource, for example https://my-resource.communication.azure.com",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true,
+ "x-ms-parameter-location": "client"
+ }
+ ]
+ }
+}
diff --git a/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/CreateIdentity.json b/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/CreateIdentity.json
new file mode 100644
index 000000000000..fd3b8f812f0d
--- /dev/null
+++ b/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/CreateIdentity.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2021-03-31-preview1",
+ "content-type": "application/json",
+ "endpoint": "https://my-resource.communication.azure.com",
+ "body": {
+ "createTokenWithScopes": [
+ "chat"
+ ]
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "identity": {
+ "id": "8:acs:2dee53b4-368b-45b4-ab52-8493fb117652_00000005-14a2-493b-8a72-5a3a0d000081"
+ },
+ "accessToken": {
+ "token": "token",
+ "expiresOn": "2020-09-10T21:39:39.3244584+00:00"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/DeleteIdentity.json b/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/DeleteIdentity.json
new file mode 100644
index 000000000000..2ba1552f0ae2
--- /dev/null
+++ b/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/DeleteIdentity.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "api-version": "2021-03-31-preview1",
+ "content-type": "application/json",
+ "id": "8:acs:2dee53b4-368b-45b4-ab52-8493fb117652_00000005-14a2-493b-8a72-5a3a0d000081",
+ "endpoint": "https://my-resource.communication.azure.com"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/ExchangeTeamsUserAccessToken.json b/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/ExchangeTeamsUserAccessToken.json
new file mode 100644
index 000000000000..0113f1fa21da
--- /dev/null
+++ b/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/ExchangeTeamsUserAccessToken.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2021-03-31-preview1",
+ "content-type": "application/json",
+ "body": {
+ "token": "AadAccessToken"
+ },
+ "endpoint": "https://my-resource.communication.azure.com"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "token": "M365AccessToken",
+ "expiresOn": "2021-09-10T21:39:39.3244584+00:00"
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/IssueAccessToken.json b/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/IssueAccessToken.json
new file mode 100644
index 000000000000..4e48b234be4a
--- /dev/null
+++ b/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/IssueAccessToken.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "api-version": "2021-03-31-preview1",
+ "content-type": "application/json",
+ "id": "8:acs:2dee53b4-368b-45b4-ab52-8493fb117652_00000005-14a2-493b-8a72-5a3a0d000081",
+ "body": {
+ "scopes": [
+ "chat"
+ ]
+ },
+ "endpoint": "https://my-resource.communication.azure.com"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "token": "token",
+ "expiresOn": "2020-09-10T21:39:39.3244584+00:00"
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/RevokeAccessTokens.json b/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/RevokeAccessTokens.json
new file mode 100644
index 000000000000..2ba1552f0ae2
--- /dev/null
+++ b/specification/communication/data-plane/Identity/preview/2021-03-31-preview1/examples/RevokeAccessTokens.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "api-version": "2021-03-31-preview1",
+ "content-type": "application/json",
+ "id": "8:acs:2dee53b4-368b-45b4-ab52-8493fb117652_00000005-14a2-493b-8a72-5a3a0d000081",
+ "endpoint": "https://my-resource.communication.azure.com"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/readme.csharp.md b/specification/communication/data-plane/Identity/readme.csharp.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/readme.csharp.md
rename to specification/communication/data-plane/Identity/readme.csharp.md
diff --git a/specification/communication/data-plane/Identity/readme.md b/specification/communication/data-plane/Identity/readme.md
new file mode 100644
index 000000000000..753ada23c611
--- /dev/null
+++ b/specification/communication/data-plane/Identity/readme.md
@@ -0,0 +1,94 @@
+# communicationservices
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for communicationservices.
+
+## Getting Started
+
+To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run:
+
+> `autorest readme.md`
+
+To see additional help and options, run:
+
+> `autorest --help`
+
+For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page.
+
+---
+
+## Configuration
+
+### Basic Information
+
+These are the global settings for the communicationservices.
+
+```yaml
+openapi-type: data-plane
+tag: package-2020-07-20-preview1
+```
+
+
+### Tag: package-2020-07-20-preview2
+
+These settings apply only when `--tag=package-2020-07-20-preview2` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-07-20-preview2'
+input-file:
+ - preview/2020-07-20-preview2/CommunicationIdentity.json
+```
+
+### Tag: package-2021-03-07
+
+These settings apply only when `--tag=package-2021-03-07` is specified on the command line.
+
+```yaml $(tag) == 'package-2021-03-07'
+input-file:
+ - stable/2021-03-07/CommunicationIdentity.json
+title:
+ Azure Communication Services
+```
+
+### Tag: package-2021-02-22-preview1
+
+These settings apply only when `--tag=package-2021-02-22-preview1` is specified on the command line.
+
+```yaml $(tag) == 'package-2021-02-22-preview1'
+input-file:
+ - preview/2021-02-22-preview1/CommunicationIdentity.json
+```
+
+### Tag: package-2021-03-31-preview1
+
+These settings apply only when `--tag=package-2021-03-31-preview1` is specified on the command line.
+
+```yaml $(tag) == 'package-2021-03-31-preview1'
+input-file:
+ - preview/2021-03-31-preview1/CommunicationIdentity.json
+```
+
+---
+
+# Code Generation
+
+## Swagger to SDK
+
+This section describes what SDK should be generated by the automatic system.
+This is not used by Autorest itself.
+
+## Python
+
+See configuration in [readme.python.md](./readme.python.md)
+
+## Ruby
+
+See configuration in [readme.ruby.md](./readme.ruby.md)
+
+## TypeScript
+
+See configuration in [readme.typescript.md](./readme.typescript.md)
+
+## CSharp
+
+See configuration in [readme.csharp.md](./readme.csharp.md)
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesCommon/readme.python.md b/specification/communication/data-plane/Identity/readme.python.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesCommon/readme.python.md
rename to specification/communication/data-plane/Identity/readme.python.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesCommon/readme.ruby.md b/specification/communication/data-plane/Identity/readme.ruby.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesCommon/readme.ruby.md
rename to specification/communication/data-plane/Identity/readme.ruby.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesCommon/readme.typescript.md b/specification/communication/data-plane/Identity/readme.typescript.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesCommon/readme.typescript.md
rename to specification/communication/data-plane/Identity/readme.typescript.md
diff --git a/specification/communication/data-plane/Identity/stable/2021-03-07/CommunicationIdentity.json b/specification/communication/data-plane/Identity/stable/2021-03-07/CommunicationIdentity.json
new file mode 100644
index 000000000000..f5fe62ef79e5
--- /dev/null
+++ b/specification/communication/data-plane/Identity/stable/2021-03-07/CommunicationIdentity.json
@@ -0,0 +1,313 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "CommunicationIdentityClient",
+ "description": "Azure Communication Identity Service",
+ "version": "2021-03-07"
+ },
+ "paths": {
+ "/identities": {
+ "post": {
+ "tags": [
+ "Identity"
+ ],
+ "summary": "Create a new identity.",
+ "operationId": "CommunicationIdentity_Create",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityCreateRequest"
+ }
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ }
+ },
+ "201": {
+ "description": "Created - Returns the created identity.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityAccessTokenResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create an Identity": {
+ "$ref": "./examples/CreateIdentity.json"
+ }
+ }
+ }
+ },
+ "/identities/{id}": {
+ "delete": {
+ "tags": [
+ "Identity"
+ ],
+ "summary": "Delete the identity, revoke all tokens for the identity and delete all associated data.",
+ "operationId": "CommunicationIdentity_Delete",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "id",
+ "description": "Identifier of the identity to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ }
+ },
+ "204": {
+ "description": "Success"
+ }
+ },
+ "x-ms-examples": {
+ "Delete an identity": {
+ "$ref": "./examples/DeleteIdentity.json"
+ }
+ }
+ }
+ },
+ "/identities/{id}/:revokeAccessTokens": {
+ "post": {
+ "tags": [
+ "Identity"
+ ],
+ "summary": "Revoke all access tokens for the specific identity.",
+ "operationId": "CommunicationIdentity_RevokeAccessTokens",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "id",
+ "description": "Identifier of the identity.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ }
+ },
+ "204": {
+ "description": "Success"
+ }
+ },
+ "x-ms-examples": {
+ "Revoke access tokens": {
+ "$ref": "./examples/RevokeAccessTokens.json"
+ }
+ }
+ }
+ },
+ "/identities/{id}/:issueAccessToken": {
+ "post": {
+ "tags": [
+ "Token"
+ ],
+ "summary": "Issue a new token for an identity.",
+ "operationId": "CommunicationIdentity_IssueAccessToken",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "id",
+ "description": "Identifier of the identity to issue token for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "Requesting scopes for the new token.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityAccessTokenRequest"
+ }
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error",
+ "schema": {
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ }
+ },
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityAccessToken"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Issue an access token": {
+ "$ref": "./examples/IssueAccessToken.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CommunicationIdentityTokenScope": {
+ "description": "List of scopes for an access token.",
+ "enum": [
+ "chat",
+ "voip"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "CommunicationIdentityTokenScope",
+ "modelAsString": true
+ }
+ },
+ "CommunicationIdentityCreateRequest": {
+ "type": "object",
+ "properties": {
+ "createTokenWithScopes": {
+ "description": "Also create access token for the created identity.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CommunicationIdentityTokenScope"
+ }
+ }
+ }
+ },
+ "CommunicationIdentity": {
+ "description": "A communication identity.",
+ "required": [
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Identifier of the identity.",
+ "type": "string"
+ }
+ }
+ },
+ "CommunicationIdentityAccessToken": {
+ "description": "An access token.",
+ "required": [
+ "expiresOn",
+ "token"
+ ],
+ "type": "object",
+ "properties": {
+ "token": {
+ "description": "The access token issued for the identity.",
+ "type": "string"
+ },
+ "expiresOn": {
+ "format": "date-time",
+ "description": "The expiry time of the token.",
+ "type": "string"
+ }
+ }
+ },
+ "CommunicationIdentityAccessTokenResult": {
+ "description": "A communication identity with access token.",
+ "required": [
+ "identity"
+ ],
+ "type": "object",
+ "properties": {
+ "identity": {
+ "$ref": "#/definitions/CommunicationIdentity"
+ },
+ "accessToken": {
+ "$ref": "#/definitions/CommunicationIdentityAccessToken"
+ }
+ }
+ },
+ "CommunicationIdentityAccessTokenRequest": {
+ "required": [
+ "scopes"
+ ],
+ "type": "object",
+ "properties": {
+ "scopes": {
+ "description": "List of scopes attached to the token.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CommunicationIdentityTokenScope"
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "in": "query",
+ "name": "api-version",
+ "description": "Version of API to invoke.",
+ "required": true,
+ "type": "string"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "name": "endpoint",
+ "description": "The communication resource, for example https://my-resource.communication.azure.com",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true,
+ "x-ms-parameter-location": "client"
+ }
+ ]
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/stable/2021-03-07/examples/CreateIdentity.json b/specification/communication/data-plane/Identity/stable/2021-03-07/examples/CreateIdentity.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/stable/2021-03-07/examples/CreateIdentity.json
rename to specification/communication/data-plane/Identity/stable/2021-03-07/examples/CreateIdentity.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/stable/2021-03-07/examples/DeleteIdentity.json b/specification/communication/data-plane/Identity/stable/2021-03-07/examples/DeleteIdentity.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/stable/2021-03-07/examples/DeleteIdentity.json
rename to specification/communication/data-plane/Identity/stable/2021-03-07/examples/DeleteIdentity.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/stable/2021-03-07/examples/IssueAccessToken.json b/specification/communication/data-plane/Identity/stable/2021-03-07/examples/IssueAccessToken.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/stable/2021-03-07/examples/IssueAccessToken.json
rename to specification/communication/data-plane/Identity/stable/2021-03-07/examples/IssueAccessToken.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/stable/2021-03-07/examples/RevokeAccessTokens.json b/specification/communication/data-plane/Identity/stable/2021-03-07/examples/RevokeAccessTokens.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/stable/2021-03-07/examples/RevokeAccessTokens.json
rename to specification/communication/data-plane/Identity/stable/2021-03-07/examples/RevokeAccessTokens.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/communicationservicesadministration.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/communicationservicesadministration.json
deleted file mode 100644
index 84d87cd2c9b0..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/communicationservicesadministration.json
+++ /dev/null
@@ -1,2056 +0,0 @@
-{
- "swagger": "2.0",
- "info": {
- "title": "Phone Number Administration Service",
- "description": "Phone Number Administration Service",
- "contact": {
- "email": "acsdevexdisc@microsoft.com"
- },
- "version": "2020-07-20-preview1"
- },
- "paths": {
- "/administration/phonenumbers/phonenumbers": {
- "get": {
- "tags": [
- "AcquiredNumbers"
- ],
- "summary": "Gets the list of the acquired phone numbers.",
- "operationId": "PhoneNumberAdministration_GetAllPhoneNumbers",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "query",
- "name": "locale",
- "description": "A language-locale pairing which will be used to localize the names of countries",
- "type": "string",
- "default": "en-US"
- },
- {
- "in": "query",
- "name": "skip",
- "description": "An optional parameter for how many entries to skip, for pagination purposes.",
- "type": "integer",
- "format": "int32",
- "default": 0
- },
- {
- "in": "query",
- "name": "take",
- "description": "An optional parameter for how many entries to return, for pagination purposes.",
- "type": "integer",
- "format": "int32",
- "default": 100
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/AcquiredPhoneNumbers"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "phoneNumbers"
- },
- "x-ms-examples": {
- "List acquired phone numbers": {
- "$ref": "./examples/GetAcquiredPhoneNumbersAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/countries/{countryCode}/areacodes": {
- "post": {
- "tags": [
- "AreaCodes"
- ],
- "summary": "Gets a list of the supported area codes",
- "operationId": "PhoneNumberAdministration_GetAllAreaCodes",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "query",
- "name": "locationType",
- "description": "The type of location information required by the plan.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "countryCode",
- "description": "The ISO 3166-2 country code",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "phonePlanId",
- "description": "The plan id from which to search area codes.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "body",
- "description": "Location options for when location type is selection.",
- "schema": {
- "$ref": "#/definitions/LocationOptionsQueries"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/AreaCodes"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Get area codes": {
- "$ref": "./examples/GetAreaCodesAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/capabilities/{capabilitiesUpdateId}": {
- "get": {
- "tags": [
- "Capabilities"
- ],
- "summary": "Get capabilities by capabilities update id.",
- "operationId": "PhoneNumberAdministration_GetCapabilitiesUpdate",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "capabilitiesUpdateId",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/UpdatePhoneNumberCapabilitiesResponse"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Get number capabilities update": {
- "$ref": "./examples/GetNumberCapabilitiesUpdateAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/capabilities": {
- "post": {
- "tags": [
- "Capabilities"
- ],
- "summary": "Adds or removes phone number capabilities",
- "operationId": "PhoneNumberAdministration_UpdateCapabilities",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "body",
- "description": "",
- "schema": {
- "$ref": "#/definitions/UpdateNumberCapabilitiesRequest"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/UpdateNumberCapabilitiesResponse"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Update number capabilities": {
- "$ref": "./examples/UpdateNumberCapabilitiesAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/countries": {
- "get": {
- "tags": [
- "Countries"
- ],
- "summary": "Gets a list of supported countries",
- "operationId": "PhoneNumberAdministration_GetAllSupportedCountries",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "query",
- "name": "locale",
- "description": "A language-locale pairing which will be used to localize the names of countries",
- "type": "string",
- "default": "en-US"
- },
- {
- "in": "query",
- "name": "skip",
- "description": "An optional parameter for how many entries to skip, for pagination purposes.",
- "type": "integer",
- "format": "int32",
- "default": 0
- },
- {
- "in": "query",
- "name": "take",
- "description": "An optional parameter for how many entries to return, for pagination purposes.",
- "type": "integer",
- "format": "int32",
- "default": 100
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/PhoneNumberCountries"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "countries"
- },
- "x-ms-examples": {
- "Get countries": {
- "$ref": "./examples/GetCountriesAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/numberconfiguration": {
- "post": {
- "tags": [
- "NumberConfiguration"
- ],
- "summary": "Endpoint for getting number configurations",
- "operationId": "PhoneNumberAdministration_GetNumberConfiguration",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "body",
- "description": "The phone number whose configuration is to be fetched",
- "schema": {
- "$ref": "#/definitions/NumberConfigurationPhoneNumber"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/NumberConfigurationResponse"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Get number configuration for phone number": {
- "$ref": "./examples/GetNumberConfigurationAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/numberconfiguration/configure": {
- "patch": {
- "tags": [
- "NumberConfiguration"
- ],
- "summary": "Endpoint for configuring a pstn number",
- "operationId": "PhoneNumberAdministration_ConfigureNumber",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "body",
- "description": "Details of pstn number configuration of the given phoneNumber",
- "schema": {
- "$ref": "#/definitions/NumberConfiguration"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Success"
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Configure phone number": {
- "$ref": "./examples/ConfigurePhoneNumberAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/numberconfiguration/unconfigure": {
- "patch": {
- "tags": [
- "NumberConfiguration"
- ],
- "summary": "Endpoint for unconfiguring a pstn number by removing the configuration",
- "operationId": "PhoneNumberAdministration_UnconfigureNumber",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "body",
- "description": "The phone number to un-configure",
- "schema": {
- "$ref": "#/definitions/NumberConfigurationPhoneNumber"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Success"
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Unconfigure phone number": {
- "$ref": "./examples/UnconfigurePhoneNumberAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/countries/{countryCode}/phoneplangroups": {
- "get": {
- "tags": [
- "Plans"
- ],
- "summary": "Gets a list of phone plan groups for the given country",
- "operationId": "PhoneNumberAdministration_GetPhonePlanGroups",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "countryCode",
- "description": "The ISO 3166-2 country code.",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "locale",
- "description": "A language-locale pairing which will be used to localize the names of countries",
- "type": "string",
- "default": "en-US"
- },
- {
- "in": "query",
- "name": "includeRateInformation",
- "type": "boolean",
- "default": false
- },
- {
- "in": "query",
- "name": "skip",
- "description": "An optional parameter for how many entries to skip, for pagination purposes.",
- "type": "integer",
- "format": "int32",
- "default": 0
- },
- {
- "in": "query",
- "name": "take",
- "description": "An optional parameter for how many entries to return, for pagination purposes.",
- "type": "integer",
- "format": "int32",
- "default": 100
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/PhonePlanGroups"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "phonePlanGroups"
- },
- "x-ms-examples": {
- "Get plans": {
- "$ref": "./examples/GetPhonePlanGroupsAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/countries/{countryCode}/phoneplangroups/{phonePlanGroupId}/phoneplans": {
- "get": {
- "tags": [
- "Plans"
- ],
- "summary": "Gets a list of phone plans for a phone plan group",
- "operationId": "PhoneNumberAdministration_GetPhonePlans",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "countryCode",
- "description": "The ISO 3166-2 country code.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "phonePlanGroupId",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "locale",
- "description": "A language-locale pairing which will be used to localize the names of countries",
- "type": "string",
- "default": "en-US"
- },
- {
- "in": "query",
- "name": "skip",
- "description": "An optional parameter for how many entries to skip, for pagination purposes.",
- "type": "integer",
- "format": "int32",
- "default": 0
- },
- {
- "in": "query",
- "name": "take",
- "description": "An optional parameter for how many entries to return, for pagination purposes.",
- "type": "integer",
- "format": "int32",
- "default": 100
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/PhonePlansResponse"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "phonePlans"
- },
- "x-ms-examples": {
- "Get plans": {
- "$ref": "./examples/GetPhonePlansAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/countries/{countryCode}/phoneplangroups/{phonePlanGroupId}/phoneplans/{phonePlanId}/locationoptions": {
- "get": {
- "tags": [
- "Plans"
- ],
- "summary": "Gets a list of location options for a phone plan",
- "operationId": "PhoneNumberAdministration_GetPhonePlanLocationOptions",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "countryCode",
- "description": "The ISO 3166-2 country code.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "phonePlanGroupId",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "phonePlanId",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "locale",
- "description": "A language-locale pairing which will be used to localize the names of countries",
- "type": "string",
- "default": "en-US"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/LocationOptionsResponse"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Get plans": {
- "$ref": "./examples/GetLocationOptionsAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/releases/{releaseId}": {
- "get": {
- "tags": [
- "Release"
- ],
- "summary": "Gets a release by a release id",
- "operationId": "PhoneNumberAdministration_GetReleaseById",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "releaseId",
- "description": "Represents the release id",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/PhoneNumberRelease"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Get release by id": {
- "$ref": "./examples/GetReleaseByIdAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/releases": {
- "post": {
- "tags": [
- "Release"
- ],
- "summary": "Creates a release for the given phone numbers",
- "operationId": "PhoneNumberAdministration_ReleasePhoneNumbers",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "body",
- "description": "Config api Release request",
- "schema": {
- "$ref": "#/definitions/ReleaseRequest"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/ReleaseResponse"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Get release": {
- "$ref": "./examples/CreateReleaseAsync.json"
- }
- }
- },
- "get": {
- "tags": [
- "Release"
- ],
- "summary": "Gets a list of all releases",
- "operationId": "PhoneNumberAdministration_GetAllReleases",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "query",
- "name": "skip",
- "description": "An optional parameter for how many entries to skip, for pagination purposes.",
- "type": "integer",
- "format": "int32",
- "default": 0
- },
- {
- "in": "query",
- "name": "take",
- "description": "An optional parameter for how many entries to return, for pagination purposes.",
- "type": "integer",
- "format": "int32",
- "default": 100
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/PhoneNumberEntities"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "entities"
- },
- "x-ms-examples": {
- "Get all releases": {
- "$ref": "./examples/GetAllReleasesAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/searches/{searchId}": {
- "get": {
- "tags": [
- "Search"
- ],
- "summary": "Get search by search id",
- "operationId": "PhoneNumberAdministration_GetSearchById",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "searchId",
- "description": "The search id to be searched for",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/PhoneNumberSearch"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Get search by search id": {
- "$ref": "./examples/GetSearchByIdAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/searches": {
- "post": {
- "tags": [
- "Search"
- ],
- "summary": "Creates a phone number search",
- "operationId": "PhoneNumberAdministration_CreateSearch",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "body",
- "description": "Defines the search options",
- "schema": {
- "$ref": "#/definitions/CreateSearchOptions"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/CreateSearchResponse"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Create search": {
- "$ref": "./examples/CreateSearchAsync.json"
- }
- }
- },
- "get": {
- "tags": [
- "Search"
- ],
- "summary": "Gets a list of all searches",
- "operationId": "PhoneNumberAdministration_GetAllSearches",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "query",
- "name": "skip",
- "description": "An optional parameter for how many entries to skip, for pagination purposes.",
- "type": "integer",
- "format": "int32",
- "default": 0
- },
- {
- "in": "query",
- "name": "take",
- "description": "An optional parameter for how many entries to return, for pagination purposes.",
- "type": "integer",
- "format": "int32",
- "default": 100
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/PhoneNumberEntities"
- }
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "entities"
- },
- "x-ms-examples": {
- "Get all searches": {
- "$ref": "./examples/GetAllSearchesAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/searches/{searchId}/cancel": {
- "post": {
- "tags": [
- "Search"
- ],
- "summary": "Cancels the search. This means existing numbers in the search will be made available.",
- "operationId": "PhoneNumberAdministration_CancelSearch",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "searchId",
- "description": "The search id to be canceled",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "202": {
- "description": "Success"
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Cancel phone number search": {
- "$ref": "./examples/CancelSearchAsync.json"
- }
- }
- }
- },
- "/administration/phonenumbers/searches/{searchId}/purchase": {
- "post": {
- "tags": [
- "Search"
- ],
- "summary": "Purchases the phone number search.",
- "operationId": "PhoneNumberAdministration_PurchaseSearch",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "searchId",
- "description": "The search id to be purchased",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "202": {
- "description": "Success"
- },
- "default": {
- "description": "Failure",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Purchase phone number search": {
- "$ref": "./examples/PurchaseSearchAsync.json"
- }
- }
- }
- }
- },
- "definitions": {
- "AcquiredPhoneNumber": {
- "description": "Represents an acquired phone number.",
- "required": [
- "acquiredCapabilities",
- "availableCapabilities",
- "phoneNumber"
- ],
- "type": "object",
- "properties": {
- "phoneNumber": {
- "description": "String of the E.164 format of the phone number",
- "type": "string"
- },
- "acquiredCapabilities": {
- "description": "The set of all acquired capabilities of the phone number.",
- "type": "array",
- "items": {
- "description": "Represents the capabilities of a phone number.",
- "enum": [
- "UserAssignment",
- "FirstPartyVoiceAppAssignment",
- "ConferenceAssignment",
- "P2PSmsEnabled",
- "Geographic",
- "NonGeographic",
- "TollCalling",
- "TollFreeCalling",
- "Premium",
- "P2PSmsCapable",
- "A2PSmsCapable",
- "A2PSmsEnabled",
- "Calling",
- "TollFree",
- "FirstPartyAppAssignment",
- "ThirdPartyAppAssignment",
- "Azure",
- "Office365",
- "InboundCalling",
- "OutboundCalling",
- "InboundA2PSms",
- "OutboundA2PSms",
- "InboundP2PSms",
- "OutboundP2PSms"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "Capability",
- "modelAsString": true
- }
- }
- },
- "availableCapabilities": {
- "description": "The set of all available capabilities that can be acquired for this phone number.",
- "type": "array",
- "items": {
- "description": "Represents the capabilities of a phone number.",
- "enum": [
- "UserAssignment",
- "FirstPartyVoiceAppAssignment",
- "ConferenceAssignment",
- "P2PSmsEnabled",
- "Geographic",
- "NonGeographic",
- "TollCalling",
- "TollFreeCalling",
- "Premium",
- "P2PSmsCapable",
- "A2PSmsCapable",
- "A2PSmsEnabled",
- "Calling",
- "TollFree",
- "FirstPartyAppAssignment",
- "ThirdPartyAppAssignment",
- "Azure",
- "Office365",
- "InboundCalling",
- "OutboundCalling",
- "InboundA2PSms",
- "OutboundA2PSms",
- "InboundP2PSms",
- "OutboundP2PSms"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "Capability",
- "modelAsString": true
- }
- }
- },
- "assignmentStatus": {
- "description": "The assignment status of the phone number. Conveys what type of entity the number is assigned to.",
- "enum": [
- "Unassigned",
- "Unknown",
- "UserAssigned",
- "ConferenceAssigned",
- "FirstPartyAppAssigned",
- "ThirdPartyAppAssigned"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "AssignmentStatus",
- "modelAsString": true
- }
- },
- "placeName": {
- "description": "The name of the place of the phone number.",
- "type": "string"
- },
- "activationState": {
- "description": "The activation state of the phone number. Can be \"Activated\", \"AssignmentPending\", \"AssignmentFailed\", \"UpdatePending\", \"UpdateFailed\"",
- "enum": [
- "Activated",
- "AssignmentPending",
- "AssignmentFailed",
- "UpdatePending",
- "UpdateFailed"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "ActivationState",
- "modelAsString": true
- }
- }
- }
- },
- "AcquiredPhoneNumbers": {
- "description": "A wrapper of list of phone numbers",
- "type": "object",
- "properties": {
- "phoneNumbers": {
- "description": "Represents a list of phone numbers",
- "type": "array",
- "items": {
- "$ref": "#/definitions/AcquiredPhoneNumber"
- }
- },
- "nextLink": {
- "description": "Represents the URL link to the next page",
- "type": "string"
- }
- }
- },
- "ErrorBody": {
- "description": "Represents a service error response body.",
- "type": "object",
- "properties": {
- "code": {
- "description": "The error code in the error response.",
- "type": "string"
- },
- "message": {
- "description": "The error message in the error response.",
- "type": "string"
- }
- }
- },
- "ErrorResponse": {
- "description": "Represents a service error response.",
- "type": "object",
- "properties": {
- "error": {
- "$ref": "#/definitions/ErrorBody"
- }
- }
- },
- "LocationOptionsQuery": {
- "description": "Represents a location options parameter, used for fetching area codes.",
- "type": "object",
- "properties": {
- "labelId": {
- "description": "Represents the location option label id, returned from the GetLocationOptions API.",
- "type": "string"
- },
- "optionsValue": {
- "description": "Represents the location options value, returned from the GetLocationOptions API.",
- "type": "string"
- }
- }
- },
- "LocationOptionsQueries": {
- "description": "Represents a list of location option queries, used for fetching area codes.",
- "type": "object",
- "properties": {
- "locationOptions": {
- "description": "Represents the underlying list of countries.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/LocationOptionsQuery"
- }
- }
- }
- },
- "AreaCodes": {
- "description": "Represents a list of area codes.",
- "type": "object",
- "properties": {
- "primaryAreaCodes": {
- "description": "Represents the list of primary area codes.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "secondaryAreaCodes": {
- "description": "Represents the list of secondary area codes.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "nextLink": {
- "description": "Represents the URL link to the next page",
- "type": "string"
- }
- }
- },
- "NumberUpdateCapabilities": {
- "description": "Represents an individual number capabilities update request",
- "type": "object",
- "properties": {
- "add": {
- "description": "Capabilities to be added to a phone number",
- "type": "array",
- "items": {
- "description": "Represents the capabilities of a phone number.",
- "enum": [
- "UserAssignment",
- "FirstPartyVoiceAppAssignment",
- "ConferenceAssignment",
- "P2PSmsEnabled",
- "Geographic",
- "NonGeographic",
- "TollCalling",
- "TollFreeCalling",
- "Premium",
- "P2PSmsCapable",
- "A2PSmsCapable",
- "A2PSmsEnabled",
- "Calling",
- "TollFree",
- "FirstPartyAppAssignment",
- "ThirdPartyAppAssignment",
- "Azure",
- "Office365",
- "InboundCalling",
- "OutboundCalling",
- "InboundA2PSms",
- "OutboundA2PSms",
- "InboundP2PSms",
- "OutboundP2PSms"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "Capability",
- "modelAsString": true
- }
- }
- },
- "remove": {
- "description": "Capabilities to be removed from a phone number",
- "type": "array",
- "items": {
- "description": "Represents the capabilities of a phone number.",
- "enum": [
- "UserAssignment",
- "FirstPartyVoiceAppAssignment",
- "ConferenceAssignment",
- "P2PSmsEnabled",
- "Geographic",
- "NonGeographic",
- "TollCalling",
- "TollFreeCalling",
- "Premium",
- "P2PSmsCapable",
- "A2PSmsCapable",
- "A2PSmsEnabled",
- "Calling",
- "TollFree",
- "FirstPartyAppAssignment",
- "ThirdPartyAppAssignment",
- "Azure",
- "Office365",
- "InboundCalling",
- "OutboundCalling",
- "InboundA2PSms",
- "OutboundA2PSms",
- "InboundP2PSms",
- "OutboundP2PSms"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "Capability",
- "modelAsString": true
- }
- }
- }
- }
- },
- "UpdatePhoneNumberCapabilitiesResponse": {
- "description": "Response for getting a phone number update capabilities.",
- "type": "object",
- "properties": {
- "capabilitiesUpdateId": {
- "description": "The id of the phone number capabilities update",
- "type": "string"
- },
- "createdAt": {
- "format": "date-time",
- "description": "The time the capabilities update was created",
- "type": "string"
- },
- "capabilitiesUpdateStatus": {
- "description": "Status of the capabilities update.",
- "enum": [
- "Pending",
- "InProgress",
- "Complete",
- "Error"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "CapabilitiesUpdateStatus",
- "modelAsString": true
- }
- },
- "phoneNumberCapabilitiesUpdates": {
- "description": "The capabilities update for each of a set of phone numbers.",
- "type": "object",
- "additionalProperties": {
- "$ref": "#/definitions/NumberUpdateCapabilities"
- }
- }
- }
- },
- "UpdateNumberCapabilitiesRequest": {
- "description": "Represents a numbers capabilities update request",
- "required": [
- "phoneNumberCapabilitiesUpdate"
- ],
- "type": "object",
- "properties": {
- "phoneNumberCapabilitiesUpdate": {
- "description": "The map of phone numbers to the capabilities update applied to the phone number.",
- "type": "object",
- "additionalProperties": {
- "$ref": "#/definitions/NumberUpdateCapabilities"
- }
- }
- }
- },
- "UpdateNumberCapabilitiesResponse": {
- "description": "Represents a number capability update response.",
- "required": [
- "capabilitiesUpdateId"
- ],
- "type": "object",
- "properties": {
- "capabilitiesUpdateId": {
- "description": "The capabilities id",
- "type": "string"
- }
- }
- },
- "PhoneNumberCountry": {
- "description": "Represents a country.",
- "required": [
- "countryCode",
- "localizedName"
- ],
- "type": "object",
- "properties": {
- "localizedName": {
- "description": "Represents the name of the country.",
- "type": "string"
- },
- "countryCode": {
- "description": "Represents the abbreviated name of the country.",
- "type": "string"
- }
- }
- },
- "PhoneNumberCountries": {
- "description": "Represents a wrapper around a list of countries.",
- "type": "object",
- "properties": {
- "countries": {
- "description": "Represents the underlying list of countries.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/PhoneNumberCountry"
- }
- },
- "nextLink": {
- "description": "Represents the URL link to the next page",
- "type": "string"
- }
- }
- },
- "NumberConfigurationPhoneNumber": {
- "description": "The phone number wrapper representing a number configuration request",
- "required": [
- "phoneNumber"
- ],
- "type": "object",
- "properties": {
- "phoneNumber": {
- "description": "The phone number in the E.164 format",
- "type": "string"
- }
- }
- },
- "PstnConfiguration": {
- "description": "Definition for pstn number configuration",
- "required": [
- "callbackUrl"
- ],
- "type": "object",
- "properties": {
- "callbackUrl": {
- "description": "The webhook URL on the phone number configuration.",
- "type": "string"
- },
- "applicationId": {
- "description": "The application id of the application to which to configure",
- "type": "string"
- }
- }
- },
- "NumberConfigurationResponse": {
- "description": "Definition for number configuration",
- "required": [
- "pstnConfiguration"
- ],
- "type": "object",
- "properties": {
- "pstnConfiguration": {
- "$ref": "#/definitions/PstnConfiguration"
- }
- }
- },
- "NumberConfiguration": {
- "description": "Definition for number configuration",
- "required": [
- "phoneNumber",
- "pstnConfiguration"
- ],
- "type": "object",
- "properties": {
- "pstnConfiguration": {
- "$ref": "#/definitions/PstnConfiguration"
- },
- "phoneNumber": {
- "description": "The phone number to configure",
- "type": "string"
- }
- }
- },
- "CarrierDetails": {
- "description": "Represents carrier details.",
- "type": "object",
- "properties": {
- "name": {
- "description": "Name of carrier details",
- "type": "string"
- },
- "localizedName": {
- "description": "Display name of carrier details",
- "type": "string"
- }
- }
- },
- "RateInformation": {
- "description": "Represents a wrapper of rate information",
- "type": "object",
- "properties": {
- "monthlyRate": {
- "format": "double",
- "description": "The monthly rate of a phone plan group",
- "type": "number"
- },
- "currencyType": {
- "description": "The currency of a phone plan group",
- "enum": [
- "USD"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "CurrencyType",
- "modelAsString": true
- }
- },
- "rateErrorMessage": {
- "description": "The error code of a phone plan group",
- "type": "string"
- }
- }
- },
- "PhonePlanGroup": {
- "description": "Represents a plan group.",
- "required": [
- "localizedDescription",
- "localizedName",
- "phonePlanGroupId"
- ],
- "type": "object",
- "properties": {
- "phonePlanGroupId": {
- "description": "The id of the plan group",
- "type": "string"
- },
- "phoneNumberType": {
- "description": "The phone number type of the plan group",
- "enum": [
- "Unknown",
- "Geographic",
- "TollFree",
- "Indirect"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "PhoneNumberType",
- "modelAsString": true
- }
- },
- "localizedName": {
- "description": "The name of the plan group.",
- "type": "string"
- },
- "localizedDescription": {
- "description": "The description of the plan group.",
- "type": "string"
- },
- "carrierDetails": {
- "$ref": "#/definitions/CarrierDetails"
- },
- "rateInformation": {
- "$ref": "#/definitions/RateInformation"
- }
- }
- },
- "PhonePlanGroups": {
- "description": "Represents a wrapper of list of plan groups.",
- "type": "object",
- "properties": {
- "phonePlanGroups": {
- "description": "The underlying list of phone plan groups.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/PhonePlanGroup"
- }
- },
- "nextLink": {
- "description": "Represents the URL link to the next page",
- "type": "string"
- }
- }
- },
- "PhonePlan": {
- "description": "Represents a phone plan.",
- "required": [
- "localizedName",
- "locationType",
- "phonePlanId"
- ],
- "type": "object",
- "properties": {
- "phonePlanId": {
- "description": "The phone plan id",
- "type": "string"
- },
- "localizedName": {
- "description": "The name of the phone plan",
- "type": "string"
- },
- "locationType": {
- "description": "The location type of the phone plan.",
- "enum": [
- "CivicAddress",
- "NotRequired",
- "Selection"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "LocationType",
- "modelAsString": true
- }
- },
- "areaCodes": {
- "description": "The list of available area codes in the phone plan.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "capabilities": {
- "description": "Capabilities of the phone plan.",
- "type": "array",
- "items": {
- "description": "Represents the capabilities of a phone number.",
- "enum": [
- "UserAssignment",
- "FirstPartyVoiceAppAssignment",
- "ConferenceAssignment",
- "P2PSmsEnabled",
- "Geographic",
- "NonGeographic",
- "TollCalling",
- "TollFreeCalling",
- "Premium",
- "P2PSmsCapable",
- "A2PSmsCapable",
- "A2PSmsEnabled",
- "Calling",
- "TollFree",
- "FirstPartyAppAssignment",
- "ThirdPartyAppAssignment",
- "Azure",
- "Office365",
- "InboundCalling",
- "OutboundCalling",
- "InboundA2PSms",
- "OutboundA2PSms",
- "InboundP2PSms",
- "OutboundP2PSms"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "Capability",
- "modelAsString": true
- }
- }
- },
- "maximumSearchSize": {
- "format": "int32",
- "description": "The maximum number of phone numbers one can acquire in a search in this phone plan.",
- "type": "integer"
- }
- }
- },
- "PhonePlansResponse": {
- "description": "Represents a wrapper around a list of countries.",
- "type": "object",
- "properties": {
- "phonePlans": {
- "description": "Represents the underlying list of phone plans.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/PhonePlan"
- }
- },
- "nextLink": {
- "description": "Represents the URL link to the next page",
- "type": "string"
- }
- }
- },
- "LocationOptionsDetails": {
- "description": "Represents location options details.",
- "type": "object",
- "properties": {
- "name": {
- "description": "The name of the location options",
- "type": "string"
- },
- "value": {
- "description": "The abbreviated name of the location options",
- "type": "string"
- },
- "locationOptions": {
- "description": "The underlying location options",
- "type": "array",
- "items": {
- "$ref": "#/definitions/LocationOptions"
- }
- }
- }
- },
- "LocationOptions": {
- "description": "Represents a location options.",
- "type": "object",
- "properties": {
- "labelId": {
- "description": "The label id of the location.",
- "type": "string"
- },
- "labelName": {
- "description": "The display name of the location.",
- "type": "string"
- },
- "options": {
- "description": "The underlying location option details.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/LocationOptionsDetails"
- }
- }
- }
- },
- "LocationOptionsResponse": {
- "description": "Represents a wrapper around a list of location options.",
- "type": "object",
- "properties": {
- "locationOptions": {
- "$ref": "#/definitions/LocationOptions"
- }
- }
- },
- "PhoneNumberReleaseDetails": {
- "type": "object",
- "properties": {
- "status": {
- "description": "The release status of a phone number.",
- "enum": [
- "Pending",
- "Success",
- "Error",
- "InProgress"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "PhoneNumberReleaseStatus",
- "modelAsString": true
- }
- },
- "errorCode": {
- "format": "int32",
- "description": "The error code in the case the status is error.",
- "type": "integer"
- }
- }
- },
- "PhoneNumberRelease": {
- "description": "Represents a release",
- "type": "object",
- "properties": {
- "releaseId": {
- "description": "The id of the release.",
- "type": "string"
- },
- "createdAt": {
- "format": "date-time",
- "description": "The creation time of the release.",
- "type": "string"
- },
- "status": {
- "description": "The release status.",
- "enum": [
- "Pending",
- "InProgress",
- "Complete",
- "Failed",
- "Expired"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "ReleaseStatus",
- "modelAsString": true
- }
- },
- "errorMessage": {
- "description": "The underlying error message of a release.",
- "type": "string"
- },
- "phoneNumberReleaseStatusDetails": {
- "description": "The list of phone numbers in the release, mapped to its individual statuses.",
- "type": "object",
- "additionalProperties": {
- "$ref": "#/definitions/PhoneNumberReleaseDetails"
- }
- }
- }
- },
- "ReleaseRequest": {
- "description": "Represents a release request.",
- "required": [
- "phoneNumbers"
- ],
- "type": "object",
- "properties": {
- "phoneNumbers": {
- "description": "The list of phone numbers in the release request.",
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- }
- },
- "ReleaseResponse": {
- "description": "Represents a release response.",
- "required": [
- "releaseId"
- ],
- "type": "object",
- "properties": {
- "releaseId": {
- "description": "The release id of a created release.",
- "type": "string"
- }
- }
- },
- "PhoneNumberEntity": {
- "description": "Represents a phone number entity, as part of the response when calling get all searches or releases.",
- "type": "object",
- "properties": {
- "id": {
- "description": "The id of the entity. It is the search id of a search. It is the release id of a release.",
- "type": "string"
- },
- "createdAt": {
- "format": "date-time",
- "description": "Date and time the entity is created.",
- "type": "string"
- },
- "displayName": {
- "description": "Name of the entity.",
- "type": "string"
- },
- "quantity": {
- "format": "int32",
- "description": "Quantity of requested phone numbers in the entity.",
- "type": "integer"
- },
- "quantityObtained": {
- "format": "int32",
- "description": "Quantity of acquired phone numbers in the entity.",
- "type": "integer"
- },
- "status": {
- "description": "Status of the entity.",
- "type": "string"
- },
- "focDate": {
- "format": "date-time",
- "description": "The Firm Order Confirmation date of the phone number entity.",
- "type": "string"
- }
- }
- },
- "PhoneNumberEntities": {
- "description": "Represents a list of searches or releases, as part of the response when fetching all searches or releases.",
- "type": "object",
- "properties": {
- "entities": {
- "description": "The underlying list of entities.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/PhoneNumberEntity"
- }
- },
- "nextLink": {
- "description": "Represents the URL link to the next page",
- "type": "string"
- }
- }
- },
- "PhoneNumberSearch": {
- "description": "Represents a phone number search",
- "type": "object",
- "properties": {
- "searchId": {
- "description": "The id of the search.",
- "type": "string"
- },
- "displayName": {
- "description": "The name of the search.",
- "type": "string"
- },
- "createdAt": {
- "format": "date-time",
- "description": "The creation time of the search.",
- "type": "string"
- },
- "description": {
- "description": "The description of the search.",
- "type": "string"
- },
- "phonePlanIds": {
- "description": "The phone plan ids of the search.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "areaCode": {
- "description": "The area code of the search.",
- "type": "string"
- },
- "quantity": {
- "format": "int32",
- "description": "The quantity of phone numbers in the search.",
- "type": "integer"
- },
- "locationOptions": {
- "description": "The location options of the search.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/LocationOptionsDetails"
- }
- },
- "status": {
- "description": "The status of the search.",
- "enum": [
- "Pending",
- "InProgress",
- "Reserved",
- "Expired",
- "Expiring",
- "Completing",
- "Refreshing",
- "Success",
- "Manual",
- "Cancelled",
- "Cancelling",
- "Error",
- "PurchasePending"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "SearchStatus",
- "modelAsString": true
- }
- },
- "phoneNumbers": {
- "description": "The list of phone numbers in the search, in the case the status is reserved or success.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "reservationExpiryDate": {
- "format": "date-time",
- "description": "The date that search expires and the numbers become available.",
- "type": "string"
- },
- "errorCode": {
- "format": "int32",
- "description": "The error code of the search.",
- "type": "integer"
- }
- }
- },
- "CreateSearchOptions": {
- "description": "Represents a search creation option.",
- "required": [
- "areaCode",
- "description",
- "displayName",
- "phonePlanIds"
- ],
- "type": "object",
- "properties": {
- "displayName": {
- "description": "Display name of the search.",
- "maxLength": 255,
- "type": "string"
- },
- "description": {
- "description": "Description of the search.",
- "maxLength": 255,
- "type": "string"
- },
- "phonePlanIds": {
- "description": "The plan subtype ids from which to create the search.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "areaCode": {
- "description": "The area code from which to create the search.",
- "type": "string"
- },
- "quantity": {
- "format": "int32",
- "description": "The quantity of phone numbers to request.",
- "maximum": 2147483647,
- "minimum": 1,
- "type": "integer"
- },
- "locationOptions": {
- "description": "The location options of the search.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/LocationOptionsDetails"
- }
- }
- }
- },
- "CreateSearchResponse": {
- "description": "Represents a search creation response.",
- "required": [
- "searchId"
- ],
- "type": "object",
- "properties": {
- "searchId": {
- "description": "The search id of the search that was created.",
- "type": "string"
- }
- }
- }
- },
- "parameters": {
- "ApiVersionParameter": {
- "in": "query",
- "name": "api-version",
- "description": "Version of API to invoke",
- "required": true,
- "type": "string"
- },
- "Endpoint": {
- "in": "path",
- "name": "endpoint",
- "description": "The endpoint of the Azure Communication resource.",
- "required": true,
- "type": "string",
- "x-ms-skip-url-encoding": true,
- "x-ms-parameter-location": "client"
- }
- },
- "securityDefinitions": {
- "azure_auth": {
- "type": "oauth2",
- "flow": "implicit",
- "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
- "scopes": {
- "user_impersonation": "impersonate your user account"
- },
- "description": "Azure Active Directory OAuth2 Flow"
- }
- },
- "x-ms-parameterized-host": {
- "hostTemplate": "{endpoint}",
- "useSchemePrefix": false,
- "parameters": [
- {
- "$ref": "#/parameters/Endpoint"
- }
- ]
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/CancelSearchAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/CancelSearchAsync.json
deleted file mode 100644
index 0d393b557bc5..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/CancelSearchAsync.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "endpoint": "https://resourcename.communications.azure.net/",
- "searchId": "0cc077cd-333a-39fd-90f7-560b1e06c63e"
- },
- "responses": {
- "202": {}
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/ConfigurePhoneNumberAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/ConfigurePhoneNumberAsync.json
deleted file mode 100644
index d95a9053bddb..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/ConfigurePhoneNumberAsync.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "body": {
- "phoneNumber": "+11234567890",
- "pstnConfiguration": {
- "callbackUrl": "www.callback.com",
- "applicationId": "abc123"
- }
- },
- "endpoint": "https://resourcename.communications.azure.net/"
- },
- "responses": {
- "200": {}
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/CreateReleaseAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/CreateReleaseAsync.json
deleted file mode 100644
index b1c75ce1facd..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/CreateReleaseAsync.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "body": {
- "phoneNumbers": [
- "+11234567890"
- ]
- },
- "endpoint": "https://resourcename.communications.azure.net/"
- },
- "responses": {
- "200": {
- "headers": {},
- "body": {
- "releaseId": "0cc077cd-333a-39fd-90f7-560b1e06c63e"
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/CreateSearchAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/CreateSearchAsync.json
deleted file mode 100644
index 2e253c17abc1..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/CreateSearchAsync.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "body": {
- "displayName": "Name",
- "description": "Search Description",
- "phonePlanIds": [
- "0cc077cd-333a-39fd-90f7-560b1e06c63e"
- ],
- "areaCode": "425",
- "quantity": 2,
- "locationOptions": [
- {
- "name": "state",
- "value": "WA"
- }
- ]
- },
- "endpoint": "https://resourcename.communications.azure.net/"
- },
- "responses": {
- "201": {
- "headers": {},
- "body": {
- "searchId": "0cc077cd-5337-7msf-964e-560b1e06c63e"
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAcquiredPhoneNumbersAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAcquiredPhoneNumbersAsync.json
deleted file mode 100644
index 3ad4280fe83a..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAcquiredPhoneNumbersAsync.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "endpoint": "https://resourcename.communications.azure.net/",
- "locale": "en-us"
- },
- "responses": {
- "200": {
- "headers": {},
- "body": {
- "phoneNumbers": [
- {
- "phoneNumber": "+11234567890",
- "acquiredCapabilities": [
- "FirstPartyAppAssignment"
- ],
- "availableCapabilities": [
- "FirstPartyAppAssignment",
- "UserAssignment"
- ],
- "assignmentStatus": "Unassigned",
- "placeName": "Toll-Free, United States",
- "activationState": "Activated"
- },
- {
- "phoneNumber": "+18003456789",
- "acquiredCapabilities": [
- "FirstPartyAppAssignment"
- ],
- "availableCapabilities": [
- "FirstPartyAppAssignment",
- "UserAssignment"
- ],
- "assignmentStatus": "Unassigned",
- "placeName": "Toll-Free, United States",
- "activationState": "Activated"
- }
- ]
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAllReleasesAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAllReleasesAsync.json
deleted file mode 100644
index 29a8ddb4979e..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAllReleasesAsync.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "endpoint": "https://resourcename.communications.azure.net/"
- },
- "responses": {
- "200": {
- "headers": {},
- "body": {
- "entities": [
- {
- "id": "0cc077cd-333a-39fd-90f7-560b1e06c63e",
- "displayName": "Numbers for Vancouver Office",
- "createdAt": "2020-06-18T17:11:52.5005818+00:00",
- "quantity": 1,
- "quantityObtained": 1,
- "status": "completed",
- "focDate": "2020-06-18T17:11:52.5005818+00:00"
- }
- ]
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAllSearchesAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAllSearchesAsync.json
deleted file mode 100644
index 29a8ddb4979e..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAllSearchesAsync.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "endpoint": "https://resourcename.communications.azure.net/"
- },
- "responses": {
- "200": {
- "headers": {},
- "body": {
- "entities": [
- {
- "id": "0cc077cd-333a-39fd-90f7-560b1e06c63e",
- "displayName": "Numbers for Vancouver Office",
- "createdAt": "2020-06-18T17:11:52.5005818+00:00",
- "quantity": 1,
- "quantityObtained": 1,
- "status": "completed",
- "focDate": "2020-06-18T17:11:52.5005818+00:00"
- }
- ]
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAreaCodesAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAreaCodesAsync.json
deleted file mode 100644
index 1288173209cc..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAreaCodesAsync.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "endpoint": "https://resourcename.communications.azure.net/",
- "locationType": "Selection",
- "countryCode": "CA",
- "phonePlanId": "0cc077cd-333a-39fd-90f7-560b1e06c63e"
- },
- "responses": {
- "200": {
- "headers": {},
- "body": {
- "primaryAreaCodes": [
- "236",
- "604",
- "778"
- ],
- "secondaryAreaCodes": []
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetCountriesAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetCountriesAsync.json
deleted file mode 100644
index fe4dbb0b999f..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetCountriesAsync.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "endpoint": "https://resourcename.communications.azure.net/",
- "locale": "en-us"
- },
- "responses": {
- "200": {
- "headers": {},
- "body": {
- "countries": [
- {
- "localizedName": "Australia",
- "countryCode": "AU"
- },
- {
- "localizedName": "Japan",
- "countryCode": "JP"
- },
- {
- "localizedName": "United States",
- "countryCode": "US"
- }
- ]
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetLocationOptionsAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetLocationOptionsAsync.json
deleted file mode 100644
index b551fa840089..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetLocationOptionsAsync.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "countryCode": "US",
- "endpoint": "https://resourcename.communications.azure.net/",
- "phonePlanGroupId": "671ee064-662f-4c3b-82a9-af2ab200dd5c",
- "phonePlanId": "27b53eec-8ff4-4070-8900-fbeaabfd158a"
- },
- "responses": {
- "200": {
- "headers": {},
- "body": {
- "locationOptions": {
- "labelId": "state",
- "labelName": "State",
- "options": [
- {
- "name": "AK",
- "value": "AK",
- "locationOptions": [
- {
- "labelId": "city",
- "labelName": "City",
- "options": [
- {
- "name": "Anchorage",
- "value": "NOAM-US-AK-AN"
- }
- ]
- }
- ]
- },
- {
- "name": "AL",
- "value": "AL",
- "locationOptions": [
- {
- "labelId": "city",
- "labelName": "City",
- "options": [
- {
- "name": "Birmingham",
- "value": "NOAM-US-AL-BI"
- },
- {
- "name": "Huntsville",
- "value": "NOAM-US-AL-HN"
- },
- {
- "name": "Mobile",
- "value": "NOAM-US-AL-MO"
- },
- {
- "name": "Montgomery",
- "value": "NOAM-US-AL-MN"
- }
- ]
- }
- ]
- }
- ]
- }
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetNumberCapabilitiesUpdateAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetNumberCapabilitiesUpdateAsync.json
deleted file mode 100644
index 11949cff84a3..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetNumberCapabilitiesUpdateAsync.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "endpoint": "https://resourcename.communications.azure.net/",
- "capabilitiesUpdateId": "0cc077cd-333a-39fd-90f7-560b1e06c63e"
- },
- "responses": {
- "200": {
- "headers": {},
- "body": {
- "capabilitiesUpdateId": "0cc077cd-333a-39fd-90f7-560b1e06c63e",
- "createdAt": "2020-06-18T17:11:52.5005818+00:00",
- "capabilitiesUpdateStatus": "Complete",
- "phoneNumberCapabilitiesUpdates": {
- "12345878991": {
- "add": [],
- "remove": [
- "InboundA2PSms",
- "OutboundA2PSms"
- ]
- }
- }
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetNumberConfigurationAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetNumberConfigurationAsync.json
deleted file mode 100644
index 573d697b2934..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetNumberConfigurationAsync.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "body": {
- "phoneNumber": "+11234567890"
- },
- "endpoint": "https://resourcename.communications.azure.net/"
- },
- "responses": {
- "200": {
- "headers": {},
- "body": {
- "pstnConfiguration": {
- "callbackUrl": "www.callback.com",
- "applicationId": "abc123"
- }
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetPhonePlanGroupsAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetPhonePlanGroupsAsync.json
deleted file mode 100644
index f418ffd2ff23..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetPhonePlanGroupsAsync.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "countryCode": "US",
- "endpoint": "https://resourcename.communications.azure.net/",
- "locale": "en-us"
- },
- "responses": {
- "200": {
- "headers": {},
- "body": {
- "phonePlanGroups": [
- {
- "phonePlanGroupId": "671ee064-662f-4c3b-82a9-af2ab200dd5c",
- "phoneNumberType": "Geographic",
- "localizedName": "Geographic",
- "localizedDescription": "These are Toll numbers",
- "rateInformation": {
- "monthlyRate": 2.0,
- "currencyType": "USD"
- }
- },
- {
- "phonePlanGroupId": "d47a0cdc-8dc1-4e82-a29b-39067f7fc317",
- "phoneNumberType": "TollFree",
- "localizedName": "TollFree",
- "localizedDescription": "These are toll free numbers used by Azure resources.",
- "rateInformation": {
- "monthlyRate": 1.0,
- "currencyType": "USD"
- }
- }
- ]
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetPhonePlansAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetPhonePlansAsync.json
deleted file mode 100644
index 88ed446f84e8..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetPhonePlansAsync.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "countryCode": "US",
- "endpoint": "https://resourcename.communications.azure.net/",
- "phonePlanGroupId": "671ee064-662f-4c3b-82a9-af2ab200dd5c"
- },
- "responses": {
- "200": {
- "headers": {},
- "body": {
- "phonePlans": [
- {
- "phonePlanId": "27b53eec-8ff4-4070-8900-fbeaabfd158a",
- "localizedName": "Outbound Only PSTN - Geographic",
- "locationType": "Selection",
- "capabilities": [
- "Azure",
- "OutboundCalling",
- "ThirdPartyAppAssignment",
- "Geographic"
- ],
- "maximumSearchSize": 100
- }
- ]
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetReleaseByIdAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetReleaseByIdAsync.json
deleted file mode 100644
index 10813ab35c36..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetReleaseByIdAsync.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "endpoint": "https://resourcename.communications.azure.net/",
- "releaseId": "0cc077cd-333a-39fd-90f7-560b1e06c63e"
- },
- "responses": {
- "200": {
- "headers": {},
- "body": {
- "releaseId": "0cc077cd-333a-39fd-90f7-560b1e06c63e"
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetSearchByIdAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetSearchByIdAsync.json
deleted file mode 100644
index a0e892008493..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetSearchByIdAsync.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "endpoint": "https://resourcename.communications.azure.net/",
- "searchId": "0cc077cd-333a-39fd-90f7-560b1e06c63e"
- },
- "responses": {
- "200": {
- "headers": {},
- "body": {
- "searchId": "0cc077cd-333a-39fd-90f7-560b1e06c63e",
- "displayName": "Numbers for Vancouver Office",
- "createdAt": "2020-06-18T17:11:52.5005818+00:00",
- "description": "Get some new numbers for our office in Vancouver",
- "phonePlanIds": [
- "0cc077cd-333a-39fd-90f7-560b1e06c63e"
- ],
- "areaCode": "604",
- "quantity": 1,
- "locationOptions": [],
- "status": "completed",
- "phoneNumbers": []
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/PurchaseSearchAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/PurchaseSearchAsync.json
deleted file mode 100644
index 0d393b557bc5..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/PurchaseSearchAsync.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "endpoint": "https://resourcename.communications.azure.net/",
- "searchId": "0cc077cd-333a-39fd-90f7-560b1e06c63e"
- },
- "responses": {
- "202": {}
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/UnconfigurePhoneNumberAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/UnconfigurePhoneNumberAsync.json
deleted file mode 100644
index e8da11cf3109..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/UnconfigurePhoneNumberAsync.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "body": {
- "phoneNumber": "+11234567890"
- },
- "endpoint": "https://resourcename.communications.azure.net/"
- },
- "responses": {
- "200": {}
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/UpdateNumberCapabilitiesAsync.json b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/UpdateNumberCapabilitiesAsync.json
deleted file mode 100644
index 612b5f2b2740..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/UpdateNumberCapabilitiesAsync.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "parameters": {
- "api-version": "2020-07-20-preview1",
- "body": {
- "phoneNumberCapabilitiesUpdate": {
- "12345878981": {
- "add": [
- "InboundA2PSms",
- "OutboundA2PSms"
- ],
- "remove": []
- },
- "12345878991": {
- "add": [],
- "remove": [
- "InboundA2PSms",
- "OutboundA2PSms"
- ]
- }
- }
- },
- "endpoint": "https://resourcename.communications.azure.net/"
- },
- "responses": {
- "200": {
- "headers": {},
- "body": {
- "capabilitiesUpdateId": "0cc077cd-5337-7msf-964e-560b1e06c63e"
- }
- }
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/readme.md b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/readme.md
deleted file mode 100644
index 65345bcd60c4..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/readme.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# communicationservices
-
-> see https://aka.ms/autorest
-
-This is the AutoRest configuration file for communicationservices.
-
-## Getting Started
-
-To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run:
-
-> `autorest readme.md`
-
-To see additional help and options, run:
-
-> `autorest --help`
-
-For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page.
-
----
-
-## Configuration
-
-### Basic Information
-
-These are the global settings for the communicationservices.
-
-```yaml
-openapi-type: data-plane
-tag: package-2020-07-20-preview1
-```
-
-### Tag: package-2020-07-20-preview1
-
-These settings apply only when `--tag=package-2020-07-20-preview1` is specified on the command line.
-
-```yaml $(tag) == 'package-2020-07-20-preview1'
-input-file:
- - preview/2020-07-20-preview1/communicationservicesadministration.json
-title:
- Azure Communication Services
-```
-
----
-
-# Code Generation
-
-## Swagger to SDK
-
-This section describes what SDK should be generated by the automatic system.
-This is not used by Autorest itself.
-
-## Python
-
-See configuration in [readme.python.md](./readme.python.md)
-
-## Ruby
-
-See configuration in [readme.ruby.md](./readme.ruby.md)
-
-## TypeScript
-
-See configuration in [readme.typescript.md](./readme.typescript.md)
-
-## CSharp
-
-See configuration in [readme.csharp.md](./readme.csharp.md)
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/communicationserviceschat.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/communicationserviceschat.json
deleted file mode 100644
index f3230a2353df..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-11-01-preview3/communicationserviceschat.json
+++ /dev/null
@@ -1,1703 +0,0 @@
-{
- "swagger": "2.0",
- "info": {
- "title": "Azure Communication Chat Service",
- "description": "Azure Communication Chat Service",
- "version": "2020-11-01-preview3"
- },
- "paths": {
- "/chat/threads/{chatThreadId}/readReceipts": {
- "get": {
- "tags": [
- "Threads"
- ],
- "summary": "Gets chat message read receipts for a thread.",
- "operationId": "ChatThread_ListChatReadReceipts",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to get the chat message read receipts for.",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of chat message read receipts to be returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "skip",
- "description": "Skips chat message read receipts up to a specified position in response.",
- "type": "integer",
- "format": "int32"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns the requested `ChatMessageReadReceipt` resources.",
- "schema": {
- "$ref": "#/definitions/ChatMessageReadReceiptsCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get thread read receipts with pagination (max page size)": {
- "$ref": "./examples/Conversations_ListChatReadReceiptsWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- },
- "post": {
- "tags": [
- "Threads"
- ],
- "summary": "Sends a read receipt event to a thread, on behalf of a user.",
- "operationId": "ChatThread_SendChatReadReceipt",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to send the read receipt event to.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "sendReadReceiptRequest",
- "description": "Read receipt details.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/SendReadReceiptRequest"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Send read receipt": {
- "$ref": "./examples/Conversations_SendChatReadReceipt.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/messages": {
- "post": {
- "tags": [
- "Messages"
- ],
- "summary": "Sends a message to a thread.",
- "operationId": "ChatThread_SendChatMessage",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to send the message to.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "sendChatMessageRequest",
- "description": "Details of the message to send.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/SendChatMessageRequest"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "Message sent, the `Location` header contains the URL for the newly sent message.",
- "schema": {
- "$ref": "#/definitions/SendChatMessageResult"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Send Message": {
- "$ref": "./examples/Messages_SendChatMessage.json"
- }
- }
- },
- "get": {
- "tags": [
- "Messages"
- ],
- "summary": "Gets a list of messages from a thread.",
- "operationId": "ChatThread_ListChatMessages",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id of the message.",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of messages to be returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "startTime",
- "description": "The earliest point in time to get messages up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "format": "date-time"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/ChatMessagesCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get messages with pagination (max page size)": {
- "$ref": "./examples/Messages_ListChatMessagesWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- }
- },
- "/chat/threads/{chatThreadId}/messages/{chatMessageId}": {
- "get": {
- "tags": [
- "Messages"
- ],
- "summary": "Gets a message by id.",
- "operationId": "ChatThread_GetChatMessage",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to which the message was sent.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "chatMessageId",
- "description": "The message id.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns a `Message` resource.",
- "schema": {
- "$ref": "#/definitions/ChatMessage"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get Message": {
- "$ref": "./examples/Messages_GetChatMessage.json"
- }
- }
- },
- "patch": {
- "tags": [
- "Messages"
- ],
- "summary": "Updates a message.",
- "operationId": "ChatThread_UpdateChatMessage",
- "consumes": [
- "application/merge-patch+json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to which the message was sent.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "chatMessageId",
- "description": "The message id.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "updateChatMessageRequest",
- "description": "Details of the request to update the message.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/UpdateChatMessageRequest"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "Message is successfully updated."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Update message content": {
- "$ref": "./examples/Messages_UpdateChatMessage.json"
- }
- }
- },
- "delete": {
- "tags": [
- "Messages"
- ],
- "summary": "Deletes a message.",
- "operationId": "ChatThread_DeleteChatMessage",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to which the message was sent.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "chatMessageId",
- "description": "The message id.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "204": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Delete message": {
- "$ref": "./examples/Messages_DeleteChatMessage.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/typing": {
- "post": {
- "tags": [
- "Messages"
- ],
- "summary": "Posts a typing event to a thread, on behalf of a user.",
- "operationId": "ChatThread_SendTypingNotification",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Post typing event to a thread": {
- "$ref": "./examples/Messages_SendTypingNotification.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/participants": {
- "get": {
- "tags": [
- "Participants"
- ],
- "summary": "Gets the participants of a thread.",
- "operationId": "ChatThread_ListChatParticipants",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to get participants for.",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of participants to be returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "skip",
- "description": "Skips participants up to a specified position in response.",
- "type": "integer",
- "format": "int32"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns the participants of a thread.",
- "schema": {
- "$ref": "#/definitions/ChatParticipantsCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get participants with pagination (max page size)": {
- "$ref": "./examples/Participants_ListChatParticipantsWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- }
- },
- "/chat/threads/{chatThreadId}/participants/{chatParticipantId}": {
- "delete": {
- "tags": [
- "Participants"
- ],
- "summary": "Remove a participant from a thread.",
- "operationId": "ChatThread_RemoveChatParticipant",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to remove the participant from.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "chatParticipantId",
- "description": "Id of the thread participant to remove from the thread.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "204": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Remove participant": {
- "$ref": "./examples/Participants_RemoveChatParticipant.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/participants/:add": {
- "post": {
- "tags": [
- "Participants"
- ],
- "summary": "Adds thread participants to a thread. If participants already exist, no change occurs.",
- "operationId": "ChatThread_AddChatParticipants",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread to add participants to.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "addChatParticipantsRequest",
- "description": "Thread participants to be added to the thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/AddChatParticipantsRequest"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "The participants were successfully added.",
- "schema": {
- "$ref": "#/definitions/AddChatParticipantsResult"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Add participants": {
- "$ref": "./examples/Participants_AddChatParticipants.json"
- }
- }
- }
- },
- "/chat/threads": {
- "post": {
- "tags": [
- "Threads"
- ],
- "summary": "Creates a chat thread.",
- "operationId": "Chat_CreateChatThread",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "header",
- "name": "repeatability-Request-ID",
- "description": "If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-ID and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-ID is an opaque string representing a client-generated, globally unique for all time, identifier for the request. It is recommended to use version 4 (random) UUIDs.",
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "createChatThreadRequest",
- "description": "Request payload for creating a chat thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/CreateChatThreadRequest"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "Thread created, the `Location` header would contain the URL for the newly created thread.",
- "schema": {
- "$ref": "#/definitions/CreateChatThreadResult"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Create chat thread": {
- "$ref": "./examples/Threads_CreateChatThread.json"
- },
- "Create chat thread with repeatability request id header": {
- "$ref": "./examples/Threads_CreateChatThreadWithRepeatabilityRequestId.json"
- }
- }
- },
- "get": {
- "tags": [
- "Threads"
- ],
- "summary": "Gets the list of chat threads of a user.",
- "operationId": "Chat_ListChatThreads",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of chat threads returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "startTime",
- "description": "The earliest point in time to get chat threads up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "format": "date-time"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns a `GetThreadsResponse` resource.",
- "schema": {
- "$ref": "#/definitions/ChatThreadsInfoCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get threads with pagination (Max Page Size)": {
- "$ref": "./examples/Threads_ListChatThreadsWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- }
- },
- "/chat/threads/{chatThreadId}": {
- "patch": {
- "tags": [
- "Threads"
- ],
- "summary": "Updates a thread's properties.",
- "operationId": "ChatThread_UpdateChatThread",
- "consumes": [
- "application/merge-patch+json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The id of the thread to update.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "updateChatThreadRequest",
- "description": "Request payload for updating a chat thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/UpdateChatThreadRequest"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "Thread was successfully updated."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Update chat thread topic": {
- "$ref": "./examples/Threads_UpdateChatThreadTopic.json"
- }
- }
- },
- "get": {
- "tags": [
- "Threads"
- ],
- "summary": "Gets a chat thread.",
- "operationId": "Chat_GetChatThread",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns a chat thread.",
- "schema": {
- "$ref": "#/definitions/ChatThread"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get chat thread": {
- "$ref": "./examples/Threads_GetChatThread.json"
- }
- }
- },
- "delete": {
- "tags": [
- "Threads"
- ],
- "summary": "Deletes a thread.",
- "operationId": "Chat_DeleteChatThread",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread to be deleted.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "204": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Delete chat thread": {
- "$ref": "./examples/Threads_DeleteChatThread.json"
- }
- }
- }
- }
- },
- "definitions": {
- "ChatMessageReadReceipt": {
- "description": "A chat message read receipt indicates the time a chat message was read by a recipient.",
- "required": [
- "chatMessageId",
- "readOn",
- "senderId"
- ],
- "type": "object",
- "properties": {
- "senderId": {
- "description": "Id of the participant who read the message.",
- "type": "string",
- "example": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
- },
- "chatMessageId": {
- "description": "Id of the chat message that has been read. This id is generated by the server.",
- "type": "string",
- "example": "1591137790240"
- },
- "readOn": {
- "format": "date-time",
- "description": "The time at which the message was read. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatMessageReadReceiptsCollection": {
- "description": "A paged collection of chat message read receipts.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Collection of chat message read receipts.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatMessageReadReceipt"
- }
- },
- "nextLink": {
- "description": "If there are more chat message read receipts that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "Error": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/preview/2020-11-19-preview1/common.json#/definitions/CommunicationError"
- },
- "ErrorResponse": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/preview/2020-11-19-preview1/common.json#/definitions/CommunicationErrorResponse"
- },
- "SendReadReceiptRequest": {
- "description": "Request payload for sending a read receipt.",
- "required": [
- "chatMessageId"
- ],
- "type": "object",
- "properties": {
- "chatMessageId": {
- "description": "Id of the latest chat message read by the user.",
- "type": "string",
- "example": "1592435762364"
- }
- }
- },
- "ChatMessageType": {
- "description": "The chat message type.",
- "enum": [
- "text",
- "html",
- "topicUpdated",
- "participantAdded",
- "participantRemoved"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "ChatMessageType",
- "modelAsString": true
- }
- },
- "SendChatMessageRequest": {
- "description": "Details of the message to send.",
- "required": [
- "content"
- ],
- "type": "object",
- "properties": {
- "content": {
- "description": "Chat message content.",
- "type": "string",
- "example": "Come one guys, lets go for lunch together."
- },
- "senderDisplayName": {
- "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
- "type": "string",
- "example": "Bob Admin"
- },
- "type": {
- "$ref": "#/definitions/ChatMessageType"
- }
- }
- },
- "SendChatMessageResult": {
- "description": "Result of the send message operation.",
- "required": [
- "id"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "A server-generated message id.",
- "type": "string",
- "example": "123456789"
- }
- }
- },
- "ChatParticipant": {
- "description": "A participant of the chat thread.",
- "required": [
- "id"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "The id of the chat participant.",
- "type": "string",
- "example": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
- },
- "displayName": {
- "description": "Display name for the chat participant.",
- "type": "string",
- "example": "Bob"
- },
- "shareHistoryTime": {
- "format": "date-time",
- "description": "Time from which the chat history is shared with the participant. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatMessageContent": {
- "description": "Content of a chat message.",
- "type": "object",
- "properties": {
- "message": {
- "description": "Chat message content for messages of types text or html.",
- "type": "string",
- "example": "Come one guys, lets go for lunch together."
- },
- "topic": {
- "description": "Chat message content for messages of type topicUpdated.",
- "type": "string",
- "example": "Lunch Chat thread"
- },
- "participants": {
- "description": "Chat message content for messages of types participantAdded or participantRemoved.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- },
- "initiator": {
- "description": "Chat message content for messages of types participantAdded or participantRemoved.",
- "type": "string",
- "example": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
- }
- }
- },
- "ChatMessage": {
- "description": "Chat message.",
- "required": [
- "createdOn",
- "id",
- "sequenceId",
- "type",
- "version"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "The id of the chat message. This id is server generated.",
- "type": "string",
- "example": "123456789"
- },
- "type": {
- "$ref": "#/definitions/ChatMessageType"
- },
- "sequenceId": {
- "description": "Sequence of the chat message in the conversation.",
- "type": "string"
- },
- "version": {
- "description": "Version of the chat message.",
- "type": "string"
- },
- "content": {
- "$ref": "#/definitions/ChatMessageContent"
- },
- "senderDisplayName": {
- "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
- "type": "string",
- "example": "Jane"
- },
- "createdOn": {
- "format": "date-time",
- "description": "The timestamp when the chat message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "senderId": {
- "description": "The id of the chat message sender.",
- "type": "string",
- "example": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
- },
- "deletedOn": {
- "format": "date-time",
- "description": "The timestamp (if applicable) when the message was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "editedOn": {
- "format": "date-time",
- "description": "The last timestamp (if applicable) when the message was edited. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatMessagesCollection": {
- "description": "Collection of chat messages for a particular chat thread.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Collection of chat messages.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatMessage"
- }
- },
- "nextLink": {
- "description": "If there are more chat messages that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "UpdateChatMessageRequest": {
- "description": "Request payload for updating a chat message.",
- "type": "object",
- "properties": {
- "content": {
- "description": "Chat message content.",
- "type": "string",
- "example": "Let's go for lunch together."
- }
- }
- },
- "ChatParticipantsCollection": {
- "description": "Collection of participants belong to a particular thread.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Chat participants.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- },
- "nextLink": {
- "description": "If there are more chat participants that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "AddChatParticipantsRequest": {
- "description": "Participants to be added to the thread.",
- "required": [
- "participants"
- ],
- "type": "object",
- "properties": {
- "participants": {
- "description": "Participants to add to a chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- }
- }
- },
- "AddChatParticipantsErrors": {
- "description": "Errors encountered during the addition of the chat participant to the chat thread.",
- "required": [
- "invalidParticipants"
- ],
- "type": "object",
- "properties": {
- "invalidParticipants": {
- "description": "The participants that failed to be added to the chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/Error"
- }
- }
- }
- },
- "AddChatParticipantsResult": {
- "description": "Result of the add chat participants operation.",
- "type": "object",
- "properties": {
- "errors": {
- "$ref": "#/definitions/AddChatParticipantsErrors"
- }
- }
- },
- "CreateChatThreadRequest": {
- "description": "Request payload for creating a chat thread.",
- "required": [
- "participants",
- "topic"
- ],
- "type": "object",
- "properties": {
- "topic": {
- "description": "The chat thread topic.",
- "type": "string",
- "example": "Lunch Thread"
- },
- "participants": {
- "description": "Participants to be added to the chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- }
- }
- },
- "ChatThread": {
- "description": "Chat thread.",
- "required": [
- "createdBy",
- "createdOn",
- "id",
- "topic"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "Chat thread id.",
- "type": "string",
- "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
- },
- "topic": {
- "description": "Chat thread topic.",
- "type": "string",
- "example": "Lunch Chat thread"
- },
- "createdOn": {
- "format": "date-time",
- "description": "The timestamp when the chat thread was created. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "createdBy": {
- "description": "Id of the chat thread owner.",
- "type": "string",
- "example": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
- },
- "deletedOn": {
- "format": "date-time",
- "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "CreateChatThreadErrors": {
- "description": "Errors encountered during the creation of the chat thread.",
- "type": "object",
- "properties": {
- "invalidParticipants": {
- "description": "The participants that failed to be added to the chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/Error"
- },
- "readOnly": true
- }
- }
- },
- "CreateChatThreadResult": {
- "description": "Result of the create chat thread operation.",
- "type": "object",
- "properties": {
- "chatThread": {
- "$ref": "#/definitions/ChatThread"
- },
- "errors": {
- "$ref": "#/definitions/CreateChatThreadErrors"
- }
- }
- },
- "ChatThreadInfo": {
- "description": "Summary information of a chat thread.",
- "required": [
- "id",
- "topic"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "Chat thread id.",
- "type": "string",
- "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
- },
- "topic": {
- "description": "Chat thread topic.",
- "type": "string",
- "example": "Lunch Chat thread"
- },
- "deletedOn": {
- "format": "date-time",
- "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "lastMessageReceivedOn": {
- "format": "date-time",
- "description": "The timestamp when the last message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "readOnly": true,
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatThreadsInfoCollection": {
- "description": "Collection of chat threads.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Collection of chat threads.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatThreadInfo"
- }
- },
- "nextLink": {
- "description": "If there are more chat threads that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "UpdateChatThreadRequest": {
- "description": "Request payload for updating a chat thread.",
- "type": "object",
- "properties": {
- "topic": {
- "description": "Chat thread topic.",
- "type": "string",
- "example": "Lunch Thread"
- }
- }
- }
- },
- "parameters": {
- "ApiVersionParameter": {
- "in": "query",
- "name": "api-version",
- "description": "Version of API to invoke.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
- "Endpoint": {
- "in": "path",
- "name": "endpoint",
- "description": "The endpoint of the Azure Communication resource.",
- "required": true,
- "type": "string",
- "x-ms-skip-url-encoding": true,
- "x-ms-parameter-location": "client"
- }
- },
- "securityDefinitions": {
- "Authorization": {
- "type": "apiKey",
- "name": "Authorization",
- "in": "header",
- "description": "An ACS (Azure Communication Services) user access token."
- }
- },
- "security": [
- {
- "Authorization": []
- }
- ],
- "x-ms-parameterized-host": {
- "hostTemplate": "{endpoint}",
- "useSchemePrefix": false,
- "parameters": [
- {
- "$ref": "#/parameters/Endpoint"
- }
- ]
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/communicationserviceschat.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/communicationserviceschat.json
deleted file mode 100644
index 7398a44a652e..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-01-27-preview4/communicationserviceschat.json
+++ /dev/null
@@ -1,1711 +0,0 @@
-{
- "swagger": "2.0",
- "info": {
- "title": "Azure Communication Chat Service",
- "description": "Azure Communication Chat Service",
- "version": "2021-01-27-preview4"
- },
- "paths": {
- "/chat/threads/{chatThreadId}/readReceipts": {
- "get": {
- "tags": [
- "Threads"
- ],
- "summary": "Gets chat message read receipts for a thread.",
- "operationId": "ChatThread_ListChatReadReceipts",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to get the chat message read receipts for.",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of chat message read receipts to be returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "skip",
- "description": "Skips chat message read receipts up to a specified position in response.",
- "type": "integer",
- "format": "int32"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns the requested `ChatMessageReadReceipt` resources.",
- "schema": {
- "$ref": "#/definitions/ChatMessageReadReceiptsCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get thread read receipts with pagination (max page size)": {
- "$ref": "./examples/Conversations_ListChatReadReceiptsWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- },
- "post": {
- "tags": [
- "Threads"
- ],
- "summary": "Sends a read receipt event to a thread, on behalf of a user.",
- "operationId": "ChatThread_SendChatReadReceipt",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to send the read receipt event to.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "sendReadReceiptRequest",
- "description": "Read receipt details.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/SendReadReceiptRequest"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Send read receipt": {
- "$ref": "./examples/Conversations_SendChatReadReceipt.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/messages": {
- "post": {
- "tags": [
- "Messages"
- ],
- "summary": "Sends a message to a thread.",
- "operationId": "ChatThread_SendChatMessage",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to send the message to.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "sendChatMessageRequest",
- "description": "Details of the message to send.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/SendChatMessageRequest"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "Message sent, the `Location` header contains the URL for the newly sent message.",
- "schema": {
- "$ref": "#/definitions/SendChatMessageResult"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Send Message": {
- "$ref": "./examples/Messages_SendChatMessage.json"
- }
- }
- },
- "get": {
- "tags": [
- "Messages"
- ],
- "summary": "Gets a list of messages from a thread.",
- "operationId": "ChatThread_ListChatMessages",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id of the message.",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of messages to be returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "startTime",
- "description": "The earliest point in time to get messages up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "format": "date-time"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/ChatMessagesCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get messages with pagination (max page size)": {
- "$ref": "./examples/Messages_ListChatMessagesWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- }
- },
- "/chat/threads/{chatThreadId}/messages/{chatMessageId}": {
- "get": {
- "tags": [
- "Messages"
- ],
- "summary": "Gets a message by id.",
- "operationId": "ChatThread_GetChatMessage",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to which the message was sent.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "chatMessageId",
- "description": "The message id.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns a `Message` resource.",
- "schema": {
- "$ref": "#/definitions/ChatMessage"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get Message": {
- "$ref": "./examples/Messages_GetChatMessage.json"
- }
- }
- },
- "patch": {
- "tags": [
- "Messages"
- ],
- "summary": "Updates a message.",
- "operationId": "ChatThread_UpdateChatMessage",
- "consumes": [
- "application/merge-patch+json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to which the message was sent.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "chatMessageId",
- "description": "The message id.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "updateChatMessageRequest",
- "description": "Details of the request to update the message.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/UpdateChatMessageRequest"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "Message is successfully updated."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Update message content": {
- "$ref": "./examples/Messages_UpdateChatMessage.json"
- }
- }
- },
- "delete": {
- "tags": [
- "Messages"
- ],
- "summary": "Deletes a message.",
- "operationId": "ChatThread_DeleteChatMessage",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to which the message was sent.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "chatMessageId",
- "description": "The message id.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "204": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Delete message": {
- "$ref": "./examples/Messages_DeleteChatMessage.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/typing": {
- "post": {
- "tags": [
- "Messages"
- ],
- "summary": "Posts a typing event to a thread, on behalf of a user.",
- "operationId": "ChatThread_SendTypingNotification",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Post typing event to a thread": {
- "$ref": "./examples/Messages_SendTypingNotification.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/participants": {
- "get": {
- "tags": [
- "Participants"
- ],
- "summary": "Gets the participants of a thread.",
- "operationId": "ChatThread_ListChatParticipants",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to get participants for.",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of participants to be returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "skip",
- "description": "Skips participants up to a specified position in response.",
- "type": "integer",
- "format": "int32"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns the participants of a thread.",
- "schema": {
- "$ref": "#/definitions/ChatParticipantsCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get participants with pagination (max page size)": {
- "$ref": "./examples/Participants_ListChatParticipantsWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- }
- },
- "/chat/threads/{chatThreadId}/participants/:remove": {
- "post": {
- "tags": [
- "Participants"
- ],
- "summary": "Remove a participant from a thread.",
- "operationId": "ChatThread_RemoveChatParticipant",
- "consumes": [
- "application/json",
- "application/merge-patch+json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to remove the participant from.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "participantCommunicationIdentifier",
- "description": "Id of the thread participant to remove from the thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Remove participant": {
- "$ref": "./examples/Participants_RemoveChatParticipant.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/participants/:add": {
- "post": {
- "tags": [
- "Participants"
- ],
- "summary": "Adds thread participants to a thread. If participants already exist, no change occurs.",
- "operationId": "ChatThread_AddChatParticipants",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread to add participants to.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "addChatParticipantsRequest",
- "description": "Thread participants to be added to the thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/AddChatParticipantsRequest"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "The participants were successfully added.",
- "schema": {
- "$ref": "#/definitions/AddChatParticipantsResult"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Add participants": {
- "$ref": "./examples/Participants_AddChatParticipants.json"
- }
- }
- }
- },
- "/chat/threads": {
- "post": {
- "tags": [
- "Threads"
- ],
- "summary": "Creates a chat thread.",
- "operationId": "Chat_CreateChatThread",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "header",
- "name": "repeatability-Request-Id",
- "description": "If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-Id and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-Id is an opaque string representing a client-generated, globally unique for all time, identifier for the request. It is recommended to use version 4 (random) UUIDs.",
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "createChatThreadRequest",
- "description": "Request payload for creating a chat thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/CreateChatThreadRequest"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "Thread created, the `Location` header would contain the URL for the newly created thread.",
- "schema": {
- "$ref": "#/definitions/CreateChatThreadResult"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Create chat thread": {
- "$ref": "./examples/Threads_CreateChatThread.json"
- },
- "Create chat thread with repeatability request id header": {
- "$ref": "./examples/Threads_CreateChatThreadWithRepeatabilityRequestId.json"
- }
- }
- },
- "get": {
- "tags": [
- "Threads"
- ],
- "summary": "Gets the list of chat threads of a user.",
- "operationId": "Chat_ListChatThreads",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of chat threads returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "startTime",
- "description": "The earliest point in time to get chat threads up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "format": "date-time"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns a `GetThreadsResponse` resource.",
- "schema": {
- "$ref": "#/definitions/ChatThreadsInfoCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get threads with pagination (Max Page Size)": {
- "$ref": "./examples/Threads_ListChatThreadsWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- }
- },
- "/chat/threads/{chatThreadId}": {
- "patch": {
- "tags": [
- "Threads"
- ],
- "summary": "Updates a thread's properties.",
- "operationId": "ChatThread_UpdateChatThread",
- "consumes": [
- "application/merge-patch+json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The id of the thread to update.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "updateChatThreadRequest",
- "description": "Request payload for updating a chat thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/UpdateChatThreadRequest"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "Thread was successfully updated."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Update chat thread topic": {
- "$ref": "./examples/Threads_UpdateChatThreadTopic.json"
- }
- }
- },
- "get": {
- "tags": [
- "Threads"
- ],
- "summary": "Gets a chat thread.",
- "operationId": "Chat_GetChatThread",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns a chat thread.",
- "schema": {
- "$ref": "#/definitions/ChatThread"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get chat thread": {
- "$ref": "./examples/Threads_GetChatThread.json"
- }
- }
- },
- "delete": {
- "tags": [
- "Threads"
- ],
- "summary": "Deletes a thread.",
- "operationId": "Chat_DeleteChatThread",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread to be deleted.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "204": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Delete chat thread": {
- "$ref": "./examples/Threads_DeleteChatThread.json"
- }
- }
- }
- }
- },
- "definitions": {
- "CommunicationUserIdentifierModel": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationUserIdentifierModel"
- },
- "CommunicationCloudEnvironment": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationCloudEnvironmentModel"
- },
- "MicrosoftTeamsUserIdentifierModel": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/MicrosoftTeamsUserIdentifierModel"
- },
- "CommunicationIdentifierModel": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationIdentifierModel"
- },
- "ChatMessageReadReceipt": {
- "description": "A chat message read receipt indicates the time a chat message was read by a recipient.",
- "required": [
- "chatMessageId",
- "readOn",
- "senderCommunicationIdentifier"
- ],
- "type": "object",
- "properties": {
- "senderCommunicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- },
- "chatMessageId": {
- "description": "Id of the chat message that has been read. This id is generated by the server.",
- "type": "string",
- "example": "1591137790240"
- },
- "readOn": {
- "format": "date-time",
- "description": "The time at which the message was read. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatMessageReadReceiptsCollection": {
- "description": "A paged collection of chat message read receipts.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Collection of chat message read receipts.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatMessageReadReceipt"
- }
- },
- "nextLink": {
- "description": "If there are more chat message read receipts that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "Error": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationError"
- },
- "ErrorResponse": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
- },
- "SendReadReceiptRequest": {
- "description": "Request payload for sending a read receipt.",
- "required": [
- "chatMessageId"
- ],
- "type": "object",
- "properties": {
- "chatMessageId": {
- "description": "Id of the latest chat message read by the user.",
- "type": "string",
- "example": "1592435762364"
- }
- }
- },
- "ChatMessageType": {
- "description": "The chat message type.",
- "enum": [
- "text",
- "html",
- "topicUpdated",
- "participantAdded",
- "participantRemoved"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "ChatMessageType",
- "modelAsString": true
- }
- },
- "SendChatMessageRequest": {
- "description": "Details of the message to send.",
- "required": [
- "content"
- ],
- "type": "object",
- "properties": {
- "content": {
- "description": "Chat message content.",
- "type": "string",
- "example": "Come one guys, lets go for lunch together."
- },
- "senderDisplayName": {
- "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
- "type": "string",
- "example": "Bob Admin"
- },
- "type": {
- "$ref": "#/definitions/ChatMessageType"
- }
- }
- },
- "SendChatMessageResult": {
- "description": "Result of the send message operation.",
- "required": [
- "id"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "A server-generated message id.",
- "type": "string",
- "example": "123456789"
- }
- }
- },
- "ChatParticipant": {
- "description": "A participant of the chat thread.",
- "required": [
- "communicationIdentifier"
- ],
- "type": "object",
- "properties": {
- "communicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- },
- "displayName": {
- "description": "Display name for the chat participant.",
- "type": "string",
- "example": "Bob"
- },
- "shareHistoryTime": {
- "format": "date-time",
- "description": "Time from which the chat history is shared with the participant. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatMessageContent": {
- "description": "Content of a chat message.",
- "type": "object",
- "properties": {
- "message": {
- "description": "Chat message content for messages of types text or html.",
- "type": "string",
- "example": "Come one guys, lets go for lunch together."
- },
- "topic": {
- "description": "Chat message content for messages of type topicUpdated.",
- "type": "string",
- "example": "Lunch Chat thread"
- },
- "participants": {
- "description": "Chat message content for messages of types participantAdded or participantRemoved.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- },
- "initiatorCommunicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- }
- }
- },
- "ChatMessage": {
- "description": "Chat message.",
- "required": [
- "createdOn",
- "id",
- "sequenceId",
- "type",
- "version"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "The id of the chat message. This id is server generated.",
- "type": "string",
- "example": "123456789"
- },
- "type": {
- "$ref": "#/definitions/ChatMessageType"
- },
- "sequenceId": {
- "description": "Sequence of the chat message in the conversation.",
- "type": "string"
- },
- "version": {
- "description": "Version of the chat message.",
- "type": "string"
- },
- "content": {
- "$ref": "#/definitions/ChatMessageContent"
- },
- "senderDisplayName": {
- "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
- "type": "string",
- "example": "Jane"
- },
- "createdOn": {
- "format": "date-time",
- "description": "The timestamp when the chat message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "senderCommunicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- },
- "deletedOn": {
- "format": "date-time",
- "description": "The timestamp (if applicable) when the message was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "editedOn": {
- "format": "date-time",
- "description": "The last timestamp (if applicable) when the message was edited. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatMessagesCollection": {
- "description": "Collection of chat messages for a particular chat thread.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Collection of chat messages.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatMessage"
- }
- },
- "nextLink": {
- "description": "If there are more chat messages that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "UpdateChatMessageRequest": {
- "description": "Request payload for updating a chat message.",
- "type": "object",
- "properties": {
- "content": {
- "description": "Chat message content.",
- "type": "string",
- "example": "Let's go for lunch together."
- }
- }
- },
- "ChatParticipantsCollection": {
- "description": "Collection of participants belong to a particular thread.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Chat participants.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- },
- "nextLink": {
- "description": "If there are more chat participants that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "AddChatParticipantsRequest": {
- "description": "Participants to be added to the thread.",
- "required": [
- "participants"
- ],
- "type": "object",
- "properties": {
- "participants": {
- "description": "Participants to add to a chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- }
- }
- },
- "AddChatParticipantsErrors": {
- "description": "Errors encountered during the addition of the chat participant to the chat thread.",
- "required": [
- "invalidParticipants"
- ],
- "type": "object",
- "properties": {
- "invalidParticipants": {
- "description": "The participants that failed to be added to the chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/Error"
- }
- }
- }
- },
- "AddChatParticipantsResult": {
- "description": "Result of the add chat participants operation.",
- "type": "object",
- "properties": {
- "errors": {
- "$ref": "#/definitions/AddChatParticipantsErrors"
- }
- }
- },
- "CreateChatThreadRequest": {
- "description": "Request payload for creating a chat thread.",
- "required": [
- "participants",
- "topic"
- ],
- "type": "object",
- "properties": {
- "topic": {
- "description": "The chat thread topic.",
- "type": "string",
- "example": "Lunch Thread"
- },
- "participants": {
- "description": "Participants to be added to the chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- }
- }
- },
- "ChatThread": {
- "description": "Chat thread.",
- "required": [
- "createdByCommunicationIdentifier",
- "createdOn",
- "id",
- "topic"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "Chat thread id.",
- "type": "string",
- "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
- },
- "topic": {
- "description": "Chat thread topic.",
- "type": "string",
- "example": "Lunch Chat thread"
- },
- "createdOn": {
- "format": "date-time",
- "description": "The timestamp when the chat thread was created. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "createdByCommunicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- },
- "deletedOn": {
- "format": "date-time",
- "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "CreateChatThreadErrors": {
- "description": "Errors encountered during the creation of the chat thread.",
- "type": "object",
- "properties": {
- "invalidParticipants": {
- "description": "The participants that failed to be added to the chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/Error"
- },
- "readOnly": true
- }
- }
- },
- "CreateChatThreadResult": {
- "description": "Result of the create chat thread operation.",
- "type": "object",
- "properties": {
- "chatThread": {
- "$ref": "#/definitions/ChatThread"
- },
- "errors": {
- "$ref": "#/definitions/CreateChatThreadErrors"
- }
- }
- },
- "ChatThreadInfo": {
- "description": "Summary information of a chat thread.",
- "required": [
- "id",
- "topic"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "Chat thread id.",
- "type": "string",
- "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
- },
- "topic": {
- "description": "Chat thread topic.",
- "type": "string",
- "example": "Lunch Chat thread"
- },
- "deletedOn": {
- "format": "date-time",
- "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "lastMessageReceivedOn": {
- "format": "date-time",
- "description": "The timestamp when the last message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "readOnly": true,
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatThreadsInfoCollection": {
- "description": "Collection of chat threads.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Collection of chat threads.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatThreadInfo"
- }
- },
- "nextLink": {
- "description": "If there are more chat threads that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "UpdateChatThreadRequest": {
- "description": "Request payload for updating a chat thread.",
- "type": "object",
- "properties": {
- "topic": {
- "description": "Chat thread topic.",
- "type": "string",
- "example": "Lunch Thread"
- }
- }
- }
- },
- "parameters": {
- "ApiVersionParameter": {
- "in": "query",
- "name": "api-version",
- "description": "Version of API to invoke.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
- "Endpoint": {
- "in": "path",
- "name": "endpoint",
- "description": "The endpoint of the Azure Communication resource.",
- "required": true,
- "type": "string",
- "x-ms-skip-url-encoding": true,
- "x-ms-parameter-location": "client"
- }
- },
- "securityDefinitions": {
- "Authorization": {
- "type": "apiKey",
- "name": "Authorization",
- "in": "header",
- "description": "An ACS (Azure Communication Services) user access token."
- }
- },
- "security": [
- {
- "Authorization": []
- }
- ],
- "x-ms-parameterized-host": {
- "hostTemplate": "{endpoint}",
- "useSchemePrefix": false,
- "parameters": [
- {
- "$ref": "#/parameters/Endpoint"
- }
- ]
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/communicationserviceschat.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/communicationserviceschat.json
deleted file mode 100644
index 73b36b427f09..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2021-03-01-preview5/communicationserviceschat.json
+++ /dev/null
@@ -1,1690 +0,0 @@
-{
- "swagger": "2.0",
- "info": {
- "title": "Azure Communication Chat Service",
- "description": "Azure Communication Chat Service",
- "version": "2021-03-01-preview5"
- },
- "paths": {
- "/chat/threads/{chatThreadId}/readReceipts": {
- "get": {
- "tags": [
- "Threads"
- ],
- "summary": "Gets chat message read receipts for a thread.",
- "operationId": "ChatThread_ListChatReadReceipts",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to get the chat message read receipts for.",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of chat message read receipts to be returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "skip",
- "description": "Skips chat message read receipts up to a specified position in response.",
- "type": "integer",
- "format": "int32"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns the requested `ChatMessageReadReceipt` resources.",
- "schema": {
- "$ref": "#/definitions/ChatMessageReadReceiptsCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get thread read receipts with pagination (max page size)": {
- "$ref": "./examples/Conversations_ListChatReadReceiptsWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- },
- "post": {
- "tags": [
- "Threads"
- ],
- "summary": "Sends a read receipt event to a thread, on behalf of a user.",
- "operationId": "ChatThread_SendChatReadReceipt",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to send the read receipt event to.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "sendReadReceiptRequest",
- "description": "Read receipt details.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/SendReadReceiptRequest"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Send read receipt": {
- "$ref": "./examples/Conversations_SendChatReadReceipt.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/messages": {
- "post": {
- "tags": [
- "Messages"
- ],
- "summary": "Sends a message to a thread.",
- "operationId": "ChatThread_SendChatMessage",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to send the message to.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "sendChatMessageRequest",
- "description": "Details of the message to send.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/SendChatMessageRequest"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "Message sent, the `Location` header contains the URL for the newly sent message.",
- "schema": {
- "$ref": "#/definitions/SendChatMessageResult"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Send Message": {
- "$ref": "./examples/Messages_SendChatMessage.json"
- }
- }
- },
- "get": {
- "tags": [
- "Messages"
- ],
- "summary": "Gets a list of messages from a thread.",
- "operationId": "ChatThread_ListChatMessages",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id of the message.",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of messages to be returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "startTime",
- "description": "The earliest point in time to get messages up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "format": "date-time"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/ChatMessagesCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get messages with pagination (max page size)": {
- "$ref": "./examples/Messages_ListChatMessagesWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- }
- },
- "/chat/threads/{chatThreadId}/messages/{chatMessageId}": {
- "get": {
- "tags": [
- "Messages"
- ],
- "summary": "Gets a message by id.",
- "operationId": "ChatThread_GetChatMessage",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to which the message was sent.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "chatMessageId",
- "description": "The message id.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns a `Message` resource.",
- "schema": {
- "$ref": "#/definitions/ChatMessage"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get Message": {
- "$ref": "./examples/Messages_GetChatMessage.json"
- }
- }
- },
- "patch": {
- "tags": [
- "Messages"
- ],
- "summary": "Updates a message.",
- "operationId": "ChatThread_UpdateChatMessage",
- "consumes": [
- "application/merge-patch+json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to which the message was sent.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "chatMessageId",
- "description": "The message id.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "updateChatMessageRequest",
- "description": "Details of the request to update the message.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/UpdateChatMessageRequest"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "Message is successfully updated."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Update message content": {
- "$ref": "./examples/Messages_UpdateChatMessage.json"
- }
- }
- },
- "delete": {
- "tags": [
- "Messages"
- ],
- "summary": "Deletes a message.",
- "operationId": "ChatThread_DeleteChatMessage",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to which the message was sent.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "chatMessageId",
- "description": "The message id.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "204": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Delete message": {
- "$ref": "./examples/Messages_DeleteChatMessage.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/typing": {
- "post": {
- "tags": [
- "Messages"
- ],
- "summary": "Posts a typing event to a thread, on behalf of a user.",
- "operationId": "ChatThread_SendTypingNotification",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Post typing event to a thread": {
- "$ref": "./examples/Messages_SendTypingNotification.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/participants": {
- "get": {
- "tags": [
- "Participants"
- ],
- "summary": "Gets the participants of a thread.",
- "operationId": "ChatThread_ListChatParticipants",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to get participants for.",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of participants to be returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "skip",
- "description": "Skips participants up to a specified position in response.",
- "type": "integer",
- "format": "int32"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns the participants of a thread.",
- "schema": {
- "$ref": "#/definitions/ChatParticipantsCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get participants with pagination (max page size)": {
- "$ref": "./examples/Participants_ListChatParticipantsWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- }
- },
- "/chat/threads/{chatThreadId}/participants/:remove": {
- "post": {
- "tags": [
- "Participants"
- ],
- "summary": "Remove a participant from a thread.",
- "operationId": "ChatThread_RemoveChatParticipant",
- "consumes": [
- "application/json",
- "application/merge-patch+json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to remove the participant from.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "participantCommunicationIdentifier",
- "description": "Id of the thread participant to remove from the thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Remove participant": {
- "$ref": "./examples/Participants_RemoveChatParticipant.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/participants/:add": {
- "post": {
- "tags": [
- "Participants"
- ],
- "summary": "Adds thread participants to a thread. If participants already exist, no change occurs.",
- "operationId": "ChatThread_AddChatParticipants",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread to add participants to.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "addChatParticipantsRequest",
- "description": "Thread participants to be added to the thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/AddChatParticipantsRequest"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "The participants were successfully added.",
- "schema": {
- "$ref": "#/definitions/AddChatParticipantsResult"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Add participants": {
- "$ref": "./examples/Participants_AddChatParticipants.json"
- }
- }
- }
- },
- "/chat/threads": {
- "post": {
- "tags": [
- "Threads"
- ],
- "summary": "Creates a chat thread.",
- "operationId": "Chat_CreateChatThread",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "header",
- "name": "idempotency-token",
- "description": "If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Idempotency-Token and get back an appropriate response without the server executing the request multiple times. The value of the Idempotency-Token is an opaque string representing a client-generated, globally unique for all time, identifier for the request. It is recommended to use version 4 (random) UUIDs.",
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "createChatThreadRequest",
- "description": "Request payload for creating a chat thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/CreateChatThreadRequest"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "Thread created, the `Location` header would contain the URL for the newly created thread.",
- "schema": {
- "$ref": "#/definitions/CreateChatThreadResult"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Create chat thread": {
- "$ref": "./examples/Threads_CreateChatThread.json"
- },
- "Create chat thread with repeatability request id header": {
- "$ref": "./examples/Threads_CreateChatThreadWithIdempotencyToken.json"
- }
- }
- },
- "get": {
- "tags": [
- "Threads"
- ],
- "summary": "Gets the list of chat threads of a user.",
- "operationId": "Chat_ListChatThreads",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of chat threads returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "startTime",
- "description": "The earliest point in time to get chat threads up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "format": "date-time"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns a `GetThreadsResponse` resource.",
- "schema": {
- "$ref": "#/definitions/ChatThreadsItemCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get threads with pagination (Max Page Size)": {
- "$ref": "./examples/Threads_ListChatThreadsWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- }
- },
- "/chat/threads/{chatThreadId}": {
- "patch": {
- "tags": [
- "Threads"
- ],
- "summary": "Updates a thread's properties.",
- "operationId": "ChatThread_UpdateChatThreadProperties",
- "consumes": [
- "application/merge-patch+json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The id of the thread to update.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "updateChatThreadRequest",
- "description": "Request payload for updating a chat thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/UpdateChatThreadRequest"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "Thread was successfully updated."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Update chat thread topic": {
- "$ref": "./examples/Threads_UpdateChatThreadTopic.json"
- }
- }
- },
- "get": {
- "tags": [
- "Threads"
- ],
- "summary": "Gets a chat thread's properties.",
- "operationId": "ChatThread_GetChatThreadProperties",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns a chat thread.",
- "schema": {
- "$ref": "#/definitions/ChatThreadProperties"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get chat thread": {
- "$ref": "./examples/Threads_GetChatThread.json"
- }
- }
- },
- "delete": {
- "tags": [
- "Threads"
- ],
- "summary": "Deletes a thread.",
- "operationId": "Chat_DeleteChatThread",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread to be deleted.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "204": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Delete chat thread": {
- "$ref": "./examples/Threads_DeleteChatThread.json"
- }
- }
- }
- }
- },
- "definitions": {
- "CommunicationUserIdentifierModel": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationUserIdentifierModel"
- },
- "CommunicationCloudEnvironment": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationCloudEnvironmentModel"
- },
- "MicrosoftTeamsUserIdentifierModel": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/MicrosoftTeamsUserIdentifierModel"
- },
- "CommunicationIdentifierModel": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationIdentifierModel"
- },
- "ChatMessageReadReceipt": {
- "description": "A chat message read receipt indicates the time a chat message was read by a recipient.",
- "required": [
- "chatMessageId",
- "readOn",
- "senderCommunicationIdentifier"
- ],
- "type": "object",
- "properties": {
- "senderCommunicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- },
- "chatMessageId": {
- "description": "Id of the chat message that has been read. This id is generated by the server.",
- "type": "string",
- "example": "1591137790240"
- },
- "readOn": {
- "format": "date-time",
- "description": "The time at which the message was read. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatMessageReadReceiptsCollection": {
- "description": "A paged collection of chat message read receipts.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Collection of chat message read receipts.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatMessageReadReceipt"
- }
- },
- "nextLink": {
- "description": "If there are more chat message read receipts that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "CommunicationError": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationError"
- },
- "CommunicationErrorResponse": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
- },
- "SendReadReceiptRequest": {
- "description": "Request payload for sending a read receipt.",
- "required": [
- "chatMessageId"
- ],
- "type": "object",
- "properties": {
- "chatMessageId": {
- "description": "Id of the latest chat message read by the user.",
- "type": "string",
- "example": "1592435762364"
- }
- }
- },
- "ChatMessageType": {
- "description": "The chat message type.",
- "enum": [
- "text",
- "html",
- "topicUpdated",
- "participantAdded",
- "participantRemoved"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "ChatMessageType",
- "modelAsString": true
- }
- },
- "SendChatMessageRequest": {
- "description": "Details of the message to send.",
- "required": [
- "content"
- ],
- "type": "object",
- "properties": {
- "content": {
- "description": "Chat message content.",
- "type": "string",
- "example": "Come one guys, lets go for lunch together."
- },
- "senderDisplayName": {
- "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
- "type": "string",
- "example": "Bob Admin"
- },
- "type": {
- "$ref": "#/definitions/ChatMessageType"
- }
- }
- },
- "SendChatMessageResult": {
- "description": "Result of the send message operation.",
- "required": [
- "id"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "A server-generated message id.",
- "type": "string",
- "example": "123456789"
- }
- }
- },
- "ChatParticipant": {
- "description": "A participant of the chat thread.",
- "required": [
- "communicationIdentifier"
- ],
- "type": "object",
- "properties": {
- "communicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- },
- "displayName": {
- "description": "Display name for the chat participant.",
- "type": "string",
- "example": "Bob"
- },
- "shareHistoryTime": {
- "format": "date-time",
- "description": "Time from which the chat history is shared with the participant. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatMessageContent": {
- "description": "Content of a chat message.",
- "type": "object",
- "properties": {
- "message": {
- "description": "Chat message content for messages of types text or html.",
- "type": "string",
- "example": "Come one guys, lets go for lunch together."
- },
- "topic": {
- "description": "Chat message content for messages of type topicUpdated.",
- "type": "string",
- "example": "Lunch Chat thread"
- },
- "participants": {
- "description": "Chat message content for messages of types participantAdded or participantRemoved.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- },
- "initiatorCommunicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- }
- }
- },
- "ChatMessage": {
- "description": "Chat message.",
- "required": [
- "createdOn",
- "id",
- "sequenceId",
- "type",
- "version"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "The id of the chat message. This id is server generated.",
- "type": "string",
- "example": "123456789"
- },
- "type": {
- "$ref": "#/definitions/ChatMessageType"
- },
- "sequenceId": {
- "description": "Sequence of the chat message in the conversation.",
- "type": "string"
- },
- "version": {
- "description": "Version of the chat message.",
- "type": "string"
- },
- "content": {
- "$ref": "#/definitions/ChatMessageContent"
- },
- "senderDisplayName": {
- "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
- "type": "string",
- "example": "Jane"
- },
- "createdOn": {
- "format": "date-time",
- "description": "The timestamp when the chat message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "senderCommunicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- },
- "deletedOn": {
- "format": "date-time",
- "description": "The timestamp (if applicable) when the message was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "editedOn": {
- "format": "date-time",
- "description": "The last timestamp (if applicable) when the message was edited. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatMessagesCollection": {
- "description": "Collection of chat messages for a particular chat thread.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Collection of chat messages.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatMessage"
- }
- },
- "nextLink": {
- "description": "If there are more chat messages that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "UpdateChatMessageRequest": {
- "description": "Request payload for updating a chat message.",
- "type": "object",
- "properties": {
- "content": {
- "description": "Chat message content.",
- "type": "string",
- "example": "Let's go for lunch together."
- }
- }
- },
- "ChatParticipantsCollection": {
- "description": "Collection of participants belong to a particular thread.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Chat participants.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- },
- "nextLink": {
- "description": "If there are more chat participants that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "AddChatParticipantsRequest": {
- "description": "Participants to be added to the thread.",
- "required": [
- "participants"
- ],
- "type": "object",
- "properties": {
- "participants": {
- "description": "Participants to add to a chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- }
- }
- },
- "AddChatParticipantsResult": {
- "description": "Result of the add chat participants operation.",
- "type": "object",
- "properties": {
- "invalidParticipants": {
- "description": "The participants that failed to be added to the chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/CommunicationError"
- },
- "readOnly": true
- }
- }
- },
- "CreateChatThreadRequest": {
- "description": "Request payload for creating a chat thread.",
- "required": [
- "topic"
- ],
- "type": "object",
- "properties": {
- "topic": {
- "description": "The chat thread topic.",
- "type": "string",
- "example": "Lunch Thread"
- },
- "participants": {
- "description": "Participants to be added to the chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- }
- }
- },
- "ChatThreadProperties": {
- "description": "Chat thread.",
- "required": [
- "createdByCommunicationIdentifier",
- "createdOn",
- "id",
- "topic"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "Chat thread id.",
- "type": "string",
- "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
- },
- "topic": {
- "description": "Chat thread topic.",
- "type": "string",
- "example": "Lunch Chat thread"
- },
- "createdOn": {
- "format": "date-time",
- "description": "The timestamp when the chat thread was created. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "createdByCommunicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- },
- "deletedOn": {
- "format": "date-time",
- "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "CreateChatThreadResult": {
- "description": "Result of the create chat thread operation.",
- "type": "object",
- "properties": {
- "chatThread": {
- "$ref": "#/definitions/ChatThreadProperties"
- },
- "invalidParticipants": {
- "description": "The participants that failed to be added to the chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/CommunicationError"
- },
- "readOnly": true
- }
- }
- },
- "ChatThreadItem": {
- "description": "Summary information of a chat thread.",
- "required": [
- "id",
- "topic"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "Chat thread id.",
- "type": "string",
- "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
- },
- "topic": {
- "description": "Chat thread topic.",
- "type": "string",
- "example": "Lunch Chat thread"
- },
- "deletedOn": {
- "format": "date-time",
- "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "lastMessageReceivedOn": {
- "format": "date-time",
- "description": "The timestamp when the last message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "readOnly": true,
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatThreadsItemCollection": {
- "description": "Collection of chat threads.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Collection of chat threads.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatThreadItem"
- }
- },
- "nextLink": {
- "description": "If there are more chat threads that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "UpdateChatThreadRequest": {
- "description": "Request payload for updating a chat thread.",
- "type": "object",
- "properties": {
- "topic": {
- "description": "Chat thread topic.",
- "type": "string",
- "example": "Lunch Thread"
- }
- }
- }
- },
- "parameters": {
- "ApiVersionParameter": {
- "in": "query",
- "name": "api-version",
- "description": "Version of API to invoke.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
- "Endpoint": {
- "in": "path",
- "name": "endpoint",
- "description": "The endpoint of the Azure Communication resource.",
- "required": true,
- "type": "string",
- "x-ms-skip-url-encoding": true,
- "x-ms-parameter-location": "client"
- }
- },
- "securityDefinitions": {
- "Authorization": {
- "type": "apiKey",
- "name": "Authorization",
- "in": "header",
- "description": "An ACS (Azure Communication Services) user access token."
- }
- },
- "security": [
- {
- "Authorization": []
- }
- ],
- "x-ms-parameterized-host": {
- "hostTemplate": "{endpoint}",
- "useSchemePrefix": false,
- "parameters": [
- {
- "$ref": "#/parameters/Endpoint"
- }
- ]
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/readme.md b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/readme.md
deleted file mode 100644
index e3a45fb78fe4..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/readme.md
+++ /dev/null
@@ -1,110 +0,0 @@
-# communicationservices
-
-> see https://aka.ms/autorest
-
-This is the AutoRest configuration file for communicationservices.
-
-## Getting Started
-
-To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run:
-
-> `autorest readme.md`
-
-To see additional help and options, run:
-
-> `autorest --help`
-
-For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page.
-
----
-
-## Configuration
-
-### Basic Information
-
-These are the global settings for the communicationservices.
-
-```yaml
-openapi-type: data-plane
-tag: package-2020-07-20-preview1
-```
-
-### Tag: package-2020-09-21-preview2
-
-These settings apply only when `--tag=package-2020-09-21-preview2` is specified on the command line.
-
-```yaml $(tag) == 'package-2020-09-21-preview2'
-input-file:
- - preview/2020-09-21-preview2/communicationserviceschat.json
-title:
- Azure Communication Services
-```
-
-### Tag: package-2020-11-01-preview3
-
-These settings apply only when `--tag=package-2020-11-01-preview3` is specified on the command line.
-
-```yaml $(tag) == 'package-2020-11-01-preview3'
-input-file:
- - preview/2020-11-01-preview3/communicationserviceschat.json
-title:
- Azure Communication Services
-```
-
-### Tag: package-2021-01-27-preview4
-
-These settings apply only when `--tag=package-2021-01-27-preview4` is specified on the command line.
-
-```yaml $(tag) == 'package-2021-01-27-preview4'
-input-file:
- - preview/2021-01-27-preview4/communicationserviceschat.json
-title:
- Azure Communication Services
-```
-
-### Tag: package-2021-03-01-preview5
-
-These settings apply only when `--tag=package-2021-03-01-preview5` is specified on the command line.
-
-```yaml $(tag) == 'package-2021-03-01-preview5'
-input-file:
- - preview/2021-03-01-preview5/communicationserviceschat.json
-title:
- Azure Communication Services
-```
-
-### Tag: package-chat-2021-03-07
-
-These settings apply only when `--tag=package-chat-2021-03-07` is specified on the command line.
-
-```yaml $(tag) == 'package-chat-2021-03-07'
-input-file:
- - stable/2021-03-07/communicationserviceschat.json
-title:
- Azure Communication Services
-```
-
----
-
-# Code Generation
-
-## Swagger to SDK
-
-This section describes what SDK should be generated by the automatic system.
-This is not used by Autorest itself.
-
-## Python
-
-See configuration in [readme.python.md](./readme.python.md)
-
-## Ruby
-
-See configuration in [readme.ruby.md](./readme.ruby.md)
-
-## TypeScript
-
-See configuration in [readme.typescript.md](./readme.typescript.md)
-
-## CSharp
-
-See configuration in [readme.csharp.md](./readme.csharp.md)
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/communicationserviceschat.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/communicationserviceschat.json
deleted file mode 100644
index 9d880c5bf71e..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/stable/2021-03-07/communicationserviceschat.json
+++ /dev/null
@@ -1,1690 +0,0 @@
-{
- "swagger": "2.0",
- "info": {
- "title": "Azure Communication Chat Service",
- "description": "Azure Communication Chat Service",
- "version": "2021-03-07"
- },
- "paths": {
- "/chat/threads/{chatThreadId}/readReceipts": {
- "get": {
- "tags": [
- "Threads"
- ],
- "summary": "Gets chat message read receipts for a thread.",
- "operationId": "ChatThread_ListChatReadReceipts",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to get the chat message read receipts for.",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of chat message read receipts to be returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "skip",
- "description": "Skips chat message read receipts up to a specified position in response.",
- "type": "integer",
- "format": "int32"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns the requested `ChatMessageReadReceipt` resources.",
- "schema": {
- "$ref": "#/definitions/ChatMessageReadReceiptsCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get thread read receipts with pagination (max page size)": {
- "$ref": "./examples/Conversations_ListChatReadReceiptsWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- },
- "post": {
- "tags": [
- "Threads"
- ],
- "summary": "Sends a read receipt event to a thread, on behalf of a user.",
- "operationId": "ChatThread_SendChatReadReceipt",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to send the read receipt event to.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "sendReadReceiptRequest",
- "description": "Read receipt details.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/SendReadReceiptRequest"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Send read receipt": {
- "$ref": "./examples/Conversations_SendChatReadReceipt.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/messages": {
- "post": {
- "tags": [
- "Messages"
- ],
- "summary": "Sends a message to a thread.",
- "operationId": "ChatThread_SendChatMessage",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to send the message to.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "sendChatMessageRequest",
- "description": "Details of the message to send.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/SendChatMessageRequest"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "Message sent, the `Location` header contains the URL for the newly sent message.",
- "schema": {
- "$ref": "#/definitions/SendChatMessageResult"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Send Message": {
- "$ref": "./examples/Messages_SendChatMessage.json"
- }
- }
- },
- "get": {
- "tags": [
- "Messages"
- ],
- "summary": "Gets a list of messages from a thread.",
- "operationId": "ChatThread_ListChatMessages",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id of the message.",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of messages to be returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "startTime",
- "description": "The earliest point in time to get messages up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "format": "date-time"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/ChatMessagesCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get messages with pagination (max page size)": {
- "$ref": "./examples/Messages_ListChatMessagesWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- }
- },
- "/chat/threads/{chatThreadId}/messages/{chatMessageId}": {
- "get": {
- "tags": [
- "Messages"
- ],
- "summary": "Gets a message by id.",
- "operationId": "ChatThread_GetChatMessage",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to which the message was sent.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "chatMessageId",
- "description": "The message id.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns a `Message` resource.",
- "schema": {
- "$ref": "#/definitions/ChatMessage"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get Message": {
- "$ref": "./examples/Messages_GetChatMessage.json"
- }
- }
- },
- "patch": {
- "tags": [
- "Messages"
- ],
- "summary": "Updates a message.",
- "operationId": "ChatThread_UpdateChatMessage",
- "consumes": [
- "application/merge-patch+json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to which the message was sent.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "chatMessageId",
- "description": "The message id.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "updateChatMessageRequest",
- "description": "Details of the request to update the message.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/UpdateChatMessageRequest"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "Message is successfully updated."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Update message content": {
- "$ref": "./examples/Messages_UpdateChatMessage.json"
- }
- }
- },
- "delete": {
- "tags": [
- "Messages"
- ],
- "summary": "Deletes a message.",
- "operationId": "ChatThread_DeleteChatMessage",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The thread id to which the message was sent.",
- "required": true,
- "type": "string"
- },
- {
- "in": "path",
- "name": "chatMessageId",
- "description": "The message id.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "204": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Delete message": {
- "$ref": "./examples/Messages_DeleteChatMessage.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/typing": {
- "post": {
- "tags": [
- "Messages"
- ],
- "summary": "Posts a typing event to a thread, on behalf of a user.",
- "operationId": "ChatThread_SendTypingNotification",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Post typing event to a thread": {
- "$ref": "./examples/Messages_SendTypingNotification.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/participants": {
- "get": {
- "tags": [
- "Participants"
- ],
- "summary": "Gets the participants of a thread.",
- "operationId": "ChatThread_ListChatParticipants",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to get participants for.",
- "required": true,
- "type": "string"
- },
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of participants to be returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "skip",
- "description": "Skips participants up to a specified position in response.",
- "type": "integer",
- "format": "int32"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns the participants of a thread.",
- "schema": {
- "$ref": "#/definitions/ChatParticipantsCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get participants with pagination (max page size)": {
- "$ref": "./examples/Participants_ListChatParticipantsWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- }
- },
- "/chat/threads/{chatThreadId}/participants/:remove": {
- "post": {
- "tags": [
- "Participants"
- ],
- "summary": "Remove a participant from a thread.",
- "operationId": "ChatThread_RemoveChatParticipant",
- "consumes": [
- "application/json",
- "application/merge-patch+json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Thread id to remove the participant from.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "participantCommunicationIdentifier",
- "description": "Id of the thread participant to remove from the thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Remove participant": {
- "$ref": "./examples/Participants_RemoveChatParticipant.json"
- }
- }
- }
- },
- "/chat/threads/{chatThreadId}/participants/:add": {
- "post": {
- "tags": [
- "Participants"
- ],
- "summary": "Adds thread participants to a thread. If participants already exist, no change occurs.",
- "operationId": "ChatThread_AddChatParticipants",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread to add participants to.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "addChatParticipantsRequest",
- "description": "Thread participants to be added to the thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/AddChatParticipantsRequest"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "The participants were successfully added.",
- "schema": {
- "$ref": "#/definitions/AddChatParticipantsResult"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Add participants": {
- "$ref": "./examples/Participants_AddChatParticipants.json"
- }
- }
- }
- },
- "/chat/threads": {
- "post": {
- "tags": [
- "Threads"
- ],
- "summary": "Creates a chat thread.",
- "operationId": "Chat_CreateChatThread",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "header",
- "name": "repeatability-request-id",
- "description": "If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-Id and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-Id is an opaque string representing a client-generated, globally unique for all time, identifier for the request. It is recommended to use version 4 (random) UUIDs.",
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "createChatThreadRequest",
- "description": "Request payload for creating a chat thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/CreateChatThreadRequest"
- }
- }
- ],
- "responses": {
- "201": {
- "description": "Thread created, the `Location` header would contain the URL for the newly created thread.",
- "schema": {
- "$ref": "#/definitions/CreateChatThreadResult"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Create chat thread": {
- "$ref": "./examples/Threads_CreateChatThread.json"
- },
- "Create chat thread with repeatability request id header": {
- "$ref": "./examples/Threads_CreateChatThreadWithIdempotencyToken.json"
- }
- }
- },
- "get": {
- "tags": [
- "Threads"
- ],
- "summary": "Gets the list of chat threads of a user.",
- "operationId": "Chat_ListChatThreads",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "query",
- "name": "maxPageSize",
- "description": "The maximum number of chat threads returned per page.",
- "type": "integer",
- "format": "int32"
- },
- {
- "in": "query",
- "name": "startTime",
- "description": "The earliest point in time to get chat threads up to. The timestamp should be in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "format": "date-time"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns a `GetThreadsResponse` resource.",
- "schema": {
- "$ref": "#/definitions/ChatThreadsItemCollection"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get threads with pagination (Max Page Size)": {
- "$ref": "./examples/Threads_ListChatThreadsWithPageSize.json"
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink",
- "itemName": "value"
- }
- }
- },
- "/chat/threads/{chatThreadId}": {
- "patch": {
- "tags": [
- "Threads"
- ],
- "summary": "Updates a thread's properties.",
- "operationId": "ChatThread_UpdateChatThreadProperties",
- "consumes": [
- "application/merge-patch+json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "The id of the thread to update.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "updateChatThreadRequest",
- "description": "Request payload for updating a chat thread.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/UpdateChatThreadRequest"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "Thread was successfully updated."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Update chat thread topic": {
- "$ref": "./examples/Threads_UpdateChatThreadTopic.json"
- }
- }
- },
- "get": {
- "tags": [
- "Threads"
- ],
- "summary": "Gets a chat thread's properties.",
- "operationId": "ChatThread_GetChatThreadProperties",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "Request successful. The action returns a chat thread.",
- "schema": {
- "$ref": "#/definitions/ChatThreadProperties"
- }
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Get chat thread": {
- "$ref": "./examples/Threads_GetChatThread.json"
- }
- }
- },
- "delete": {
- "tags": [
- "Threads"
- ],
- "summary": "Deletes a thread.",
- "operationId": "Chat_DeleteChatThread",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "chatThreadId",
- "description": "Id of the thread to be deleted.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "204": {
- "description": "Request successful."
- },
- "401": {
- "description": "Unauthorized.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "403": {
- "description": "Forbidden.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "429": {
- "description": "Too many requests.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- },
- "503": {
- "description": "Service unavailable.",
- "schema": {
- "$ref": "#/definitions/CommunicationErrorResponse"
- },
- "x-ms-error-response": true
- }
- },
- "x-ms-examples": {
- "Delete chat thread": {
- "$ref": "./examples/Threads_DeleteChatThread.json"
- }
- }
- }
- }
- },
- "definitions": {
- "CommunicationUserIdentifierModel": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationUserIdentifierModel"
- },
- "CommunicationCloudEnvironment": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationCloudEnvironmentModel"
- },
- "MicrosoftTeamsUserIdentifierModel": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/MicrosoftTeamsUserIdentifierModel"
- },
- "CommunicationIdentifierModel": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationIdentifierModel"
- },
- "ChatMessageReadReceipt": {
- "description": "A chat message read receipt indicates the time a chat message was read by a recipient.",
- "required": [
- "chatMessageId",
- "readOn",
- "senderCommunicationIdentifier"
- ],
- "type": "object",
- "properties": {
- "senderCommunicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- },
- "chatMessageId": {
- "description": "Id of the chat message that has been read. This id is generated by the server.",
- "type": "string",
- "example": "1591137790240"
- },
- "readOn": {
- "format": "date-time",
- "description": "The time at which the message was read. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatMessageReadReceiptsCollection": {
- "description": "A paged collection of chat message read receipts.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Collection of chat message read receipts.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatMessageReadReceipt"
- }
- },
- "nextLink": {
- "description": "If there are more chat message read receipts that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "CommunicationError": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationError"
- },
- "CommunicationErrorResponse": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
- },
- "SendReadReceiptRequest": {
- "description": "Request payload for sending a read receipt.",
- "required": [
- "chatMessageId"
- ],
- "type": "object",
- "properties": {
- "chatMessageId": {
- "description": "Id of the latest chat message read by the user.",
- "type": "string",
- "example": "1592435762364"
- }
- }
- },
- "ChatMessageType": {
- "description": "The chat message type.",
- "enum": [
- "text",
- "html",
- "topicUpdated",
- "participantAdded",
- "participantRemoved"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "ChatMessageType",
- "modelAsString": true
- }
- },
- "SendChatMessageRequest": {
- "description": "Details of the message to send.",
- "required": [
- "content"
- ],
- "type": "object",
- "properties": {
- "content": {
- "description": "Chat message content.",
- "type": "string",
- "example": "Come one guys, lets go for lunch together."
- },
- "senderDisplayName": {
- "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
- "type": "string",
- "example": "Bob Admin"
- },
- "type": {
- "$ref": "#/definitions/ChatMessageType"
- }
- }
- },
- "SendChatMessageResult": {
- "description": "Result of the send message operation.",
- "required": [
- "id"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "A server-generated message id.",
- "type": "string",
- "example": "123456789"
- }
- }
- },
- "ChatParticipant": {
- "description": "A participant of the chat thread.",
- "required": [
- "communicationIdentifier"
- ],
- "type": "object",
- "properties": {
- "communicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- },
- "displayName": {
- "description": "Display name for the chat participant.",
- "type": "string",
- "example": "Bob"
- },
- "shareHistoryTime": {
- "format": "date-time",
- "description": "Time from which the chat history is shared with the participant. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatMessageContent": {
- "description": "Content of a chat message.",
- "type": "object",
- "properties": {
- "message": {
- "description": "Chat message content for messages of types text or html.",
- "type": "string",
- "example": "Come one guys, lets go for lunch together."
- },
- "topic": {
- "description": "Chat message content for messages of type topicUpdated.",
- "type": "string",
- "example": "Lunch Chat thread"
- },
- "participants": {
- "description": "Chat message content for messages of types participantAdded or participantRemoved.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- },
- "initiatorCommunicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- }
- }
- },
- "ChatMessage": {
- "description": "Chat message.",
- "required": [
- "createdOn",
- "id",
- "sequenceId",
- "type",
- "version"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "The id of the chat message. This id is server generated.",
- "type": "string",
- "example": "123456789"
- },
- "type": {
- "$ref": "#/definitions/ChatMessageType"
- },
- "sequenceId": {
- "description": "Sequence of the chat message in the conversation.",
- "type": "string"
- },
- "version": {
- "description": "Version of the chat message.",
- "type": "string"
- },
- "content": {
- "$ref": "#/definitions/ChatMessageContent"
- },
- "senderDisplayName": {
- "description": "The display name of the chat message sender. This property is used to populate sender name for push notifications.",
- "type": "string",
- "example": "Jane"
- },
- "createdOn": {
- "format": "date-time",
- "description": "The timestamp when the chat message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "senderCommunicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- },
- "deletedOn": {
- "format": "date-time",
- "description": "The timestamp (if applicable) when the message was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "editedOn": {
- "format": "date-time",
- "description": "The last timestamp (if applicable) when the message was edited. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatMessagesCollection": {
- "description": "Collection of chat messages for a particular chat thread.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Collection of chat messages.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatMessage"
- }
- },
- "nextLink": {
- "description": "If there are more chat messages that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "UpdateChatMessageRequest": {
- "description": "Request payload for updating a chat message.",
- "type": "object",
- "properties": {
- "content": {
- "description": "Chat message content.",
- "type": "string",
- "example": "Let's go for lunch together."
- }
- }
- },
- "ChatParticipantsCollection": {
- "description": "Collection of participants belong to a particular thread.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Chat participants.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- },
- "nextLink": {
- "description": "If there are more chat participants that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "AddChatParticipantsRequest": {
- "description": "Participants to be added to the thread.",
- "required": [
- "participants"
- ],
- "type": "object",
- "properties": {
- "participants": {
- "description": "Participants to add to a chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- }
- }
- },
- "AddChatParticipantsResult": {
- "description": "Result of the add chat participants operation.",
- "type": "object",
- "properties": {
- "invalidParticipants": {
- "description": "The participants that failed to be added to the chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/CommunicationError"
- },
- "readOnly": true
- }
- }
- },
- "CreateChatThreadRequest": {
- "description": "Request payload for creating a chat thread.",
- "required": [
- "topic"
- ],
- "type": "object",
- "properties": {
- "topic": {
- "description": "The chat thread topic.",
- "type": "string",
- "example": "Lunch Thread"
- },
- "participants": {
- "description": "Participants to be added to the chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatParticipant"
- }
- }
- }
- },
- "ChatThreadProperties": {
- "description": "Chat thread.",
- "required": [
- "createdByCommunicationIdentifier",
- "createdOn",
- "id",
- "topic"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "Chat thread id.",
- "type": "string",
- "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
- },
- "topic": {
- "description": "Chat thread topic.",
- "type": "string",
- "example": "Lunch Chat thread"
- },
- "createdOn": {
- "format": "date-time",
- "description": "The timestamp when the chat thread was created. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "createdByCommunicationIdentifier": {
- "$ref": "#/definitions/CommunicationIdentifierModel"
- },
- "deletedOn": {
- "format": "date-time",
- "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "CreateChatThreadResult": {
- "description": "Result of the create chat thread operation.",
- "type": "object",
- "properties": {
- "chatThread": {
- "$ref": "#/definitions/ChatThreadProperties"
- },
- "invalidParticipants": {
- "description": "The participants that failed to be added to the chat thread.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/CommunicationError"
- },
- "readOnly": true
- }
- }
- },
- "ChatThreadItem": {
- "description": "Summary information of a chat thread.",
- "required": [
- "id",
- "topic"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "Chat thread id.",
- "type": "string",
- "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
- },
- "topic": {
- "description": "Chat thread topic.",
- "type": "string",
- "example": "Lunch Chat thread"
- },
- "deletedOn": {
- "format": "date-time",
- "description": "The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "example": "2020-10-30T10:50:50Z"
- },
- "lastMessageReceivedOn": {
- "format": "date-time",
- "description": "The timestamp when the last message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`.",
- "type": "string",
- "readOnly": true,
- "example": "2020-10-30T10:50:50Z"
- }
- }
- },
- "ChatThreadsItemCollection": {
- "description": "Collection of chat threads.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "value": {
- "description": "Collection of chat threads.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ChatThreadItem"
- }
- },
- "nextLink": {
- "description": "If there are more chat threads that can be retrieved, the next link will be populated.",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "UpdateChatThreadRequest": {
- "description": "Request payload for updating a chat thread.",
- "type": "object",
- "properties": {
- "topic": {
- "description": "Chat thread topic.",
- "type": "string",
- "example": "Lunch Thread"
- }
- }
- }
- },
- "parameters": {
- "ApiVersionParameter": {
- "in": "query",
- "name": "api-version",
- "description": "Version of API to invoke.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
- "Endpoint": {
- "in": "path",
- "name": "endpoint",
- "description": "The endpoint of the Azure Communication resource.",
- "required": true,
- "type": "string",
- "x-ms-skip-url-encoding": true,
- "x-ms-parameter-location": "client"
- }
- },
- "securityDefinitions": {
- "Authorization": {
- "type": "apiKey",
- "name": "Authorization",
- "in": "header",
- "description": "An ACS (Azure Communication Services) user access token."
- }
- },
- "security": [
- {
- "Authorization": []
- }
- ],
- "x-ms-parameterized-host": {
- "hostTemplate": "{endpoint}",
- "useSchemePrefix": false,
- "parameters": [
- {
- "$ref": "#/parameters/Endpoint"
- }
- ]
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2021-02-22-preview1/CommunicationIdentity.json b/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2021-02-22-preview1/CommunicationIdentity.json
deleted file mode 100644
index 3a1d05a954ca..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2021-02-22-preview1/CommunicationIdentity.json
+++ /dev/null
@@ -1,313 +0,0 @@
-{
- "swagger": "2.0",
- "info": {
- "title": "CommunicationIdentityClient",
- "description": "Azure Communication Identity Service",
- "version": "2021-02-22-preview1"
- },
- "paths": {
- "/identities": {
- "post": {
- "tags": [
- "Identity"
- ],
- "summary": "Create a new identity.",
- "operationId": "CommunicationIdentity_Create",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "body",
- "schema": {
- "$ref": "#/definitions/CommunicationIdentityCreateRequest"
- }
- }
- ],
- "responses": {
- "default": {
- "description": "Error",
- "schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
- }
- },
- "201": {
- "description": "Created - Returns the created identity.",
- "schema": {
- "$ref": "#/definitions/CommunicationIdentityAccessTokenResult"
- }
- }
- },
- "x-ms-examples": {
- "Create an Identity": {
- "$ref": "./examples/CreateIdentity.json"
- }
- }
- }
- },
- "/identities/{id}": {
- "delete": {
- "tags": [
- "Identity"
- ],
- "summary": "Delete the identity, revoke all tokens for the identity and delete all associated data.",
- "operationId": "CommunicationIdentity_Delete",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "id",
- "description": "Identifier of the identity to be deleted.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "default": {
- "description": "Error",
- "schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
- }
- },
- "204": {
- "description": "Success"
- }
- },
- "x-ms-examples": {
- "Delete an identity": {
- "$ref": "./examples/DeleteIdentity.json"
- }
- }
- }
- },
- "/identities/{id}/:revokeAccessTokens": {
- "post": {
- "tags": [
- "Identity"
- ],
- "summary": "Revoke all access tokens for the specific identity.",
- "operationId": "CommunicationIdentity_RevokeAccessTokens",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "id",
- "description": "Identifier of the identity.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "default": {
- "description": "Error",
- "schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
- }
- },
- "204": {
- "description": "Success"
- }
- },
- "x-ms-examples": {
- "Revoke access tokens": {
- "$ref": "./examples/RevokeAccessTokens.json"
- }
- }
- }
- },
- "/identities/{id}/:issueAccessToken": {
- "post": {
- "tags": [
- "Token"
- ],
- "summary": "Issue a new token for an identity.",
- "operationId": "CommunicationIdentity_IssueAccessToken",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "id",
- "description": "Identifier of the identity to issue token for.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "body",
- "description": "Requesting scopes for the new token.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/CommunicationIdentityAccessTokenRequest"
- }
- }
- ],
- "responses": {
- "default": {
- "description": "Error",
- "schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
- }
- },
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/CommunicationIdentityAccessToken"
- }
- }
- },
- "x-ms-examples": {
- "Issue an access token": {
- "$ref": "./examples/IssueAccessToken.json"
- }
- }
- }
- }
- },
- "definitions": {
- "CommunicationIdentityTokenScope": {
- "description": "List of scopes for an access token.",
- "enum": [
- "chat",
- "voip"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "CommunicationIdentityTokenScope",
- "modelAsString": true
- }
- },
- "CommunicationIdentityCreateRequest": {
- "type": "object",
- "properties": {
- "createTokenWithScopes": {
- "description": "Also create access token for the created identity.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/CommunicationIdentityTokenScope"
- }
- }
- }
- },
- "CommunicationIdentity": {
- "description": "A communication identity.",
- "required": [
- "id"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "Identifier of the identity.",
- "type": "string"
- }
- }
- },
- "CommunicationIdentityAccessToken": {
- "description": "An access token.",
- "required": [
- "expiresOn",
- "token"
- ],
- "type": "object",
- "properties": {
- "token": {
- "description": "The access token issued for the identity.",
- "type": "string"
- },
- "expiresOn": {
- "format": "date-time",
- "description": "The expiry time of the token.",
- "type": "string"
- }
- }
- },
- "CommunicationIdentityAccessTokenResult": {
- "description": "A communication identity with access token.",
- "required": [
- "identity"
- ],
- "type": "object",
- "properties": {
- "identity": {
- "$ref": "#/definitions/CommunicationIdentity"
- },
- "accessToken": {
- "$ref": "#/definitions/CommunicationIdentityAccessToken"
- }
- }
- },
- "CommunicationIdentityAccessTokenRequest": {
- "required": [
- "scopes"
- ],
- "type": "object",
- "properties": {
- "scopes": {
- "description": "List of scopes attached to the token.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/CommunicationIdentityTokenScope"
- }
- }
- }
- }
- },
- "parameters": {
- "ApiVersionParameter": {
- "in": "query",
- "name": "api-version",
- "description": "Version of API to invoke.",
- "required": true,
- "type": "string"
- }
- },
- "securityDefinitions": {
- "azure_auth": {
- "type": "oauth2",
- "flow": "implicit",
- "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
- "scopes": {
- "user_impersonation": "impersonate your user account"
- }
- }
- },
- "x-ms-parameterized-host": {
- "hostTemplate": "{endpoint}",
- "useSchemePrefix": false,
- "parameters": [
- {
- "name": "endpoint",
- "description": "The communication resource, for example https://my-resource.communication.azure.com",
- "required": true,
- "type": "string",
- "in": "path",
- "x-ms-skip-url-encoding": true,
- "x-ms-parameter-location": "client"
- }
- ]
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/readme.md b/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/readme.md
deleted file mode 100644
index 109951097191..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/readme.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# communicationservices
-
-> see https://aka.ms/autorest
-
-This is the AutoRest configuration file for communicationservices.
-
-## Getting Started
-
-To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run:
-
-> `autorest readme.md`
-
-To see additional help and options, run:
-
-> `autorest --help`
-
-For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page.
-
----
-
-## Configuration
-
-### Basic Information
-
-These are the global settings for the communicationservices.
-
-```yaml
-openapi-type: data-plane
-tag: package-2020-07-20-preview1
-```
-
-
-### Tag: package-2020-07-20-preview2
-
-These settings apply only when `--tag=package-2020-07-20-preview2` is specified on the command line.
-
-```yaml $(tag) == 'package-2020-07-20-preview2'
-input-file:
- - preview/2020-07-20-preview2/CommunicationIdentity.json
-```
-
-### Tag: package-2021-03-07
-
-These settings apply only when `--tag=package-2021-03-07` is specified on the command line.
-
-```yaml $(tag) == 'package-2021-03-07'
-input-file:
- - stable/2021-03-07/CommunicationIdentity.json
-title:
- Azure Communication Services
-```
-
-### Tag: package-2021-02-22-preview1
-
-These settings apply only when `--tag=package-2021-02-22-preview1` is specified on the command line.
-
-```yaml $(tag) == 'package-2021-02-22-preview1'
-input-file:
- - preview/2021-02-22-preview1/CommunicationIdentity.json
-```
-
----
-
-# Code Generation
-
-## Swagger to SDK
-
-This section describes what SDK should be generated by the automatic system.
-This is not used by Autorest itself.
-
-## Python
-
-See configuration in [readme.python.md](./readme.python.md)
-
-## Ruby
-
-See configuration in [readme.ruby.md](./readme.ruby.md)
-
-## TypeScript
-
-See configuration in [readme.typescript.md](./readme.typescript.md)
-
-## CSharp
-
-See configuration in [readme.csharp.md](./readme.csharp.md)
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/stable/2021-03-07/CommunicationIdentity.json b/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/stable/2021-03-07/CommunicationIdentity.json
deleted file mode 100644
index e227da9f4637..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/stable/2021-03-07/CommunicationIdentity.json
+++ /dev/null
@@ -1,313 +0,0 @@
-{
- "swagger": "2.0",
- "info": {
- "title": "CommunicationIdentityClient",
- "description": "Azure Communication Identity Service",
- "version": "2021-03-07"
- },
- "paths": {
- "/identities": {
- "post": {
- "tags": [
- "Identity"
- ],
- "summary": "Create a new identity.",
- "operationId": "CommunicationIdentity_Create",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "body",
- "schema": {
- "$ref": "#/definitions/CommunicationIdentityCreateRequest"
- }
- }
- ],
- "responses": {
- "default": {
- "description": "Error",
- "schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
- }
- },
- "201": {
- "description": "Created - Returns the created identity.",
- "schema": {
- "$ref": "#/definitions/CommunicationIdentityAccessTokenResult"
- }
- }
- },
- "x-ms-examples": {
- "Create an Identity": {
- "$ref": "./examples/CreateIdentity.json"
- }
- }
- }
- },
- "/identities/{id}": {
- "delete": {
- "tags": [
- "Identity"
- ],
- "summary": "Delete the identity, revoke all tokens for the identity and delete all associated data.",
- "operationId": "CommunicationIdentity_Delete",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "id",
- "description": "Identifier of the identity to be deleted.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "default": {
- "description": "Error",
- "schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
- }
- },
- "204": {
- "description": "Success"
- }
- },
- "x-ms-examples": {
- "Delete an identity": {
- "$ref": "./examples/DeleteIdentity.json"
- }
- }
- }
- },
- "/identities/{id}/:revokeAccessTokens": {
- "post": {
- "tags": [
- "Identity"
- ],
- "summary": "Revoke all access tokens for the specific identity.",
- "operationId": "CommunicationIdentity_RevokeAccessTokens",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "id",
- "description": "Identifier of the identity.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- }
- ],
- "responses": {
- "default": {
- "description": "Error",
- "schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
- }
- },
- "204": {
- "description": "Success"
- }
- },
- "x-ms-examples": {
- "Revoke access tokens": {
- "$ref": "./examples/RevokeAccessTokens.json"
- }
- }
- }
- },
- "/identities/{id}/:issueAccessToken": {
- "post": {
- "tags": [
- "Token"
- ],
- "summary": "Issue a new token for an identity.",
- "operationId": "CommunicationIdentity_IssueAccessToken",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "in": "path",
- "name": "id",
- "description": "Identifier of the identity to issue token for.",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/ApiVersionParameter"
- },
- {
- "in": "body",
- "name": "body",
- "description": "Requesting scopes for the new token.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/CommunicationIdentityAccessTokenRequest"
- }
- }
- ],
- "responses": {
- "default": {
- "description": "Error",
- "schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
- }
- },
- "200": {
- "description": "Success",
- "schema": {
- "$ref": "#/definitions/CommunicationIdentityAccessToken"
- }
- }
- },
- "x-ms-examples": {
- "Issue an access token": {
- "$ref": "./examples/IssueAccessToken.json"
- }
- }
- }
- }
- },
- "definitions": {
- "CommunicationIdentityTokenScope": {
- "description": "List of scopes for an access token.",
- "enum": [
- "chat",
- "voip"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "CommunicationIdentityTokenScope",
- "modelAsString": true
- }
- },
- "CommunicationIdentityCreateRequest": {
- "type": "object",
- "properties": {
- "createTokenWithScopes": {
- "description": "Also create access token for the created identity.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/CommunicationIdentityTokenScope"
- }
- }
- }
- },
- "CommunicationIdentity": {
- "description": "A communication identity.",
- "required": [
- "id"
- ],
- "type": "object",
- "properties": {
- "id": {
- "description": "Identifier of the identity.",
- "type": "string"
- }
- }
- },
- "CommunicationIdentityAccessToken": {
- "description": "An access token.",
- "required": [
- "expiresOn",
- "token"
- ],
- "type": "object",
- "properties": {
- "token": {
- "description": "The access token issued for the identity.",
- "type": "string"
- },
- "expiresOn": {
- "format": "date-time",
- "description": "The expiry time of the token.",
- "type": "string"
- }
- }
- },
- "CommunicationIdentityAccessTokenResult": {
- "description": "A communication identity with access token.",
- "required": [
- "identity"
- ],
- "type": "object",
- "properties": {
- "identity": {
- "$ref": "#/definitions/CommunicationIdentity"
- },
- "accessToken": {
- "$ref": "#/definitions/CommunicationIdentityAccessToken"
- }
- }
- },
- "CommunicationIdentityAccessTokenRequest": {
- "required": [
- "scopes"
- ],
- "type": "object",
- "properties": {
- "scopes": {
- "description": "List of scopes attached to the token.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/CommunicationIdentityTokenScope"
- }
- }
- }
- }
- },
- "parameters": {
- "ApiVersionParameter": {
- "in": "query",
- "name": "api-version",
- "description": "Version of API to invoke.",
- "required": true,
- "type": "string"
- }
- },
- "securityDefinitions": {
- "azure_auth": {
- "type": "oauth2",
- "flow": "implicit",
- "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
- "scopes": {
- "user_impersonation": "impersonate your user account"
- }
- }
- },
- "x-ms-parameterized-host": {
- "hostTemplate": "{endpoint}",
- "useSchemePrefix": false,
- "parameters": [
- {
- "name": "endpoint",
- "description": "The communication resource, for example https://my-resource.communication.azure.com",
- "required": true,
- "type": "string",
- "in": "path",
- "x-ms-skip-url-encoding": true,
- "x-ms-parameter-location": "client"
- }
- ]
- }
-}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/readme.csharp.md b/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/readme.csharp.md
deleted file mode 100644
index 2efd3715cdc3..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/readme.csharp.md
+++ /dev/null
@@ -1,15 +0,0 @@
-## C
-
-These settings apply only when `--csharp` is specified on the command line.
-Please also specify `--csharp-sdks-folder=`.
-
-```yaml $(csharp)
-csharp:
- azure-arm: true
- license-header: MICROSOFT_MIT_NO_VERSION
- payload-flattening-threshold: 1
- clear-output-folder: true
- client-side-validation: false
- namespace: Microsoft.CommunicationServices
- output-folder: $(csharp-sdks-folder)/communicationservices/management/Microsoft.CommunicationServices/GeneratedProtocol
-```
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/readme.python.md b/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/readme.python.md
deleted file mode 100644
index f7f55ff2159b..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/readme.python.md
+++ /dev/null
@@ -1,21 +0,0 @@
-## Python
-
-These settings apply only when `--python` is specified on the command line.
-Please also specify `--python-sdks-folder=`.
-
-```yaml $(python)
-python:
- azure-arm: true
- license-header: MICROSOFT_MIT_NO_VERSION
- payload-flattening-threshold: 2
- namespace: Microsoft.CommunicationServices
- package-name: communicationservices
- package-version: 2020-04-16-privatepreview
- clear-output-folder: true
-```
-
-```yaml $(python)
-python:
- no-namespace-folders: true
- output-folder: $(python-sdks-folder)/azure-mgmt/communicationservices
-```
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/readme.ruby.md b/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/readme.ruby.md
deleted file mode 100644
index f521ab44dbf5..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/readme.ruby.md
+++ /dev/null
@@ -1,19 +0,0 @@
-## Ruby
-
-These settings apply only when `--ruby` is specified on the command line.
-
-```yaml
-package-name: azure_mgmt_communicationservices
-package-version: 2020-04-16-privatepreview
-azure-arm: true
-```
-
-### Tag: package-2020-04-16-privatepreview and ruby
-
-These settings apply only when `--tag=package-2020-04-16-privatepreview --ruby` is specified on the command line.
-Please also specify `--ruby-sdks-folder=`.
-
-```yaml $(tag) == 'package-2020-04-16-privatepreview' && $(ruby)
-namespace: Microsoft.CommunicationServices
-output-folder: $(ruby-sdks-folder)/communicationservices
-```
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/readme.typescript.md b/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/readme.typescript.md
deleted file mode 100644
index be9f877fd1c2..000000000000
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/readme.typescript.md
+++ /dev/null
@@ -1,13 +0,0 @@
-## 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: "communicationservices"
- output-folder: "$(typescript-sdks-folder)/packages/communicationservices"
- payload-flattening-threshold: 1
- generate-metadata: true
-```
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesCommon/readme.csharp.md b/specification/communication/data-plane/PhoneNumbers/readme.csharp.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesCommon/readme.csharp.md
rename to specification/communication/data-plane/PhoneNumbers/readme.csharp.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/readme.md b/specification/communication/data-plane/PhoneNumbers/readme.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/readme.md
rename to specification/communication/data-plane/PhoneNumbers/readme.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/readme.python.md b/specification/communication/data-plane/PhoneNumbers/readme.python.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/readme.python.md
rename to specification/communication/data-plane/PhoneNumbers/readme.python.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/readme.ruby.md b/specification/communication/data-plane/PhoneNumbers/readme.ruby.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/readme.ruby.md
rename to specification/communication/data-plane/PhoneNumbers/readme.ruby.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/readme.typescript.md b/specification/communication/data-plane/PhoneNumbers/readme.typescript.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/readme.typescript.md
rename to specification/communication/data-plane/PhoneNumbers/readme.typescript.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/DeleteOperation.json b/specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/DeleteOperation.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/DeleteOperation.json
rename to specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/DeleteOperation.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/GetOperation.json b/specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/GetOperation.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/GetOperation.json
rename to specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/GetOperation.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/GetPhoneNumber.json b/specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/GetPhoneNumber.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/GetPhoneNumber.json
rename to specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/GetPhoneNumber.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/GetPhoneNumberSearchResult.json b/specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/GetPhoneNumberSearchResult.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/GetPhoneNumberSearchResult.json
rename to specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/GetPhoneNumberSearchResult.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/GetPhoneNumbers.json b/specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/GetPhoneNumbers.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/GetPhoneNumbers.json
rename to specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/GetPhoneNumbers.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/PurchasePhoneNumbers.json b/specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/PurchasePhoneNumbers.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/PurchasePhoneNumbers.json
rename to specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/PurchasePhoneNumbers.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/ReleasePhoneNumber.json b/specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/ReleasePhoneNumber.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/ReleasePhoneNumber.json
rename to specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/ReleasePhoneNumber.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/SearchPhoneNumbers.json b/specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/SearchPhoneNumbers.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/SearchPhoneNumbers.json
rename to specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/SearchPhoneNumbers.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/UpdatePhoneNumberCapabilities.json b/specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/UpdatePhoneNumberCapabilities.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/examples/UpdatePhoneNumberCapabilities.json
rename to specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/examples/UpdatePhoneNumberCapabilities.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/phonenumbers.json b/specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/phonenumbers.json
similarity index 95%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/phonenumbers.json
rename to specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/phonenumbers.json
index 2ebaac62c430..2579210b70f5 100644
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/stable/2021-03-07/phonenumbers.json
+++ b/specification/communication/data-plane/PhoneNumbers/stable/2021-03-07/phonenumbers.json
@@ -68,7 +68,7 @@
"default": {
"description": "Failure",
"schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
}
}
},
@@ -115,7 +115,7 @@
"default": {
"description": "Failure",
"schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
}
}
},
@@ -171,7 +171,7 @@
"default": {
"description": "Failure",
"schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
}
}
},
@@ -224,7 +224,7 @@
"default": {
"description": "Failure",
"schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
}
}
},
@@ -259,7 +259,7 @@
"default": {
"description": "Failure",
"schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
}
}
},
@@ -334,7 +334,7 @@
"default": {
"description": "Failure",
"schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
}
}
},
@@ -381,7 +381,7 @@
"default": {
"description": "Failure",
"schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
}
}
},
@@ -430,7 +430,7 @@
"default": {
"description": "Failure",
"schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
}
}
},
@@ -486,7 +486,7 @@
"default": {
"description": "Failure",
"schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
}
}
},
@@ -727,7 +727,7 @@
"type": "string"
},
"error": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationError"
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationError"
},
"id": {
"description": "Id of operation.",
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesSms/preview/2020-07-20-preview1/communicationservicessms.json b/specification/communication/data-plane/Sms/preview/2020-07-20-preview1/communicationservicessms.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesSms/preview/2020-07-20-preview1/communicationservicessms.json
rename to specification/communication/data-plane/Sms/preview/2020-07-20-preview1/communicationservicessms.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesSms/preview/2020-07-20-preview1/examples/send.json b/specification/communication/data-plane/Sms/preview/2020-07-20-preview1/examples/send.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesSms/preview/2020-07-20-preview1/examples/send.json
rename to specification/communication/data-plane/Sms/preview/2020-07-20-preview1/examples/send.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/readme.csharp.md b/specification/communication/data-plane/Sms/readme.csharp.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/readme.csharp.md
rename to specification/communication/data-plane/Sms/readme.csharp.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesSms/readme.md b/specification/communication/data-plane/Sms/readme.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesSms/readme.md
rename to specification/communication/data-plane/Sms/readme.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/readme.python.md b/specification/communication/data-plane/Sms/readme.python.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/readme.python.md
rename to specification/communication/data-plane/Sms/readme.python.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/readme.ruby.md b/specification/communication/data-plane/Sms/readme.ruby.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/readme.ruby.md
rename to specification/communication/data-plane/Sms/readme.ruby.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/readme.typescript.md b/specification/communication/data-plane/Sms/readme.typescript.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesPhoneNumbers/readme.typescript.md
rename to specification/communication/data-plane/Sms/readme.typescript.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesSms/stable/2021-03-07/communicationservicessms.json b/specification/communication/data-plane/Sms/stable/2021-03-07/communicationservicessms.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesSms/stable/2021-03-07/communicationservicessms.json
rename to specification/communication/data-plane/Sms/stable/2021-03-07/communicationservicessms.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesSms/stable/2021-03-07/examples/send.json b/specification/communication/data-plane/Sms/stable/2021-03-07/examples/send.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesSms/stable/2021-03-07/examples/send.json
rename to specification/communication/data-plane/Sms/stable/2021-03-07/examples/send.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/preview/2021-02-22-preview1/CommunicationTurn.json b/specification/communication/data-plane/Turn/preview/2021-02-22-preview1/CommunicationTurn.json
similarity index 93%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesTurn/preview/2021-02-22-preview1/CommunicationTurn.json
rename to specification/communication/data-plane/Turn/preview/2021-02-22-preview1/CommunicationTurn.json
index d9dba569baa5..462437eca5d9 100644
--- a/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/preview/2021-02-22-preview1/CommunicationTurn.json
+++ b/specification/communication/data-plane/Turn/preview/2021-02-22-preview1/CommunicationTurn.json
@@ -1,8 +1,8 @@
{
"swagger": "2.0",
"info": {
- "title": "CommunicationIdentityClient",
- "description": "Azure Communication Relay Service",
+ "title": "CommunicationNetworkingClient",
+ "description": "Azure Communication Networking Service",
"version": "2021-02-22-preview1"
},
"paths": {
@@ -32,7 +32,7 @@
"default": {
"description": "Error",
"schema": {
- "$ref": "../../../Microsoft.CommunicationServicesCommon/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
+ "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse"
}
},
"200": {
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/preview/2021-02-22-preview1/examples/IssueTurnCredentials.json b/specification/communication/data-plane/Turn/preview/2021-02-22-preview1/examples/IssueTurnCredentials.json
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesTurn/preview/2021-02-22-preview1/examples/IssueTurnCredentials.json
rename to specification/communication/data-plane/Turn/preview/2021-02-22-preview1/examples/IssueTurnCredentials.json
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesSms/readme.csharp.md b/specification/communication/data-plane/Turn/readme.csharp.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesSms/readme.csharp.md
rename to specification/communication/data-plane/Turn/readme.csharp.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesTurn/readme.md b/specification/communication/data-plane/Turn/readme.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesTurn/readme.md
rename to specification/communication/data-plane/Turn/readme.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesSms/readme.python.md b/specification/communication/data-plane/Turn/readme.python.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesSms/readme.python.md
rename to specification/communication/data-plane/Turn/readme.python.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesSms/readme.ruby.md b/specification/communication/data-plane/Turn/readme.ruby.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesSms/readme.ruby.md
rename to specification/communication/data-plane/Turn/readme.ruby.md
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesSms/readme.typescript.md b/specification/communication/data-plane/Turn/readme.typescript.md
similarity index 100%
rename from specification/communication/data-plane/Microsoft.CommunicationServicesSms/readme.typescript.md
rename to specification/communication/data-plane/Turn/readme.typescript.md
diff --git a/specification/communication/resource-manager/Microsoft.Communication/stable/2020-08-20/CommunicationService.json b/specification/communication/resource-manager/Microsoft.Communication/stable/2020-08-20/CommunicationService.json
index 84f2d286939b..d9b39b604428 100644
--- a/specification/communication/resource-manager/Microsoft.Communication/stable/2020-08-20/CommunicationService.json
+++ b/specification/communication/resource-manager/Microsoft.Communication/stable/2020-08-20/CommunicationService.json
@@ -173,52 +173,6 @@
}
}
},
- "/providers/Microsoft.Communication/locations/{location}/operationStatuses/{operationId}": {
- "get": {
- "description": "Gets the current status of an async operation.",
- "operationId": "OperationStatuses_Get",
- "summary": "Get Operation Status",
- "tags": [
- "OperationStatus"
- ],
- "parameters": [
- {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
- },
- {
- "$ref": "#/parameters/LocationParameter"
- },
- {
- "$ref": "#/parameters/OperationIdParameter"
- }
- ],
- "consumes": [
- "application/json"
- ],
- "responses": {
- "200": {
- "description": "The requested operation status",
- "schema": {
- "$ref": "#/definitions/OperationStatus"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
- }
- }
- },
- "produces": [
- "application/json"
- ],
- "x-ms-examples": {
- "Get OperationStatus": {
- "$ref": "./examples/getOperationStatus.json"
- }
- }
- }
- },
"/subscriptions/{subscriptionId}/providers/Microsoft.Communication/communicationServices": {
"get": {
"description": "Handles requests to list all resources in a subscription.",
@@ -703,58 +657,6 @@
}
}
},
- "OperationStatus": {
- "description": "The current status of an async operation",
- "type": "object",
- "properties": {
- "id": {
- "description": "Fully qualified ID for the operation status.",
- "type": "string",
- "readOnly": true
- },
- "status": {
- "description": "Provisioning state of the resource.",
- "enum": [
- "Succeeded",
- "Failed",
- "Canceled",
- "Creating",
- "Deleting",
- "Moving"
- ],
- "type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "Status",
- "modelAsString": true
- }
- },
- "startTime": {
- "description": "The start time of the operation",
- "type": "string",
- "readOnly": true,
- "format": "date-time"
- },
- "endTime": {
- "description": "The end time of the operation",
- "type": "string",
- "readOnly": true,
- "format": "date-time"
- },
- "percentComplete": {
- "description": "Percent of the operation that is complete",
- "type": "number",
- "readOnly": true,
- "minimum": 0,
- "maximum": 100
- },
- "error": {
- "description": "Operation Error message",
- "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse",
- "x-ms-client-flatten": true
- }
- }
- },
"CommunicationServiceResourceList": {
"description": "Object that includes an array of CommunicationServices and a possible link for next set.",
"type": "object",
@@ -938,22 +840,6 @@
"required": true,
"type": "string",
"x-ms-parameter-location": "method"
- },
- "LocationParameter": {
- "name": "location",
- "in": "path",
- "description": "The Azure region",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
- "OperationIdParameter": {
- "name": "operationId",
- "in": "path",
- "description": "The ID of an ongoing async operation",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
}
}
}
diff --git a/specification/communication/resource-manager/Microsoft.Communication/stable/2020-08-20/examples/getOperationStatus.json b/specification/communication/resource-manager/Microsoft.Communication/stable/2020-08-20/examples/getOperationStatus.json
deleted file mode 100644
index fc9587705dd9..000000000000
--- a/specification/communication/resource-manager/Microsoft.Communication/stable/2020-08-20/examples/getOperationStatus.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "parameters": {
- "location": "westus2",
- "operationId": "db5f291f-284d-46e9-9152-d5c83f7c14b8",
- "api-version": "2020-08-20"
- },
- "responses": {
- "200": {
- "body": {
- "id": "db5f291f-284d-46e9-9152-d5c83f7c14b8",
- "status": "Succeeded",
- "startTime": "2020-07-06T17:06:26.100Z",
- "endTime": "2020-07-06T17:06:42.800Z",
- "percentComplete": 100
- }
- },
- "default": {
- "body": {
- "error": {
- "code": "OperationNotFound",
- "message": "The requested async operation was not found"
- }
- }
- }
- }
-}
diff --git a/specification/communication/resource-manager/readme.azureresourceschema.md b/specification/communication/resource-manager/readme.azureresourceschema.md
deleted file mode 100644
index 50f22f2d1120..000000000000
--- a/specification/communication/resource-manager/readme.azureresourceschema.md
+++ /dev/null
@@ -1,36 +0,0 @@
-## AzureResourceSchema
-
-These settings apply only when `--azureresourceschema` is specified on the command line.
-
-### AzureResourceSchema multi-api
-
-``` yaml $(azureresourceschema) && $(multiapi)
-batch:
- - tag: schema-communication-2020-08-20-preview
- - tag: schema-communication-2020-08-20
-
-```
-
-Please also specify `--azureresourceschema-folder=`.
-
-### Tag: schema-communication-2020-08-20-preview and azureresourceschema
-
-``` yaml $(tag) == 'schema-communication-2020-08-20-preview' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Communication/preview/2020-08-20-preview/CommunicationService.json
-
-```
-
-### Tag: schema-communication-2020-08-20 and azureresourceschema
-
-``` yaml $(tag) == 'schema-communication-2020-08-20' && $(azureresourceschema)
-output-folder: $(azureresourceschema-folder)/schemas
-
-# all the input files in this apiVersion
-input-file:
- - Microsoft.Communication/stable/2020-08-20/CommunicationService.json
-
-```
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2021-03-01/cloudService.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2021-03-01/cloudService.json
index fc8b803a8813..44de229cd1d6 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2021-03-01/cloudService.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2021-03-01/cloudService.json
@@ -103,10 +103,11 @@
{
"in": "query",
"name": "$expand",
- "description": "The expand expression to apply to the operation.",
+ "description": "The expand expression to apply to the operation. 'UserData' is not supported for cloud services.",
"type": "string",
"enum": [
- "instanceView"
+ "instanceView",
+ "userData"
],
"x-ms-enum": {
"name": "InstanceViewTypes",
@@ -219,10 +220,11 @@
{
"in": "query",
"name": "$expand",
- "description": "The expand expression to apply to the operation.",
+ "description": "The expand expression to apply to the operation. 'UserData' is not supported for cloud services.",
"type": "string",
"enum": [
- "instanceView"
+ "instanceView",
+ "userData"
],
"x-ms-enum": {
"name": "InstanceViewTypes",
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2021-03-01/compute.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2021-03-01/compute.json
new file mode 100644
index 000000000000..5cfd2ded350b
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2021-03-01/compute.json
@@ -0,0 +1,14037 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ComputeManagementClient",
+ "description": "The Compute Management Client.",
+ "version": "2021-03-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.Compute/operations": {
+ "get": {
+ "tags": [
+ "ComputeOperations"
+ ],
+ "operationId": "Operations_List",
+ "description": "Gets a list of compute operations.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ComputeOperationListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}": {
+ "put": {
+ "tags": [
+ "AvailabilitySets"
+ ],
+ "operationId": "AvailabilitySets_CreateOrUpdate",
+ "description": "Create or update an availability set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "availabilitySetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the availability set."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AvailabilitySet"
+ },
+ "description": "Parameters supplied to the Create Availability Set operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AvailabilitySet"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create an availability set.": {
+ "$ref": "./examples/CreateAnAvailabilitySet.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "AvailabilitySets"
+ ],
+ "operationId": "AvailabilitySets_Update",
+ "description": "Update an availability set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "availabilitySetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the availability set."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AvailabilitySetUpdate"
+ },
+ "description": "Parameters supplied to the Update Availability Set operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AvailabilitySet"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "AvailabilitySets"
+ ],
+ "operationId": "AvailabilitySets_Delete",
+ "description": "Delete an availability set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "availabilitySetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the availability set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "204": {
+ "description": "No Content"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "AvailabilitySets"
+ ],
+ "operationId": "AvailabilitySets_Get",
+ "description": "Retrieves information about an availability set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "availabilitySetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the availability set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AvailabilitySet"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/availabilitySets": {
+ "get": {
+ "tags": [
+ "AvailabilitySets"
+ ],
+ "operationId": "AvailabilitySets_ListBySubscription",
+ "description": "Lists all availability sets in a subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply to the operation. Allowed values are 'instanceView'."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AvailabilitySetListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List availability sets in a subscription.": {
+ "$ref": "./examples/ListAvailabilitySetsInASubscription.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets": {
+ "get": {
+ "tags": [
+ "AvailabilitySets"
+ ],
+ "operationId": "AvailabilitySets_List",
+ "description": "Lists all availability sets in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AvailabilitySetListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}/vmSizes": {
+ "get": {
+ "tags": [
+ "AvailabilitySets"
+ ],
+ "operationId": "AvailabilitySets_ListAvailableSizes",
+ "description": "Lists all available virtual machine sizes that can be used to create a new virtual machine in an existing availability set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "availabilitySetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the availability set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineSizeListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/proximityPlacementGroups/{proximityPlacementGroupName}": {
+ "put": {
+ "tags": [
+ "ProximityPlacementGroups"
+ ],
+ "operationId": "ProximityPlacementGroups_CreateOrUpdate",
+ "description": "Create or update a proximity placement group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "proximityPlacementGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the proximity placement group."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ProximityPlacementGroup"
+ },
+ "description": "Parameters supplied to the Create Proximity Placement Group operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ProximityPlacementGroup"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/ProximityPlacementGroup"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or Update a proximity placement group.": {
+ "$ref": "./examples/CreateOrUpdateAProximityPlacementGroup.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ProximityPlacementGroups"
+ ],
+ "operationId": "ProximityPlacementGroups_Update",
+ "description": "Update a proximity placement group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "proximityPlacementGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the proximity placement group."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ProximityPlacementGroupUpdate"
+ },
+ "description": "Parameters supplied to the Update Proximity Placement Group operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ProximityPlacementGroup"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create a proximity placement group.": {
+ "$ref": "./examples/PatchAProximityPlacementGroup.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ProximityPlacementGroups"
+ ],
+ "operationId": "ProximityPlacementGroups_Delete",
+ "description": "Delete a proximity placement group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "proximityPlacementGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the proximity placement group."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "x-ms-examples": {
+ "Create a proximity placement group.": {
+ "$ref": "./examples/DeleteAProximityPlacementGroup.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ProximityPlacementGroups"
+ ],
+ "operationId": "ProximityPlacementGroups_Get",
+ "description": "Retrieves information about a proximity placement group .",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "proximityPlacementGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the proximity placement group."
+ },
+ {
+ "name": "includeColocationStatus",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "includeColocationStatus=true enables fetching the colocation status of all the resources in the proximity placement group."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ProximityPlacementGroup"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create a proximity placement group.": {
+ "$ref": "./examples/GetAProximityPlacementGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/proximityPlacementGroups": {
+ "get": {
+ "tags": [
+ "ProximityPlacementGroups"
+ ],
+ "operationId": "ProximityPlacementGroups_ListBySubscription",
+ "description": "Lists all proximity placement groups in a subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ProximityPlacementGroupListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Create a proximity placement group.": {
+ "$ref": "./examples/ListProximityPlacementGroupsInASubscription.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/proximityPlacementGroups": {
+ "get": {
+ "tags": [
+ "ProximityPlacementGroups"
+ ],
+ "operationId": "ProximityPlacementGroups_ListByResourceGroup",
+ "description": "Lists all proximity placement groups in a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ProximityPlacementGroupListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Create a proximity placement group.": {
+ "$ref": "./examples/ListProximityPlacementGroupsInAResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}": {
+ "put": {
+ "tags": [
+ "DedicatedHostGroups"
+ ],
+ "operationId": "DedicatedHostGroups_CreateOrUpdate",
+ "description": "Create or update a dedicated host group. For details of Dedicated Host and Dedicated Host Groups please see [Dedicated Host Documentation] (https://go.microsoft.com/fwlink/?linkid=2082596)",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "hostGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the dedicated host group."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DedicatedHostGroup"
+ },
+ "description": "Parameters supplied to the Create Dedicated Host Group."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DedicatedHostGroup"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/DedicatedHostGroup"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update a dedicated host group.": {
+ "$ref": "./examples/CreateOrUpdateADedicatedHostGroup.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "DedicatedHostGroups"
+ ],
+ "operationId": "DedicatedHostGroups_Update",
+ "description": "Update an dedicated host group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "hostGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the dedicated host group."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DedicatedHostGroupUpdate"
+ },
+ "description": "Parameters supplied to the Update Dedicated Host Group operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DedicatedHostGroup"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DedicatedHostGroups"
+ ],
+ "operationId": "DedicatedHostGroups_Delete",
+ "description": "Delete a dedicated host group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "hostGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the dedicated host group."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "204": {
+ "description": "No Content"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "DedicatedHostGroups"
+ ],
+ "operationId": "DedicatedHostGroups_Get",
+ "description": "Retrieves information about a dedicated host group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "hostGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the dedicated host group."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation. 'InstanceView' will retrieve the list of instance views of the dedicated hosts under the dedicated host group. 'UserData' is not supported for dedicated host group.",
+ "enum": [
+ "instanceView",
+ "userData"
+ ],
+ "x-ms-enum": {
+ "name": "InstanceViewTypes",
+ "modelAsString": false
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DedicatedHostGroup"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create a dedicated host group.": {
+ "$ref": "./examples/GetADedicatedHostGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups": {
+ "get": {
+ "tags": [
+ "DedicatedHostGroups"
+ ],
+ "operationId": "DedicatedHostGroups_ListByResourceGroup",
+ "description": "Lists all of the dedicated host groups in the specified resource group. Use the nextLink property in the response to get the next page of dedicated host groups.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DedicatedHostGroupListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/hostGroups": {
+ "get": {
+ "tags": [
+ "DedicatedHostGroups"
+ ],
+ "operationId": "DedicatedHostGroups_ListBySubscription",
+ "description": "Lists all of the dedicated host groups in the subscription. Use the nextLink property in the response to get the next page of dedicated host groups.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DedicatedHostGroupListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}/hosts/{hostName}": {
+ "put": {
+ "tags": [
+ "DedicatedHosts"
+ ],
+ "operationId": "DedicatedHosts_CreateOrUpdate",
+ "description": "Create or update a dedicated host .",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "hostGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the dedicated host group."
+ },
+ {
+ "name": "hostName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the dedicated host ."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DedicatedHost"
+ },
+ "description": "Parameters supplied to the Create Dedicated Host."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DedicatedHost"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/DedicatedHost"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update a dedicated host .": {
+ "$ref": "./examples/CreateOrUpdateADedicatedHost.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "DedicatedHosts"
+ ],
+ "operationId": "DedicatedHosts_Update",
+ "description": "Update an dedicated host .",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "hostGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the dedicated host group."
+ },
+ {
+ "name": "hostName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the dedicated host ."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DedicatedHostUpdate"
+ },
+ "description": "Parameters supplied to the Update Dedicated Host operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DedicatedHost"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "DedicatedHosts"
+ ],
+ "operationId": "DedicatedHosts_Delete",
+ "description": "Delete a dedicated host.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "hostGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the dedicated host group."
+ },
+ {
+ "name": "hostName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the dedicated host."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "DedicatedHosts"
+ ],
+ "operationId": "DedicatedHosts_Get",
+ "description": "Retrieves information about a dedicated host.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "hostGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the dedicated host group."
+ },
+ {
+ "name": "hostName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the dedicated host."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation. 'InstanceView' will retrieve the list of instance views of the dedicated host. 'UserData' is not supported for dedicated host.",
+ "enum": [
+ "instanceView",
+ "userData"
+ ],
+ "x-ms-enum": {
+ "name": "InstanceViewTypes",
+ "modelAsString": false
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DedicatedHost"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a dedicated host.": {
+ "$ref": "./examples/GetADedicatedHost.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}/hosts": {
+ "get": {
+ "tags": [
+ "DedicatedHost"
+ ],
+ "operationId": "DedicatedHosts_ListByHostGroup",
+ "description": "Lists all of the dedicated hosts in the specified dedicated host group. Use the nextLink property in the response to get the next page of dedicated hosts.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "hostGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the dedicated host group."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DedicatedHostListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/sshPublicKeys": {
+ "get": {
+ "tags": [
+ "SshPublicKeys"
+ ],
+ "operationId": "SshPublicKeys_ListBySubscription",
+ "description": "Lists all of the SSH public keys in the subscription. Use the nextLink property in the response to get the next page of SSH public keys.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SshPublicKeysGroupListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/sshPublicKeys": {
+ "get": {
+ "tags": [
+ "SshPublicKeys"
+ ],
+ "operationId": "SshPublicKeys_ListByResourceGroup",
+ "description": "Lists all of the SSH public keys in the specified resource group. Use the nextLink property in the response to get the next page of SSH public keys.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SshPublicKeysGroupListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/sshPublicKeys/{sshPublicKeyName}": {
+ "put": {
+ "tags": [
+ "SshPublicKeys"
+ ],
+ "operationId": "SshPublicKeys_Create",
+ "description": "Creates a new SSH public key resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "sshPublicKeyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the SSH public key."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SshPublicKeyResource"
+ },
+ "description": "Parameters supplied to create the SSH public key."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SshPublicKeyResource"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/SshPublicKeyResource"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create a new SSH public key resource.": {
+ "$ref": "./examples/CreateAnSshPublicKey.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "SshPublicKeys"
+ ],
+ "operationId": "SshPublicKeys_Update",
+ "description": "Updates a new SSH public key resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "sshPublicKeyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the SSH public key."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SshPublicKeyUpdateResource"
+ },
+ "description": "Parameters supplied to update the SSH public key."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SshPublicKeyResource"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "SshPublicKeys"
+ ],
+ "operationId": "SshPublicKeys_Delete",
+ "description": "Delete an SSH public key.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "sshPublicKeyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the SSH public key."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "204": {
+ "description": "No Content"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "SshPublicKeys"
+ ],
+ "operationId": "SshPublicKeys_Get",
+ "description": "Retrieves information about an SSH public key.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "sshPublicKeyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the SSH public key."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SshPublicKeyResource"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get an ssh public key.": {
+ "$ref": "./examples/GetAnSshPublicKey.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/sshPublicKeys/{sshPublicKeyName}/generateKeyPair": {
+ "post": {
+ "tags": [
+ "SshPublicKeys"
+ ],
+ "operationId": "SshPublicKeys_GenerateKeyPair",
+ "description": "Generates and returns a public/private key pair and populates the SSH public key resource with the public key. The length of the key will be 3072 bits. This operation can only be performed once per SSH public key resource.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "sshPublicKeyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the SSH public key."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SshPublicKeyGenerateKeyPairResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Generate an SSH key pair.": {
+ "$ref": "./examples/GenerateSshKeyPair.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types/{type}/versions/{version}": {
+ "get": {
+ "tags": [
+ "VirtualMachineExtensionImages"
+ ],
+ "operationId": "VirtualMachineExtensionImages_Get",
+ "description": "Gets a virtual machine extension image.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of a supported Azure region."
+ },
+ {
+ "name": "publisherName",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "type",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "version",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineExtensionImage"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types": {
+ "get": {
+ "tags": [
+ "VirtualMachineExtensionImages"
+ ],
+ "operationId": "VirtualMachineExtensionImages_ListTypes",
+ "description": "Gets a list of virtual machine extension image types.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of a supported Azure region."
+ },
+ {
+ "name": "publisherName",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineExtensionImage"
+ }
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types/{type}/versions": {
+ "get": {
+ "tags": [
+ "VirtualMachineExtensionImages"
+ ],
+ "operationId": "VirtualMachineExtensionImages_ListVersions",
+ "description": "Gets a list of virtual machine extension image versions.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of a supported Azure region."
+ },
+ {
+ "name": "publisherName",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "type",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The filter to apply on the operation."
+ },
+ {
+ "name": "$top",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineExtensionImage"
+ }
+ }
+ }
+ },
+ "x-ms-odata": "#/definitions/VirtualMachineExtensionImage"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}": {
+ "put": {
+ "tags": [
+ "VirtualMachineExtensions"
+ ],
+ "operationId": "VirtualMachineExtensions_CreateOrUpdate",
+ "description": "The operation to create or update the extension.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine where the extension should be created or updated."
+ },
+ {
+ "name": "vmExtensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine extension."
+ },
+ {
+ "name": "extensionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineExtension"
+ },
+ "description": "Parameters supplied to the Create Virtual Machine Extension operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineExtension"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineExtension"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "VirtualMachineExtensions"
+ ],
+ "operationId": "VirtualMachineExtensions_Update",
+ "description": "The operation to update the extension.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine where the extension should be updated."
+ },
+ {
+ "name": "vmExtensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine extension."
+ },
+ {
+ "name": "extensionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineExtensionUpdate"
+ },
+ "description": "Parameters supplied to the Update Virtual Machine Extension operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineExtension"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "VirtualMachineExtensions"
+ ],
+ "operationId": "VirtualMachineExtensions_Delete",
+ "description": "The operation to delete the extension.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine where the extension should be deleted."
+ },
+ {
+ "name": "vmExtensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine extension."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "VirtualMachineExtensions"
+ ],
+ "operationId": "VirtualMachineExtensions_Get",
+ "description": "The operation to get the extension.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine containing the extension."
+ },
+ {
+ "name": "vmExtensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine extension."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineExtension"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions": {
+ "get": {
+ "tags": [
+ "VirtualMachineExtensions"
+ ],
+ "operationId": "VirtualMachineExtensions_List",
+ "description": "The operation to get all extensions of a Virtual Machine.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine containing the extension."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineExtensionsListResult"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions/{version}": {
+ "get": {
+ "tags": [
+ "VirtualMachineImages"
+ ],
+ "operationId": "VirtualMachineImages_Get",
+ "description": "Gets a virtual machine image.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of a supported Azure region."
+ },
+ {
+ "name": "publisherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image publisher."
+ },
+ {
+ "name": "offer",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image publisher offer."
+ },
+ {
+ "name": "skus",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image SKU."
+ },
+ {
+ "name": "version",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image SKU version."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineImage"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions": {
+ "get": {
+ "tags": [
+ "VirtualMachineImages"
+ ],
+ "operationId": "VirtualMachineImages_List",
+ "description": "Gets a list of all virtual machine image versions for the specified location, publisher, offer, and SKU.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of a supported Azure region."
+ },
+ {
+ "name": "publisherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image publisher."
+ },
+ {
+ "name": "offer",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image publisher offer."
+ },
+ {
+ "name": "skus",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image SKU."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation."
+ },
+ {
+ "name": "$top",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineImageResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers": {
+ "get": {
+ "tags": [
+ "VirtualMachineImages"
+ ],
+ "operationId": "VirtualMachineImages_ListOffers",
+ "description": "Gets a list of virtual machine image offers for the specified location and publisher.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of a supported Azure region."
+ },
+ {
+ "name": "publisherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image publisher."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineImageResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers": {
+ "get": {
+ "tags": [
+ "VirtualMachineImages"
+ ],
+ "operationId": "VirtualMachineImages_ListPublishers",
+ "description": "Gets a list of virtual machine image publishers for the specified Azure location.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of a supported Azure region."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineImageResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus": {
+ "get": {
+ "tags": [
+ "VirtualMachineImages"
+ ],
+ "operationId": "VirtualMachineImages_ListSkus",
+ "description": "Gets a list of virtual machine image SKUs for the specified location, publisher, and offer.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of a supported Azure region."
+ },
+ {
+ "name": "publisherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image publisher."
+ },
+ {
+ "name": "offer",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image publisher offer."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineImageResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/edgeZones/{edgeZone}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions/{version}": {
+ "get": {
+ "tags": [
+ "VirtualMachineImages"
+ ],
+ "operationId": "VirtualMachineImagesEdgeZone_Get",
+ "description": "Gets a virtual machine image in an edge zone.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of a supported Azure region."
+ },
+ {
+ "name": "edgeZone",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the edge zone."
+ },
+ {
+ "name": "publisherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image publisher."
+ },
+ {
+ "name": "offer",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image publisher offer."
+ },
+ {
+ "name": "skus",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image SKU."
+ },
+ {
+ "name": "version",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image SKU version."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineImage"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/edgeZones/{edgeZone}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions": {
+ "get": {
+ "tags": [
+ "VirtualMachineImages"
+ ],
+ "operationId": "VirtualMachineImagesEdgeZone_List",
+ "description": "Gets a list of all virtual machine image versions for the specified location, edge zone, publisher, offer, and SKU.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of a supported Azure region."
+ },
+ {
+ "name": "edgeZone",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the edge zone."
+ },
+ {
+ "name": "publisherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image publisher."
+ },
+ {
+ "name": "offer",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image publisher offer."
+ },
+ {
+ "name": "skus",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image SKU."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation."
+ },
+ {
+ "name": "$top",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "An integer value specifying the number of images to return that matches supplied values."
+ },
+ {
+ "name": "$orderby",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Specifies the order of the results returned. Formatted as an OData query."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineImageResource"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/edgeZones/{edgeZone}/publishers/{publisherName}/artifacttypes/vmimage/offers": {
+ "get": {
+ "tags": [
+ "VirtualMachineImages"
+ ],
+ "operationId": "VirtualMachineImagesEdgeZone_ListOffers",
+ "description": "Gets a list of virtual machine image offers for the specified location, edge zone and publisher.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of a supported Azure region."
+ },
+ {
+ "name": "edgeZone",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the edge zone."
+ },
+ {
+ "name": "publisherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image publisher."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineImageResource"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/edgeZones/{edgeZone}/publishers": {
+ "get": {
+ "tags": [
+ "VirtualMachineImages"
+ ],
+ "operationId": "VirtualMachineImagesEdgeZone_ListPublishers",
+ "description": "Gets a list of virtual machine image publishers for the specified Azure location and edge zone.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of a supported Azure region."
+ },
+ {
+ "name": "edgeZone",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the edge zone."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineImageResource"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/edgeZones/{edgeZone}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus": {
+ "get": {
+ "tags": [
+ "VirtualMachineImages"
+ ],
+ "operationId": "VirtualMachineImagesEdgeZone_ListSkus",
+ "description": "Gets a list of virtual machine image SKUs for the specified location, edge zone, publisher, and offer.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of a supported Azure region."
+ },
+ {
+ "name": "edgeZone",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the edge zone."
+ },
+ {
+ "name": "publisherName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image publisher."
+ },
+ {
+ "name": "offer",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A valid image publisher offer."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineImageResource"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/usages": {
+ "get": {
+ "tags": [
+ "Usage"
+ ],
+ "operationId": "Usage_List",
+ "description": "Gets, for the specified location, the current compute resource usage information as well as the limits for compute resources under the subscription.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location for which resource usage is queried.",
+ "pattern": "^[-\\w\\._]+$"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ListUsagesResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/virtualMachines": {
+ "get": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_ListByLocation",
+ "description": "Gets all the virtual machines under the specified subscription for the specified location.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location for which virtual machines under the subscription are queried.",
+ "pattern": "^[-\\w\\._]+$"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineListResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Lists all the virtual machines under the specified subscription for the specified location.": {
+ "$ref": "./examples/ListVirtualMachinesInASubscriptionByLocation.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/virtualMachineScaleSets": {
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_ListByLocation",
+ "description": "Gets all the VM scale sets under the specified subscription for the specified location.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location for which VM scale sets under the subscription are queried.",
+ "pattern": "^[-\\w\\._]+$"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Lists all the VM scale sets under the specified subscription for the specified location.": {
+ "$ref": "./examples/ListVirtualMachineScaleSetsInASubscriptionByLocation.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/vmSizes": {
+ "get": {
+ "tags": [
+ "VirtualMachineSizes"
+ ],
+ "operationId": "VirtualMachineSizes_List",
+ "description": "This API is deprecated. Use [Resources Skus](https://docs.microsoft.com/rest/api/compute/resourceskus/list)",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location upon which virtual-machine-sizes is queried.",
+ "pattern": "^[-\\w\\._]+$"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineSizeListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images/{imageName}": {
+ "put": {
+ "tags": [
+ "Images"
+ ],
+ "operationId": "Images_CreateOrUpdate",
+ "description": "Create or update an image.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "imageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the image."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Image"
+ },
+ "description": "Parameters supplied to the Create Image operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Image"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/Image"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create a virtual machine image from a blob.": {
+ "$ref": "./examples/CreateAnImageFromABlob.json"
+ },
+ "Create a virtual machine image from a snapshot.": {
+ "$ref": "./examples/CreateAnImageFromASnapshot.json"
+ },
+ "Create a virtual machine image from a managed disk.": {
+ "$ref": "./examples/CreateAnImageFromAManagedDisk.json"
+ },
+ "Create a virtual machine image from an existing virtual machine.": {
+ "$ref": "./examples/CreateAnImageFromAVM.json"
+ },
+ "Create a virtual machine image that includes a data disk from a blob.": {
+ "$ref": "./examples/CreateAnImageThatIncludesADataDiskFromABlob.json"
+ },
+ "Create a virtual machine image that includes a data disk from a snapshot.": {
+ "$ref": "./examples/CreateAnImageThatIncludesADataDiskFromASnapshot.json"
+ },
+ "Create a virtual machine image that includes a data disk from a managed disk.": {
+ "$ref": "./examples/CreateAnImageThatIncludesADataDiskFromAManagedDisk.json"
+ },
+ "Create a virtual machine image from a blob with DiskEncryptionSet resource.": {
+ "$ref": "./examples/CreateAnImageFromABlobWithDiskEncryptionSet.json"
+ },
+ "Create a virtual machine image from a snapshot with DiskEncryptionSet resource.": {
+ "$ref": "./examples/CreateAnImageFromASnapshotWithDiskEncryptionSet.json"
+ },
+ "Create a virtual machine image from a managed disk with DiskEncryptionSet resource.": {
+ "$ref": "./examples/CreateAnImageFromAManagedDiskWithDiskEncryptionSet.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "Images"
+ ],
+ "operationId": "Images_Update",
+ "description": "Update an image.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "imageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the image."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ImageUpdate"
+ },
+ "description": "Parameters supplied to the Update Image operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Image"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/Image"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Updates tags of an Image.": {
+ "$ref": "./examples/UpdateImage.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Images"
+ ],
+ "operationId": "Images_Delete",
+ "description": "Deletes an Image.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "imageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the image."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "Images"
+ ],
+ "operationId": "Images_Get",
+ "description": "Gets an image.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "imageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the image."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Image"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get information about a virtual machine image.": {
+ "$ref": "./examples/GetInformationAboutAnImage.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images": {
+ "get": {
+ "tags": [
+ "Images"
+ ],
+ "operationId": "Images_ListByResourceGroup",
+ "description": "Gets the list of images under a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ImageListResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all virtual machine images in a resource group.": {
+ "$ref": "./examples/ListImagesInAResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/images": {
+ "get": {
+ "tags": [
+ "Images"
+ ],
+ "operationId": "Images_List",
+ "description": "Gets the list of Images in the subscription. Use nextLink property in the response to get the next page of Images. Do this till nextLink is null to fetch all the Images.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ImageListResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all virtual machine images in a subscription.": {
+ "$ref": "./examples/ListImagesInASubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/capture": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_Capture",
+ "description": "Captures the VM by copying virtual hard disks of the VM and outputs a template that can be used to create similar VMs.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineCaptureParameters"
+ },
+ "description": "Parameters supplied to the Capture Virtual Machine operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineCaptureResult"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}": {
+ "put": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_CreateOrUpdate",
+ "description": "The operation to create or update a virtual machine. Please note some properties can be set only during virtual machine creation.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachine"
+ },
+ "description": "Parameters supplied to the Create Virtual Machine operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachine"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachine"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create a vm with password authentication.": {
+ "$ref": "./examples/CreateAVmWithPasswordAuthentication.json"
+ },
+ "Create a vm with ssh authentication.": {
+ "$ref": "./examples/CreateAVmWithSshAuthentication.json"
+ },
+ "Create a vm with premium storage.": {
+ "$ref": "./examples/CreateAVmWithPremiumStorage.json"
+ },
+ "Create a vm in a Virtual Machine Scale Set with customer assigned platformFaultDomain.": {
+ "$ref": "./examples/CreateAVmInAVirtualMachineScaleSetWithCustomerAssignedPlatformFaultDomain.json"
+ },
+ "Create a vm in an availability set.": {
+ "$ref": "./examples/CreateAVmInAnAvailabilitySet.json"
+ },
+ "Create a vm with Scheduled Events Profile": {
+ "$ref": "./examples/CreateAVmWithScheduledEventsProfile.json"
+ },
+ "Create a vm with boot diagnostics.": {
+ "$ref": "./examples/CreateAVmWithBootDiagnostics.json"
+ },
+ "Create a vm with managed boot diagnostics.": {
+ "$ref": "./examples/CreateAVmWithManagedBootDiagnostics.json"
+ },
+ "Create a vm with empty data disks.": {
+ "$ref": "./examples/CreateAVmWithEmptyDataDisks.json"
+ },
+ "Create a vm with a marketplace image plan.": {
+ "$ref": "./examples/CreateAVmWithAMarketplaceImagePlan.json"
+ },
+ "Create a vm from a custom image.": {
+ "$ref": "./examples/CreateAVmFromACustomImage.json"
+ },
+ "Create a platform-image vm with unmanaged os and data disks.": {
+ "$ref": "./examples/CreateAPlatformImageVmWithUnmanagedOsAndDataDisks.json"
+ },
+ "Create a custom-image vm from an unmanaged generalized os image.": {
+ "$ref": "./examples/CreateACustomImageVmFromAnUnmanagedGeneralizedOsImage.json"
+ },
+ "Create a vm with ephemeral os disk.": {
+ "$ref": "./examples/CreateAVmWithADiffOsDisk.json"
+ },
+ "Create a vm with DiskEncryptionSet resource id in the os disk and data disk.": {
+ "$ref": "./examples/CreateAVmWithDiskEncryptionSetResource.json"
+ },
+ "Create a vm with ephemeral os disk provisioning in Resource disk using placement property.": {
+ "$ref": "./examples/CreateAVmWithADiffOsDiskUsingDiffDiskPlacementAsResourceDisk.json"
+ },
+ "Create a vm with ephemeral os disk provisioning in Cache disk using placement property.": {
+ "$ref": "./examples/CreateAVmWithADiffOsDiskUsingDiffDiskPlacementAsCacheDisk.json"
+ },
+ "Create a vm with Host Encryption using encryptionAtHost property.": {
+ "$ref": "./examples/CreateAVmWithEncryptionAtHost.json"
+ },
+ "Create a Windows vm with a patch setting patchMode of AutomaticByOS.": {
+ "$ref": "./examples/CreateAWindowsVmWithPatchSettingModeOfAutomaticByOS.json"
+ },
+ "Create a Windows vm with patch settings patchMode and assessmentMode set to AutomaticByPlatform.": {
+ "$ref": "./examples/CreateAWindowsVmWithPatchSettingModesOfAutomaticByPlatform.json"
+ },
+ "Create a Windows vm with a patch setting patchMode of Manual.": {
+ "$ref": "./examples/CreateAWindowsVmWithPatchSettingModeOfManual.json"
+ },
+ "Create a Windows vm with a patch setting assessmentMode of ImageDefault.": {
+ "$ref": "./examples/CreateAWindowsVmWithPatchSettingAssessmentModeOfImageDefault.json"
+ },
+ "Create a Windows vm with a patch setting patchMode of AutomaticByPlatform and enableHotpatching set to true.": {
+ "$ref": "./examples/CreateAWindowsVmWithPatchSettingModeOfAutomaticByPlatformAndEnableHotPatchingTrue.json"
+ },
+ "Create a Linux vm with a patch settings patchMode and assessmentMode set to AutomaticByPlatform.": {
+ "$ref": "./examples/CreateALinuxVmWithPatchSettingModesOfAutomaticByPlatform.json"
+ },
+ "Create a Linux vm with a patch setting patchMode of ImageDefault.": {
+ "$ref": "./examples/CreateALinuxVmWithPatchSettingModeOfImageDefault.json"
+ },
+ "Create a Linux vm with a patch setting assessmentMode of ImageDefault.": {
+ "$ref": "./examples/CreateALinuxVmWithPatchSettingAssessmentModeOfImageDefault.json"
+ },
+ "Create a vm with an extensions time budget.": {
+ "$ref": "./examples/CreateAVmWithExtensionsTimeBudget.json"
+ },
+ "Create a VM with Uefi Settings of secureBoot and vTPM.": {
+ "$ref": "./examples/CreateAVmWithUefiSettings.json"
+ },
+ "Create a vm from a generalized shared image.": {
+ "$ref": "./examples/CreateAVmFromAGeneralizedSharedImage.json"
+ },
+ "Create a vm from a specialized shared image.": {
+ "$ref": "./examples/CreateAVmFromASpecializedSharedImage.json"
+ },
+ "Create a VM with network interface configuration": {
+ "$ref": "./examples/CreateAVmWithNetworkInterfaceConfiguration.json"
+ },
+ "Create a VM with UserData": {
+ "$ref": "./examples/CreateOrUpdateAVmWithUserData.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_Update",
+ "description": "The operation to update a virtual machine.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineUpdate"
+ },
+ "description": "Parameters supplied to the Update Virtual Machine operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachine"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update a VM by detaching data disk": {
+ "$ref": "./examples/UpdateVMDetachDataDiskUsingToBeDetachedProperty.json"
+ },
+ "Update a VM by force-detaching data disk": {
+ "$ref": "./examples/UpdateVMForceDetachDataDisk.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_Delete",
+ "description": "The operation to delete a virtual machine.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "name": "forceDeletion",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Optional parameter to force delete virtual machines.(Feature in Preview)"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Force delete a VM": {
+ "$ref": "./examples/ForceDeleteVirtualMachine.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_Get",
+ "description": "Retrieves information about the model view or the instance view of a virtual machine.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation. 'InstanceView' retrieves a snapshot of the runtime properties of the virtual machine that is managed by the platform and can change outside of control plane operations. 'UserData' retrieves the UserData property as part of the VM model view that was provided by the user during the VM Create/Update operation.",
+ "enum": [
+ "instanceView",
+ "userData"
+ ],
+ "x-ms-enum": {
+ "name": "InstanceViewTypes",
+ "modelAsString": false
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachine"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a Virtual Machine.": {
+ "$ref": "./examples/GetVirtualMachine.json"
+ },
+ "Get a virtual machine placed on a dedicated host group through automatic placement": {
+ "$ref": "./examples/GetVirtualMachineAutoPlacedOnDedicatedHostGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/instanceView": {
+ "get": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_InstanceView",
+ "description": "Retrieves information about the run-time state of a virtual machine.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineInstanceView"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Virtual Machine Instance View.": {
+ "$ref": "./examples/GetVirtualMachineInstanceView.json"
+ },
+ "Get instance view of a virtual machine placed on a dedicated host group through automatic placement.": {
+ "$ref": "./examples/GetVirtualMachineInstanceViewAutoPlacedOnDedicatedHostGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/convertToManagedDisks": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_ConvertToManagedDisks",
+ "description": "Converts virtual machine disks from blob-based to managed disks. Virtual machine must be stop-deallocated before invoking this operation.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/deallocate": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_Deallocate",
+ "description": "Shuts down the virtual machine and releases the compute resources. You are not billed for the compute resources that this virtual machine uses.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/generalize": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_Generalize",
+ "description": "Sets the OS state of the virtual machine to generalized. It is recommended to sysprep the virtual machine before performing this operation. For Windows, please refer to [Create a managed image of a generalized VM in Azure](https://docs.microsoft.com/azure/virtual-machines/windows/capture-image-resource). For Linux, please refer to [How to create an image of a virtual machine or VHD](https://docs.microsoft.com/azure/virtual-machines/linux/capture-image).",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "x-ms-examples": {
+ "Generalize a Virtual Machine.": {
+ "$ref": "./examples/GeneralizeVirtualMachine.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines": {
+ "get": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_List",
+ "description": "Lists all of the virtual machines in the specified resource group. Use the nextLink property in the response to get the next page of virtual machines.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachines": {
+ "get": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_ListAll",
+ "description": "Lists all of the virtual machines in the specified subscription. Use the nextLink property in the response to get the next page of virtual machines.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "statusOnly",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "statusOnly=true enables fetching run time status of all Virtual Machines in the subscription."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}": {
+ "put": {
+ "tags": [
+ "RestorePointCollections"
+ ],
+ "operationId": "RestorePointCollections_CreateOrUpdate",
+ "description": "The operation to create or update the restore point collection. Please refer to https://aka.ms/RestorePoints for more details. When updating a restore point collection, only tags may be modified.",
+ "x-ms-examples": {
+ "Create or update a restore point collection.": {
+ "$ref": "./examples/CreateOrUpdateARestorePointCollection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "restorePointCollectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the restore point collection."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RestorePointCollection"
+ },
+ "description": "Parameters supplied to the Create or Update restore point collection operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/RestorePointCollection"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/RestorePointCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "RestorePointCollections"
+ ],
+ "operationId": "RestorePointCollections_Update",
+ "description": "The operation to update the restore point collection.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "restorePointCollectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the restore point collection."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RestorePointCollectionUpdate"
+ },
+ "description": "Parameters supplied to the Update restore point collection operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/RestorePointCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "RestorePointCollections"
+ ],
+ "operationId": "RestorePointCollections_Delete",
+ "description": "The operation to delete the restore point collection. This operation will also delete all the contained restore points.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "restorePointCollectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Restore Point Collection."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "RestorePointCollections"
+ ],
+ "operationId": "RestorePointCollections_Get",
+ "description": "The operation to get the restore point collection.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "restorePointCollectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the restore point collection."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation. If expand=restorePoints, server will return all contained restore points in the restorePointCollection.",
+ "enum": [
+ "restorePoints"
+ ],
+ "x-ms-enum": {
+ "name": "RestorePointCollectionExpandOptions",
+ "modelAsString": true
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-examples": {
+ "Get a restore point collection (but not the restore points contained in the restore point collection)": {
+ "$ref": "./examples/GetRestorePointCollection.json"
+ },
+ "Get a restore point collection, including the restore points contained in the restore point collection": {
+ "$ref": "./examples/GetRestorePointCollectionWithContainedRestorePoints.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/RestorePointCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections": {
+ "get": {
+ "tags": [
+ "RestorePointCollections"
+ ],
+ "operationId": "RestorePointCollections_List",
+ "description": "Gets the list of restore point collections in a resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-examples": {
+ "Gets the list of restore point collections in a resource group.": {
+ "$ref": "./examples/GetRestorePointCollectionsInAResourceGroup.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/RestorePointCollectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/restorePointCollections": {
+ "get": {
+ "tags": [
+ "RestorePointCollections"
+ ],
+ "operationId": "RestorePointCollections_ListAll",
+ "description": "Gets the list of restore point collections in the subscription. Use nextLink property in the response to get the next page of restore point collections. Do this till nextLink is not null to fetch all the restore point collections.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/RestorePointCollectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Gets the list of restore point collections in a subscription": {
+ "$ref": "./examples/GetRestorePointCollectionsInASubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{restorePointName}": {
+ "put": {
+ "operationId": "RestorePoints_Create",
+ "description": "The operation to create the restore point. Updating properties of an existing restore point is not allowed",
+ "x-ms-examples": {
+ "Create a restore point": {
+ "$ref": "./examples/CreateARestorePoint.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "restorePointCollectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the restore point collection."
+ },
+ {
+ "name": "restorePointName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the restore point."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RestorePoint"
+ },
+ "description": "Parameters supplied to the Create restore point operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/RestorePoint"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "operationId": "RestorePoints_Delete",
+ "description": "The operation to delete the restore point.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "restorePointCollectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Restore Point Collection."
+ },
+ {
+ "name": "restorePointName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the restore point."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "operationId": "RestorePoints_Get",
+ "description": "The operation to get the restore point.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "restorePointCollectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the restore point collection."
+ },
+ {
+ "name": "restorePointName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the restore point."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "x-ms-examples": {
+ "Get a restore point": {
+ "$ref": "./examples/GetRestorePoint.json"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/RestorePoint"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/vmSizes": {
+ "get": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_ListAvailableSizes",
+ "description": "Lists all available virtual machine sizes to which the specified virtual machine can be resized.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineSizeListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "Lists all available virtual machine sizes to which the specified virtual machine can be resized": {
+ "$ref": "./examples/ListAvailableVmSizes_VirtualMachines.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/powerOff": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_PowerOff",
+ "description": "The operation to power off (stop) a virtual machine. The virtual machine can be restarted with the same provisioned resources. You are still charged for this virtual machine.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "name": "skipShutdown",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "default": false,
+ "description": "The parameter to request non-graceful VM shutdown. True value for this flag indicates non-graceful shutdown whereas false indicates otherwise. Default value for this flag is false if not specified"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/reapply": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_Reapply",
+ "description": "The operation to reapply a virtual machine's state.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Reapply the state of a virtual machine.": {
+ "$ref": "./examples/ReapplyVirtualMachine.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/restart": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_Restart",
+ "description": "The operation to restart a virtual machine.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/start": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_Start",
+ "description": "The operation to start a virtual machine.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/redeploy": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_Redeploy",
+ "description": "Shuts down the virtual machine, moves it to a new node, and powers it back on.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/reimage": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_Reimage",
+ "description": "Reimages the virtual machine which has an ephemeral OS disk back to its initial state.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineReimageParameters"
+ },
+ "description": "Parameters supplied to the Reimage Virtual Machine operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Reimage a Virtual Machine.": {
+ "$ref": "./examples/ReimageVirtualMachine.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/retrieveBootDiagnosticsData": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_RetrieveBootDiagnosticsData",
+ "description": "The operation to retrieve SAS URIs for a virtual machine's boot diagnostic logs.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "name": "sasUriExpirationTimeInMinutes",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "Expiration duration in minutes for the SAS URIs with a value between 1 to 1440 minutes.
NOTE: If not specified, SAS URIs will be generated with a default expiration duration of 120 minutes."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/RetrieveBootDiagnosticsDataResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": false,
+ "x-ms-examples": {
+ "RetrieveBootDiagnosticsData of a virtual machine.": {
+ "$ref": "./examples/RetrieveBootDiagnosticsDataVirtualMachine.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/performMaintenance": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_PerformMaintenance",
+ "description": "The operation to perform maintenance on a virtual machine.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/simulateEviction": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_SimulateEviction",
+ "description": "The operation to simulate the eviction of spot virtual machine.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
+ }
+ },
+ "x-ms-long-running-operation": false,
+ "x-ms-examples": {
+ "Simulate Eviction a virtual machine.": {
+ "$ref": "./examples/SimulateEvictionOfVM.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/assessPatches": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_AssessPatches",
+ "x-ms-examples": {
+ "Assess patch state of a virtual machine.": {
+ "$ref": "./examples/VirtualMachineAssessPatches.json"
+ }
+ },
+ "description": "Assess patches on the VM.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineAssessPatchesResult"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/installPatches": {
+ "post": {
+ "tags": [
+ "VirtualMachines"
+ ],
+ "operationId": "VirtualMachines_InstallPatches",
+ "description": "Installs patches on the VM.",
+ "x-ms-examples": {
+ "Install patch state of a virtual machine.": {
+ "$ref": "./examples/VirtualMachineInstallPatches.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine."
+ },
+ {
+ "name": "installPatchesInput",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineInstallPatchesParameters"
+ },
+ "description": "Input for InstallPatches as directly received by the API"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineInstallPatchesResult"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}": {
+ "put": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_CreateOrUpdate",
+ "description": "Create or update a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set to create or update."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSet"
+ },
+ "description": "The scale set object."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSet"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSet"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create a scale set with password authentication.": {
+ "$ref": "./examples/CreateAScaleSetWithPasswordAuthentication.json"
+ },
+ "Create a scale set with ssh authentication.": {
+ "$ref": "./examples/CreateAScaleSetWithSshAuthentication.json"
+ },
+ "Create a scale set with premium storage.": {
+ "$ref": "./examples/CreateAScaleSetWithPremiumStorage.json"
+ },
+ "Create a scale set with empty data disks on each vm.": {
+ "$ref": "./examples/CreateAScaleSetWithEmptyDataDisksOnEachVm.json"
+ },
+ "Create a scale set with an azure load balancer.": {
+ "$ref": "./examples/CreateAScaleSetWithAnAzureLoadBalancer.json"
+ },
+ "Create a scale set with an azure application gateway.": {
+ "$ref": "./examples/CreateAScaleSetWithAnAzureApplicationGateway.json"
+ },
+ "Create a scale set with boot diagnostics.": {
+ "$ref": "./examples/CreateAScaleSetWithBootDiagnostics.json"
+ },
+ "Create a scale set with managed boot diagnostics.": {
+ "$ref": "./examples/CreateAScaleSetWithManagedBootDiagnostics.json"
+ },
+ "Create a scale set with a marketplace image plan.": {
+ "$ref": "./examples/CreateAScaleSetWithAMarketplaceImagePlan.json"
+ },
+ "Create a scale set from a custom image.": {
+ "$ref": "./examples/CreateAScaleSetFromACustomImage.json"
+ },
+ "Create a platform-image scale set with unmanaged os disks.": {
+ "$ref": "./examples/CreateAPlatformImageScaleSetWithUnmanagedOsDisks.json"
+ },
+ "Create a custom-image scale set from an unmanaged generalized os image.": {
+ "$ref": "./examples/CreateACustomImageScaleSetFromAnUnmanagedGeneralizedOsImage.json"
+ },
+ "Create a scale set with virtual machines in different zones.": {
+ "$ref": "./examples/CreateAScaleSetWithVMsInDifferentZones.json"
+ },
+ "Create a scale set with ephemeral os disks.": {
+ "$ref": "./examples/CreateAScaleSetWithDiffOsDisk.json"
+ },
+ "Create a scale set with terminate scheduled events enabled.": {
+ "$ref": "./examples/CreateAScaleSetWithTerminateScheduledEventEnabled.json"
+ },
+ "Create a scale set with automatic repairs enabled": {
+ "$ref": "./examples/CreateAScaleSetWithAutomaticRepairs.json"
+ },
+ "Create a scale set with DiskEncryptionSet resource in os disk and data disk.": {
+ "$ref": "./examples/CreateAScalesetWithDiskEncryptionSetResource.json"
+ },
+ "Create a scale set with ephemeral os disks using placement property.": {
+ "$ref": "./examples/CreateAScaleSetWithDiffOsDiskUsingDiffDiskPlacement.json"
+ },
+ "Create a scale set with extension time budget.": {
+ "$ref": "./examples/CreateAScaleSetWithExtensionsTimeBudget.json"
+ },
+ "Create a scale set with Host Encryption using encryptionAtHost property.": {
+ "$ref": "./examples/CreateAScaleSetWithEncryptionAtHost.json"
+ },
+ "Create a scale set with Fpga Network Interfaces.": {
+ "$ref": "./examples/CreateAScaleSetFromWithFpgaNetworkInterface.json"
+ },
+ "Create a scale set with Uefi Settings of secureBoot and vTPM.": {
+ "$ref": "./examples/CreateAScaleSetWithUefiSettings.json"
+ },
+ "Create a scale set from a generalized shared image.": {
+ "$ref": "./examples/CreateAScaleSetFromAGeneralizedSharedImage.json"
+ },
+ "Create a scale set from a specialized shared image.": {
+ "$ref": "./examples/CreateAScaleSetFromASpecializedSharedImage.json"
+ },
+ "Create a scale set with userData.": {
+ "$ref": "./examples/CreateOrUpdateAScaleSetWithUserData.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_Update",
+ "description": "Update a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set to create or update."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetUpdate"
+ },
+ "description": "The scale set object."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSet"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_Delete",
+ "description": "Deletes a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "forceDeletion",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Optional parameter to force delete a VM scale set. (Feature in Preview)"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Force Delete a VM scale set.": {
+ "$ref": "./examples/ForceDeleteVirtualMachineScaleSets.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_Get",
+ "description": "Display information about a virtual machine scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation. 'UserData' retrieves the UserData property of the VM scale set that was provided by the user during the VM scale set Create/Update operation",
+ "enum": [
+ "userData"
+ ],
+ "x-ms-enum": {
+ "name": "ExpandTypesForGetVMScaleSets",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSet"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a virtual machine scale set placed on a dedicated host group through automatic placement.": {
+ "$ref": "./examples/GetVirtualMachineScaleSetAutoPlacedOnDedicatedHostGroup.json"
+ },
+ "Get a virtual machine scale set with UserData": {
+ "$ref": "./examples/GetVirtualMachineScaleSetWithUserData.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/deallocate": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_Deallocate",
+ "description": "Deallocates specific virtual machines in a VM scale set. Shuts down the virtual machines and releases the compute resources. You are not billed for the compute resources that this virtual machine scale set deallocates.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "vmInstanceIDs",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceIDs"
+ },
+ "description": "A list of virtual machine instance IDs from the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/delete": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_DeleteInstances",
+ "description": "Deletes virtual machines in a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "vmInstanceIDs",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceRequiredIDs"
+ },
+ "description": "A list of virtual machine instance IDs from the VM scale set."
+ },
+ {
+ "name": "forceDeletion",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Optional parameter to force delete virtual machines from the VM scale set. (Feature in Preview)"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView": {
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_GetInstanceView",
+ "description": "Gets the status of a VM scale set instance.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetInstanceView"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets": {
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_List",
+ "description": "Gets a list of all VM scale sets under a resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensions/{vmssExtensionName}": {
+ "put": {
+ "tags": [
+ "VirtualMachineScaleSetExtensions"
+ ],
+ "operationId": "VirtualMachineScaleSetExtensions_CreateOrUpdate",
+ "description": "The operation to create or update an extension.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set where the extension should be create or updated."
+ },
+ {
+ "name": "vmssExtensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set extension."
+ },
+ {
+ "name": "extensionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetExtension"
+ },
+ "description": "Parameters supplied to the Create VM scale set Extension operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetExtension"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetExtension"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "VirtualMachineScaleSetExtensions"
+ ],
+ "operationId": "VirtualMachineScaleSetExtensions_Update",
+ "description": "The operation to update an extension.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set where the extension should be updated."
+ },
+ {
+ "name": "vmssExtensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set extension."
+ },
+ {
+ "name": "extensionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetExtensionUpdate"
+ },
+ "description": "Parameters supplied to the Update VM scale set Extension operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetExtension"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetExtension"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "VirtualMachineScaleSetExtensions"
+ ],
+ "operationId": "VirtualMachineScaleSetExtensions_Delete",
+ "description": "The operation to delete the extension.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set where the extension should be deleted."
+ },
+ {
+ "name": "vmssExtensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set extension."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSetExtensions"
+ ],
+ "operationId": "VirtualMachineScaleSetExtensions_Get",
+ "description": "The operation to get the extension.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set containing the extension."
+ },
+ {
+ "name": "vmssExtensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set extension."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetExtension"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensions": {
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSetExtensions"
+ ],
+ "operationId": "VirtualMachineScaleSetExtensions_List",
+ "description": "Gets a list of all extensions in a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set containing the extension."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetExtensionListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachineScaleSets": {
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_ListAll",
+ "description": "Gets a list of all VM Scale Sets in the subscription, regardless of the associated resource group. Use nextLink property in the response to get the next page of VM Scale Sets. Do this till nextLink is null to fetch all the VM Scale Sets.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetListWithLinkResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/skus": {
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_ListSkus",
+ "description": "Gets a list of SKUs available for your VM scale set, including the minimum and maximum VM instances allowed for each SKU.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetListSkusResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/osUpgradeHistory": {
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_GetOSUpgradeHistory",
+ "description": "Gets list of OS upgrades on a VM scale set instance.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetListOSUpgradeHistory"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/poweroff": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_PowerOff",
+ "description": "Power off (stop) one or more virtual machines in a VM scale set. Note that resources are still attached and you are getting charged for the resources. Instead, use deallocate to release resources and avoid charges.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "vmInstanceIDs",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceIDs"
+ },
+ "description": "A list of virtual machine instance IDs from the VM scale set."
+ },
+ {
+ "name": "skipShutdown",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "default": false,
+ "description": "The parameter to request non-graceful VM shutdown. True value for this flag indicates non-graceful shutdown whereas false indicates otherwise. Default value for this flag is false if not specified"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/restart": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_Restart",
+ "description": "Restarts one or more virtual machines in a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "vmInstanceIDs",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceIDs"
+ },
+ "description": "A list of virtual machine instance IDs from the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/start": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_Start",
+ "description": "Starts one or more virtual machines in a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "vmInstanceIDs",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceIDs"
+ },
+ "description": "A list of virtual machine instance IDs from the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/redeploy": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_Redeploy",
+ "description": "Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "vmInstanceIDs",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceIDs"
+ },
+ "description": "A list of virtual machine instance IDs from the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/performMaintenance": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_PerformMaintenance",
+ "description": "Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "vmInstanceIDs",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceIDs"
+ },
+ "description": "A list of virtual machine instance IDs from the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/manualupgrade": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_UpdateInstances",
+ "description": "Upgrades one or more virtual machines to the latest SKU set in the VM scale set model.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "vmInstanceIDs",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceRequiredIDs"
+ },
+ "description": "A list of virtual machine instance IDs from the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/reimage": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_Reimage",
+ "description": "Reimages (upgrade the operating system) one or more virtual machines in a VM scale set which don't have a ephemeral OS disk, for virtual machines who have a ephemeral OS disk the virtual machine is reset to initial state.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "vmScaleSetReimageInput",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetReimageParameters"
+ },
+ "description": "Parameters for Reimaging VM ScaleSet."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/reimageall": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_ReimageAll",
+ "description": "Reimages all the disks ( including data disks ) in the virtual machines in a VM scale set. This operation is only supported for managed disks.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "vmInstanceIDs",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceIDs"
+ },
+ "description": "A list of virtual machine instance IDs from the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/rollingUpgrades/cancel": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSetRollingUpgrades"
+ ],
+ "operationId": "VirtualMachineScaleSetRollingUpgrades_Cancel",
+ "description": "Cancels the current virtual machine scale set rolling upgrade.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/osRollingUpgrade": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSetRollingUpgrades"
+ ],
+ "operationId": "VirtualMachineScaleSetRollingUpgrades_StartOSUpgrade",
+ "description": "Starts a rolling upgrade to move all virtual machine scale set instances to the latest available Platform Image OS version. Instances which are already running the latest available OS version are not affected.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensionRollingUpgrade": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSetRollingUpgrades"
+ ],
+ "operationId": "VirtualMachineScaleSetRollingUpgrades_StartExtensionUpgrade",
+ "description": "Starts a rolling upgrade to move all extensions for all virtual machine scale set instances to the latest available extension version. Instances which are already running the latest extension versions are not affected.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Start an extension rolling upgrade.": {
+ "$ref": "./examples/VMScaleSetExtensionRollingUpgrade.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/rollingUpgrades/latest": {
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSetRollingUpgrades"
+ ],
+ "operationId": "VirtualMachineScaleSetRollingUpgrades_GetLatest",
+ "description": "Gets the status of the latest virtual machine scale set rolling upgrade.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/RollingUpgradeStatusInfo"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/forceRecoveryServiceFabricPlatformUpdateDomainWalk": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_ForceRecoveryServiceFabricPlatformUpdateDomainWalk",
+ "description": "Manual platform update domain walk to update virtual machines in a service fabric virtual machine scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "platformUpdateDomain",
+ "in": "query",
+ "required": true,
+ "type": "integer",
+ "description": "The platform update domain for which a manual recovery walk is requested"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/RecoveryWalkResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/convertToSinglePlacementGroup": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_ConvertToSinglePlacementGroup",
+ "description": "Converts SinglePlacementGroup property to false for a existing virtual machine scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine scale set to create or update."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VMScaleSetConvertToSinglePlacementGroupInput"
+ },
+ "description": "The input object for ConvertToSinglePlacementGroup API."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/setOrchestrationServiceState": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSets"
+ ],
+ "operationId": "VirtualMachineScaleSets_SetOrchestrationServiceState",
+ "description": "Changes ServiceState property for a given service",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine scale set to create or update."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/OrchestrationServiceStateInput"
+ },
+ "description": "The input object for SetOrchestrationServiceState API."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualMachines/{instanceId}/extensions/{vmExtensionName}": {
+ "put": {
+ "tags": [
+ "VirtualMachineScaleSetVMExtensions"
+ ],
+ "operationId": "VirtualMachineScaleSetVMExtensions_CreateOrUpdate",
+ "description": "The operation to create or update the VMSS VM extension.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "name": "vmExtensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine extension."
+ },
+ {
+ "name": "extensionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtension"
+ },
+ "description": "Parameters supplied to the Create Virtual Machine Extension operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtension"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtension"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create VirtualMachineScaleSet VM extension.": {
+ "$ref": "./examples/CreateOrUpdateVirtualMachineScaleSetVMExtensions.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "VirtualMachineScaleSetVMExtensions"
+ ],
+ "operationId": "VirtualMachineScaleSetVMExtensions_Update",
+ "description": "The operation to update the VMSS VM extension.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "name": "vmExtensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine extension."
+ },
+ {
+ "name": "extensionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtensionUpdate"
+ },
+ "description": "Parameters supplied to the Update Virtual Machine Extension operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtension"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update VirtualMachineScaleSet VM extension.": {
+ "$ref": "./examples/UpdateVirtualMachineScaleSetVMExtensions.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "VirtualMachineScaleSetVMExtensions"
+ ],
+ "operationId": "VirtualMachineScaleSetVMExtensions_Delete",
+ "description": "The operation to delete the VMSS VM extension.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "name": "vmExtensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine extension."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete VirtualMachineScaleSet VM extension.": {
+ "$ref": "./examples/DeleteVirtualMachineScaleSetVMExtensions.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSetVMExtensions"
+ ],
+ "operationId": "VirtualMachineScaleSetVMExtensions_Get",
+ "description": "The operation to get the VMSS VM extension.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "name": "vmExtensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine extension."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtension"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get VirtualMachineScaleSet VM extension.": {
+ "$ref": "./examples/GetVirtualMachineScaleSetVMExtensions.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualMachines/{instanceId}/extensions": {
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSetVMExtensions"
+ ],
+ "operationId": "VirtualMachineScaleSetVMExtensions_List",
+ "description": "The operation to get all extensions of an instance in Virtual Machine Scaleset.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtensionsListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List extensions in Vmss instance.": {
+ "$ref": "./examples/ListVirtualMachineScaleSetVMExtensions.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/reimage": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_Reimage",
+ "description": "Reimages (upgrade the operating system) a specific virtual machine in a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "name": "vmScaleSetVMReimageInput",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMReimageParameters"
+ },
+ "description": "Parameters for the Reimaging Virtual machine in ScaleSet."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/reimageall": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_ReimageAll",
+ "description": "Allows you to re-image all the disks ( including data disks ) in the a VM scale set instance. This operation is only supported for managed disks.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/deallocate": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_Deallocate",
+ "description": "Deallocates a specific virtual machine in a VM scale set. Shuts down the virtual machine and releases the compute resources it uses. You are not billed for the compute resources of this virtual machine once it is deallocated.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}": {
+ "put": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_Update",
+ "description": "Updates a virtual machine of a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set where the extension should be create or updated."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVM"
+ },
+ "description": "Parameters supplied to the Update Virtual Machine Scale Sets VM operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVM"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVM"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_Delete",
+ "description": "Deletes a virtual machine from a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "name": "forceDeletion",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Optional parameter to force delete a virtual machine from a VM scale set. (Feature in Preview)"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Force Delete a virtual machine from a VM scale set.": {
+ "$ref": "./examples/ForceDeleteVirtualMachineScaleSetVM.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_Get",
+ "description": "Gets a virtual machine from a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation. 'InstanceView' will retrieve the instance view of the virtual machine. 'UserData' will retrieve the UserData of the virtual machine.",
+ "enum": [
+ "instanceView",
+ "userData"
+ ],
+ "x-ms-enum": {
+ "name": "InstanceViewTypes",
+ "modelAsString": false
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVM"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get VM scale set VM with UserData": {
+ "$ref": "./examples/GetVirtualMachineScaleSetVMWithUserData.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/instanceView": {
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_GetInstanceView",
+ "description": "Gets the status of a virtual machine from a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceView"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get instance view of a virtual machine from a VM scale set placed on a dedicated host group through automatic placement.": {
+ "$ref": "./examples/GetVirtualMachineScaleSetVMInstanceViewAutoPlacedOnDedicatedHostGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines": {
+ "get": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_List",
+ "description": "Gets a list of all virtual machines in a VM scale sets.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "virtualMachineScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The filter to apply to the operation. Allowed values are 'startswith(instanceView/statuses/code, 'PowerState') eq true', 'properties/latestModelApplied eq true', 'properties/latestModelApplied eq false'."
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The list parameters. Allowed values are 'instanceView', 'instanceView/statuses'."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply to the operation. Allowed values are 'instanceView'."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-odata": "#/definitions/VirtualMachineScaleSetVM"
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/poweroff": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_PowerOff",
+ "description": "Power off (stop) a virtual machine in a VM scale set. Note that resources are still attached and you are getting charged for the resources. Instead, use deallocate to release resources and avoid charges.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "name": "skipShutdown",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "default": false,
+ "description": "The parameter to request non-graceful VM shutdown. True value for this flag indicates non-graceful shutdown whereas false indicates otherwise. Default value for this flag is false if not specified"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/restart": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_Restart",
+ "description": "Restarts a virtual machine in a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/start": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_Start",
+ "description": "Starts a virtual machine in a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/redeploy": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_Redeploy",
+ "description": "Shuts down the virtual machine in the virtual machine scale set, moves it to a new node, and powers it back on.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/retrieveBootDiagnosticsData": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_RetrieveBootDiagnosticsData",
+ "description": "The operation to retrieve SAS URIs of boot diagnostic logs for a virtual machine in a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "name": "sasUriExpirationTimeInMinutes",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "Expiration duration in minutes for the SAS URIs with a value between 1 to 1440 minutes.
NOTE: If not specified, SAS URIs will be generated with a default expiration duration of 120 minutes."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/RetrieveBootDiagnosticsDataResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": false,
+ "x-ms-examples": {
+ "RetrieveBootDiagnosticsData of a virtual machine.": {
+ "$ref": "./examples/RetrieveBootDiagnosticsDataVMScaleSetVM.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/performMaintenance": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_PerformMaintenance",
+ "description": "Performs maintenance on a virtual machine in a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualMachines/{instanceId}/simulateEviction": {
+ "post": {
+ "tags": [
+ "VirtualMachineScaleSetVMs"
+ ],
+ "operationId": "VirtualMachineScaleSetVMs_SimulateEviction",
+ "description": "The operation to simulate the eviction of spot virtual machine in a VM scale set.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "vmScaleSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the VM scale set."
+ },
+ {
+ "name": "instanceId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The instance ID of the virtual machine."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
+ }
+ },
+ "x-ms-long-running-operation": false,
+ "x-ms-examples": {
+ "Simulate Eviction a virtual machine.": {
+ "$ref": "./examples/SimulateEvictionOfVmssVM.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/logAnalytics/apiAccess/getRequestRateByInterval": {
+ "post": {
+ "tags": [
+ "LogAnalytics"
+ ],
+ "operationId": "LogAnalytics_ExportRequestRateByInterval",
+ "x-ms-examples": {
+ "Export logs which contain all Api requests made to Compute Resource Provider within the given time period broken down by intervals.": {
+ "$ref": "./examples/LogAnalyticsRequestRateByInterval.json"
+ }
+ },
+ "description": "Export logs that show Api requests made by this subscription in the given time window to show throttling activities.",
+ "parameters": [
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RequestRateByIntervalInput"
+ },
+ "description": "Parameters supplied to the LogAnalytics getRequestRateByInterval Api."
+ },
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location upon which virtual-machine-sizes is queried.",
+ "pattern": "^[-\\w\\._]+$"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/LogAnalyticsOperationResult"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/logAnalytics/apiAccess/getThrottledRequests": {
+ "post": {
+ "tags": [
+ "LogAnalytics"
+ ],
+ "operationId": "LogAnalytics_ExportThrottledRequests",
+ "x-ms-examples": {
+ "Export logs which contain all throttled Api requests made to Compute Resource Provider within the given time period.": {
+ "$ref": "./examples/LogAnalyticsThrottledRequests.json"
+ }
+ },
+ "description": "Export logs that show total throttled Api requests for this subscription in the given time window.",
+ "parameters": [
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ThrottledRequestsInput"
+ },
+ "description": "Parameters supplied to the LogAnalytics getThrottledRequests Api."
+ },
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location upon which virtual-machine-sizes is queried.",
+ "pattern": "^[-\\w\\._]+$"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/LogAnalyticsOperationResult"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "RestorePointCollectionSourceProperties": {
+ "properties": {
+ "location": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Location of the source resource used to create this restore point collection."
+ },
+ "id": {
+ "type": "string",
+ "description": "Resource Id of the source resource used to create this restore point collection"
+ }
+ },
+ "description": "The properties of the source resource that this restore point collection is created from."
+ },
+ "RestorePointCollectionProperties": {
+ "properties": {
+ "source": {
+ "$ref": "#/definitions/RestorePointCollectionSourceProperties"
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The provisioning state of the restore point collection."
+ },
+ "restorePointCollectionId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The unique id of the restore point collection."
+ },
+ "restorePoints": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/RestorePoint"
+ },
+ "description": "A list containing all restore points created under this restore point collection."
+ }
+ },
+ "description": "The restore point collection properties."
+ },
+ "RestorePointCollection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RestorePointCollectionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Create or update Restore Point collection parameters."
+ },
+ "RestorePointCollectionUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RestorePointCollectionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Update Restore Point collection parameters."
+ },
+ "RestorePointCollectionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RestorePointCollection"
+ },
+ "description": "Gets the list of restore point collections."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of RestorePointCollections. Call ListNext() with this to fetch the next page of RestorePointCollections"
+ }
+ },
+ "description": "The List restore point collection operation response."
+ },
+ "RestorePointSourceMetadata": {
+ "properties": {
+ "hardwareProfile": {
+ "$ref": "#/definitions/HardwareProfile",
+ "description": "Gets the hardware profile."
+ },
+ "storageProfile": {
+ "$ref": "#/definitions/RestorePointSourceVMStorageProfile",
+ "description": "Gets the storage profile."
+ },
+ "osProfile": {
+ "$ref": "#/definitions/OSProfile",
+ "description": "Gets the OS profile."
+ },
+ "diagnosticsProfile": {
+ "$ref": "#/definitions/DiagnosticsProfile",
+ "description": "Gets the diagnostics profile."
+ },
+ "licenseType": {
+ "type": "string",
+ "description": "Gets the license type, which is for bring your own license scenario."
+ },
+ "vmId": {
+ "type": "string",
+ "description": "Gets the virtual machine unique id."
+ },
+ "securityProfile": {
+ "$ref": "#/definitions/SecurityProfile",
+ "description": "Gets the security profile."
+ }
+ },
+ "description": "Describes the properties of the Virtual Machine for which the restore point was created. The properties provided are a subset and the snapshot of the overall Virtual Machine properties captured at the time of the restore point creation."
+ },
+ "RestorePointSourceVMStorageProfile": {
+ "properties": {
+ "osDisk": {
+ "$ref": "#/definitions/RestorePointSourceVMOSDisk",
+ "description": "Gets the OS disk of the VM captured at the time of the restore point creation."
+ },
+ "dataDisks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RestorePointSourceVMDataDisk"
+ },
+ "description": "Gets the data disks of the VM captured at the time of the restore point creation."
+ }
+ },
+ "description": "Describes the storage profile."
+ },
+ "RestorePointSourceVMOSDisk": {
+ "properties": {
+ "osType": {
+ "type": "string",
+ "description": "Gets the Operating System type.",
+ "enum": [
+ "Windows",
+ "Linux"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemType",
+ "modelAsString": true
+ }
+ },
+ "encryptionSettings": {
+ "$ref": "#/definitions/DiskEncryptionSettings",
+ "description": "Gets the disk encryption settings."
+ },
+ "name": {
+ "type": "string",
+ "description": "Gets the disk name."
+ },
+ "caching": {
+ "$ref": "#/definitions/Caching",
+ "description": "Gets the caching type."
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Gets the disk size in GB."
+ },
+ "managedDisk": {
+ "$ref": "#/definitions/ManagedDiskParameters",
+ "description": "Gets the managed disk details"
+ },
+ "diskRestorePoint": {
+ "$ref": "#/definitions/ApiEntityReference",
+ "description": "Gets the disk restore point Id."
+ }
+ },
+ "description": "Describes an Operating System disk."
+ },
+ "RestorePointSourceVMDataDisk": {
+ "properties": {
+ "lun": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Gets the logical unit number."
+ },
+ "name": {
+ "type": "string",
+ "description": "Gets the disk name."
+ },
+ "caching": {
+ "$ref": "#/definitions/Caching",
+ "description": "Gets the caching type."
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Gets the initial disk size in GB for blank data disks, and the new desired size for existing OS and Data disks."
+ },
+ "managedDisk": {
+ "$ref": "#/definitions/ManagedDiskParameters",
+ "description": "Gets the managed disk details"
+ },
+ "diskRestorePoint": {
+ "$ref": "#/definitions/ApiEntityReference",
+ "description": "Gets the disk restore point Id."
+ }
+ },
+ "description": "Describes a data disk."
+ },
+ "RestorePointProvisioningDetails": {
+ "properties": {
+ "creationTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Gets the creation time of the restore point."
+ },
+ "totalUsedSizeInBytes": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Gets the total size of the data in all the disks which are part of the restore point."
+ },
+ "statusCode": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Gets the status of the Create restore point operation."
+ },
+ "statusMessage": {
+ "type": "string",
+ "description": "Gets the status message of the Create restore point operation."
+ }
+ },
+ "description": "Restore Point Provisioning details."
+ },
+ "RestorePoint": {
+ "properties": {
+ "sourceMetadata": {
+ "readOnly": true,
+ "$ref": "#/definitions/RestorePointSourceMetadata",
+ "description": "Gets the details of the VM captured at the time of the restore point creation."
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Gets the provisioning state of the restore point."
+ },
+ "consistencyMode": {
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "CrashConsistent",
+ "FileSystemConsistent",
+ "ApplicationConsistent"
+ ],
+ "x-ms-enum": {
+ "name": "ConsistencyModeTypes",
+ "modelAsString": true
+ },
+ "description": "Gets the consistency mode for the restore point. Please refer to https://aka.ms/RestorePoints for more details."
+ },
+ "provisioningDetails": {
+ "$ref": "#/definitions/RestorePointProvisioningDetails",
+ "readOnly": true,
+ "description": "Gets the provisioning details set by the server during Create restore point operation."
+ },
+ "excludeDisks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApiEntityReference"
+ },
+ "description": "List of disk resource ids that the customer wishes to exclude from the restore point. If no disks are specified, all disks will be included."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Restore Point details."
+ },
+ "ComputeOperationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/ComputeOperationValue"
+ },
+ "description": "The list of compute operations"
+ }
+ },
+ "description": "The List Compute Operation operation response."
+ },
+ "ComputeOperationValue": {
+ "properties": {
+ "origin": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The origin of the compute operation."
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the compute operation."
+ },
+ "display": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ComputeOperationValueDisplay"
+ }
+ },
+ "description": "Describes the properties of a Compute Operation value."
+ },
+ "ComputeOperationValueDisplay": {
+ "properties": {
+ "operation": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The display name of the compute operation."
+ },
+ "resource": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The display name of the resource the operation applies to."
+ },
+ "description": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The description of the operation."
+ },
+ "provider": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The resource provider for the operation."
+ }
+ },
+ "description": "Describes the properties of a Compute Operation Value Display."
+ },
+ "DisallowedConfiguration": {
+ "properties": {
+ "vmDiskType": {
+ "type": "string",
+ "description": "VM disk types which are disallowed.",
+ "enum": [
+ "None",
+ "Unmanaged"
+ ],
+ "x-ms-enum": {
+ "name": "VmDiskTypes",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Specifies the disallowed configuration for a virtual machine image."
+ },
+ "RetrieveBootDiagnosticsDataResult": {
+ "properties": {
+ "consoleScreenshotBlobUri": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The console screenshot blob URI"
+ },
+ "serialConsoleLogBlobUri": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The serial console log blob URI."
+ }
+ },
+ "description": "The SAS URIs of the console screenshot and serial log blobs."
+ },
+ "HyperVGenerationType": {
+ "type": "string",
+ "description": "Specifies the HyperVGeneration Type",
+ "enum": [
+ "V1",
+ "V2"
+ ],
+ "x-ms-enum": {
+ "name": "HyperVGenerationTypes",
+ "modelAsString": true
+ }
+ },
+ "InstanceViewStatus": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "The status code."
+ },
+ "level": {
+ "type": "string",
+ "description": "The level code.",
+ "enum": [
+ "Info",
+ "Warning",
+ "Error"
+ ],
+ "x-ms-enum": {
+ "name": "StatusLevelTypes",
+ "modelAsString": false
+ }
+ },
+ "displayStatus": {
+ "type": "string",
+ "description": "The short localizable label for the status."
+ },
+ "message": {
+ "type": "string",
+ "description": "The detailed status message, including for alerts and error messages."
+ },
+ "time": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The time of the status."
+ }
+ },
+ "description": "Instance view status."
+ },
+ "AvailabilitySetProperties": {
+ "properties": {
+ "platformUpdateDomainCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Update Domain count."
+ },
+ "platformFaultDomainCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Fault Domain count."
+ },
+ "virtualMachines": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResource"
+ },
+ "description": "A list of references to all virtual machines in the availability set."
+ },
+ "proximityPlacementGroup": {
+ "$ref": "#/definitions/SubResource",
+ "description": "Specifies information about the proximity placement group that the availability set should be assigned to.
Minimum api-version: 2018-04-01."
+ },
+ "statuses": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InstanceViewStatus"
+ },
+ "description": "The resource status information."
+ }
+ },
+ "description": "The instance view of a resource."
+ },
+ "AvailabilitySetSkuType": {
+ "type": "string",
+ "description": "Specifies the sku of an Availability Set. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'.",
+ "enum": [
+ "Classic",
+ "Aligned"
+ ],
+ "x-ms-enum": {
+ "name": "AvailabilitySetSkuTypes",
+ "modelAsString": true
+ }
+ },
+ "AvailabilitySet": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AvailabilitySetProperties"
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).
For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)
Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set."
+ },
+ "AvailabilitySetUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AvailabilitySetProperties"
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "Sku of the availability set"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Specifies information about the availability set that the virtual machine should be assigned to. Only tags may be updated."
+ },
+ "AvailabilitySetListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AvailabilitySet"
+ },
+ "description": "The list of availability sets"
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of AvailabilitySets. Call ListNext() with this URI to fetch the next page of AvailabilitySets."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Availability Set operation response."
+ },
+ "SubResourceWithColocationStatus": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ }
+ ],
+ "properties": {
+ "colocationStatus": {
+ "$ref": "#/definitions/InstanceViewStatus",
+ "description": "Describes colocation status of a resource in the Proximity Placement Group."
+ }
+ }
+ },
+ "ProximityPlacementGroupProperties": {
+ "properties": {
+ "proximityPlacementGroupType": {
+ "type": "string",
+ "description": "Specifies the type of the proximity placement group.
Possible values are:
**Standard** : Co-locate resources within an Azure region or Availability Zone.
**Ultra** : For future use.",
+ "enum": [
+ "Standard",
+ "Ultra"
+ ],
+ "x-ms-enum": {
+ "name": "ProximityPlacementGroupType",
+ "modelAsString": true
+ }
+ },
+ "virtualMachines": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResourceWithColocationStatus"
+ },
+ "description": "A list of references to all virtual machines in the proximity placement group."
+ },
+ "virtualMachineScaleSets": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResourceWithColocationStatus"
+ },
+ "description": "A list of references to all virtual machine scale sets in the proximity placement group."
+ },
+ "availabilitySets": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResourceWithColocationStatus"
+ },
+ "description": "A list of references to all availability sets in the proximity placement group."
+ },
+ "colocationStatus": {
+ "$ref": "#/definitions/InstanceViewStatus",
+ "description": "Describes colocation status of the Proximity Placement Group."
+ }
+ },
+ "description": "Describes the properties of a Proximity Placement Group."
+ },
+ "ProximityPlacementGroup": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ProximityPlacementGroupProperties",
+ "description": "Describes the properties of a Proximity Placement Group."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Specifies information about the proximity placement group."
+ },
+ "ProximityPlacementGroupUpdate": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Specifies information about the proximity placement group."
+ },
+ "ProximityPlacementGroupListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ProximityPlacementGroup"
+ },
+ "description": "The list of proximity placement groups"
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of proximity placement groups."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Proximity Placement Group operation response."
+ },
+ "DedicatedHostGroupInstanceView": {
+ "properties": {
+ "hosts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DedicatedHostInstanceViewWithName"
+ },
+ "description": "List of instance view of the dedicated hosts under the dedicated host group."
+ }
+ }
+ },
+ "DedicatedHostGroupProperties": {
+ "properties": {
+ "platformFaultDomainCount": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1,
+ "description": "Number of fault domains that the host group can span."
+ },
+ "hosts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResourceReadOnly"
+ },
+ "readOnly": true,
+ "description": "A list of references to all dedicated hosts in the dedicated host group."
+ },
+ "instanceView": {
+ "$ref": "#/definitions/DedicatedHostGroupInstanceView",
+ "readOnly": true,
+ "description": "The dedicated host group instance view, which has the list of instance view of the dedicated hosts under the dedicated host group."
+ },
+ "supportAutomaticPlacement": {
+ "type": "boolean",
+ "description": "Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided.
Minimum api-version: 2020-06-01."
+ }
+ },
+ "required": [
+ "platformFaultDomainCount"
+ ],
+ "description": "Dedicated Host Group Properties."
+ },
+ "DedicatedHostGroup": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DedicatedHostGroupProperties"
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group supports all zones in the region. If provided, enforces each host in the group to be in the same zone."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Specifies information about the dedicated host group that the dedicated hosts should be assigned to.
Currently, a dedicated host can only be added to a dedicated host group at creation time. An existing dedicated host cannot be added to another dedicated host group."
+ },
+ "DedicatedHostGroupUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DedicatedHostGroupProperties"
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group supports all zones in the region. If provided, enforces each host in the group to be in the same zone."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Specifies information about the dedicated host group that the dedicated host should be assigned to. Only tags may be updated."
+ },
+ "DedicatedHostGroupListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DedicatedHostGroup"
+ },
+ "description": "The list of dedicated host groups"
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of Dedicated Host Groups. Call ListNext() with this URI to fetch the next page of Dedicated Host Groups."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Dedicated Host Group with resource group response."
+ },
+ "DedicatedHostLicenseType": {
+ "type": "string",
+ "description": "Specifies the software license type that will be applied to the VMs deployed on the dedicated host.
Possible values are:
**None**
**Windows_Server_Hybrid**
**Windows_Server_Perpetual**
Default: **None**",
+ "enum": [
+ "None",
+ "Windows_Server_Hybrid",
+ "Windows_Server_Perpetual"
+ ],
+ "x-ms-enum": {
+ "name": "DedicatedHostLicenseTypes",
+ "modelAsString": false
+ }
+ },
+ "DedicatedHostAllocatableVM": {
+ "properties": {
+ "vmSize": {
+ "type": "string",
+ "description": "VM size in terms of which the unutilized capacity is represented."
+ },
+ "count": {
+ "type": "number",
+ "format": "double",
+ "description": "Maximum number of VMs of size vmSize that can fit in the dedicated host's remaining capacity."
+ }
+ },
+ "description": "Represents the dedicated host unutilized capacity in terms of a specific VM size."
+ },
+ "DedicatedHostAvailableCapacity": {
+ "properties": {
+ "allocatableVMs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DedicatedHostAllocatableVM"
+ },
+ "description": "The unutilized capacity of the dedicated host represented in terms of each VM size that is allowed to be deployed to the dedicated host."
+ }
+ },
+ "description": "Dedicated host unutilized capacity."
+ },
+ "DedicatedHostInstanceView": {
+ "properties": {
+ "assetId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the unique id of the dedicated physical machine on which the dedicated host resides."
+ },
+ "availableCapacity": {
+ "$ref": "#/definitions/DedicatedHostAvailableCapacity",
+ "description": "Unutilized capacity of the dedicated host."
+ },
+ "statuses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InstanceViewStatus"
+ },
+ "description": "The resource status information."
+ }
+ },
+ "description": "The instance view of a dedicated host."
+ },
+ "DedicatedHostInstanceViewWithName": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the dedicated host."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/DedicatedHostInstanceView"
+ }
+ ],
+ "description": "The instance view of a dedicated host that includes the name of the dedicated host. It is used for the response to the instance view of a dedicated host group."
+ },
+ "DedicatedHostProperties": {
+ "properties": {
+ "platformFaultDomain": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "description": "Fault domain of the dedicated host within a dedicated host group."
+ },
+ "autoReplaceOnFailure": {
+ "type": "boolean",
+ "description": "Specifies whether the dedicated host should be replaced automatically in case of a failure. The value is defaulted to 'true' when not provided."
+ },
+ "hostId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A unique id generated and assigned to the dedicated host by the platform.
Does not change throughout the lifetime of the host."
+ },
+ "virtualMachines": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResourceReadOnly"
+ },
+ "readOnly": true,
+ "description": "A list of references to all virtual machines in the Dedicated Host."
+ },
+ "licenseType": {
+ "$ref": "#/definitions/DedicatedHostLicenseType",
+ "description": "Specifies the software license type that will be applied to the VMs deployed on the dedicated host.
Possible values are:
**None**
**Windows_Server_Hybrid**
**Windows_Server_Perpetual**
Default: **None**"
+ },
+ "provisioningTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The date when the host was first provisioned."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The provisioning state, which only appears in the response."
+ },
+ "instanceView": {
+ "$ref": "#/definitions/DedicatedHostInstanceView",
+ "readOnly": true,
+ "description": "The dedicated host instance view."
+ }
+ },
+ "description": "Properties of the dedicated host."
+ },
+ "DedicatedHost": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DedicatedHostProperties"
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "SKU of the dedicated host for Hardware Generation and VM family. Only name is required to be set. List Microsoft.Compute SKUs for a list of possible values."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "sku"
+ ],
+ "description": "Specifies information about the Dedicated host."
+ },
+ "DedicatedHostUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DedicatedHostProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Specifies information about the dedicated host. Only tags, autoReplaceOnFailure and licenseType may be updated."
+ },
+ "DedicatedHostListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DedicatedHost"
+ },
+ "description": "The list of dedicated hosts"
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of dedicated hosts. Call ListNext() with this URI to fetch the next page of dedicated hosts."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The list dedicated host operation response."
+ },
+ "SshPublicKeyGenerateKeyPairResult": {
+ "properties": {
+ "privateKey": {
+ "type": "string",
+ "description": "Private key portion of the key pair used to authenticate to a virtual machine through ssh. The private key is returned in RFC3447 format and should be treated as a secret."
+ },
+ "publicKey": {
+ "type": "string",
+ "description": "Public key portion of the key pair used to authenticate to a virtual machine through ssh. The public key is in ssh-rsa format."
+ },
+ "id": {
+ "type": "string",
+ "description": "The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/sshPublicKeys/{SshPublicKeyName}"
+ }
+ },
+ "required": [
+ "privateKey",
+ "publicKey",
+ "id"
+ ],
+ "description": "Response from generation of an SSH key pair."
+ },
+ "SshPublicKeyResourceProperties": {
+ "properties": {
+ "publicKey": {
+ "type": "string",
+ "description": "SSH public key used to authenticate to a virtual machine through ssh. If this property is not initially provided when the resource is created, the publicKey property will be populated when generateKeyPair is called. If the public key is provided upon resource creation, the provided public key needs to be at least 2048-bit and in ssh-rsa format."
+ }
+ },
+ "description": "Properties of the SSH public key."
+ },
+ "SshPublicKeyResource": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SshPublicKeyResourceProperties",
+ "description": "Properties of the SSH public key."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Specifies information about the SSH public key."
+ },
+ "SshPublicKeyUpdateResource": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SshPublicKeyResourceProperties",
+ "description": "Properties of the SSH public key."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Specifies information about the SSH public key."
+ },
+ "SshPublicKeysGroupListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SshPublicKeyResource"
+ },
+ "description": "The list of SSH public keys"
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of SSH public keys. Call ListNext() with this URI to fetch the next page of SSH public keys."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The list SSH public keys operation response."
+ },
+ "VirtualMachineSize": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the virtual machine size."
+ },
+ "numberOfCores": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of cores supported by the virtual machine size. For Constrained vCPU capable VM sizes, this number represents the total vCPUs of quota that the VM uses. For accurate vCPU count, please refer to https://docs.microsoft.com/azure/virtual-machines/constrained-vcpu or https://docs.microsoft.com/rest/api/compute/resourceskus/list"
+ },
+ "osDiskSizeInMB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The OS disk size, in MB, allowed by the virtual machine size."
+ },
+ "resourceDiskSizeInMB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The resource disk size, in MB, allowed by the virtual machine size."
+ },
+ "memoryInMB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The amount of memory, in MB, supported by the virtual machine size."
+ },
+ "maxDataDiskCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of data disks that can be attached to the virtual machine size."
+ }
+ },
+ "description": "Describes the properties of a VM size."
+ },
+ "VirtualMachineSizeListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineSize"
+ },
+ "description": "The list of virtual machine sizes."
+ }
+ },
+ "description": "The List Virtual Machine operation response."
+ },
+ "VirtualMachineExtensionImageProperties": {
+ "properties": {
+ "operatingSystem": {
+ "type": "string",
+ "description": "The operating system this extension supports."
+ },
+ "computeRole": {
+ "type": "string",
+ "description": "The type of role (IaaS or PaaS) this extension supports."
+ },
+ "handlerSchema": {
+ "type": "string",
+ "description": "The schema defined by publisher, where extension consumers should provide settings in a matching schema."
+ },
+ "vmScaleSetEnabled": {
+ "type": "boolean",
+ "description": "Whether the extension can be used on xRP VMScaleSets. By default existing extensions are usable on scalesets, but there might be cases where a publisher wants to explicitly indicate the extension is only enabled for CRP VMs but not VMSS."
+ },
+ "supportsMultipleExtensions": {
+ "type": "boolean",
+ "description": "Whether the handler can support multiple extensions."
+ }
+ },
+ "required": [
+ "operatingSystem",
+ "computeRole",
+ "handlerSchema"
+ ],
+ "description": "Describes the properties of a Virtual Machine Extension Image."
+ },
+ "VirtualMachineExtensionImage": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineExtensionImageProperties"
+ }
+ },
+ "required": [
+ "name",
+ "location"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Describes a Virtual Machine Extension Image."
+ },
+ "VirtualMachineImageResource": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the resource."
+ },
+ "location": {
+ "type": "string",
+ "description": "The supported Azure location of the resource."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Specifies the tags that are assigned to the virtual machine. For more information about using tags, see [Using tags to organize your Azure resources](https://docs.microsoft.com/azure/azure-resource-manager/resource-group-using-tags.md)."
+ },
+ "extendedLocation": {
+ "$ref": "#/definitions/ExtendedLocation",
+ "description": "The extended location of the Virtual Machine."
+ }
+ },
+ "required": [
+ "name",
+ "location"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ }
+ ],
+ "description": "Virtual machine image resource information."
+ },
+ "VirtualMachineExtensionInstanceView": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The virtual machine extension name."
+ },
+ "type": {
+ "type": "string",
+ "description": "Specifies the type of the extension; an example is \"CustomScriptExtension\"."
+ },
+ "typeHandlerVersion": {
+ "type": "string",
+ "description": "Specifies the version of the script handler."
+ },
+ "substatuses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InstanceViewStatus"
+ },
+ "description": "The resource status information."
+ },
+ "statuses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InstanceViewStatus"
+ },
+ "description": "The resource status information."
+ }
+ },
+ "description": "The instance view of a virtual machine extension."
+ },
+ "VirtualMachineExtensionProperties": {
+ "properties": {
+ "forceUpdateTag": {
+ "type": "string",
+ "description": "How the extension handler should be forced to update even if the extension configuration has not changed."
+ },
+ "publisher": {
+ "type": "string",
+ "description": "The name of the extension handler publisher."
+ },
+ "type": {
+ "type": "string",
+ "description": "Specifies the type of the extension; an example is \"CustomScriptExtension\"."
+ },
+ "typeHandlerVersion": {
+ "type": "string",
+ "description": "Specifies the version of the script handler."
+ },
+ "autoUpgradeMinorVersion": {
+ "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."
+ },
+ "protectedSettings": {
+ "type": "object",
+ "description": "The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The provisioning state, which only appears in the response."
+ },
+ "instanceView": {
+ "$ref": "#/definitions/VirtualMachineExtensionInstanceView",
+ "description": "The virtual machine extension instance view."
+ }
+ },
+ "description": "Describes the properties of a Virtual Machine Extension."
+ },
+ "VirtualMachineExtensionUpdateProperties": {
+ "properties": {
+ "forceUpdateTag": {
+ "type": "string",
+ "description": "How the extension handler should be forced to update even if the extension configuration has not changed."
+ },
+ "publisher": {
+ "type": "string",
+ "description": "The name of the extension handler publisher."
+ },
+ "type": {
+ "type": "string",
+ "description": "Specifies the type of the extension; an example is \"CustomScriptExtension\"."
+ },
+ "typeHandlerVersion": {
+ "type": "string",
+ "description": "Specifies the version of the script handler."
+ },
+ "autoUpgradeMinorVersion": {
+ "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."
+ },
+ "protectedSettings": {
+ "type": "object",
+ "description": "The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all."
+ }
+ },
+ "description": "Describes the properties of a Virtual Machine Extension."
+ },
+ "VirtualMachineExtension": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineExtensionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Describes a Virtual Machine Extension."
+ },
+ "VirtualMachineScaleSetVMExtension": {
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the extension."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineExtensionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResourceReadOnly"
+ }
+ ],
+ "description": "Describes a VMSS VM Extension."
+ },
+ "VirtualMachineExtensionUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineExtensionUpdateProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Describes a Virtual Machine Extension."
+ },
+ "VirtualMachineScaleSetVMExtensionUpdate": {
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the extension."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineExtensionUpdateProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResourceReadOnly"
+ }
+ ],
+ "description": "Describes a VMSS VM Extension."
+ },
+ "VirtualMachineExtensionsListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineExtension"
+ },
+ "description": "The list of extensions"
+ }
+ },
+ "description": "The List Extension operation response"
+ },
+ "VirtualMachineScaleSetVMExtensionsListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtension"
+ },
+ "description": "The list of VMSS VM extensions"
+ }
+ },
+ "description": "The List VMSS VM Extension operation response"
+ },
+ "VirtualMachineSoftwarePatchProperties": {
+ "properties": {
+ "patchId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique identifier for the patch."
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The friendly name of the patch."
+ },
+ "version": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The version number of the patch. This property applies only to Linux patches."
+ },
+ "kbId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The KBID of the patch. Only applies to Windows patches."
+ },
+ "classifications": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "type": "string"
+ },
+ "description": "The classification(s) of the patch as provided by the patch publisher."
+ },
+ "rebootBehavior": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Describes the reboot requirements of the patch.",
+ "enum": [
+ "Unknown",
+ "NeverReboots",
+ "AlwaysRequiresReboot",
+ "CanRequestReboot"
+ ],
+ "x-ms-enum": {
+ "name": "VMGuestPatchRebootBehavior",
+ "modelAsString": true
+ }
+ },
+ "activityId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs."
+ },
+ "publishedDate": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The UTC timestamp when the repository published this patch."
+ },
+ "lastModifiedDateTime": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The UTC timestamp of the last update to this patch record."
+ },
+ "assessmentState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Describes the availability of a given patch.",
+ "enum": [
+ "Unknown",
+ "Available"
+ ],
+ "x-ms-enum": {
+ "name": "PatchAssessmentState",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Describes the properties of a Virtual Machine software patch."
+ },
+ "VirtualMachineAssessPatchesResult": {
+ "properties": {
+ "status": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The overall success or failure status of the operation. It remains \"InProgress\" until the operation completes. At that point it will become \"Unknown\", \"Failed\", \"Succeeded\", or \"CompletedWithWarnings.\"",
+ "enum": [
+ "Unknown",
+ "InProgress",
+ "Failed",
+ "Succeeded",
+ "CompletedWithWarnings"
+ ],
+ "x-ms-enum": {
+ "name": "PatchOperationStatus",
+ "modelAsString": true
+ }
+ },
+ "assessmentActivityId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs."
+ },
+ "rebootPending": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "The overall reboot status of the VM. It will be true when partially installed patches require a reboot to complete installation but the reboot has not yet occurred."
+ },
+ "criticalAndSecurityPatchCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The number of critical or security patches that have been detected as available and not yet installed."
+ },
+ "otherPatchCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The number of all available patches excluding critical and security."
+ },
+ "startDateTime": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The UTC timestamp when the operation began."
+ },
+ "availablePatches": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineSoftwarePatchProperties"
+ },
+ "description": "The list of patches that have been detected as available for installation."
+ },
+ "error": {
+ "$ref": "#/definitions/ApiError",
+ "readOnly": true,
+ "description": "The errors that were encountered during execution of the operation. The details array contains the list of them."
+ }
+ },
+ "description": "Describes the properties of an AssessPatches result."
+ },
+ "VirtualMachineInstallPatchesParameters": {
+ "properties": {
+ "maximumDuration": {
+ "type": "string",
+ "description": "Specifies the maximum amount of time that the operation will run. It must be an ISO 8601-compliant duration string such as PT4H (4 hours)"
+ },
+ "rebootSetting": {
+ "type": "string",
+ "description": "Defines when it is acceptable to reboot a VM during a software update operation.",
+ "enum": [
+ "IfRequired",
+ "Never",
+ "Always"
+ ],
+ "x-ms-enum": {
+ "name": "VMGuestPatchRebootSetting",
+ "modelAsString": true
+ }
+ },
+ "windowsParameters": {
+ "$ref": "#/definitions/WindowsParameters",
+ "description": "Input for InstallPatches on a Windows VM, as directly received by the API"
+ },
+ "linuxParameters": {
+ "$ref": "#/definitions/LinuxParameters",
+ "description": "Input for InstallPatches on a Linux VM, as directly received by the API"
+ }
+ },
+ "required": [
+ "maximumDuration",
+ "rebootSetting"
+ ],
+ "description": "Input for InstallPatches as directly received by the API"
+ },
+ "WindowsParameters": {
+ "properties": {
+ "classificationsToInclude": {
+ "type": "array",
+ "description": "The update classifications to select when installing patches for Windows.",
+ "items": {
+ "type": "string",
+ "enum": [
+ "Critical",
+ "Security",
+ "UpdateRollUp",
+ "FeaturePack",
+ "ServicePack",
+ "Definition",
+ "Tools",
+ "Updates"
+ ],
+ "x-ms-enum": {
+ "name": "VMGuestPatchClassification_Windows",
+ "modelAsString": true
+ }
+ }
+ },
+ "kbNumbersToInclude": {
+ "type": "array",
+ "description": "Kbs to include in the patch operation",
+ "items": {
+ "type": "string"
+ }
+ },
+ "kbNumbersToExclude": {
+ "type": "array",
+ "description": "Kbs to exclude in the patch operation",
+ "items": {
+ "type": "string"
+ }
+ },
+ "excludeKbsRequiringReboot": {
+ "type": "boolean",
+ "description": "Filters out Kbs that don't have an InstallationRebootBehavior of 'NeverReboots' when this is set to true."
+ },
+ "maxPatchPublishDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "This is used to install patches that were published on or before this given max published date."
+ }
+ },
+ "description": "Input for InstallPatches on a Windows VM, as directly received by the API"
+ },
+ "LinuxParameters": {
+ "properties": {
+ "classificationsToInclude": {
+ "type": "array",
+ "description": "The update classifications to select when installing patches for Linux.",
+ "items": {
+ "type": "string",
+ "enum": [
+ "Critical",
+ "Security",
+ "Other"
+ ],
+ "x-ms-enum": {
+ "name": "VMGuestPatchClassification_Linux",
+ "modelAsString": true
+ }
+ }
+ },
+ "packageNameMasksToInclude": {
+ "type": "array",
+ "description": "packages to include in the patch operation. Format: packageName_packageVersion",
+ "items": {
+ "type": "string"
+ }
+ },
+ "packageNameMasksToExclude": {
+ "type": "array",
+ "description": "packages to exclude in the patch operation. Format: packageName_packageVersion",
+ "items": {
+ "type": "string"
+ }
+ },
+ "maintenanceRunId": {
+ "type": "string",
+ "description": "This is used as a maintenance run identifier for Auto VM Guest Patching in Linux."
+ }
+ },
+ "description": "Input for InstallPatches on a Linux VM, as directly received by the API"
+ },
+ "VirtualMachineInstallPatchesResult": {
+ "properties": {
+ "status": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The overall success or failure status of the operation. It remains \"InProgress\" until the operation completes. At that point it will become \"Failed\", \"Succeeded\", \"Unknown\" or \"CompletedWithWarnings.\"",
+ "enum": [
+ "Unknown",
+ "InProgress",
+ "Failed",
+ "Succeeded",
+ "CompletedWithWarnings"
+ ],
+ "x-ms-enum": {
+ "name": "PatchOperationStatus",
+ "modelAsString": true
+ }
+ },
+ "installationActivityId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs."
+ },
+ "rebootStatus": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The reboot state of the VM following completion of the operation.",
+ "enum": [
+ "Unknown",
+ "NotNeeded",
+ "Required",
+ "Started",
+ "Failed",
+ "Completed"
+ ],
+ "x-ms-enum": {
+ "name": "VMGuestPatchRebootStatus",
+ "modelAsString": true
+ }
+ },
+ "maintenanceWindowExceeded": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "Whether the operation ran out of time before it completed all its intended actions."
+ },
+ "excludedPatchCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The number of patches that were not installed due to the user blocking their installation."
+ },
+ "notSelectedPatchCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The number of patches that were detected as available for install, but did not meet the operation's criteria."
+ },
+ "pendingPatchCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The number of patches that were identified as meeting the installation criteria, but were not able to be installed. Typically this happens when maintenanceWindowExceeded == true."
+ },
+ "installedPatchCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The number of patches successfully installed."
+ },
+ "failedPatchCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The number of patches that could not be installed due to some issue. See errors for details."
+ },
+ "patches": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PatchInstallationDetail"
+ },
+ "description": "The patches that were installed during the operation."
+ },
+ "startDateTime": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The UTC timestamp when the operation began."
+ },
+ "error": {
+ "$ref": "#/definitions/ApiError",
+ "readOnly": true,
+ "description": "The errors that were encountered during execution of the operation. The details array contains the list of them."
+ }
+ },
+ "description": "The result summary of an installation operation."
+ },
+ "PatchInstallationDetail": {
+ "properties": {
+ "patchId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "A unique identifier for the patch."
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The friendly name of the patch."
+ },
+ "version": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The version string of the package. It may conform to Semantic Versioning. Only applies to Linux."
+ },
+ "kbId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The KBID of the patch. Only applies to Windows patches."
+ },
+ "classifications": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "type": "string"
+ },
+ "description": "The classification(s) of the patch as provided by the patch publisher."
+ },
+ "installationState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The state of the patch after the installation operation completed.",
+ "enum": [
+ "Unknown",
+ "Installed",
+ "Failed",
+ "Excluded",
+ "NotSelected",
+ "Pending"
+ ],
+ "x-ms-enum": {
+ "name": "PatchInstallationState",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Information about a specific patch that was encountered during an installation action."
+ },
+ "PurchasePlan": {
+ "properties": {
+ "publisher": {
+ "type": "string",
+ "description": "The publisher ID."
+ },
+ "name": {
+ "type": "string",
+ "description": "The plan ID."
+ },
+ "product": {
+ "type": "string",
+ "description": "Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element."
+ }
+ },
+ "required": [
+ "publisher",
+ "name",
+ "product"
+ ],
+ "description": "Used for establishing the purchase context of any 3rd Party artifact through MarketPlace."
+ },
+ "OSDiskImage": {
+ "properties": {
+ "operatingSystem": {
+ "type": "string",
+ "description": "The operating system of the osDiskImage.",
+ "enum": [
+ "Windows",
+ "Linux"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemTypes",
+ "modelAsString": false
+ }
+ }
+ },
+ "required": [
+ "operatingSystem"
+ ],
+ "description": "Contains the os disk image information."
+ },
+ "DataDiskImage": {
+ "properties": {
+ "lun": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM."
+ }
+ },
+ "description": "Contains the data disk images information."
+ },
+ "AutomaticOSUpgradeProperties": {
+ "properties": {
+ "automaticOSUpgradeSupported": {
+ "type": "boolean",
+ "description": "Specifies whether automatic OS upgrade is supported on the image."
+ }
+ },
+ "required": [
+ "automaticOSUpgradeSupported"
+ ],
+ "description": "Describes automatic OS upgrade properties on the image."
+ },
+ "VirtualMachineImageFeature": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the feature."
+ },
+ "value": {
+ "type": "string",
+ "description": "The corresponding value for the feature."
+ }
+ },
+ "description": "Specifies additional capabilities supported by the image"
+ },
+ "VirtualMachineImageProperties": {
+ "properties": {
+ "plan": {
+ "$ref": "#/definitions/PurchasePlan"
+ },
+ "osDiskImage": {
+ "$ref": "#/definitions/OSDiskImage"
+ },
+ "dataDiskImages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataDiskImage"
+ }
+ },
+ "automaticOSUpgradeProperties": {
+ "$ref": "#/definitions/AutomaticOSUpgradeProperties"
+ },
+ "hyperVGeneration": {
+ "$ref": "#/definitions/HyperVGenerationType"
+ },
+ "disallowed": {
+ "$ref": "#/definitions/DisallowedConfiguration",
+ "description": "Specifies disallowed configuration for the VirtualMachine created from the image"
+ },
+ "features": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineImageFeature"
+ }
+ }
+ },
+ "description": "Describes the properties of a Virtual Machine Image."
+ },
+ "VirtualMachineImage": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineImageProperties"
+ }
+ },
+ "required": [
+ "name",
+ "location"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/VirtualMachineImageResource"
+ }
+ ],
+ "description": "Describes a Virtual Machine Image."
+ },
+ "UsageName": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "The name of the resource."
+ },
+ "localizedValue": {
+ "type": "string",
+ "description": "The localized name of the resource."
+ }
+ },
+ "description": "The Usage Names."
+ },
+ "Usage": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "description": "An enum describing the unit of usage measurement.",
+ "enum": [
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "UsageUnit",
+ "modelAsString": false
+ }
+ },
+ "currentValue": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The current usage of the resource."
+ },
+ "limit": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The maximum permitted usage of the resource."
+ },
+ "name": {
+ "$ref": "#/definitions/UsageName",
+ "description": "The name of the type of usage."
+ }
+ },
+ "required": [
+ "unit",
+ "currentValue",
+ "limit",
+ "name"
+ ],
+ "description": "Describes Compute Resource Usage."
+ },
+ "ListUsagesResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Usage"
+ },
+ "description": "The list of compute resource usages."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of compute resource usage information. Call ListNext() with this to fetch the next page of compute resource usage information."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Usages operation response."
+ },
+ "VirtualMachineReimageParameters": {
+ "properties": {
+ "tempDisk": {
+ "type": "boolean",
+ "description": "Specifies whether to reimage temp disk. Default value: false. Note: This temp disk reimage parameter is only supported for VM/VMSS with Ephemeral OS disk."
+ }
+ },
+ "description": "Parameters for Reimaging Virtual Machine. NOTE: Virtual Machine OS disk will always be reimaged"
+ },
+ "VirtualMachineCaptureParameters": {
+ "properties": {
+ "vhdPrefix": {
+ "type": "string",
+ "description": "The captured virtual hard disk's name prefix."
+ },
+ "destinationContainerName": {
+ "type": "string",
+ "description": "The destination container name."
+ },
+ "overwriteVhds": {
+ "type": "boolean",
+ "description": "Specifies whether to overwrite the destination virtual hard disk, in case of conflict."
+ }
+ },
+ "required": [
+ "vhdPrefix",
+ "destinationContainerName",
+ "overwriteVhds"
+ ],
+ "description": "Capture Virtual Machine parameters."
+ },
+ "VirtualMachineCaptureResult": {
+ "properties": {
+ "$schema": {
+ "readOnly": true,
+ "type": "string",
+ "description": "the schema of the captured virtual machine"
+ },
+ "contentVersion": {
+ "readOnly": true,
+ "type": "string",
+ "description": "the version of the content"
+ },
+ "parameters": {
+ "readOnly": true,
+ "type": "object",
+ "description": "parameters of the captured virtual machine"
+ },
+ "resources": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "object",
+ "description": "resource item"
+ },
+ "description": "a list of resource items of the captured virtual machine"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ }
+ ],
+ "description": "Output of virtual machine capture operation."
+ },
+ "Plan": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The plan ID."
+ },
+ "publisher": {
+ "type": "string",
+ "description": "The publisher ID."
+ },
+ "product": {
+ "type": "string",
+ "description": "Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element."
+ },
+ "promotionCode": {
+ "type": "string",
+ "description": "The promotion code."
+ }
+ },
+ "description": "Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**."
+ },
+ "HardwareProfile": {
+ "properties": {
+ "vmSize": {
+ "type": "string",
+ "description": "Specifies the size of the virtual machine.
The enum data type is currently deprecated and will be removed by December 23rd 2023.
Recommended way to get the list of available sizes is using these APIs:
[List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes)
[List all available virtual machine sizes in a region]( https://docs.microsoft.com/rest/api/compute/resourceskus/list)
[List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes).
The available VM sizes depend on region and availability set.",
+ "enum": [
+ "Basic_A0",
+ "Basic_A1",
+ "Basic_A2",
+ "Basic_A3",
+ "Basic_A4",
+ "Standard_A0",
+ "Standard_A1",
+ "Standard_A2",
+ "Standard_A3",
+ "Standard_A4",
+ "Standard_A5",
+ "Standard_A6",
+ "Standard_A7",
+ "Standard_A8",
+ "Standard_A9",
+ "Standard_A10",
+ "Standard_A11",
+ "Standard_A1_v2",
+ "Standard_A2_v2",
+ "Standard_A4_v2",
+ "Standard_A8_v2",
+ "Standard_A2m_v2",
+ "Standard_A4m_v2",
+ "Standard_A8m_v2",
+ "Standard_B1s",
+ "Standard_B1ms",
+ "Standard_B2s",
+ "Standard_B2ms",
+ "Standard_B4ms",
+ "Standard_B8ms",
+ "Standard_D1",
+ "Standard_D2",
+ "Standard_D3",
+ "Standard_D4",
+ "Standard_D11",
+ "Standard_D12",
+ "Standard_D13",
+ "Standard_D14",
+ "Standard_D1_v2",
+ "Standard_D2_v2",
+ "Standard_D3_v2",
+ "Standard_D4_v2",
+ "Standard_D5_v2",
+ "Standard_D2_v3",
+ "Standard_D4_v3",
+ "Standard_D8_v3",
+ "Standard_D16_v3",
+ "Standard_D32_v3",
+ "Standard_D64_v3",
+ "Standard_D2s_v3",
+ "Standard_D4s_v3",
+ "Standard_D8s_v3",
+ "Standard_D16s_v3",
+ "Standard_D32s_v3",
+ "Standard_D64s_v3",
+ "Standard_D11_v2",
+ "Standard_D12_v2",
+ "Standard_D13_v2",
+ "Standard_D14_v2",
+ "Standard_D15_v2",
+ "Standard_DS1",
+ "Standard_DS2",
+ "Standard_DS3",
+ "Standard_DS4",
+ "Standard_DS11",
+ "Standard_DS12",
+ "Standard_DS13",
+ "Standard_DS14",
+ "Standard_DS1_v2",
+ "Standard_DS2_v2",
+ "Standard_DS3_v2",
+ "Standard_DS4_v2",
+ "Standard_DS5_v2",
+ "Standard_DS11_v2",
+ "Standard_DS12_v2",
+ "Standard_DS13_v2",
+ "Standard_DS14_v2",
+ "Standard_DS15_v2",
+ "Standard_DS13-4_v2",
+ "Standard_DS13-2_v2",
+ "Standard_DS14-8_v2",
+ "Standard_DS14-4_v2",
+ "Standard_E2_v3",
+ "Standard_E4_v3",
+ "Standard_E8_v3",
+ "Standard_E16_v3",
+ "Standard_E32_v3",
+ "Standard_E64_v3",
+ "Standard_E2s_v3",
+ "Standard_E4s_v3",
+ "Standard_E8s_v3",
+ "Standard_E16s_v3",
+ "Standard_E32s_v3",
+ "Standard_E64s_v3",
+ "Standard_E32-16_v3",
+ "Standard_E32-8s_v3",
+ "Standard_E64-32s_v3",
+ "Standard_E64-16s_v3",
+ "Standard_F1",
+ "Standard_F2",
+ "Standard_F4",
+ "Standard_F8",
+ "Standard_F16",
+ "Standard_F1s",
+ "Standard_F2s",
+ "Standard_F4s",
+ "Standard_F8s",
+ "Standard_F16s",
+ "Standard_F2s_v2",
+ "Standard_F4s_v2",
+ "Standard_F8s_v2",
+ "Standard_F16s_v2",
+ "Standard_F32s_v2",
+ "Standard_F64s_v2",
+ "Standard_F72s_v2",
+ "Standard_G1",
+ "Standard_G2",
+ "Standard_G3",
+ "Standard_G4",
+ "Standard_G5",
+ "Standard_GS1",
+ "Standard_GS2",
+ "Standard_GS3",
+ "Standard_GS4",
+ "Standard_GS5",
+ "Standard_GS4-8",
+ "Standard_GS4-4",
+ "Standard_GS5-16",
+ "Standard_GS5-8",
+ "Standard_H8",
+ "Standard_H16",
+ "Standard_H8m",
+ "Standard_H16m",
+ "Standard_H16r",
+ "Standard_H16mr",
+ "Standard_L4s",
+ "Standard_L8s",
+ "Standard_L16s",
+ "Standard_L32s",
+ "Standard_M64s",
+ "Standard_M64ms",
+ "Standard_M128s",
+ "Standard_M128ms",
+ "Standard_M64-32ms",
+ "Standard_M64-16ms",
+ "Standard_M128-64ms",
+ "Standard_M128-32ms",
+ "Standard_NC6",
+ "Standard_NC12",
+ "Standard_NC24",
+ "Standard_NC24r",
+ "Standard_NC6s_v2",
+ "Standard_NC12s_v2",
+ "Standard_NC24s_v2",
+ "Standard_NC24rs_v2",
+ "Standard_NC6s_v3",
+ "Standard_NC12s_v3",
+ "Standard_NC24s_v3",
+ "Standard_NC24rs_v3",
+ "Standard_ND6s",
+ "Standard_ND12s",
+ "Standard_ND24s",
+ "Standard_ND24rs",
+ "Standard_NV6",
+ "Standard_NV12",
+ "Standard_NV24"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualMachineSizeTypes",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Specifies the hardware settings for the virtual machine."
+ },
+ "ImageReference": {
+ "properties": {
+ "publisher": {
+ "type": "string",
+ "description": "The image publisher."
+ },
+ "offer": {
+ "type": "string",
+ "description": "Specifies the offer of the platform image or marketplace image used to create the virtual machine."
+ },
+ "sku": {
+ "type": "string",
+ "description": "The image SKU."
+ },
+ "version": {
+ "type": "string",
+ "description": "Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available."
+ },
+ "exactVersion": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ }
+ ],
+ "description": "Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. NOTE: Image reference publisher and offer can only be set when you create the scale set."
+ },
+ "KeyVaultSecretReference": {
+ "properties": {
+ "secretUrl": {
+ "type": "string",
+ "description": "The URL referencing a secret in a Key Vault."
+ },
+ "sourceVault": {
+ "$ref": "#/definitions/SubResource",
+ "description": "The relative URL of the Key Vault containing the secret."
+ }
+ },
+ "required": [
+ "secretUrl",
+ "sourceVault"
+ ],
+ "description": "Describes a reference to Key Vault Secret"
+ },
+ "DiskEncryptionSetParameters": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ }
+ ],
+ "description": "Describes the parameter of customer managed disk encryption set resource id that can be specified for disk.
NOTE: The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details."
+ },
+ "KeyVaultKeyReference": {
+ "properties": {
+ "keyUrl": {
+ "type": "string",
+ "description": "The URL referencing a key encryption key in Key Vault."
+ },
+ "sourceVault": {
+ "$ref": "#/definitions/SubResource",
+ "description": "The relative URL of the Key Vault containing the key."
+ }
+ },
+ "required": [
+ "keyUrl",
+ "sourceVault"
+ ],
+ "description": "Describes a reference to Key Vault Key"
+ },
+ "DiskEncryptionSettings": {
+ "properties": {
+ "diskEncryptionKey": {
+ "$ref": "#/definitions/KeyVaultSecretReference",
+ "description": "Specifies the location of the disk encryption key, which is a Key Vault Secret."
+ },
+ "keyEncryptionKey": {
+ "$ref": "#/definitions/KeyVaultKeyReference",
+ "description": "Specifies the location of the key encryption key in Key Vault."
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "Specifies whether disk encryption should be enabled on the virtual machine."
+ }
+ },
+ "description": "Describes a Encryption Settings for a Disk"
+ },
+ "VirtualHardDisk": {
+ "properties": {
+ "uri": {
+ "type": "string",
+ "description": "Specifies the virtual hard disk's uri."
+ }
+ },
+ "description": "Describes the uri of a disk."
+ },
+ "Caching": {
+ "type": "string",
+ "description": "Specifies the caching requirements.
Possible values are:
**None**
**ReadOnly**
**ReadWrite**
Default: **None for Standard storage. ReadOnly for Premium storage**",
+ "enum": [
+ "None",
+ "ReadOnly",
+ "ReadWrite"
+ ],
+ "x-ms-enum": {
+ "name": "CachingTypes",
+ "modelAsString": false
+ }
+ },
+ "CreateOption": {
+ "type": "string",
+ "description": "Specifies how the virtual machine should be created.
Possible values are:
**Attach** \\u2013 This value is used when you are using a specialized disk to create the virtual machine.
**FromImage** \\u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.",
+ "enum": [
+ "FromImage",
+ "Empty",
+ "Attach"
+ ],
+ "x-ms-enum": {
+ "name": "DiskCreateOptionTypes",
+ "modelAsString": true
+ }
+ },
+ "DetachOption": {
+ "type": "string",
+ "description": "Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: **ForceDetach**.
detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior.
This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.",
+ "enum": [
+ "ForceDetach"
+ ],
+ "x-ms-enum": {
+ "name": "DiskDetachOptionTypes",
+ "modelAsString": true
+ }
+ },
+ "DeleteOption": {
+ "type": "string",
+ "description": "Specifies the behavior of the managed disk when the VM gets deleted i.e whether the managed disk is deleted or detached. Supported values:
**Delete** If this value is used, the managed disk is deleted when VM gets deleted.
**Detach** If this value is used, the managed disk is retained after VM gets deleted.
Minimum api-version: 2021-03-01",
+ "enum": [
+ "Delete",
+ "Detach"
+ ],
+ "x-ms-enum": {
+ "name": "DiskDeleteOptionTypes",
+ "modelAsString": true
+ }
+ },
+ "StorageAccountType": {
+ "type": "string",
+ "description": "Specifies the storage account type for the managed disk. Managed OS disk storage account type can only be set when you create the scale set. NOTE: UltraSSD_LRS can only be used with data disks. It cannot be used with OS Disk. Standard_LRS uses Standard HDD. StandardSSD_LRS uses Standard SSD. Premium_LRS uses Premium SSD. UltraSSD_LRS uses Ultra disk. Premium_ZRS uses Premium SSD zone redundant storage. StandardSSD_ZRS uses Standard SSD zone redundant storage. For more information regarding disks supported for Windows Virtual Machines, refer to https://docs.microsoft.com/azure/virtual-machines/windows/disks-types and, for Linux Virtual Machines, refer to https://docs.microsoft.com/azure/virtual-machines/linux/disks-types",
+ "enum": [
+ "Standard_LRS",
+ "Premium_LRS",
+ "StandardSSD_LRS",
+ "UltraSSD_LRS",
+ "Premium_ZRS",
+ "StandardSSD_ZRS"
+ ],
+ "x-ms-enum": {
+ "name": "StorageAccountTypes",
+ "modelAsString": true
+ }
+ },
+ "DiffDiskOption": {
+ "type": "string",
+ "description": "Specifies the ephemeral disk option for operating system disk.",
+ "enum": [
+ "Local"
+ ],
+ "x-ms-enum": {
+ "name": "DiffDiskOptions",
+ "modelAsString": true
+ }
+ },
+ "DiffDiskPlacement": {
+ "type": "string",
+ "description": "Specifies the ephemeral disk placement for operating system disk. This property can be used by user in the request to choose the location i.e, cache disk or resource disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer Ephemeral OS disk size requirements for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements",
+ "enum": [
+ "CacheDisk",
+ "ResourceDisk"
+ ],
+ "x-ms-enum": {
+ "name": "DiffDiskPlacement",
+ "modelAsString": true
+ }
+ },
+ "DiffDiskSettings": {
+ "properties": {
+ "option": {
+ "$ref": "#/definitions/DiffDiskOption",
+ "description": "Specifies the ephemeral disk settings for operating system disk."
+ },
+ "placement": {
+ "$ref": "#/definitions/DiffDiskPlacement",
+ "description": "Specifies the ephemeral disk placement for operating system disk.
Possible values are:
**CacheDisk**
**ResourceDisk**
Default: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used.
Refer to VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk."
+ }
+ },
+ "description": "Describes the parameters of ephemeral disk settings that can be specified for operating system disk.
NOTE: The ephemeral disk settings can only be specified for managed disk."
+ },
+ "ManagedDiskParameters": {
+ "properties": {
+ "storageAccountType": {
+ "$ref": "#/definitions/StorageAccountType",
+ "description": "Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk."
+ },
+ "diskEncryptionSet": {
+ "$ref": "#/definitions/DiskEncryptionSetParameters",
+ "description": "Specifies the customer managed disk encryption set resource id for the managed disk."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ }
+ ],
+ "description": "The parameters of a managed disk."
+ },
+ "OSDisk": {
+ "properties": {
+ "osType": {
+ "type": "string",
+ "description": "This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.
Possible values are:
**Windows**
**Linux**",
+ "enum": [
+ "Windows",
+ "Linux"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemTypes",
+ "modelAsString": false
+ }
+ },
+ "encryptionSettings": {
+ "$ref": "#/definitions/DiskEncryptionSettings",
+ "description": "Specifies the encryption settings for the OS Disk.
Minimum api-version: 2015-06-15"
+ },
+ "name": {
+ "type": "string",
+ "description": "The disk name."
+ },
+ "vhd": {
+ "$ref": "#/definitions/VirtualHardDisk",
+ "description": "The virtual hard disk."
+ },
+ "image": {
+ "$ref": "#/definitions/VirtualHardDisk",
+ "description": "The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist."
+ },
+ "caching": {
+ "$ref": "#/definitions/Caching",
+ "description": "Specifies the caching requirements.
Possible values are:
**None**
**ReadOnly**
**ReadWrite**
Default: **None** for Standard storage. **ReadOnly** for Premium storage."
+ },
+ "writeAcceleratorEnabled": {
+ "type": "boolean",
+ "description": "Specifies whether writeAccelerator should be enabled or disabled on the disk."
+ },
+ "diffDiskSettings": {
+ "$ref": "#/definitions/DiffDiskSettings",
+ "description": "Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine."
+ },
+ "createOption": {
+ "$ref": "#/definitions/CreateOption",
+ "description": "Specifies how the virtual machine should be created.
Possible values are:
**Attach** \\u2013 This value is used when you are using a specialized disk to create the virtual machine.
**FromImage** \\u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described."
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.
This value cannot be larger than 1023 GB"
+ },
+ "managedDisk": {
+ "description": "The managed disk parameters.",
+ "$ref": "#/definitions/ManagedDiskParameters"
+ },
+ "deleteOption": {
+ "$ref": "#/definitions/DeleteOption",
+ "description": "Specifies whether OS Disk should be deleted or detached upon VM deletion.
Possible values:
**Delete** If this value is used, the OS disk is deleted when VM is deleted.
**Detach** If this value is used, the os disk is retained after VM is deleted.
The default value is set to **detach**. For an ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for ephemeral OS Disk."
+ }
+ },
+ "required": [
+ "createOption"
+ ],
+ "description": "Specifies information about the operating system disk used by the virtual machine.
For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview)."
+ },
+ "DataDisk": {
+ "properties": {
+ "lun": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM."
+ },
+ "name": {
+ "type": "string",
+ "description": "The disk name."
+ },
+ "vhd": {
+ "$ref": "#/definitions/VirtualHardDisk",
+ "description": "The virtual hard disk."
+ },
+ "image": {
+ "$ref": "#/definitions/VirtualHardDisk",
+ "description": "The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist."
+ },
+ "caching": {
+ "$ref": "#/definitions/Caching",
+ "description": "Specifies the caching requirements.
Possible values are:
**None**
**ReadOnly**
**ReadWrite**
Default: **None for Standard storage. ReadOnly for Premium storage**"
+ },
+ "writeAcceleratorEnabled": {
+ "type": "boolean",
+ "description": "Specifies whether writeAccelerator should be enabled or disabled on the disk."
+ },
+ "createOption": {
+ "$ref": "#/definitions/CreateOption",
+ "description": "Specifies how the virtual machine should be created.
Possible values are:
**Attach** \\u2013 This value is used when you are using a specialized disk to create the virtual machine.
**FromImage** \\u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described."
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.
This value cannot be larger than 1023 GB"
+ },
+ "managedDisk": {
+ "description": "The managed disk parameters.",
+ "$ref": "#/definitions/ManagedDiskParameters"
+ },
+ "toBeDetached": {
+ "type": "boolean",
+ "description": "Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset"
+ },
+ "diskIOPSReadWrite": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int64",
+ "description": "Specifies the Read-Write IOPS for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set."
+ },
+ "diskMBpsReadWrite": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int64",
+ "description": "Specifies the bandwidth in MB per second for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set."
+ },
+ "detachOption": {
+ "$ref": "#/definitions/DetachOption",
+ "description": "Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: **ForceDetach**.
detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior.
This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'."
+ },
+ "deleteOption": {
+ "$ref": "#/definitions/DeleteOption",
+ "description": "Specifies whether data disk should be deleted or detached upon VM deletion.
Possible values:
**Delete** If this value is used, the data disk is deleted when VM is deleted.
**Detach** If this value is used, the data disk is retained after VM is deleted.
The default value is set to **detach**"
+ }
+ },
+ "required": [
+ "lun",
+ "createOption"
+ ],
+ "description": "Describes a data disk."
+ },
+ "StorageProfile": {
+ "properties": {
+ "imageReference": {
+ "$ref": "#/definitions/ImageReference",
+ "description": "Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations."
+ },
+ "osDisk": {
+ "$ref": "#/definitions/OSDisk",
+ "description": "Specifies information about the operating system disk used by the virtual machine.
For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview)."
+ },
+ "dataDisks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataDisk"
+ },
+ "description": "Specifies the parameters that are used to add a data disk to a virtual machine.
For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview)."
+ }
+ },
+ "description": "Specifies the storage settings for the virtual machine disks."
+ },
+ "UefiSettings": {
+ "properties": {
+ "secureBootEnabled": {
+ "type": "boolean",
+ "description": "Specifies whether secure boot should be enabled on the virtual machine.
Minimum api-version: 2020-12-01"
+ },
+ "vTpmEnabled": {
+ "type": "boolean",
+ "description": "Specifies whether vTPM should be enabled on the virtual machine.
Minimum api-version: 2020-12-01"
+ }
+ },
+ "description": "Specifies the security settings like secure boot and vTPM used while creating the virtual machine.
Minimum api-version: 2020-12-01"
+ },
+ "SecurityProfile": {
+ "properties": {
+ "uefiSettings": {
+ "$ref": "#/definitions/UefiSettings",
+ "description": "Specifies the security settings like secure boot and vTPM used while creating the virtual machine.
Minimum api-version: 2020-12-01"
+ },
+ "encryptionAtHost": {
+ "type": "boolean",
+ "description": "This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself.
Default: The Encryption at host will be disabled unless this property is set to true for the resource."
+ },
+ "securityType": {
+ "type": "string",
+ "description": "Specifies the SecurityType of the virtual machine. It is set as TrustedLaunch to enable UefiSettings.
Default: UefiSettings will not be enabled unless this property is set as TrustedLaunch.",
+ "enum": [
+ "TrustedLaunch"
+ ],
+ "x-ms-enum": {
+ "name": "SecurityTypes",
+ "modelAsString": false
+ }
+ }
+ },
+ "description": "Specifies the Security profile settings for the virtual machine or virtual machine scale set."
+ },
+ "AdditionalCapabilities": {
+ "properties": {
+ "ultraSSDEnabled": {
+ "type": "boolean",
+ "description": "The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled."
+ }
+ },
+ "description": "Enables or disables a capability on the virtual machine or virtual machine scale set."
+ },
+ "AdditionalUnattendContent": {
+ "properties": {
+ "passName": {
+ "type": "string",
+ "description": "The pass name. Currently, the only allowable value is OobeSystem.",
+ "enum": [
+ "OobeSystem"
+ ],
+ "x-ms-enum": {
+ "name": "PassNames",
+ "modelAsString": false
+ }
+ },
+ "componentName": {
+ "type": "string",
+ "description": "The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.",
+ "enum": [
+ "Microsoft-Windows-Shell-Setup"
+ ],
+ "x-ms-enum": {
+ "name": "ComponentNames",
+ "modelAsString": false
+ }
+ },
+ "settingName": {
+ "type": "string",
+ "description": "Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon.",
+ "enum": [
+ "AutoLogon",
+ "FirstLogonCommands"
+ ],
+ "x-ms-enum": {
+ "name": "SettingNames",
+ "modelAsString": false
+ }
+ },
+ "content": {
+ "type": "string",
+ "description": "Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted."
+ }
+ },
+ "description": "Specifies additional XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup. Contents are defined by setting name, component name, and the pass in which the content is applied."
+ },
+ "WinRMListener": {
+ "properties": {
+ "protocol": {
+ "type": "string",
+ "description": "Specifies the protocol of WinRM listener.
Possible values are: **http**
**https**",
+ "enum": [
+ "Http",
+ "Https"
+ ],
+ "x-ms-enum": {
+ "name": "ProtocolTypes",
+ "modelAsString": false
+ }
+ },
+ "certificateUrl": {
+ "type": "string",
+ "description": "This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:
{ \"data\":\"\", \"dataType\":\"pfx\", \"password\":\"\" }"
+ }
+ },
+ "description": "Describes Protocol and thumbprint of Windows Remote Management listener"
+ },
+ "WinRMConfiguration": {
+ "properties": {
+ "listeners": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/WinRMListener"
+ },
+ "description": "The list of Windows Remote Management listeners"
+ }
+ },
+ "description": "Describes Windows Remote Management configuration of the VM"
+ },
+ "WindowsConfiguration": {
+ "properties": {
+ "provisionVMAgent": {
+ "type": "boolean",
+ "description": "Indicates whether virtual machine agent should be provisioned on the virtual machine.
When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later."
+ },
+ "enableAutomaticUpdates": {
+ "type": "boolean",
+ "description": "Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true.
For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning."
+ },
+ "timeZone": {
+ "type": "string",
+ "description": "Specifies the time zone of the virtual machine. e.g. \"Pacific Standard Time\".
Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones)."
+ },
+ "additionalUnattendContent": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AdditionalUnattendContent"
+ },
+ "description": "Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup."
+ },
+ "patchSettings": {
+ "$ref": "#/definitions/PatchSettings",
+ "description": "[Preview Feature] Specifies settings related to VM Guest Patching on Windows."
+ },
+ "winRM": {
+ "$ref": "#/definitions/WinRMConfiguration",
+ "description": "Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell."
+ }
+ },
+ "description": "Specifies Windows operating system settings on the virtual machine."
+ },
+ "SshPublicKey": {
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys"
+ },
+ "keyData": {
+ "type": "string",
+ "description": "SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format.
For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed)."
+ }
+ },
+ "description": "Contains information about SSH certificate public key and the path on the Linux VM where the public key is placed."
+ },
+ "SshConfiguration": {
+ "properties": {
+ "publicKeys": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SshPublicKey"
+ },
+ "description": "The list of SSH public keys used to authenticate with linux based VMs."
+ }
+ },
+ "description": "SSH configuration for Linux based VMs running on Azure"
+ },
+ "LinuxConfiguration": {
+ "properties": {
+ "disablePasswordAuthentication": {
+ "type": "boolean",
+ "description": "Specifies whether password authentication should be disabled."
+ },
+ "ssh": {
+ "$ref": "#/definitions/SshConfiguration",
+ "description": "Specifies the ssh key configuration for a Linux OS."
+ },
+ "provisionVMAgent": {
+ "type": "boolean",
+ "description": "Indicates whether virtual machine agent should be provisioned on the virtual machine.
When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later."
+ },
+ "patchSettings": {
+ "$ref": "#/definitions/LinuxPatchSettings",
+ "description": "[Preview Feature] Specifies settings related to VM Guest Patching on Linux."
+ }
+ },
+ "description": "Specifies the Linux operating system settings on the virtual machine.
For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros)."
+ },
+ "VaultCertificate": {
+ "properties": {
+ "certificateUrl": {
+ "type": "string",
+ "description": "This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:
{ \"data\":\"\", \"dataType\":\"pfx\", \"password\":\"\" }"
+ },
+ "certificateStore": {
+ "type": "string",
+ "description": "For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account.
For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted."
+ }
+ },
+ "description": "Describes a single certificate reference in a Key Vault, and where the certificate should reside on the VM."
+ },
+ "VaultSecretGroup": {
+ "properties": {
+ "sourceVault": {
+ "$ref": "#/definitions/SubResource",
+ "description": "The relative URL of the Key Vault containing all of the certificates in VaultCertificates."
+ },
+ "vaultCertificates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VaultCertificate"
+ },
+ "description": "The list of key vault references in SourceVault which contain certificates."
+ }
+ },
+ "description": "Describes a set of certificates which are all in the same Key Vault."
+ },
+ "OSProfile": {
+ "properties": {
+ "computerName": {
+ "type": "string",
+ "description": "Specifies the host OS name of the virtual machine.
This name cannot be updated after the VM is created.
**Max-length (Windows):** 15 characters
**Max-length (Linux):** 64 characters.
For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules)."
+ },
+ "adminUsername": {
+ "type": "string",
+ "description": "Specifies the name of the administrator account.
This property cannot be updated after the VM is created.
**Max-length (Windows):** 20 characters."
+ },
+ "adminPassword": {
+ "type": "string",
+ "description": "Specifies the password of the administrator account.
**Minimum-length (Windows):** 8 characters
**Minimum-length (Linux):** 6 characters
**Max-length (Windows):** 123 characters
**Max-length (Linux):** 72 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/reset-rdp)
For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/troubleshoot-ssh-connection)"
+ },
+ "customData": {
+ "type": "string",
+ "description": "Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.
**Note: Do not pass any secrets or passwords in customData property**
This property cannot be updated after the VM is created.
customData is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/)
For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init)"
+ },
+ "windowsConfiguration": {
+ "$ref": "#/definitions/WindowsConfiguration",
+ "description": "Specifies Windows operating system settings on the virtual machine."
+ },
+ "linuxConfiguration": {
+ "$ref": "#/definitions/LinuxConfiguration",
+ "description": "Specifies the Linux operating system settings on the virtual machine.
For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros)."
+ },
+ "secrets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VaultSecretGroup"
+ },
+ "description": "Specifies set of certificates that should be installed onto the virtual machine."
+ },
+ "allowExtensionOperations": {
+ "type": "boolean",
+ "description": "Specifies whether extension operations should be allowed on the virtual machine.
This may only be set to False when no extensions are present on the virtual machine."
+ },
+ "requireGuestProvisionSignal": {
+ "type": "boolean",
+ "description": "Specifies whether the guest provision signal is required to infer provision success of the virtual machine. **Note: This property is for private testing only, and all customers must not set the property to false.**"
+ }
+ },
+ "description": "Specifies the operating system settings for the virtual machine. Some of the settings cannot be changed once VM is provisioned."
+ },
+ "AutomaticRepairsPolicy": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false."
+ },
+ "gracePeriod": {
+ "type": "string",
+ "description": "The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 30 minutes (PT30M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M)."
+ }
+ },
+ "description": "Specifies the configuration parameters for automatic repairs on the virtual machine scale set."
+ },
+ "NetworkInterfaceReferenceProperties": {
+ "properties": {
+ "primary": {
+ "type": "boolean",
+ "description": "Specifies the primary network interface in case the virtual machine has more than 1 network interface."
+ },
+ "deleteOption": {
+ "type": "string",
+ "description": "Specify what happens to the network interface when the VM is deleted",
+ "enum": [
+ "Delete",
+ "Detach"
+ ],
+ "x-ms-enum": {
+ "name": "DeleteOptions",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Describes a network interface reference properties."
+ },
+ "NetworkInterfaceReference": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/NetworkInterfaceReferenceProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ }
+ ],
+ "description": "Describes a network interface reference."
+ },
+ "VirtualMachineIpTag": {
+ "properties": {
+ "ipTagType": {
+ "type": "string",
+ "description": "IP tag type. Example: FirstPartyUsage."
+ },
+ "tag": {
+ "type": "string",
+ "description": "IP tag associated with the public IP. Example: SQL, Storage etc."
+ }
+ },
+ "description": "Contains the IP tag associated with the public IP address."
+ },
+ "VirtualMachinePublicIPAddressDnsSettingsConfiguration": {
+ "properties": {
+ "domainNameLabel": {
+ "type": "string",
+ "description": "The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID."
+ }
+ },
+ "required": [
+ "domainNameLabel"
+ ],
+ "description": "Describes a virtual machines network configuration's DNS settings."
+ },
+ "VirtualMachinePublicIPAddressConfigurationProperties": {
+ "properties": {
+ "idleTimeoutInMinutes": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The idle timeout of the public IP address."
+ },
+ "deleteOption": {
+ "type": "string",
+ "description": "Specify what happens to the public IP address when the VM is deleted",
+ "enum": [
+ "Delete",
+ "Detach"
+ ],
+ "x-ms-enum": {
+ "name": "DeleteOptions",
+ "modelAsString": true
+ }
+ },
+ "dnsSettings": {
+ "$ref": "#/definitions/VirtualMachinePublicIPAddressDnsSettingsConfiguration",
+ "description": "The dns settings to be applied on the publicIP addresses ."
+ },
+ "ipTags": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineIpTag"
+ },
+ "description": "The list of IP tags associated with the public IP address."
+ },
+ "publicIPPrefix": {
+ "$ref": "#/definitions/SubResource",
+ "description": "The PublicIPPrefix from which to allocate publicIP addresses."
+ },
+ "publicIPAddressVersion": {
+ "type": "string",
+ "description": "Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.",
+ "enum": [
+ "IPv4",
+ "IPv6"
+ ],
+ "x-ms-enum": {
+ "name": "IPVersions",
+ "modelAsString": true
+ }
+ },
+ "publicIPAllocationMethod": {
+ "type": "string",
+ "description": "Specify the public IP allocation type",
+ "enum": [
+ "Dynamic",
+ "Static"
+ ],
+ "x-ms-enum": {
+ "name": "PublicIPAllocationMethod",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Describes a virtual machines IP Configuration's PublicIPAddress configuration"
+ },
+ "PublicIPAddressSku": {
+ "properties": {
+ "publicIPAddressSkuName": {
+ "type": "string",
+ "description": "Specify public IP sku name",
+ "enum": [
+ "Basic",
+ "Standard"
+ ],
+ "x-ms-enum": {
+ "name": "PublicIPAddressSkuName",
+ "modelAsString": true
+ }
+ },
+ "publicIPAddressSkuTier": {
+ "type": "string",
+ "description": "Specify public IP sku tier",
+ "enum": [
+ "Regional",
+ "Global"
+ ],
+ "x-ms-enum": {
+ "name": "PublicIPAddressSkuTier",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "publicIPAddressSkuName"
+ ],
+ "description": "Describes the public IP Sku"
+ },
+ "VirtualMachinePublicIPAddressConfiguration": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The publicIP address configuration name."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachinePublicIPAddressConfigurationProperties"
+ },
+ "sku": {
+ "$ref": "#/definitions/PublicIPAddressSku"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "description": "Describes a virtual machines IP Configuration's PublicIPAddress configuration"
+ },
+ "VirtualMachineNetworkInterfaceIPConfigurationProperties": {
+ "properties": {
+ "subnet": {
+ "$ref": "#/definitions/SubResource",
+ "description": "Specifies the identifier of the subnet."
+ },
+ "primary": {
+ "type": "boolean",
+ "description": "Specifies the primary network interface in case the virtual machine has more than 1 network interface."
+ },
+ "publicIPAddressConfiguration": {
+ "$ref": "#/definitions/VirtualMachinePublicIPAddressConfiguration",
+ "description": "The publicIPAddressConfiguration."
+ },
+ "privateIPAddressVersion": {
+ "type": "string",
+ "description": "Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.",
+ "enum": [
+ "IPv4",
+ "IPv6"
+ ],
+ "x-ms-enum": {
+ "name": "IPVersions",
+ "modelAsString": true
+ }
+ },
+ "applicationSecurityGroups": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResource"
+ },
+ "description": "Specifies an array of references to application security group."
+ },
+ "applicationGatewayBackendAddressPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResource"
+ },
+ "description": "Specifies an array of references to backend address pools of application gateways. A virtual machine can reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same application gateway."
+ },
+ "loadBalancerBackendAddressPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResource"
+ },
+ "description": "Specifies an array of references to backend address pools of load balancers. A virtual machine can reference backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the same basic sku load balancer]."
+ }
+ },
+ "description": "Describes a virtual machine network interface IP configuration properties."
+ },
+ "VirtualMachineNetworkInterfaceIPConfiguration": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The IP configuration name."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineNetworkInterfaceIPConfigurationProperties"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "description": "Describes a virtual machine network profile's IP configuration."
+ },
+ "VirtualMachineNetworkInterfaceDnsSettingsConfiguration": {
+ "properties": {
+ "dnsServers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of DNS servers IP addresses"
+ }
+ },
+ "description": "Describes a virtual machines network configuration's DNS settings."
+ },
+ "VirtualMachineNetworkInterfaceConfigurationProperties": {
+ "properties": {
+ "primary": {
+ "type": "boolean",
+ "description": "Specifies the primary network interface in case the virtual machine has more than 1 network interface."
+ },
+ "deleteOption": {
+ "type": "string",
+ "description": "Specify what happens to the network interface when the VM is deleted",
+ "enum": [
+ "Delete",
+ "Detach"
+ ],
+ "x-ms-enum": {
+ "name": "DeleteOptions",
+ "modelAsString": true
+ }
+ },
+ "enableAcceleratedNetworking": {
+ "type": "boolean",
+ "description": "Specifies whether the network interface is accelerated networking-enabled."
+ },
+ "enableFpga": {
+ "type": "boolean",
+ "description": "Specifies whether the network interface is FPGA networking-enabled."
+ },
+ "enableIPForwarding": {
+ "type": "boolean",
+ "description": "Whether IP forwarding enabled on this NIC."
+ },
+ "networkSecurityGroup": {
+ "$ref": "#/definitions/SubResource",
+ "description": "The network security group."
+ },
+ "dnsSettings": {
+ "$ref": "#/definitions/VirtualMachineNetworkInterfaceDnsSettingsConfiguration",
+ "description": "The dns settings to be applied on the network interfaces."
+ },
+ "ipConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineNetworkInterfaceIPConfiguration"
+ },
+ "description": "Specifies the IP configurations of the network interface."
+ },
+ "dscpConfiguration": {
+ "$ref": "#/definitions/SubResource"
+ }
+ },
+ "required": [
+ "ipConfigurations"
+ ],
+ "description": "Describes a virtual machine network profile's IP configuration."
+ },
+ "VirtualMachineNetworkInterfaceConfiguration": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The network interface configuration name."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineNetworkInterfaceConfigurationProperties"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "description": "Describes a virtual machine network interface configurations."
+ },
+ "NetworkProfile": {
+ "properties": {
+ "networkInterfaces": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkInterfaceReference"
+ },
+ "description": "Specifies the list of resource Ids for the network interfaces associated with the virtual machine."
+ },
+ "networkApiVersion": {
+ "type": "string",
+ "description": "specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations",
+ "enum": [
+ "2020-11-01"
+ ],
+ "x-ms-enum": {
+ "name": "NetworkApiVersion",
+ "modelAsString": true
+ }
+ },
+ "networkInterfaceConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineNetworkInterfaceConfiguration"
+ },
+ "description": "Specifies the networking configurations that will be used to create the virtual machine networking resources."
+ }
+ },
+ "description": "Specifies the network interfaces or the networking configuration of the virtual machine."
+ },
+ "BootDiagnostics": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether boot diagnostics should be enabled on the Virtual Machine."
+ },
+ "storageUri": {
+ "type": "string",
+ "description": "Uri of the storage account to use for placing the console output and screenshot.
If storageUri is not specified while enabling boot diagnostics, managed storage will be used."
+ }
+ },
+ "description": "Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.
You can easily view the output of your console log.
Azure also enables you to see a screenshot of the VM from the hypervisor."
+ },
+ "DiagnosticsProfile": {
+ "properties": {
+ "bootDiagnostics": {
+ "$ref": "#/definitions/BootDiagnostics",
+ "description": "Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.
You can easily view the output of your console log.
Azure also enables you to see a screenshot of the VM from the hypervisor."
+ }
+ },
+ "description": "Specifies the boot diagnostic settings state.
Minimum api-version: 2015-06-15."
+ },
+ "priority": {
+ "type": "string",
+ "description": "Specifies the priority for a standalone virtual machine or the virtual machines in the scale set.
'Low' enum will be deprecated in the future, please use 'Spot' as the enum to deploy Azure Spot VM/VMSS.",
+ "enum": [
+ "Regular",
+ "Low",
+ "Spot"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualMachinePriorityTypes",
+ "modelAsString": true
+ }
+ },
+ "evictionPolicy": {
+ "type": "string",
+ "description": "Specifies the eviction policy for the Azure Spot VM/VMSS",
+ "enum": [
+ "Deallocate",
+ "Delete"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualMachineEvictionPolicyTypes",
+ "modelAsString": true
+ }
+ },
+ "BillingProfile": {
+ "properties": {
+ "maxPrice": {
+ "type": "number",
+ "format": "double",
+ "description": "Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars.
This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price.
The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS.
Possible values are:
- Any decimal value greater than zero. Example: 0.01538
-1 – indicates default price to be up-to on-demand.
You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you.
Minimum api-version: 2019-03-01."
+ }
+ },
+ "description": "Specifies the billing related details of a Azure Spot VM or VMSS.
Minimum api-version: 2019-03-01."
+ },
+ "VirtualMachineExtensionHandlerInstanceView": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Specifies the type of the extension; an example is \"CustomScriptExtension\"."
+ },
+ "typeHandlerVersion": {
+ "type": "string",
+ "description": "Specifies the version of the script handler."
+ },
+ "status": {
+ "$ref": "#/definitions/InstanceViewStatus",
+ "description": "The extension handler status."
+ }
+ },
+ "description": "The instance view of a virtual machine extension handler."
+ },
+ "VirtualMachineAgentInstanceView": {
+ "properties": {
+ "vmAgentVersion": {
+ "type": "string",
+ "description": "The VM Agent full version."
+ },
+ "extensionHandlers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineExtensionHandlerInstanceView"
+ },
+ "description": "The virtual machine extension handler instance view."
+ },
+ "statuses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InstanceViewStatus"
+ },
+ "description": "The resource status information."
+ }
+ },
+ "description": "The instance view of the VM Agent running on the virtual machine."
+ },
+ "DiskInstanceView": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The disk name."
+ },
+ "encryptionSettings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DiskEncryptionSettings"
+ },
+ "description": "Specifies the encryption settings for the OS Disk.
NOTE: This will **not** be set if boot diagnostics is currently enabled with managed storage."
+ },
+ "serialConsoleLogBlobUri": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The serial console log blob Uri.
NOTE: This will **not** be set if boot diagnostics is currently enabled with managed storage."
+ },
+ "status": {
+ "readOnly": true,
+ "$ref": "#/definitions/InstanceViewStatus",
+ "description": "The boot diagnostics status information for the VM.
NOTE: It will be set only if there are errors encountered in enabling boot diagnostics."
+ }
+ },
+ "description": "The instance view of a virtual machine boot diagnostics."
+ },
+ "VirtualMachineIdentity": {
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of virtual machine identity. This property will only be provided for a system assigned identity."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant id associated with the virtual machine. This property will only be provided for a system assigned identity."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.",
+ "enum": [
+ "SystemAssigned",
+ "UserAssigned",
+ "SystemAssigned, UserAssigned",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceIdentityType",
+ "modelAsString": false
+ }
+ },
+ "userAssignedIdentities": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object",
+ "x-ms-client-name": "userAssignedIdentitiesValue",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of user assigned identity."
+ },
+ "clientId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The client id of user assigned identity."
+ }
+ }
+ },
+ "description": "The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'."
+ }
+ },
+ "description": "Identity for the virtual machine."
+ },
+ "MaintenanceRedeployStatus": {
+ "properties": {
+ "isCustomerInitiatedMaintenanceAllowed": {
+ "type": "boolean",
+ "description": "True, if customer is allowed to perform Maintenance."
+ },
+ "preMaintenanceWindowStartTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Start Time for the Pre Maintenance Window."
+ },
+ "preMaintenanceWindowEndTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "End Time for the Pre Maintenance Window."
+ },
+ "maintenanceWindowStartTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Start Time for the Maintenance Window."
+ },
+ "maintenanceWindowEndTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "End Time for the Maintenance Window."
+ },
+ "lastOperationResultCode": {
+ "type": "string",
+ "description": "The Last Maintenance Operation Result Code.",
+ "enum": [
+ "None",
+ "RetryLater",
+ "MaintenanceAborted",
+ "MaintenanceCompleted"
+ ],
+ "x-ms-enum": {
+ "name": "MaintenanceOperationResultCodeTypes",
+ "modelAsString": false
+ }
+ },
+ "lastOperationMessage": {
+ "type": "string",
+ "description": "Message returned for the last Maintenance Operation."
+ }
+ },
+ "description": "Maintenance Operation Status."
+ },
+ "VirtualMachineInstanceView": {
+ "properties": {
+ "platformUpdateDomain": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the update domain of the virtual machine."
+ },
+ "platformFaultDomain": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the fault domain of the virtual machine."
+ },
+ "computerName": {
+ "type": "string",
+ "description": "The computer name assigned to the virtual machine."
+ },
+ "osName": {
+ "type": "string",
+ "description": "The Operating System running on the virtual machine."
+ },
+ "osVersion": {
+ "type": "string",
+ "description": "The version of Operating System running on the virtual machine."
+ },
+ "hyperVGeneration": {
+ "type": "string",
+ "description": "Specifies the HyperVGeneration Type associated with a resource",
+ "enum": [
+ "V1",
+ "V2"
+ ],
+ "x-ms-enum": {
+ "name": "HyperVGenerationType",
+ "modelAsString": true
+ }
+ },
+ "rdpThumbPrint": {
+ "type": "string",
+ "description": "The Remote desktop certificate thumbprint."
+ },
+ "vmAgent": {
+ "$ref": "#/definitions/VirtualMachineAgentInstanceView",
+ "description": "The VM Agent running on the virtual machine."
+ },
+ "maintenanceRedeployStatus": {
+ "$ref": "#/definitions/MaintenanceRedeployStatus",
+ "description": "The Maintenance Operation status on the virtual machine."
+ },
+ "disks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DiskInstanceView"
+ },
+ "description": "The virtual machine disk information."
+ },
+ "extensions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineExtensionInstanceView"
+ },
+ "description": "The extensions information."
+ },
+ "vmHealth": {
+ "readOnly": true,
+ "$ref": "#/definitions/VirtualMachineHealthStatus",
+ "description": "The health status for the VM."
+ },
+ "bootDiagnostics": {
+ "$ref": "#/definitions/BootDiagnosticsInstanceView",
+ "description": "Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.
You can easily view the output of your console log.
Azure also enables you to see a screenshot of the VM from the hypervisor."
+ },
+ "assignedHost": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled.
Minimum api-version: 2020-06-01."
+ },
+ "statuses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InstanceViewStatus"
+ },
+ "description": "The resource status information."
+ },
+ "patchStatus": {
+ "$ref": "#/definitions/VirtualMachinePatchStatus",
+ "description": "[Preview Feature] The status of virtual machine patch operations."
+ }
+ },
+ "description": "The instance view of a virtual machine."
+ },
+ "VirtualMachineProperties": {
+ "properties": {
+ "hardwareProfile": {
+ "$ref": "#/definitions/HardwareProfile",
+ "description": "Specifies the hardware settings for the virtual machine."
+ },
+ "storageProfile": {
+ "$ref": "#/definitions/StorageProfile",
+ "description": "Specifies the storage settings for the virtual machine disks."
+ },
+ "additionalCapabilities": {
+ "$ref": "#/definitions/AdditionalCapabilities",
+ "description": "Specifies additional capabilities enabled or disabled on the virtual machine."
+ },
+ "osProfile": {
+ "$ref": "#/definitions/OSProfile",
+ "description": "Specifies the operating system settings used while creating the virtual machine. Some of the settings cannot be changed once VM is provisioned."
+ },
+ "networkProfile": {
+ "$ref": "#/definitions/NetworkProfile",
+ "description": "Specifies the network interfaces of the virtual machine."
+ },
+ "securityProfile": {
+ "$ref": "#/definitions/SecurityProfile",
+ "description": "Specifies the Security related profile settings for the virtual machine."
+ },
+ "diagnosticsProfile": {
+ "$ref": "#/definitions/DiagnosticsProfile",
+ "description": "Specifies the boot diagnostic settings state.
Minimum api-version: 2015-06-15."
+ },
+ "availabilitySet": {
+ "$ref": "#/definitions/SubResource",
+ "description": "Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).
For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)
Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set.
This property cannot exist along with a non-null properties.virtualMachineScaleSet reference."
+ },
+ "virtualMachineScaleSet": {
+ "$ref": "#/definitions/SubResource",
+ "description": "Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set.
This property cannot exist along with a non-null properties.availabilitySet reference.
Minimum api‐version: 2019‐03‐01"
+ },
+ "proximityPlacementGroup": {
+ "$ref": "#/definitions/SubResource",
+ "description": "Specifies information about the proximity placement group that the virtual machine should be assigned to.
Minimum api-version: 2018-04-01."
+ },
+ "priority": {
+ "$ref": "#/definitions/priority",
+ "description": "Specifies the priority for the virtual machine.
Minimum api-version: 2019-03-01"
+ },
+ "evictionPolicy": {
+ "$ref": "#/definitions/evictionPolicy",
+ "description": "Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.
For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.
For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview."
+ },
+ "billingProfile": {
+ "$ref": "#/definitions/BillingProfile",
+ "description": "Specifies the billing related details of a Azure Spot virtual machine.
Minimum api-version: 2019-03-01."
+ },
+ "host": {
+ "$ref": "#/definitions/SubResource",
+ "description": "Specifies information about the dedicated host that the virtual machine resides in.
Minimum api-version: 2018-10-01."
+ },
+ "hostGroup": {
+ "$ref": "#/definitions/SubResource",
+ "description": "Specifies information about the dedicated host group that the virtual machine resides in.
Minimum api-version: 2020-06-01.
NOTE: User cannot specify both host and hostGroup properties."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The provisioning state, which only appears in the response."
+ },
+ "instanceView": {
+ "$ref": "#/definitions/VirtualMachineInstanceView",
+ "readOnly": true,
+ "description": "The virtual machine instance view."
+ },
+ "licenseType": {
+ "type": "string",
+ "description": "Specifies that the image or disk that is being used was licensed on-premises.
Possible values for Windows Server operating system are:
Windows_Client
Windows_Server
Possible values for Linux Server operating system are:
RHEL_BYOS (for RHEL)
SLES_BYOS (for SUSE)
For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)
[Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)
Minimum api-version: 2015-06-15"
+ },
+ "vmId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands."
+ },
+ "extensionsTimeBudget": {
+ "type": "string",
+ "description": "Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).
Minimum api-version: 2020-06-01"
+ },
+ "platformFaultDomain": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains.
This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set.
The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' > 1.
This property cannot be updated once the Virtual Machine is created.
Fault domain assignment can be viewed in the Virtual Machine Instance View.
Minimum api‐version: 2020‐12‐01"
+ },
+ "scheduledEventsProfile": {
+ "$ref": "#/definitions/ScheduledEventsProfile",
+ "description": "Specifies Scheduled Event related configurations."
+ },
+ "userData": {
+ "type": "string",
+ "description": "UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here.
Minimum api-version: 2021-03-01"
+ }
+ },
+ "description": "Describes the properties of a Virtual Machine."
+ },
+ "VirtualMachine": {
+ "properties": {
+ "plan": {
+ "$ref": "#/definitions/Plan",
+ "description": "Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineProperties"
+ },
+ "resources": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineExtension"
+ },
+ "description": "The virtual machine child extension resources."
+ },
+ "identity": {
+ "$ref": "#/definitions/VirtualMachineIdentity",
+ "description": "The identity of the virtual machine, if configured."
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The virtual machine zones."
+ },
+ "extendedLocation": {
+ "$ref": "#/definitions/ExtendedLocation",
+ "description": "The extended location of the Virtual Machine."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Describes a Virtual Machine."
+ },
+ "VirtualMachineUpdate": {
+ "properties": {
+ "plan": {
+ "$ref": "#/definitions/Plan",
+ "description": "Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineProperties"
+ },
+ "identity": {
+ "$ref": "#/definitions/VirtualMachineIdentity",
+ "description": "The identity of the virtual machine, if configured."
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The virtual machine zones."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Describes a Virtual Machine Update."
+ },
+ "VirtualMachineListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachine"
+ },
+ "description": "The list of virtual machines."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of VMs. Call ListNext() with this URI to fetch the next page of Virtual Machines."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Virtual Machine operation response."
+ },
+ "Sku": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The sku name."
+ },
+ "tier": {
+ "type": "string",
+ "description": "Specifies the tier of virtual machines in a scale set.
Possible Values:
**Standard**
**Basic**"
+ },
+ "capacity": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Specifies the number of virtual machines in the scale set."
+ }
+ },
+ "description": "Describes a virtual machine scale set sku. NOTE: If the new VM SKU is not supported on the hardware the scale set is currently on, you need to deallocate the VMs in the scale set before you modify the SKU name."
+ },
+ "AutomaticOSUpgradePolicy": {
+ "properties": {
+ "enableAutomaticOSUpgrade": {
+ "type": "boolean",
+ "description": "Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false.
If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true."
+ },
+ "disableAutomaticRollback": {
+ "type": "boolean",
+ "description": "Whether OS image rollback feature should be disabled. Default value is false."
+ }
+ },
+ "description": "The configuration parameters used for performing automatic OS upgrade."
+ },
+ "UpgradePolicy": {
+ "properties": {
+ "mode": {
+ "type": "string",
+ "description": "Specifies the mode of an upgrade to virtual machines in the scale set.
Possible values are:
**Manual** - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action.
**Automatic** - All virtual machines in the scale set are automatically updated at the same time.",
+ "enum": [
+ "Automatic",
+ "Manual",
+ "Rolling"
+ ],
+ "x-ms-enum": {
+ "name": "UpgradeMode",
+ "modelAsString": false
+ }
+ },
+ "rollingUpgradePolicy": {
+ "$ref": "#/definitions/RollingUpgradePolicy",
+ "description": "The configuration parameters used while performing a rolling upgrade."
+ },
+ "automaticOSUpgradePolicy": {
+ "$ref": "#/definitions/AutomaticOSUpgradePolicy",
+ "description": "Configuration parameters used for performing automatic OS Upgrade."
+ }
+ },
+ "description": "Describes an upgrade policy - automatic, manual, or rolling."
+ },
+ "RollingUpgradePolicy": {
+ "properties": {
+ "maxBatchInstancePercent": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 5,
+ "maximum": 100,
+ "description": "The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%."
+ },
+ "maxUnhealthyInstancePercent": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 5,
+ "maximum": 100,
+ "description": "The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%."
+ },
+ "maxUnhealthyUpgradedInstancePercent": {
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0,
+ "maximum": 100,
+ "description": "The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%."
+ },
+ "pauseTimeBetweenBatches": {
+ "type": "string",
+ "description": "The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S)."
+ },
+ "enableCrossZoneUpgrade": {
+ "type": "boolean",
+ "description": "Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size."
+ },
+ "prioritizeUnhealthyInstances": {
+ "type": "boolean",
+ "description": "Upgrade all unhealthy instances in a scale set before any healthy instances."
+ }
+ },
+ "description": "The configuration parameters used while performing a rolling upgrade."
+ },
+ "ScaleInPolicy": {
+ "properties": {
+ "rules": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "Default",
+ "OldestVM",
+ "NewestVM"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualMachineScaleSetScaleInRules",
+ "modelAsString": true
+ }
+ },
+ "description": "The rules to be followed when scaling-in a virtual machine scale set.
Possible values are:
**Default** When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in.
**OldestVM** When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal.
**NewestVM** When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.
"
+ }
+ },
+ "description": "Describes a scale-in policy for a virtual machine scale set."
+ },
+ "OrchestrationMode": {
+ "type": "string",
+ "description": "Specifies the orchestration mode for the virtual machine scale set.",
+ "enum": [
+ "Uniform",
+ "Flexible"
+ ],
+ "x-ms-enum": {
+ "name": "OrchestrationMode",
+ "modelAsString": true
+ }
+ },
+ "ImageOSDisk": {
+ "properties": {
+ "osType": {
+ "type": "string",
+ "description": "This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image.
Possible values are:
**Windows**
**Linux**",
+ "enum": [
+ "Windows",
+ "Linux"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemTypes",
+ "modelAsString": false
+ }
+ },
+ "osState": {
+ "type": "string",
+ "description": "The OS State.",
+ "enum": [
+ "Generalized",
+ "Specialized"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemStateTypes",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Generalized",
+ "description": "Generalized image. Needs to be provisioned during deployment time."
+ },
+ {
+ "value": "Specialized",
+ "description": "Specialized image. Contains already provisioned OS Disk."
+ }
+ ]
+ }
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ImageDisk"
+ }
+ ],
+ "required": [
+ "osType",
+ "osState"
+ ],
+ "description": "Describes an Operating System disk."
+ },
+ "ImageDataDisk": {
+ "properties": {
+ "lun": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ImageDisk"
+ }
+ ],
+ "required": [
+ "lun"
+ ],
+ "description": "Describes a data disk."
+ },
+ "ImageDisk": {
+ "properties": {
+ "snapshot": {
+ "$ref": "#/definitions/SubResource",
+ "description": "The snapshot."
+ },
+ "managedDisk": {
+ "$ref": "#/definitions/SubResource",
+ "description": "The managedDisk."
+ },
+ "blobUri": {
+ "type": "string",
+ "description": "The Virtual Hard Disk."
+ },
+ "caching": {
+ "type": "string",
+ "description": "Specifies the caching requirements.
Possible values are:
**None**
**ReadOnly**
**ReadWrite**
Default: **None for Standard storage. ReadOnly for Premium storage**",
+ "enum": [
+ "None",
+ "ReadOnly",
+ "ReadWrite"
+ ],
+ "x-ms-enum": {
+ "name": "CachingTypes",
+ "modelAsString": false
+ }
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image.
This value cannot be larger than 1023 GB"
+ },
+ "storageAccountType": {
+ "$ref": "#/definitions/StorageAccountType",
+ "description": "Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk."
+ },
+ "diskEncryptionSet": {
+ "$ref": "#/definitions/DiskEncryptionSetParameters",
+ "description": "Specifies the customer managed disk encryption set resource id for the managed image disk."
+ }
+ },
+ "description": "Describes a image disk."
+ },
+ "ImageStorageProfile": {
+ "properties": {
+ "osDisk": {
+ "$ref": "#/definitions/ImageOSDisk",
+ "description": "Specifies information about the operating system disk used by the virtual machine.
For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview)."
+ },
+ "dataDisks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageDataDisk"
+ },
+ "description": "Specifies the parameters that are used to add a data disk to a virtual machine.
For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview)."
+ },
+ "zoneResilient": {
+ "type": "boolean",
+ "description": "Specifies whether an image is zone resilient or not. Default is false. Zone resilient images can be created only in regions that provide Zone Redundant Storage (ZRS)."
+ }
+ },
+ "description": "Describes a storage profile."
+ },
+ "ImageProperties": {
+ "properties": {
+ "sourceVirtualMachine": {
+ "$ref": "#/definitions/SubResource",
+ "description": "The source virtual machine from which Image is created."
+ },
+ "storageProfile": {
+ "$ref": "#/definitions/ImageStorageProfile",
+ "description": "Specifies the storage settings for the virtual machine disks."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The provisioning state."
+ },
+ "hyperVGeneration": {
+ "$ref": "#/definitions/HyperVGenerationType",
+ "description": "Specifies the HyperVGenerationType of the VirtualMachine created from the image. From API Version 2019-03-01 if the image source is a blob, then we need the user to specify the value, if the source is managed resource like disk or snapshot, we may require the user to specify the property if we cannot deduce it from the source managed resource."
+ }
+ },
+ "description": "Describes the properties of an Image."
+ },
+ "Image": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ImageProperties"
+ },
+ "extendedLocation": {
+ "$ref": "#/definitions/ExtendedLocation",
+ "description": "The extended location of the Image."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist."
+ },
+ "ImageUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ImageProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "The source user image virtual hard disk. Only tags may be updated."
+ },
+ "ImageListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Image"
+ },
+ "description": "The list of Images."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of Images. Call ListNext() with this to fetch the next page of Images."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Image operation response."
+ },
+ "VirtualMachineScaleSetIdentity": {
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of virtual machine scale set identity. This property will only be provided for a system assigned identity."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant id associated with the virtual machine scale set. This property will only be provided for a system assigned identity."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.",
+ "enum": [
+ "SystemAssigned",
+ "UserAssigned",
+ "SystemAssigned, UserAssigned",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceIdentityType",
+ "modelAsString": false
+ }
+ },
+ "userAssignedIdentities": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object",
+ "x-ms-client-name": "VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of user assigned identity."
+ },
+ "clientId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The client id of user assigned identity."
+ }
+ }
+ },
+ "description": "The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'."
+ }
+ },
+ "description": "Identity for the virtual machine scale set."
+ },
+ "VirtualMachineScaleSetOSProfile": {
+ "properties": {
+ "computerNamePrefix": {
+ "type": "string",
+ "description": "Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long."
+ },
+ "adminUsername": {
+ "type": "string",
+ "description": "Specifies the name of the administrator account.
**Max-length (Windows):** 20 characters"
+ },
+ "adminPassword": {
+ "type": "string",
+ "description": "Specifies the password of the administrator account.
**Minimum-length (Windows):** 8 characters
**Minimum-length (Linux):** 6 characters
**Max-length (Windows):** 123 characters
**Max-length (Linux):** 72 characters
**Complexity requirements:** 3 out of 4 conditions below need to be fulfilled Has lower characters Has upper characters Has a digit Has a special character (Regex match [\\W_])
For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/reset-rdp)
For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/troubleshoot-ssh-connection)"
+ },
+ "customData": {
+ "type": "string",
+ "description": "Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.
For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init)"
+ },
+ "windowsConfiguration": {
+ "$ref": "#/definitions/WindowsConfiguration",
+ "description": "Specifies Windows operating system settings on the virtual machine."
+ },
+ "linuxConfiguration": {
+ "$ref": "#/definitions/LinuxConfiguration",
+ "description": "Specifies the Linux operating system settings on the virtual machine.
For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros)."
+ },
+ "secrets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VaultSecretGroup"
+ },
+ "description": "Specifies set of certificates that should be installed onto the virtual machines in the scale set."
+ }
+ },
+ "description": "Describes a virtual machine scale set OS profile."
+ },
+ "VirtualMachineScaleSetUpdateOSProfile": {
+ "properties": {
+ "customData": {
+ "type": "string",
+ "description": "A base-64 encoded string of custom data."
+ },
+ "windowsConfiguration": {
+ "$ref": "#/definitions/WindowsConfiguration",
+ "description": "The Windows Configuration of the OS profile."
+ },
+ "linuxConfiguration": {
+ "$ref": "#/definitions/LinuxConfiguration",
+ "description": "The Linux Configuration of the OS profile."
+ },
+ "secrets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VaultSecretGroup"
+ },
+ "description": "The List of certificates for addition to the VM."
+ }
+ },
+ "description": "Describes a virtual machine scale set OS profile."
+ },
+ "VirtualMachineScaleSetManagedDiskParameters": {
+ "properties": {
+ "storageAccountType": {
+ "$ref": "#/definitions/StorageAccountType",
+ "description": "Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk."
+ },
+ "diskEncryptionSet": {
+ "$ref": "#/definitions/DiskEncryptionSetParameters",
+ "description": "Specifies the customer managed disk encryption set resource id for the managed disk."
+ }
+ },
+ "description": "Describes the parameters of a ScaleSet managed disk."
+ },
+ "VirtualMachineScaleSetOSDisk": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The disk name."
+ },
+ "caching": {
+ "$ref": "#/definitions/Caching",
+ "description": "Specifies the caching requirements.
Possible values are:
**None**
**ReadOnly**
**ReadWrite**
Default: **None for Standard storage. ReadOnly for Premium storage**"
+ },
+ "writeAcceleratorEnabled": {
+ "type": "boolean",
+ "description": "Specifies whether writeAccelerator should be enabled or disabled on the disk."
+ },
+ "createOption": {
+ "$ref": "#/definitions/CreateOption",
+ "description": "Specifies how the virtual machines in the scale set should be created.
The only allowed value is: **FromImage** \\u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described."
+ },
+ "diffDiskSettings": {
+ "$ref": "#/definitions/DiffDiskSettings",
+ "description": "Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set."
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the size of the operating system disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.
This value cannot be larger than 1023 GB"
+ },
+ "osType": {
+ "type": "string",
+ "description": "This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.
Possible values are:
**Windows**
**Linux**",
+ "enum": [
+ "Windows",
+ "Linux"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemTypes",
+ "modelAsString": false
+ }
+ },
+ "image": {
+ "$ref": "#/definitions/VirtualHardDisk",
+ "description": "Specifies information about the unmanaged user image to base the scale set on."
+ },
+ "vhdContainers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Specifies the container urls that are used to store operating system disks for the scale set."
+ },
+ "managedDisk": {
+ "description": "The managed disk parameters.",
+ "$ref": "#/definitions/VirtualMachineScaleSetManagedDiskParameters"
+ }
+ },
+ "required": [
+ "createOption"
+ ],
+ "description": "Describes a virtual machine scale set operating system disk."
+ },
+ "VirtualMachineScaleSetUpdateOSDisk": {
+ "properties": {
+ "caching": {
+ "$ref": "#/definitions/Caching",
+ "description": "The caching type."
+ },
+ "writeAcceleratorEnabled": {
+ "type": "boolean",
+ "description": "Specifies whether writeAccelerator should be enabled or disabled on the disk."
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the size of the operating system disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.
This value cannot be larger than 1023 GB"
+ },
+ "image": {
+ "$ref": "#/definitions/VirtualHardDisk",
+ "description": "The Source User Image VirtualHardDisk. This VirtualHardDisk will be copied before using it to attach to the Virtual Machine. If SourceImage is provided, the destination VirtualHardDisk should not exist."
+ },
+ "vhdContainers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The list of virtual hard disk container uris."
+ },
+ "managedDisk": {
+ "description": "The managed disk parameters.",
+ "$ref": "#/definitions/VirtualMachineScaleSetManagedDiskParameters"
+ }
+ },
+ "description": "Describes virtual machine scale set operating system disk Update Object. This should be used for Updating VMSS OS Disk."
+ },
+ "VirtualMachineScaleSetDataDisk": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The disk name."
+ },
+ "lun": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM."
+ },
+ "caching": {
+ "$ref": "#/definitions/Caching",
+ "description": "Specifies the caching requirements.
Possible values are:
**None**
**ReadOnly**
**ReadWrite**
Default: **None for Standard storage. ReadOnly for Premium storage**"
+ },
+ "writeAcceleratorEnabled": {
+ "type": "boolean",
+ "description": "Specifies whether writeAccelerator should be enabled or disabled on the disk."
+ },
+ "createOption": {
+ "$ref": "#/definitions/CreateOption",
+ "description": "The create option."
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.
This value cannot be larger than 1023 GB"
+ },
+ "managedDisk": {
+ "description": "The managed disk parameters.",
+ "$ref": "#/definitions/VirtualMachineScaleSetManagedDiskParameters"
+ },
+ "diskIOPSReadWrite": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB."
+ },
+ "diskMBpsReadWrite": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB."
+ }
+ },
+ "required": [
+ "lun",
+ "createOption"
+ ],
+ "description": "Describes a virtual machine scale set data disk."
+ },
+ "VirtualMachineScaleSetStorageProfile": {
+ "properties": {
+ "imageReference": {
+ "$ref": "#/definitions/ImageReference",
+ "description": "Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations."
+ },
+ "osDisk": {
+ "$ref": "#/definitions/VirtualMachineScaleSetOSDisk",
+ "description": "Specifies information about the operating system disk used by the virtual machines in the scale set.
For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview)."
+ },
+ "dataDisks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetDataDisk"
+ },
+ "description": "Specifies the parameters that are used to add data disks to the virtual machines in the scale set.
For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview)."
+ }
+ },
+ "description": "Describes a virtual machine scale set storage profile."
+ },
+ "VirtualMachineScaleSetUpdateStorageProfile": {
+ "properties": {
+ "imageReference": {
+ "$ref": "#/definitions/ImageReference",
+ "description": "The image reference."
+ },
+ "osDisk": {
+ "$ref": "#/definitions/VirtualMachineScaleSetUpdateOSDisk",
+ "description": "The OS disk."
+ },
+ "dataDisks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetDataDisk"
+ },
+ "description": "The data disks."
+ }
+ },
+ "description": "Describes a virtual machine scale set storage profile."
+ },
+ "ApiEntityReference": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/..."
+ }
+ },
+ "description": "The API entity reference."
+ },
+ "VirtualMachineScaleSetIPConfigurationProperties": {
+ "properties": {
+ "subnet": {
+ "$ref": "#/definitions/ApiEntityReference",
+ "description": "Specifies the identifier of the subnet."
+ },
+ "primary": {
+ "type": "boolean",
+ "description": "Specifies the primary network interface in case the virtual machine has more than 1 network interface."
+ },
+ "publicIPAddressConfiguration": {
+ "$ref": "#/definitions/VirtualMachineScaleSetPublicIPAddressConfiguration",
+ "description": "The publicIPAddressConfiguration."
+ },
+ "privateIPAddressVersion": {
+ "type": "string",
+ "description": "Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.",
+ "enum": [
+ "IPv4",
+ "IPv6"
+ ],
+ "x-ms-enum": {
+ "name": "IPVersion",
+ "modelAsString": true
+ }
+ },
+ "applicationGatewayBackendAddressPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResource"
+ },
+ "description": "Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway."
+ },
+ "applicationSecurityGroups": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResource"
+ },
+ "description": "Specifies an array of references to application security group."
+ },
+ "loadBalancerBackendAddressPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResource"
+ },
+ "description": "Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer."
+ },
+ "loadBalancerInboundNatPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResource"
+ },
+ "description": "Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer."
+ }
+ },
+ "description": "Describes a virtual machine scale set network profile's IP configuration properties."
+ },
+ "VirtualMachineScaleSetUpdateIPConfigurationProperties": {
+ "properties": {
+ "subnet": {
+ "$ref": "#/definitions/ApiEntityReference",
+ "description": "The subnet."
+ },
+ "primary": {
+ "type": "boolean",
+ "description": "Specifies the primary IP Configuration in case the network interface has more than one IP Configuration."
+ },
+ "publicIPAddressConfiguration": {
+ "$ref": "#/definitions/VirtualMachineScaleSetUpdatePublicIPAddressConfiguration",
+ "description": "The publicIPAddressConfiguration."
+ },
+ "privateIPAddressVersion": {
+ "type": "string",
+ "description": "Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.",
+ "enum": [
+ "IPv4",
+ "IPv6"
+ ],
+ "x-ms-enum": {
+ "name": "IPVersion",
+ "modelAsString": true
+ }
+ },
+ "applicationGatewayBackendAddressPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResource"
+ },
+ "description": "The application gateway backend address pools."
+ },
+ "applicationSecurityGroups": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResource"
+ },
+ "description": "Specifies an array of references to application security group."
+ },
+ "loadBalancerBackendAddressPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResource"
+ },
+ "description": "The load balancer backend address pools."
+ },
+ "loadBalancerInboundNatPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubResource"
+ },
+ "description": "The load balancer inbound nat pools."
+ }
+ },
+ "description": "Describes a virtual machine scale set network profile's IP configuration properties."
+ },
+ "VirtualMachineScaleSetIPConfiguration": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The IP configuration name."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineScaleSetIPConfigurationProperties"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ }
+ ],
+ "description": "Describes a virtual machine scale set network profile's IP configuration."
+ },
+ "VirtualMachineScaleSetUpdateIPConfiguration": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The IP configuration name."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineScaleSetUpdateIPConfigurationProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ }
+ ],
+ "description": "Describes a virtual machine scale set network profile's IP configuration. NOTE: The subnet of a scale set may be modified as long as the original subnet and the new subnet are in the same virtual network"
+ },
+ "VirtualMachineScaleSetNetworkConfigurationProperties": {
+ "properties": {
+ "primary": {
+ "type": "boolean",
+ "description": "Specifies the primary network interface in case the virtual machine has more than 1 network interface."
+ },
+ "enableAcceleratedNetworking": {
+ "type": "boolean",
+ "description": "Specifies whether the network interface is accelerated networking-enabled."
+ },
+ "enableFpga": {
+ "type": "boolean",
+ "description": "Specifies whether the network interface is FPGA networking-enabled."
+ },
+ "networkSecurityGroup": {
+ "$ref": "#/definitions/SubResource",
+ "description": "The network security group."
+ },
+ "dnsSettings": {
+ "$ref": "#/definitions/VirtualMachineScaleSetNetworkConfigurationDnsSettings",
+ "description": "The dns settings to be applied on the network interfaces."
+ },
+ "ipConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetIPConfiguration"
+ },
+ "description": "Specifies the IP configurations of the network interface."
+ },
+ "enableIPForwarding": {
+ "type": "boolean",
+ "description": "Whether IP forwarding enabled on this NIC."
+ },
+ "deleteOption": {
+ "type": "string",
+ "description": "Specify what happens to the network interface when the VM is deleted",
+ "enum": [
+ "Delete",
+ "Detach"
+ ],
+ "x-ms-enum": {
+ "name": "DeleteOptions",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "ipConfigurations"
+ ],
+ "description": "Describes a virtual machine scale set network profile's IP configuration."
+ },
+ "VirtualMachineScaleSetUpdateNetworkConfigurationProperties": {
+ "properties": {
+ "primary": {
+ "type": "boolean",
+ "description": "Whether this is a primary NIC on a virtual machine."
+ },
+ "enableAcceleratedNetworking": {
+ "type": "boolean",
+ "description": "Specifies whether the network interface is accelerated networking-enabled."
+ },
+ "enableFpga": {
+ "type": "boolean",
+ "description": "Specifies whether the network interface is FPGA networking-enabled."
+ },
+ "networkSecurityGroup": {
+ "$ref": "#/definitions/SubResource",
+ "description": "The network security group."
+ },
+ "dnsSettings": {
+ "$ref": "#/definitions/VirtualMachineScaleSetNetworkConfigurationDnsSettings",
+ "description": "The dns settings to be applied on the network interfaces."
+ },
+ "ipConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetUpdateIPConfiguration"
+ },
+ "description": "The virtual machine scale set IP Configuration."
+ },
+ "enableIPForwarding": {
+ "type": "boolean",
+ "description": "Whether IP forwarding enabled on this NIC."
+ },
+ "deleteOption": {
+ "type": "string",
+ "description": "Specify what happens to the network interface when the VM is deleted",
+ "enum": [
+ "Delete",
+ "Detach"
+ ],
+ "x-ms-enum": {
+ "name": "DeleteOptions",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Describes a virtual machine scale set updatable network profile's IP configuration.Use this object for updating network profile's IP Configuration."
+ },
+ "VirtualMachineScaleSetNetworkConfiguration": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The network configuration name."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineScaleSetNetworkConfigurationProperties"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ }
+ ],
+ "description": "Describes a virtual machine scale set network profile's network configurations."
+ },
+ "VirtualMachineScaleSetUpdateNetworkConfiguration": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The network configuration name."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineScaleSetUpdateNetworkConfigurationProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ }
+ ],
+ "description": "Describes a virtual machine scale set network profile's network configurations."
+ },
+ "VirtualMachineScaleSetNetworkConfigurationDnsSettings": {
+ "properties": {
+ "dnsServers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of DNS servers IP addresses"
+ }
+ },
+ "description": "Describes a virtual machines scale sets network configuration's DNS settings."
+ },
+ "VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings": {
+ "properties": {
+ "domainNameLabel": {
+ "type": "string",
+ "description": "The Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created"
+ }
+ },
+ "required": [
+ "domainNameLabel"
+ ],
+ "description": "Describes a virtual machines scale sets network configuration's DNS settings."
+ },
+ "VirtualMachineScaleSetIpTag": {
+ "properties": {
+ "ipTagType": {
+ "type": "string",
+ "description": "IP tag type. Example: FirstPartyUsage."
+ },
+ "tag": {
+ "type": "string",
+ "description": "IP tag associated with the public IP. Example: SQL, Storage etc."
+ }
+ },
+ "description": "Contains the IP tag associated with the public IP address."
+ },
+ "VirtualMachineScaleSetPublicIPAddressConfiguration": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The publicIP address configuration name."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineScaleSetPublicIPAddressConfigurationProperties"
+ },
+ "sku": {
+ "$ref": "#/definitions/PublicIPAddressSku"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "description": "Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration"
+ },
+ "VirtualMachineScaleSetUpdatePublicIPAddressConfiguration": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The publicIP address configuration name."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties"
+ }
+ },
+ "description": "Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration"
+ },
+ "VirtualMachineScaleSetPublicIPAddressConfigurationProperties": {
+ "properties": {
+ "idleTimeoutInMinutes": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The idle timeout of the public IP address."
+ },
+ "dnsSettings": {
+ "$ref": "#/definitions/VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings",
+ "description": "The dns settings to be applied on the publicIP addresses ."
+ },
+ "ipTags": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetIpTag"
+ },
+ "description": "The list of IP tags associated with the public IP address."
+ },
+ "publicIPPrefix": {
+ "$ref": "#/definitions/SubResource",
+ "description": "The PublicIPPrefix from which to allocate publicIP addresses."
+ },
+ "publicIPAddressVersion": {
+ "type": "string",
+ "description": "Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.",
+ "enum": [
+ "IPv4",
+ "IPv6"
+ ],
+ "x-ms-enum": {
+ "name": "IPVersion",
+ "modelAsString": true
+ }
+ },
+ "deleteOption": {
+ "type": "string",
+ "description": "Specify what happens to the public IP when the VM is deleted",
+ "enum": [
+ "Delete",
+ "Detach"
+ ],
+ "x-ms-enum": {
+ "name": "DeleteOptions",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration"
+ },
+ "VirtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties": {
+ "properties": {
+ "idleTimeoutInMinutes": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The idle timeout of the public IP address."
+ },
+ "dnsSettings": {
+ "$ref": "#/definitions/VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings",
+ "description": "The dns settings to be applied on the publicIP addresses ."
+ },
+ "deleteOption": {
+ "type": "string",
+ "description": "Specify what happens to the public IP when the VM is deleted",
+ "enum": [
+ "Delete",
+ "Detach"
+ ],
+ "x-ms-enum": {
+ "name": "DeleteOptions",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration"
+ },
+ "VirtualMachineScaleSetNetworkProfile": {
+ "properties": {
+ "healthProbe": {
+ "$ref": "#/definitions/ApiEntityReference",
+ "description": "A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'."
+ },
+ "networkInterfaceConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetNetworkConfiguration"
+ },
+ "description": "The list of network configurations."
+ },
+ "networkApiVersion": {
+ "type": "string",
+ "description": "specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'",
+ "enum": [
+ "2020-11-01"
+ ],
+ "x-ms-enum": {
+ "name": "NetworkApiVersion",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Describes a virtual machine scale set network profile."
+ },
+ "VirtualMachineScaleSetUpdateNetworkProfile": {
+ "properties": {
+ "healthProbe": {
+ "$ref": "#/definitions/ApiEntityReference",
+ "description": "A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'."
+ },
+ "networkInterfaceConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetUpdateNetworkConfiguration"
+ },
+ "description": "The list of network configurations."
+ },
+ "networkApiVersion": {
+ "type": "string",
+ "description": "specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'",
+ "enum": [
+ "2020-11-01"
+ ],
+ "x-ms-enum": {
+ "name": "NetworkApiVersion",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Describes a virtual machine scale set network profile."
+ },
+ "VirtualMachineScaleSetExtensionProperties": {
+ "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."
+ },
+ "type": {
+ "type": "string",
+ "description": "Specifies the type of the extension; an example is \"CustomScriptExtension\"."
+ },
+ "typeHandlerVersion": {
+ "type": "string",
+ "description": "Specifies the version of the script handler."
+ },
+ "autoUpgradeMinorVersion": {
+ "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."
+ },
+ "protectedSettings": {
+ "type": "object",
+ "description": "The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all."
+ },
+ "provisioningState": {
+ "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."
+ },
+ "VirtualMachineScaleSetExtension": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the extension."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineScaleSetExtensionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResourceReadOnly"
+ }
+ ],
+ "description": "Describes a Virtual Machine Scale Set Extension."
+ },
+ "VirtualMachineScaleSetExtensionUpdate": {
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the extension."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineScaleSetExtensionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResourceReadOnly"
+ }
+ ],
+ "description": "Describes a Virtual Machine Scale Set Extension."
+ },
+ "VirtualMachineScaleSetExtensionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetExtension"
+ },
+ "description": "The list of VM scale set extensions."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of VM scale set extensions. Call ListNext() with this to fetch the next page of VM scale set extensions."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List VM scale set extension operation response."
+ },
+ "VirtualMachineScaleSetExtensionProfile": {
+ "properties": {
+ "extensions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetExtension"
+ },
+ "description": "The virtual machine scale set child extension resources."
+ },
+ "extensionsTimeBudget": {
+ "type": "string",
+ "description": "Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).
Minimum api-version: 2020-06-01"
+ }
+ },
+ "description": "Describes a virtual machine scale set extension profile."
+ },
+ "VirtualMachineScaleSetVMProfile": {
+ "properties": {
+ "osProfile": {
+ "$ref": "#/definitions/VirtualMachineScaleSetOSProfile",
+ "description": "Specifies the operating system settings for the virtual machines in the scale set."
+ },
+ "storageProfile": {
+ "$ref": "#/definitions/VirtualMachineScaleSetStorageProfile",
+ "description": "Specifies the storage settings for the virtual machine disks."
+ },
+ "networkProfile": {
+ "$ref": "#/definitions/VirtualMachineScaleSetNetworkProfile",
+ "description": "Specifies properties of the network interfaces of the virtual machines in the scale set."
+ },
+ "securityProfile": {
+ "$ref": "#/definitions/SecurityProfile",
+ "description": "Specifies the Security related profile settings for the virtual machines in the scale set."
+ },
+ "diagnosticsProfile": {
+ "$ref": "#/definitions/DiagnosticsProfile",
+ "description": "Specifies the boot diagnostic settings state.
Minimum api-version: 2015-06-15."
+ },
+ "extensionProfile": {
+ "$ref": "#/definitions/VirtualMachineScaleSetExtensionProfile",
+ "description": "Specifies a collection of settings for extensions installed on virtual machines in the scale set."
+ },
+ "licenseType": {
+ "type": "string",
+ "description": "Specifies that the image or disk that is being used was licensed on-premises.
Possible values for Windows Server operating system are:
Windows_Client
Windows_Server
Possible values for Linux Server operating system are:
RHEL_BYOS (for RHEL)
SLES_BYOS (for SUSE)
For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)
[Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)
Minimum api-version: 2015-06-15"
+ },
+ "priority": {
+ "$ref": "#/definitions/priority",
+ "description": "Specifies the priority for the virtual machines in the scale set.
Minimum api-version: 2017-10-30-preview"
+ },
+ "evictionPolicy": {
+ "$ref": "#/definitions/evictionPolicy",
+ "description": "Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.
For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.
For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview."
+ },
+ "billingProfile": {
+ "$ref": "#/definitions/BillingProfile",
+ "description": "Specifies the billing related details of a Azure Spot VMSS.
Minimum api-version: 2019-03-01."
+ },
+ "scheduledEventsProfile": {
+ "$ref": "#/definitions/ScheduledEventsProfile",
+ "description": "Specifies Scheduled Event related configurations."
+ },
+ "userData": {
+ "type": "string",
+ "description": "UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here.
Minimum api-version: 2021-03-01"
+ }
+ },
+ "description": "Describes a virtual machine scale set virtual machine profile."
+ },
+ "VirtualMachineScaleSetUpdateVMProfile": {
+ "properties": {
+ "osProfile": {
+ "$ref": "#/definitions/VirtualMachineScaleSetUpdateOSProfile",
+ "description": "The virtual machine scale set OS profile."
+ },
+ "storageProfile": {
+ "$ref": "#/definitions/VirtualMachineScaleSetUpdateStorageProfile",
+ "description": "The virtual machine scale set storage profile."
+ },
+ "networkProfile": {
+ "$ref": "#/definitions/VirtualMachineScaleSetUpdateNetworkProfile",
+ "description": "The virtual machine scale set network profile."
+ },
+ "securityProfile": {
+ "$ref": "#/definitions/SecurityProfile",
+ "description": "The virtual machine scale set Security profile"
+ },
+ "diagnosticsProfile": {
+ "$ref": "#/definitions/DiagnosticsProfile",
+ "description": "The virtual machine scale set diagnostics profile."
+ },
+ "extensionProfile": {
+ "$ref": "#/definitions/VirtualMachineScaleSetExtensionProfile",
+ "description": "The virtual machine scale set extension profile."
+ },
+ "licenseType": {
+ "type": "string",
+ "description": "The license type, which is for bring your own license scenario."
+ },
+ "billingProfile": {
+ "$ref": "#/definitions/BillingProfile",
+ "description": "Specifies the billing related details of a Azure Spot VMSS.
Minimum api-version: 2019-03-01."
+ },
+ "scheduledEventsProfile": {
+ "$ref": "#/definitions/ScheduledEventsProfile",
+ "description": "Specifies Scheduled Event related configurations."
+ },
+ "userData": {
+ "type": "string",
+ "description": "UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here.
Minimum api-version: 2021-03-01"
+ }
+ },
+ "description": "Describes a virtual machine scale set virtual machine profile."
+ },
+ "VirtualMachineScaleSetProperties": {
+ "properties": {
+ "upgradePolicy": {
+ "$ref": "#/definitions/UpgradePolicy",
+ "description": "The upgrade policy."
+ },
+ "automaticRepairsPolicy": {
+ "$ref": "#/definitions/AutomaticRepairsPolicy",
+ "description": "Policy for automatic repairs."
+ },
+ "virtualMachineProfile": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMProfile",
+ "description": "The virtual machine profile."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The provisioning state, which only appears in the response."
+ },
+ "overprovision": {
+ "type": "boolean",
+ "description": "Specifies whether the Virtual Machine Scale Set should be overprovisioned."
+ },
+ "doNotRunExtensionsOnOverprovisionedVMs": {
+ "type": "boolean",
+ "description": "When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs."
+ },
+ "uniqueId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the ID which uniquely identifies a Virtual Machine Scale Set."
+ },
+ "singlePlacementGroup": {
+ "type": "boolean",
+ "description": "When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true."
+ },
+ "zoneBalance": {
+ "type": "boolean",
+ "description": "Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage."
+ },
+ "platformFaultDomainCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Fault Domain count for each placement group."
+ },
+ "proximityPlacementGroup": {
+ "$ref": "#/definitions/SubResource",
+ "description": "Specifies information about the proximity placement group that the virtual machine scale set should be assigned to.
Minimum api-version: 2018-04-01."
+ },
+ "hostGroup": {
+ "$ref": "#/definitions/SubResource",
+ "description": "Specifies information about the dedicated host group that the virtual machine scale set resides in.
Minimum api-version: 2020-06-01."
+ },
+ "additionalCapabilities": {
+ "$ref": "#/definitions/AdditionalCapabilities",
+ "description": "Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines have the capability to support attaching managed data disks with UltraSSD_LRS storage account type."
+ },
+ "scaleInPolicy": {
+ "$ref": "#/definitions/ScaleInPolicy",
+ "description": "Specifies the scale-in policy that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled-in."
+ },
+ "orchestrationMode": {
+ "$ref": "#/definitions/OrchestrationMode",
+ "description": "Specifies the orchestration mode for the virtual machine scale set."
+ }
+ },
+ "description": "Describes the properties of a Virtual Machine Scale Set."
+ },
+ "VirtualMachineScaleSetUpdateProperties": {
+ "properties": {
+ "upgradePolicy": {
+ "$ref": "#/definitions/UpgradePolicy",
+ "description": "The upgrade policy."
+ },
+ "automaticRepairsPolicy": {
+ "$ref": "#/definitions/AutomaticRepairsPolicy",
+ "description": "Policy for automatic repairs."
+ },
+ "virtualMachineProfile": {
+ "$ref": "#/definitions/VirtualMachineScaleSetUpdateVMProfile",
+ "description": "The virtual machine profile."
+ },
+ "overprovision": {
+ "type": "boolean",
+ "description": "Specifies whether the Virtual Machine Scale Set should be overprovisioned."
+ },
+ "doNotRunExtensionsOnOverprovisionedVMs": {
+ "type": "boolean",
+ "description": "When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs."
+ },
+ "singlePlacementGroup": {
+ "type": "boolean",
+ "description": "When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true."
+ },
+ "additionalCapabilities": {
+ "$ref": "#/definitions/AdditionalCapabilities",
+ "description": "Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines have the capability to support attaching managed data disks with UltraSSD_LRS storage account type."
+ },
+ "scaleInPolicy": {
+ "$ref": "#/definitions/ScaleInPolicy",
+ "description": "Specifies the scale-in policy that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled-in."
+ },
+ "proximityPlacementGroup": {
+ "$ref": "#/definitions/SubResource",
+ "description": "Specifies information about the proximity placement group that the virtual machine scale set should be assigned to.
Minimum api-version: 2018-04-01."
+ }
+ },
+ "description": "Describes the properties of a Virtual Machine Scale Set."
+ },
+ "VirtualMachineScaleSet": {
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The virtual machine scale set sku."
+ },
+ "plan": {
+ "$ref": "#/definitions/Plan",
+ "description": "Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineScaleSetProperties"
+ },
+ "identity": {
+ "$ref": "#/definitions/VirtualMachineScaleSetIdentity",
+ "description": "The identity of the virtual machine scale set, if configured."
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The virtual machine scale set zones. NOTE: Availability zones can only be set when you create the scale set"
+ },
+ "extendedLocation": {
+ "$ref": "#/definitions/ExtendedLocation",
+ "description": "The extended location of the Virtual Machine Scale Set."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Describes a Virtual Machine Scale Set."
+ },
+ "VirtualMachineScaleSetVMReimageParameters": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/VirtualMachineReimageParameters"
+ }
+ ],
+ "description": "Describes a Virtual Machine Scale Set VM Reimage Parameters."
+ },
+ "VirtualMachineScaleSetReimageParameters": {
+ "properties": {
+ "instanceIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The virtual machine scale set instance ids. Omitting the virtual machine scale set instance ids will result in the operation being performed on all virtual machines in the virtual machine scale set."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMReimageParameters"
+ }
+ ],
+ "description": "Describes a Virtual Machine Scale Set VM Reimage Parameters."
+ },
+ "VirtualMachineScaleSetUpdate": {
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The virtual machine scale set sku."
+ },
+ "plan": {
+ "$ref": "#/definitions/Plan",
+ "description": "The purchase plan when deploying a virtual machine scale set from VM Marketplace images."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineScaleSetUpdateProperties"
+ },
+ "identity": {
+ "$ref": "#/definitions/VirtualMachineScaleSetIdentity",
+ "description": "The identity of the virtual machine scale set, if configured."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Describes a Virtual Machine Scale Set."
+ },
+ "VirtualMachineScaleSetVMInstanceIDs": {
+ "properties": {
+ "instanceIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The virtual machine scale set instance ids. Omitting the virtual machine scale set instance ids will result in the operation being performed on all virtual machines in the virtual machine scale set."
+ }
+ },
+ "description": "Specifies a list of virtual machine instance IDs from the VM scale set."
+ },
+ "VirtualMachineScaleSetVMInstanceRequiredIDs": {
+ "properties": {
+ "instanceIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The virtual machine scale set instance ids."
+ }
+ },
+ "required": [
+ "instanceIds"
+ ],
+ "description": "Specifies a list of virtual machine instance IDs from the VM scale set."
+ },
+ "VirtualMachineStatusCodeCount": {
+ "properties": {
+ "code": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The instance view status code."
+ },
+ "count": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of instances having a particular status code."
+ }
+ },
+ "description": "The status code and count of the virtual machine scale set instance view status summary."
+ },
+ "VirtualMachineScaleSetInstanceViewStatusesSummary": {
+ "properties": {
+ "statusesSummary": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineStatusCodeCount"
+ },
+ "description": "The extensions information."
+ }
+ },
+ "description": "Instance view statuses summary for virtual machines of a virtual machine scale set."
+ },
+ "VirtualMachineScaleSetVMExtensionsSummary": {
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The extension name."
+ },
+ "statusesSummary": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineStatusCodeCount"
+ },
+ "description": "The extensions information."
+ }
+ },
+ "description": "Extensions summary for virtual machines of a virtual machine scale set."
+ },
+ "OrchestrationServiceSummary": {
+ "properties": {
+ "serviceName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the service.",
+ "enum": [
+ "AutomaticRepairs"
+ ],
+ "x-ms-enum": {
+ "name": "OrchestrationServiceNames",
+ "modelAsString": true
+ }
+ },
+ "serviceState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The current state of the service.",
+ "enum": [
+ "NotRunning",
+ "Running",
+ "Suspended"
+ ],
+ "x-ms-enum": {
+ "name": "OrchestrationServiceState",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Summary for an orchestration service of a virtual machine scale set."
+ },
+ "VirtualMachineScaleSetInstanceView": {
+ "properties": {
+ "virtualMachine": {
+ "$ref": "#/definitions/VirtualMachineScaleSetInstanceViewStatusesSummary",
+ "readOnly": true,
+ "description": "The instance view status summary for the virtual machine scale set."
+ },
+ "extensions": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMExtensionsSummary"
+ },
+ "description": "The extensions information."
+ },
+ "statuses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InstanceViewStatus"
+ },
+ "description": "The resource status information."
+ },
+ "orchestrationServices": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OrchestrationServiceSummary"
+ },
+ "description": "The orchestration services information."
+ }
+ },
+ "description": "The instance view of a virtual machine scale set."
+ },
+ "VirtualMachineScaleSetListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSet"
+ },
+ "description": "The list of virtual machine scale sets."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of Virtual Machine Scale Sets. Call ListNext() with this to fetch the next page of VMSS."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Virtual Machine operation response."
+ },
+ "VirtualMachineScaleSetListWithLinkResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSet"
+ },
+ "description": "The list of virtual machine scale sets."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of Virtual Machine Scale Sets. Call ListNext() with this to fetch the next page of Virtual Machine Scale Sets."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Virtual Machine operation response."
+ },
+ "VirtualMachineScaleSetSkuCapacity": {
+ "properties": {
+ "minimum": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The minimum capacity."
+ },
+ "maximum": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The maximum capacity that can be set."
+ },
+ "defaultCapacity": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The default capacity."
+ },
+ "scaleType": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The scale type applicable to the sku.",
+ "enum": [
+ "Automatic",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "VirtualMachineScaleSetSkuScaleType",
+ "modelAsString": false
+ }
+ }
+ },
+ "description": "Describes scaling information of a sku."
+ },
+ "VirtualMachineScaleSetSku": {
+ "properties": {
+ "resourceType": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The type of resource the sku applies to."
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "readOnly": true,
+ "description": "The Sku."
+ },
+ "capacity": {
+ "$ref": "#/definitions/VirtualMachineScaleSetSkuCapacity",
+ "readOnly": true,
+ "description": "Specifies the number of virtual machines in the scale set."
+ }
+ },
+ "description": "Describes an available virtual machine scale set sku."
+ },
+ "VirtualMachineScaleSetListSkusResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetSku"
+ },
+ "description": "The list of skus available for the virtual machine scale set."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of Virtual Machine Scale Set Skus. Call ListNext() with this to fetch the next page of VMSS Skus."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The Virtual Machine Scale Set List Skus operation response."
+ },
+ "RollbackStatusInfo": {
+ "properties": {
+ "successfullyRolledbackInstanceCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of instances which have been successfully rolled back."
+ },
+ "failedRolledbackInstanceCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of instances which failed to rollback."
+ },
+ "rollbackError": {
+ "$ref": "#/definitions/ApiError",
+ "readOnly": true,
+ "description": "Error details if OS rollback failed."
+ }
+ },
+ "description": "Information about rollback on failed VM instances after a OS Upgrade operation."
+ },
+ "UpgradeOperationHistoryStatus": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Code indicating the current status of the upgrade.",
+ "enum": [
+ "RollingForward",
+ "Cancelled",
+ "Completed",
+ "Faulted"
+ ],
+ "x-ms-enum": {
+ "name": "UpgradeState",
+ "modelAsString": false
+ }
+ },
+ "startTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "Start time of the upgrade."
+ },
+ "endTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "End time of the upgrade."
+ }
+ },
+ "description": "Information about the current running state of the overall upgrade."
+ },
+ "UpgradeOperationHistoricalStatusInfoProperties": {
+ "properties": {
+ "runningStatus": {
+ "$ref": "#/definitions/UpgradeOperationHistoryStatus",
+ "readOnly": true,
+ "description": "Information about the overall status of the upgrade operation."
+ },
+ "progress": {
+ "$ref": "#/definitions/RollingUpgradeProgressInfo",
+ "readOnly": true,
+ "description": "Counts of the VMs in each state."
+ },
+ "error": {
+ "$ref": "#/definitions/ApiError",
+ "readOnly": true,
+ "description": "Error Details for this upgrade if there are any."
+ },
+ "startedBy": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Invoker of the Upgrade Operation",
+ "enum": [
+ "Unknown",
+ "User",
+ "Platform"
+ ],
+ "x-ms-enum": {
+ "name": "UpgradeOperationInvoker",
+ "modelAsString": false
+ }
+ },
+ "targetImageReference": {
+ "$ref": "#/definitions/ImageReference",
+ "readOnly": true,
+ "description": "Image Reference details"
+ },
+ "rollbackInfo": {
+ "$ref": "#/definitions/RollbackStatusInfo",
+ "readOnly": true,
+ "description": "Information about OS rollback if performed"
+ }
+ },
+ "description": "Describes each OS upgrade on the Virtual Machine Scale Set."
+ },
+ "UpgradeOperationHistoricalStatusInfo": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/UpgradeOperationHistoricalStatusInfoProperties",
+ "readOnly": true,
+ "description": "Information about the properties of the upgrade operation."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type"
+ },
+ "location": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource location"
+ }
+ },
+ "description": "Virtual Machine Scale Set OS Upgrade History operation response."
+ },
+ "VirtualMachineScaleSetListOSUpgradeHistory": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UpgradeOperationHistoricalStatusInfo"
+ },
+ "description": "The list of OS upgrades performed on the virtual machine scale set."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of OS Upgrade History. Call ListNext() with this to fetch the next page of history of upgrades."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "List of Virtual Machine Scale Set OS Upgrade History operation response."
+ },
+ "VirtualMachineScaleSetVMProperties": {
+ "properties": {
+ "latestModelApplied": {
+ "readOnly": true,
+ "type": "boolean",
+ "description": "Specifies whether the latest model has been applied to the virtual machine."
+ },
+ "vmId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Azure VM unique ID."
+ },
+ "instanceView": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMInstanceView",
+ "readOnly": true,
+ "description": "The virtual machine instance view."
+ },
+ "hardwareProfile": {
+ "$ref": "#/definitions/HardwareProfile",
+ "description": "Specifies the hardware settings for the virtual machine."
+ },
+ "storageProfile": {
+ "$ref": "#/definitions/StorageProfile",
+ "description": "Specifies the storage settings for the virtual machine disks."
+ },
+ "additionalCapabilities": {
+ "$ref": "#/definitions/AdditionalCapabilities",
+ "description": "Specifies additional capabilities enabled or disabled on the virtual machine in the scale set. For instance: whether the virtual machine has the capability to support attaching managed data disks with UltraSSD_LRS storage account type."
+ },
+ "osProfile": {
+ "$ref": "#/definitions/OSProfile",
+ "description": "Specifies the operating system settings for the virtual machine."
+ },
+ "securityProfile": {
+ "$ref": "#/definitions/SecurityProfile",
+ "description": "Specifies the Security related profile settings for the virtual machine."
+ },
+ "networkProfile": {
+ "$ref": "#/definitions/NetworkProfile",
+ "description": "Specifies the network interfaces of the virtual machine."
+ },
+ "networkProfileConfiguration": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMNetworkProfileConfiguration",
+ "description": "Specifies the network profile configuration of the virtual machine."
+ },
+ "diagnosticsProfile": {
+ "$ref": "#/definitions/DiagnosticsProfile",
+ "description": "Specifies the boot diagnostic settings state.
Minimum api-version: 2015-06-15."
+ },
+ "availabilitySet": {
+ "$ref": "#/definitions/SubResource",
+ "description": "Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).
For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)
Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The provisioning state, which only appears in the response."
+ },
+ "licenseType": {
+ "type": "string",
+ "description": "Specifies that the image or disk that is being used was licensed on-premises.
Possible values for Windows Server operating system are:
Windows_Client
Windows_Server
Possible values for Linux Server operating system are:
RHEL_BYOS (for RHEL)
SLES_BYOS (for SUSE)
For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)
[Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)
Minimum api-version: 2015-06-15"
+ },
+ "modelDefinitionApplied": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies whether the model applied to the virtual machine is the model of the virtual machine scale set or the customized model for the virtual machine."
+ },
+ "protectionPolicy": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVMProtectionPolicy",
+ "description": "Specifies the protection policy of the virtual machine."
+ },
+ "userData": {
+ "type": "string",
+ "description": "UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here.
Minimum api-version: 2021-03-01"
+ }
+ },
+ "description": "Describes the properties of a virtual machine scale set virtual machine."
+ },
+ "VirtualMachineScaleSetVM": {
+ "properties": {
+ "instanceId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The virtual machine instance ID."
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "readOnly": true,
+ "description": "The virtual machine SKU."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/VirtualMachineScaleSetVMProperties"
+ },
+ "plan": {
+ "$ref": "#/definitions/Plan",
+ "description": "Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**."
+ },
+ "resources": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineExtension"
+ },
+ "description": "The virtual machine child extension resources."
+ },
+ "zones": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The virtual machine zones."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Describes a virtual machine scale set virtual machine."
+ },
+ "VirtualMachineScaleSetVMInstanceView": {
+ "properties": {
+ "platformUpdateDomain": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The Update Domain count."
+ },
+ "platformFaultDomain": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The Fault Domain count."
+ },
+ "rdpThumbPrint": {
+ "type": "string",
+ "description": "The Remote desktop certificate thumbprint."
+ },
+ "vmAgent": {
+ "$ref": "#/definitions/VirtualMachineAgentInstanceView",
+ "description": "The VM Agent running on the virtual machine."
+ },
+ "maintenanceRedeployStatus": {
+ "$ref": "#/definitions/MaintenanceRedeployStatus",
+ "description": "The Maintenance Operation status on the virtual machine."
+ },
+ "disks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DiskInstanceView"
+ },
+ "description": "The disks information."
+ },
+ "extensions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineExtensionInstanceView"
+ },
+ "description": "The extensions information."
+ },
+ "vmHealth": {
+ "readOnly": true,
+ "$ref": "#/definitions/VirtualMachineHealthStatus",
+ "description": "The health status for the VM."
+ },
+ "bootDiagnostics": {
+ "$ref": "#/definitions/BootDiagnosticsInstanceView",
+ "description": "Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.
You can easily view the output of your console log.
Azure also enables you to see a screenshot of the VM from the hypervisor."
+ },
+ "statuses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InstanceViewStatus"
+ },
+ "description": "The resource status information."
+ },
+ "assignedHost": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled.
Minimum api-version: 2020-06-01."
+ },
+ "placementGroupId": {
+ "type": "string",
+ "description": "The placement group in which the VM is running. If the VM is deallocated it will not have a placementGroupId."
+ }
+ },
+ "description": "The instance view of a virtual machine scale set VM."
+ },
+ "VirtualMachineScaleSetVMNetworkProfileConfiguration": {
+ "properties": {
+ "networkInterfaceConfigurations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetNetworkConfiguration"
+ },
+ "description": "The list of network configurations."
+ }
+ },
+ "description": "Describes a virtual machine scale set VM network profile."
+ },
+ "VirtualMachineScaleSetVMProtectionPolicy": {
+ "properties": {
+ "protectFromScaleIn": {
+ "type": "boolean",
+ "description": "Indicates that the virtual machine scale set VM shouldn't be considered for deletion during a scale-in operation."
+ },
+ "protectFromScaleSetActions": {
+ "type": "boolean",
+ "description": "Indicates that model updates or actions (including scale-in) initiated on the virtual machine scale set should not be applied to the virtual machine scale set VM."
+ }
+ },
+ "description": "The protection policy of a virtual machine scale set VM."
+ },
+ "ScheduledEventsProfile": {
+ "type": "object",
+ "properties": {
+ "terminateNotificationProfile": {
+ "$ref": "#/definitions/TerminateNotificationProfile",
+ "description": "Specifies Terminate Scheduled Event related configurations."
+ }
+ }
+ },
+ "TerminateNotificationProfile": {
+ "type": "object",
+ "properties": {
+ "notBeforeTimeout": {
+ "type": "string",
+ "description": "Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)"
+ },
+ "enable": {
+ "type": "boolean",
+ "description": "Specifies whether the Terminate Scheduled event is enabled or disabled."
+ }
+ }
+ },
+ "VirtualMachineHealthStatus": {
+ "properties": {
+ "status": {
+ "readOnly": true,
+ "$ref": "#/definitions/InstanceViewStatus",
+ "description": "The health status information for the VM."
+ }
+ },
+ "description": "The health status of the VM."
+ },
+ "VirtualMachineScaleSetVMListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineScaleSetVM"
+ },
+ "description": "The list of virtual machine scale sets VMs."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of Virtual Machine Scale Set VMs. Call ListNext() with this to fetch the next page of VMSS VMs"
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Virtual Machine Scale Set VMs operation response."
+ },
+ "RollingUpgradeStatusInfo": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/RollingUpgradeStatusInfoProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "The status of the latest virtual machine scale set rolling upgrade."
+ },
+ "RollingUpgradeStatusInfoProperties": {
+ "properties": {
+ "policy": {
+ "readOnly": true,
+ "$ref": "#/definitions/RollingUpgradePolicy",
+ "description": "The rolling upgrade policies applied for this upgrade."
+ },
+ "runningStatus": {
+ "readOnly": true,
+ "$ref": "#/definitions/RollingUpgradeRunningStatus",
+ "description": "Information about the current running state of the overall upgrade."
+ },
+ "progress": {
+ "readOnly": true,
+ "$ref": "#/definitions/RollingUpgradeProgressInfo",
+ "description": "Information about the number of virtual machine instances in each upgrade state."
+ },
+ "error": {
+ "readOnly": true,
+ "$ref": "#/definitions/ApiError",
+ "description": "Error details for this upgrade, if there are any."
+ }
+ },
+ "description": "The status of the latest virtual machine scale set rolling upgrade."
+ },
+ "RollingUpgradeRunningStatus": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Code indicating the current status of the upgrade.",
+ "enum": [
+ "RollingForward",
+ "Cancelled",
+ "Completed",
+ "Faulted"
+ ],
+ "x-ms-enum": {
+ "name": "RollingUpgradeStatusCode",
+ "modelAsString": false
+ }
+ },
+ "startTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "Start time of the upgrade."
+ },
+ "lastAction": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The last action performed on the rolling upgrade.",
+ "enum": [
+ "Start",
+ "Cancel"
+ ],
+ "x-ms-enum": {
+ "name": "RollingUpgradeActionType",
+ "modelAsString": false
+ }
+ },
+ "lastActionTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "Last action time of the upgrade."
+ }
+ },
+ "description": "Information about the current running state of the overall upgrade."
+ },
+ "RollingUpgradeProgressInfo": {
+ "properties": {
+ "successfulInstanceCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of instances that have been successfully upgraded."
+ },
+ "failedInstanceCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of instances that have failed to be upgraded successfully."
+ },
+ "inProgressInstanceCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of instances that are currently being upgraded."
+ },
+ "pendingInstanceCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of instances that have not yet begun to be upgraded."
+ }
+ },
+ "description": "Information about the number of virtual machine instances in each upgrade state."
+ },
+ "ApiErrorBase": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "The error code."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the particular error."
+ },
+ "message": {
+ "type": "string",
+ "description": "The error message."
+ }
+ },
+ "description": "Api error base."
+ },
+ "InnerError": {
+ "properties": {
+ "exceptiontype": {
+ "type": "string",
+ "description": "The exception type."
+ },
+ "errordetail": {
+ "type": "string",
+ "description": "The internal error message or exception dump."
+ }
+ },
+ "description": "Inner error details."
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/ApiError"
+ }
+ },
+ "description": "An error response from the Compute service."
+ },
+ "ApiError": {
+ "properties": {
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApiErrorBase"
+ },
+ "description": "The Api error details"
+ },
+ "innererror": {
+ "$ref": "#/definitions/InnerError",
+ "description": "The Api inner error"
+ },
+ "code": {
+ "type": "string",
+ "description": "The error code."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the particular error."
+ },
+ "message": {
+ "type": "string",
+ "description": "The error message."
+ }
+ },
+ "description": "Api error."
+ },
+ "ProxyResource": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource Id"
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource name"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type"
+ }
+ },
+ "description": "The resource model definition for an Azure Resource Manager proxy resource. It will not have tags and a location",
+ "x-ms-azure-resource": true
+ },
+ "Resource": {
+ "description": "The Resource model definition.",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource Id"
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource name"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type"
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "required": [
+ "location"
+ ],
+ "x-ms-azure-resource": true
+ },
+ "UpdateResource": {
+ "description": "The Update Resource model definition.",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ }
+ },
+ "SubResource": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Resource Id"
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "SubResourceReadOnly": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource Id"
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "ExtendedLocationType": {
+ "type": "string",
+ "description": "The type of extendedLocation.",
+ "enum": [
+ "EdgeZone"
+ ],
+ "x-ms-enum": {
+ "name": "ExtendedLocationTypes",
+ "modelAsString": true
+ }
+ },
+ "ExtendedLocation": {
+ "description": "The complex type of the extended location.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the extended location."
+ },
+ "type": {
+ "$ref": "#/definitions/ExtendedLocationType",
+ "description": "The type of the extended location."
+ }
+ }
+ },
+ "RecoveryWalkResponse": {
+ "properties": {
+ "walkPerformed": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "Whether the recovery walk was performed"
+ },
+ "nextPlatformUpdateDomain": {
+ "type": "integer",
+ "readOnly": true,
+ "description": "The next update domain that needs to be walked. Null means walk spanning all update domains has been completed"
+ }
+ },
+ "description": "Response after calling a manual recovery walk"
+ },
+ "RequestRateByIntervalInput": {
+ "properties": {
+ "intervalLength": {
+ "type": "string",
+ "description": "Interval value in minutes used to create LogAnalytics call rate logs.",
+ "enum": [
+ "ThreeMins",
+ "FiveMins",
+ "ThirtyMins",
+ "SixtyMins"
+ ],
+ "x-ms-enum": {
+ "name": "IntervalInMins",
+ "modelAsString": false
+ }
+ }
+ },
+ "required": [
+ "intervalLength"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/LogAnalyticsInputBase"
+ }
+ ],
+ "description": "Api request input for LogAnalytics getRequestRateByInterval Api."
+ },
+ "ThrottledRequestsInput": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/LogAnalyticsInputBase"
+ }
+ ],
+ "description": "Api request input for LogAnalytics getThrottledRequests Api."
+ },
+ "LogAnalyticsInputBase": {
+ "properties": {
+ "blobContainerSasUri": {
+ "type": "string",
+ "description": "SAS Uri of the logging blob container to which LogAnalytics Api writes output logs to."
+ },
+ "fromTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "From time of the query"
+ },
+ "toTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "To time of the query"
+ },
+ "groupByThrottlePolicy": {
+ "type": "boolean",
+ "description": "Group query result by Throttle Policy applied."
+ },
+ "groupByOperationName": {
+ "type": "boolean",
+ "description": "Group query result by Operation Name."
+ },
+ "groupByResourceName": {
+ "type": "boolean",
+ "description": "Group query result by Resource Name."
+ },
+ "groupByClientApplicationId": {
+ "type": "boolean",
+ "description": "Group query result by Client Application ID."
+ },
+ "groupByUserAgent": {
+ "type": "boolean",
+ "description": "Group query result by User Agent."
+ }
+ },
+ "required": [
+ "blobContainerSasUri",
+ "fromTime",
+ "toTime"
+ ],
+ "description": "Api input base class for LogAnalytics Api."
+ },
+ "LogAnalyticsOperationResult": {
+ "properties": {
+ "properties": {
+ "readOnly": true,
+ "$ref": "#/definitions/LogAnalyticsOutput",
+ "description": "LogAnalyticsOutput"
+ }
+ },
+ "description": "LogAnalytics operation status response"
+ },
+ "LogAnalyticsOutput": {
+ "properties": {
+ "output": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Output file Uri path to blob container."
+ }
+ },
+ "description": "LogAnalytics output properties"
+ },
+ "VMScaleSetConvertToSinglePlacementGroupInput": {
+ "properties": {
+ "activePlacementGroupId": {
+ "type": "string",
+ "description": "Id of the placement group in which you want future virtual machine instances to be placed. To query placement group Id, please use Virtual Machine Scale Set VMs - Get API. If not provided, the platform will choose one with maximum number of virtual machine instances."
+ }
+ }
+ },
+ "OrchestrationServiceStateInput": {
+ "properties": {
+ "serviceName": {
+ "type": "string",
+ "description": "The name of the service.",
+ "enum": [
+ "AutomaticRepairs"
+ ],
+ "x-ms-enum": {
+ "name": "OrchestrationServiceNames",
+ "modelAsString": true
+ }
+ },
+ "action": {
+ "type": "string",
+ "description": "The action to be performed.",
+ "enum": [
+ "Resume",
+ "Suspend"
+ ],
+ "x-ms-enum": {
+ "name": "OrchestrationServiceStateAction",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "The input for OrchestrationServiceState",
+ "required": [
+ "serviceName",
+ "action"
+ ]
+ },
+ "PatchSettings": {
+ "properties": {
+ "patchMode": {
+ "type": "string",
+ "description": "Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.
Possible values are:
**Manual** - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false
**AutomaticByOS** - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true.
**AutomaticByPlatform** - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true ",
+ "enum": [
+ "Manual",
+ "AutomaticByOS",
+ "AutomaticByPlatform"
+ ],
+ "x-ms-enum": {
+ "name": "WindowsVMGuestPatchMode",
+ "modelAsString": true
+ }
+ },
+ "enableHotpatching": {
+ "type": "boolean",
+ "description": "Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'."
+ },
+ "assessmentMode": {
+ "type": "string",
+ "description": "Specifies the mode of VM Guest patch assessment for the IaaS virtual machine.
Possible values are:
**ImageDefault** - You control the timing of patch assessments on a virtual machine.
**AutomaticByPlatform** - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true. ",
+ "enum": [
+ "ImageDefault",
+ "AutomaticByPlatform"
+ ],
+ "x-ms-enum": {
+ "name": "WindowsPatchAssessmentMode",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Specifies settings related to VM Guest Patching on Windows."
+ },
+ "LinuxPatchSettings": {
+ "properties": {
+ "patchMode": {
+ "type": "string",
+ "description": "Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.
Possible values are:
**ImageDefault** - The virtual machine's default patching configuration is used.
**AutomaticByPlatform** - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true",
+ "enum": [
+ "ImageDefault",
+ "AutomaticByPlatform"
+ ],
+ "x-ms-enum": {
+ "name": "LinuxVMGuestPatchMode",
+ "modelAsString": true
+ }
+ },
+ "assessmentMode": {
+ "type": "string",
+ "description": "Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine.
Possible values are:
**ImageDefault** - You control the timing of patch assessments on a virtual machine.