diff --git a/.azure-pipelines-preproduction/package-lock.json b/.azure-pipelines-preproduction/package-lock.json
index 4c101dab8fff..10fc277e7713 100644
--- a/.azure-pipelines-preproduction/package-lock.json
+++ b/.azure-pipelines-preproduction/package-lock.json
@@ -3835,9 +3835,9 @@
}
},
"node-fetch": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
- "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
"dev": true
},
"node-object-hash": {
diff --git a/.azure-pipelines/BreakingChange.yml b/.azure-pipelines/BreakingChange.yml
deleted file mode 100644
index 466349bd3bfd..000000000000
--- a/.azure-pipelines/BreakingChange.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-jobs:
-- job: "BreakingChange"
- pool:
- vmImage: 'Ubuntu 16.04'
- steps:
- - script: 'scripts/install-dotnet.sh'
- displayName: 'Install .Net'
- - task: Npm@1
- displayName: 'npm install'
- inputs:
- verbose: false
- - script: 'npm run tsc && node scripts/breaking-change.js'
- displayName: 'Breaking Changes'
\ No newline at end of file
diff --git a/.azure-pipelines/SDKAutomation.yml b/.azure-pipelines/SDKAutomation.yml
index da696e39c823..982a0fd77d77 100644
--- a/.azure-pipelines/SDKAutomation.yml
+++ b/.azure-pipelines/SDKAutomation.yml
@@ -20,7 +20,6 @@ jobs:
variables:
NODE_OPTIONS: '--max-old-space-size=8192'
- BLOB_STORAGE_PREFIX: sdkautomation-pipeline
SPEC_REPO: $(Build.Repository.Name)
PR_NUMBER: $(System.PullRequest.PullRequestNumber)
BUILD_ID: $(Build.BuildId)
@@ -42,6 +41,8 @@ jobs:
SDK_REPO_NAME: azure-sdk-for-go
Trenton:
SDK_REPO_NAME: azure-sdk-for-trenton
+ Schema:
+ SDK_REPO_NAME: azure-resource-manager-schemas
steps:
- checkout: none
- script: |
@@ -62,22 +63,30 @@ jobs:
displayName: Pull SDK Automation Image
- script: |
docker run \
+ -e BLOB_PROXY_PREFIX \
+ -e BLOB_STORAGE_PREFIX \
+ -e BLOB_STORAGE_IS_PUBLIC \
+ -e BLOB_DOWNLOAD_COMMAND \
-e BLOB_STORAGE_NAME \
-e BLOB_STORAGE_KEY \
-e GITHUB_COMMENT_AUTHOR_NAME \
-e GITHUBAPP_ID \
-e GITHUBAPP_PRIVATE_KEY \
-e NODE_OPTIONS \
- -e BLOB_STORAGE_PREFIX \
-e SPEC_REPO \
-e PR_NUMBER \
-e SDK_REPO_NAME \
-e AZURE_DEVOPS_EXT_PAT \
-e BUILD_ID \
sdk-automation:latest npm start
+ condition: or(ne(variables['SDK_REPO_NAME'], 'azure-resource-manager-schemas'), endsWith(variables['SPEC_REPO'], '/azure-rest-api-specs'))
env:
BLOB_STORAGE_NAME: $(blob-storage-name)
BLOB_STORAGE_KEY: $(blob-storage-key)
+ BLOB_STORAGE_PREFIX: $(blob-storage-prefix)
+ BLOB_PROXY_PREFIX: $(blob-proxy-prefix)
+ BLOB_STORAGE_IS_PUBLIC: $(blob-is-public)
+ BLOB_DOWNLOAD_COMMAND: $(blob-download-command)
GITHUB_COMMENT_AUTHOR_NAME: $(github-comment-author-name)
GITHUBAPP_ID: $(githubapp-id)
GITHUBAPP_PRIVATE_KEY: $(githubapp-private-key)
diff --git a/.github/comment.yaml b/.github/comment.yaml
new file mode 100644
index 000000000000..f4a177fbf594
--- /dev/null
+++ b/.github/comment.yaml
@@ -0,0 +1,33 @@
+---
+- rule:
+ type: checkbox
+ keywords:
+ - "Removing API(s)"
+ - "Updating API in stable version"
+ onCheckedLabels:
+ - breakingChange
+
+- rule:
+ type: checkbox
+ keywords:
+ - "WaitForARMFeedback"
+ booleanFilterExpression: "!(ARMSignedOff||ARMChangesRequested||Approved-OkToMerge||WaitForARMRevisit)"
+ onCheckedLabels:
+ - WaitForARMFeedback
+ onCheckedComments: "Hi, @${PRAuthor} your PR are labelled with WaitForARMFeedback. A notification email will be sent out shortly afterwards to notify ARM review board(armapireview@microsoft.com). cc @${PRAssignee} "
+
+- rule:
+ type: checkbox
+ keywords:
+ - "I have reviewed the [documentation](https://aka.ms/ameonboard) for the workflow."
+ onCheckedComments: "Hi, @${PRAuthor} Thanks for your PR. I am workflow bot for review process. Here are some small tips.
Please ensure to do self-check against checklists in first PR comment. PR assignee is the person auto-assigned and responsible for your current PR reviewing and merging. If there is CI failure(s), to fix CI error(s) is mandatory for PR merging; or you need to provide justification in PR comment for explanation. [How to fix?](https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/ci-fix.md) Any feedback about review process or workflow bot, pls contact swagger and tools team. vsswagger@microsoft.com"
+
+- rule:
+ type: label
+ label: breakingChange
+ onLabeledComments: "Hi @${PRAuthor}, one or multiple breaking change(s) is detected in your PR. Pls follow [breaking change policy](https://aka.ms/AzBreakingChangesPolicy) to request breaking change review and approval before proceeding swagger PR review. "
+
+- rule:
+ type: label
+ label: ApprovedOkToMerge
+ onLabeledComments: "Hi @${PRAuthor},Your PR is approved. Congratulations. If your PR is in public repo (azure-rest-api-specs), PR assignee will merge all updates in the PR shortly afterwards; or pause the PR merge, you need to put on a label DoNotMerge to PR as soon as possible. If your PR is in private repo (azure-rest-api-specs-pr), there won’t be PR merge. Please refer to this [wiki](https://dev.azure.com/azure-sdk/internal/_wiki/wikis/internal.wiki/205/RP-Scenarios-to-Contribute-to-Swagger?anchor=**public-repository-vs.-private-repository**) for further guidance on how to proceed. "
diff --git a/.github/issue_assignment.yml b/.github/issue_assignment.yml
index 7347c318e629..40be9f7f70ed 100644
--- a/.github/issue_assignment.yml
+++ b/.github/issue_assignment.yml
@@ -4,7 +4,7 @@
assignees:
- yungezz
- erich-wang
- - NullMDR
+ - PhoenixHe-msft
- raych1
- lirenhe
- weidongxu-microsoft
diff --git a/.github/pull_request_assignment.yml b/.github/pull_request_assignment.yml
index 878a5eba46bc..6c0cfe2703ef 100644
--- a/.github/pull_request_assignment.yml
+++ b/.github/pull_request_assignment.yml
@@ -1,4 +1,11 @@
---
+- rule:
+ # eventgrid data-plane PR
+ paths:
+ - "specification/eventgrid/data-plane/**"
+ reviewers:
+ - lmazuel
+
- rule:
# data-plane PR
paths:
@@ -8,127 +15,29 @@
- jhendrixMSFT
- lmazuel
- tjprescott
-
-- rule:
- paths:
- - "specification/network/**"
- reviewers:
- - lirenhe
- - MyronFanQiu
-
-- rule:
- paths:
- - "specification/@(applicationinsights|operationalinsights)/**"
- reviewers:
- - MyronFanQiu
-
-- rule:
- paths: "specification/compute/**"
- reviewers:
- - ArcturusZhang
- - fengzhou-msft
- - yungezz
-
-- rule:
- paths: "specification/resources/**"
- reviewers:
- - raych1
-
-- rule:
- paths:
- - "specification/machinelearningservices/**"
- reviewers:
- - ArcturusZhang
-
-- rule:
- paths:
- - "specification/@(azureactivedirectory|appplatform)/**"
- reviewers:
- - njuCZ
-
-- rule:
- paths:
- - "specification/authorization/**"
- reviewers:
- - qianwens
- - yungezz
-
-- rule:
- paths:
- - "specification/datafactory/**"
- reviewers:
- - qianwens
-
-- rule:
- paths:
- - "specification/monitor/**"
- reviewers:
- - weidongxu-microsoft
- - MyronFanQiu
-
-- rule:
- paths:
- - "specification/storage/**"
- reviewers:
- - qianwens
- - Juliehzl
-
-- rule:
- paths: "specification/mediaservices/**"
- reviewers:
+
+- rule:
+ paths: "specification/mediaservices/**"
+ reviewers:
- allenjzhang
-
-- rule:
- paths:
- - "specification/@(keyvault|notificationhubs)/**"
- - "specification/@(databricks|containerregistry)/**"
- reviewers:
- - fengzhou-msft
-
-- rule:
- paths:
- - "specification/@(containerservice|containerinstance)/**"
- reviewers:
- - NullMDR
- - fengzhou-msft
- - yungezz
-
-- rule:
- paths:
- - "specification/mixedreality/**"
- - "specification/hdinsight/**"
- reviewers:
- - leni-msft
-
-- rule:
- paths:
- - "specification/portal/**"
- reviewers:
- - NullMDR
-
-- rule:
- paths:
- - "specification/web/**"
- reviewers:
- - weidongxu-microsoft
-
-- rule:
- paths:
- - "documentation/**"
- reviewers:
- - josefree
- - akning-ms
-
-- rule:
- paths:
- - "**/package.json"
- - ".github/**"
- - "**/azure-pipelines.yml"
- - ".azure-pipelines/**"
- - ".azure-pipelines-preproduction/**"
- reviewers:
- - akning-ms
- - NullMDR
+
+- rule:
+ paths:
+ - "documentation/**"
+ reviewers:
+ - josefree
+ - akning-ms
+
+- rule:
+ paths:
+ - "**/package.json"
+ - ".github/**"
+ - "**/azure-pipelines.yml"
+ - ".azure-pipelines/**"
+ - ".azure-pipelines-preproduction/**"
+ reviewers:
+ - akning-ms
+ - PhoenixHe-msft
- raych1
- rule:
@@ -136,19 +45,6 @@
paths:
- "**"
reviewers:
- - yungezz
- - erich-wang
- - NullMDR
- - raych1
- - lirenhe
- - weidongxu-microsoft
- - ArcturusZhang
- - xccc-msft
- - ChenTanyi
- - fengzhou-msft
- - njuCZ
- - akning-ms
+ - allenjzhang
- markcowl
- - leni-msft
- - qianwens
- - ruowan
+
diff --git a/.github/sla.yml b/.github/sla.yml
index 005dfda9139a..7d1f1e347267 100644
--- a/.github/sla.yml
+++ b/.github/sla.yml
@@ -67,7 +67,7 @@
- time
args:
limit: 72h
- booleanFilterExpression: (Reviewed-ChangesRequired||ARMChangeRequest)
+ booleanFilterExpression: (Reviewed-ChangesRequired||ARMChangesRequested)
message: 'Dear PR author,
The PR Reviewer has commented on your PR ${URL} , putting on the label "Reviewed-ChangesRequired" or "ARMChangeRequest". Please check out the comment by clicking the PR link attached previously, and update your commits accordingly.
Please ensure to remove "Reviewed-ChangesRequired" or "ARMChangeRequest" label, after you complete updates and comment back. If you need ARM board or swagger reviewer revisit your PR, please label the PR with "WaitForARMRevisit" and "WaitForReviewRevisit" respectively.
Quick info.
DO NOT REPLY: This is an automated email. If you have any questions, please send an email to the Swagger and Tools Team (vscswagger@microsoft.com).
Best regards,
Swagger and Tools Team, Azure Management Experience
'
subject: "Action Required: Please update your PR ${URL}"
to: ${AUTHOR}
diff --git a/CODEOWNERS b/CODEOWNERS
index 0eb67c38edaa..189ce8104fc5 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -1,4 +1,5 @@
/specification/analysisservices/ @taiwu
+/specification/alertsmanagement/ @ofirmanor @olalavi @erangon @orieldar @ilaizi @shakednai1 @khaboasb @orenhor
/specification/apimanagement/ @promoisha @solankisamir
/specification/applicationinsights/ @alexeldeib
/specification/asazure/ @athipp
@@ -10,7 +11,7 @@
/specification/billing/ @wilcobmsft
/specification/cdn/ @csmengwan @injyzarif @prakharsharma10
/specification/cognitiveservices/ @felixwa @yangyuan
-/specification/compute/ @hyonholee @mabhard @danielli90 @smotwani @ppatwa @vikramd-ms @savyasachisamal @yunusm @ZhidongPeng @nkuchta @maheshnemichand @najams @changov
+/specification/compute/ @bilaakpan-ms @sandido @dkulkarni-ms @haagha @madewithsmiles @MS-syh2qs @grizzlytheodore @hyonholee @mabhard @danielli90 @smotwani @ppatwa @vikramd-ms @savyasachisamal @yunusm @ZhidongPeng @nkuchta @maheshnemichand @najams @changov
/specification/consumption/ @kjeur @panda-wang
/specification/containerinstance/ @novinc
/specification/containerregistry/ @djyou
@@ -43,7 +44,7 @@
/specification/mobileengagement/ @pshrosbree
/specification/monitor/ @gucalder
/specification/mysql/ @qingqingyuan
-/specification/network/ @MikhailTryakhov @number213 @solhaile @v-shhatt
+/specification/network/ @MikhailTryakhov
/specification/notificationhubs/ @amolr @smithab
/specification/operationalinsights/ @sw47
/specification/operationsmanagement/ @dashimi16
@@ -65,8 +66,9 @@
/specification/service-map/ @daveirwin1
/specification/servicebus/ @sazeesha @v-ajnava
/specification/servicefabric/ @juhacket @samedder
-/specification/sql/ @dnayantara @jaredmoo @nathannfan
-/specification/storage/ @blueww @jasonyang-msft @xiaonlimsft @kasobol-msft
+/specification/sql/ @jamestao @bcham
+/specification/storage/ @blueww @jasonyang-msft @xiaonlimsft
+/specification/storage/data-plane/ @kasobol-msft @seanmcc-msft
/specification/storageimportexport/ @leoz-ms
/specification/storagesync/ @ankushbindlish2
/specification/storsimple8000series/ @manaas-microsoft
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 99db62225099..aeec700c1f96 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -23,7 +23,6 @@ jobs:
- template: .azure-pipelines/Semantic.yml
- template: .azure-pipelines/Avocado.yml
- template: .azure-pipelines/ModelValidation.yml
-- template: .azure-pipelines/BreakingChange.yml
- template: .azure-pipelines/LintDiff.yml
- template: .azure-pipelines/NetworkValidation.yml
- template: .azure-pipelines/Spellcheck.yml
diff --git a/cSpell.json b/cSpell.json
index 21bf185fc445..851e31d46c51 100644
--- a/cSpell.json
+++ b/cSpell.json
@@ -89,6 +89,84 @@
"Ochestrator"
]
},
+ {
+ "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-02-01/managedClusters.json",
+ "words": [
+ "azpodpolicy"
+ ]
+ },
+ {
+ "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-04-01/managedClusters.json",
+ "words": [
+ "azpodpolicy"
+ ]
+ },
+ {
+ "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-06-01/managedClusters.json",
+ "words": [
+ "azpodpolicy"
+ ]
+ },
+ {
+ "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-08-01/managedClusters.json",
+ "words": [
+ "azpodpolicy"
+ ]
+ },
+ {
+ "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-10-01/managedClusters.json",
+ "words": [
+ "azpodpolicy"
+ ]
+ },
+ {
+ "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-11-01/managedClusters.json",
+ "words": [
+ "azpodpolicy"
+ ]
+ },
+ {
+ "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-01-01/managedClusters.json",
+ "words": [
+ "azpodpolicy"
+ ]
+ },
+ {
+ "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-02-01/managedClusters.json",
+ "words": [
+ "azpodpolicy"
+ ]
+ },
+ {
+ "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-03-01/managedClusters.json",
+ "words": [
+ "azpodpolicy"
+ ]
+ },
+ {
+ "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-04-01/managedClusters.json",
+ "words": [
+ "azpodpolicy"
+ ]
+ },
+ {
+ "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-06-01/managedClusters.json",
+ "words": [
+ "azpodpolicy"
+ ]
+ },
+ {
+ "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/managedClusters.json",
+ "words": [
+ "azpodpolicy"
+ ]
+ },
+ {
+ "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/managedClusters.json",
+ "words": [
+ "azpodpolicy"
+ ]
+ },
{
"filename": "**/specification/containerregistry/data-plane/Microsoft.ContainerRegistry/preview/2018-08-10/containerregistry.json",
"words": [
@@ -635,6 +713,39 @@
"networkrulesets",
"Setget"
]
+ },
+ {
+ "filename": "**/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/machineLearningServices.json",
+ "words": [
+ "mysqldb",
+ "psqldb"
+ ]
+ },
+ {
+ "filename": "**/specification/maps/data-plane/Microsoft.Maps/Render/preview/1.0/render.json",
+ "words": [
+ "Chttp",
+ "Fcontoso",
+ "Fpushpins"
+ ]
+ },
+ {
+ "filename": "**/specification/communication/data-plane/Microsoft.CommunicationServicesChat/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"
+ ]
}
]
-}
\ No newline at end of file
+}
diff --git a/custom-words.txt b/custom-words.txt
index 2301b3ecdcc3..9f4854c11a4f 100644
--- a/custom-words.txt
+++ b/custom-words.txt
@@ -36,6 +36,7 @@ adminmanagement
ADTO
adultscore
affinitized
+AFRINIC
agentpool
aggregatedcost
AHUB
@@ -57,6 +58,7 @@ AND'ed
Annotatable
anomalydetector
anomalyfinder
+antimeridian
APAC
APACHEAVRO
API's
@@ -94,6 +96,7 @@ apimtenant
apimusers
apimversionsets
apitoken
+APNIC
APNS
appconfig
appid
@@ -102,6 +105,7 @@ applynetworkconfigurationupdates
appservice
appsettings
appteststorage
+ARIN
ABGRABGR
ARGBARGB
Arjun
@@ -118,12 +122,14 @@ aspnet
asyncinfo
asyncoperation
atascada
+Auditd
australiaeast
australiasoutheast
authenticatable
Authenticode
authorityURL
authorizationrules
+authpriv
authprovider
authproviders
authsettings
@@ -152,6 +158,7 @@ AZFW
AZNB
azns
azpkg
+azpodpolicy
azureaccounts
azureactivedirectory
azureblob
@@ -189,9 +196,11 @@ Baidu
bangla
Bahasa
baremetal
+baremetalinfrastructure
BATCHAI
batchmanaged
BAYESIANOPTIMIZATION
+bbox
BCDR
BCWG
beider
@@ -236,6 +245,8 @@ Bokmaal
Bootstrappers
bot's
botservice
+boundingbox
+boundingzoom
brazilsouth
browsable
bruceper
@@ -269,7 +280,9 @@ certificatescreateorupdate
certificatesdelete
Certificatethumbprint
certverify
+Chademo
chainer
+changepoint
changestate
CHECKACCESS
checkmark
@@ -279,6 +292,7 @@ CIDR
CIDRs
CIFS
ciphertext
+CISCOASA
claimCondition
claimType
clfs
@@ -296,12 +310,14 @@ closedlist
closedlists
Cloudamize
cloudapp
+cloudevents
cloudproperties
cloudsimple
clustermonitoring
clustername
Cmdkey
cmdlet
+CMAF
CMMI
CNAME
cntk
@@ -354,6 +370,7 @@ Cran
creatable
createconsumergroup
createorupdate
+createpreview
credativ
crossdomain
csname
@@ -380,11 +397,13 @@ CUTOVER
CVEs
CVSS
Cyrl
+darkgrey
databox
Databricks
datacatalog
Datacenter
datacenters
+datacontenttype
datadisk
datafactory
datafactoryv
@@ -398,7 +417,9 @@ Datamasking
datamigration
datapoint
Dataset
+datasetid
datasets
+dataschema
datasource
Datasources
datastore
@@ -456,8 +477,10 @@ devicetemplates
devspaces
devtestlab
devtestlabs
+dewpoint
dhcp
diagnosticcontext
+diarization
digitaltwins
DIMM
disableautoscale
@@ -468,6 +491,7 @@ discoverbackup
diskmigrationjobs
diskoperations
Distcp
+Distro
DMTS
Dnat
dnsname
@@ -477,6 +501,8 @@ Domainful
domainname
domainservices
DOTALL
+dras
+DRAs
DRMs
dsmax
DTDL
@@ -494,6 +520,7 @@ Edgenode
edgenodes
EDIFACT
EDMX
+Einsteinweg
Ekaterinburg
ekus
Eloqua
@@ -515,6 +542,7 @@ entitydocument
entitysearch
entrypoint
environmentsettings
+EPSG
errordetail
errored
ErrorMesssage
@@ -574,6 +602,8 @@ fileservers
fileshare
Filestream
filesystems
+fileuploaderr
+fileuploadout
fileurl
findsimilars
findsquare
@@ -584,6 +614,7 @@ FPGA
fqdn
FQDNs
Français
+freeflow
frontdoor
fsaction
Fulfilment
@@ -603,10 +634,16 @@ generatelivetoken
generateverificationcode
generatevpnclientpackage
generatevpnprofile
+geobias
+geocode
+geocodes
Geofence
+geofences
Geofencing
+geojson
georegions
georeplication
+geospatial
GETACLSTATUS
getactivationkey
getavailablebillingfeatures
@@ -615,8 +652,10 @@ getconsumergroup
GETCONTENTSUMMARY
GETFILESTATUS
getissuers
+getitems
getjob
getkey
+getmaptile
getprivateendpointconnection
getprivatelinkresources
getsas
@@ -644,10 +683,12 @@ Groupby
groupedby
GRPC
GSMT
+GTFS
guestconfiguration
GUID
GUIDs
GZRS
+Haag
haase
Había
hadoop
@@ -678,6 +719,7 @@ Horovod
hostnames
Hotfix
hotfixes
+HSLA
HSMs
Hubspot
hybridconnection
@@ -749,6 +791,7 @@ isdirectory
ishostingenvironmentnameavailable
ishostnameavailable
isnullable
+isochrone
isordered
issqlcompression
istransitioning
@@ -789,6 +832,7 @@ keyvaulturi
keyversion
KHTML
Kiswahili
+KMPH
Knowledgebase
knowledgebases
koelner
@@ -810,6 +854,7 @@ l'avion
labaccounts
labelset
labservices
+LACNIC
Lajolla
largefacelists
largepersongroups
@@ -826,6 +871,7 @@ libtrust
lifecycle
lifetimejobstats
lifetimepoolstats
+Linestring
linkedservices
linkexpiryinminutes
LISTAFTERID
@@ -892,12 +938,14 @@ managementgroups
managementpartner
managementpolicy
manualupgrade
+mapbox
mapred
mapreduce
mariadb
Marketo
marketplaceagreementsapi
marketplaceordering
+maxcoordinates
MAXERRORS
maximumblobsize
maxmemory
@@ -926,9 +974,11 @@ microservices
microsofttranslator
migratemysql
migratetoaad
+mincoordinates
minidump
minimalmetadata
ministamps
+Minkowski
mixedreality
Mkdirs
mktorest
@@ -940,6 +990,7 @@ MODIFYACLENTRIES
monitoringconfiguration
monitoringconfigurations
Monospace
+mountainview
MPNS
MRAN
MSAZR
@@ -955,6 +1006,8 @@ Multiclass
MULTIJSON
Multilabel
multipart
+multipoint
+multipoints
Multiset
multistep
multivalued
@@ -981,15 +1034,18 @@ mysite
mysquare
mystore
myvolume
+myworkbooks
n'eventtype
n'recognition
nagios
namespace's
nanoserver
+Napoli
nbformat
Nccl
nchar
ndjson
+Neighbourhood
netapp
netezza
networkruleset
@@ -1030,6 +1086,7 @@ notificationchannels
notificationhubs
notstarted
nouploadcache
+nowcasts
nsdname
nsku
nsxt
@@ -1068,6 +1125,7 @@ operationresults
operationsmanagement
operationstatuses
opid
+openlr
oplog
Optimised
Optimiser
@@ -1084,6 +1142,9 @@ overprovision
overprovisioned
overprovisioning
overridable
+overriden
+overviewbox
+overviewzoom
OWASP
oxxm
pageable
@@ -1100,6 +1161,7 @@ Paypal
PBIE
PCIE
PCNET
+PDFs
peerings
Pendingissuance
Pendingrevocation
@@ -1124,6 +1186,7 @@ pkcs
playready
Plex
Pohlmann
+pois
policyassignments
policydefinitions
policyinsights
@@ -1144,6 +1207,7 @@ powerbidedicated
powerbiembedded
poweredoff
poweroff
+pptx
prebackup
prebackupvalidation
prebuilts
@@ -1167,6 +1231,7 @@ privatedns
privatelinks
privatepreview
projectable
+propogation
Protectable
provisioner
provisioningservices
@@ -1298,6 +1363,7 @@ Responsys
RESTAPI
restoreheartbeat
Restproxy
+restrant
restype
resumable
resync
@@ -1316,6 +1382,7 @@ RGBARGBA
RGBRGB
rgname
rhel
+RIRs
Rolledback
Rollforward
rollouts
@@ -1330,6 +1397,7 @@ RPKI
rpns
RSAES
RSASSA
+rstrnt
rscc
rscd
rsce
@@ -1360,6 +1428,7 @@ sawinvm
SBEH
Scaleset
scalesets
+Scame
scanability
SCMS
SCOM
@@ -1367,6 +1436,7 @@ scopemap
SCSV
sdks
SDWAN
+searchbuffer
searchindex
searchmanagementclient
searchservice
@@ -1457,6 +1527,7 @@ southindia
sparkconf
sparql
SPDX
+specversion
SQLAG
sqldatabase
SQLDB
@@ -1473,6 +1544,7 @@ SSTP
ssword
standardasciifolding
startlocalrun
+startpacketcapture
startrun
startswith
starttask
@@ -1480,9 +1552,14 @@ starttaskfailed
starttime
startTime
stateful
+stateset
+statesets
+statetile
staticsite
statusdir
stderror
+stoppacketcapture
+stdev
stopresize
stopword
stopwords
@@ -1500,6 +1577,7 @@ streamanalytics
streamingendpoint
streamingjobs
streamingservice
+subcause
subcomponent
subdir
subdomain
@@ -1557,6 +1635,7 @@ tablevaluedfunctions
tagname
tagsandregions
tagvalue
+TARGETDURATION
taskcompletion
taskcounts
taskfailure
@@ -1567,6 +1646,7 @@ templatelink
templeton
temporarydisk
tensorflow
+TEPCO's
teradata
terminatejob
Termlist
@@ -1581,6 +1661,8 @@ textanalytics
TFIDF
Tful
Tfvc
+tileset
+tilesets
timeframe
timegrain
timeseries
@@ -1594,11 +1676,15 @@ tombstoned
toolchain
toolset
tooltips
+topqueries
+topquery
+TPEG
traceback
traceroute
trafficmanager
trafficmanageranalytics
trafficmanagerprofiles
+trafficmodelid
tráfico
transcoding
transcodes
@@ -1610,7 +1696,12 @@ triggerruns
TSVE
Turbonomic
Txns
+typeahead
Typeless
+typeperf
+udid
+udids
+UEFI
UEBA
Uint
uksouth
@@ -1628,6 +1719,7 @@ unexamined
Unigrams
uniqueidentifier
uniquestring
+unitless
unixtime
UNKNOWON
unlocalized
@@ -1652,6 +1744,7 @@ unparsed
unprepare
unprepares
unpreparing
+Unprocessable
Unprovision
unprovisioned
Unprovisioning
@@ -1684,7 +1777,11 @@ userid
userpreference
usersetting
usermanaged
+usertime
USQL
+uturn
+UUCP
+UUIDs
VAIDK
varbinary
varchar
@@ -1701,6 +1798,7 @@ Vfyc
vhds
VHDX
videosearch
+viewp
virtualclusters
virtualip
virtualmachine
@@ -1750,6 +1848,8 @@ waitingforstarttask
WANAs
WANs
WASB
+waypoint
+waypoints
WDATP
WEBAPICONTAINER
webapplicationfirewall
@@ -1780,6 +1880,7 @@ Whitelistings
whitespaces
Whois
Widevine
+windingness
windowsazuremediaservices
windowsesu
wlmengg
@@ -1797,7 +1898,9 @@ XBing
Xeon
Xero
XSMB
+Xstr
XVCJ
+Yazaki
Yucatec
Ywhk
YYMMDD
@@ -1806,6 +1909,7 @@ Zerto
Zilla
ziplist
Zoho
+zoneinfo
zset
MSAZRUSGO
hypervcollectors
@@ -1844,4 +1948,24 @@ azureADMetrics
sparkr
ambari
dotnetspark
-FDID
\ No newline at end of file
+FDID
+Automanage
+Antimalware
+dscp
+Dscp
+qos
+FDID
+watchlists
+Watchlists
+watchlist
+Watchlist
+Stix
+STIX
+ACSSMS
+Mibps
+ntfs
+networkrulesets
+Setget
+Ruleproperties
+shamir_share
+dllpath
diff --git a/documentation/Semantic-and-Model-Violations-Reference.md b/documentation/Semantic-and-Model-Violations-Reference.md
index de459aa90c63..0742ec712138 100644
--- a/documentation/Semantic-and-Model-Violations-Reference.md
+++ b/documentation/Semantic-and-Model-Violations-Reference.md
@@ -59,10 +59,12 @@ This document lists the set of automated rules that can be validated against swa
| [REMOTE_NOT_VALID](#REMOTE_NOT_VALID) | |
| [INVALID_REQUEST_PARAMETER](#INVALID_REQUEST_PARAMETER) | |
| [INVALID_RESPONSE_CODE](#INVALID_RESPONSE_CODE) | |
+| [INVALID_RESPONSE_BODY](#INVALID_RESPONSE_BODY) | |
| [MISSING_REQUIRED_PARAMETER](#MISSING_REQUIRED_PARAMETER) | |
| [KEYWORD_TYPE_EXPECTED](#KEYWORD_TYPE_EXPECTED) | |
| [READONLY_PROPERTY_NOT_ALLOWED_IN_REQUEST](#READONLY_PROPERTY_NOT_ALLOWED_IN_REQUEST) | |
| [SCHEMA_VALIDATION_FAILED](#SCHEMA_VALIDATION_FAILED) | |
+| [DISCRIMINATOR_VALUE_NOT_FOUND](#DISCRIMINATOR_VALUE_NOT_FOUND) | |
| [DISCRIMINATOR_NOT_REQUIRED](#DISCRIMINATOR_NOT_REQUIRED) | [OAV131](#DISCRIMINATOR_NOT_REQUIRED) |
| [RESPONSE_BODY_NOT_IN_EXAMPLE](#RESPONSE_BODY_NOT_IN_EXAMPLE) | [OAV130](#RESPONSE_BODY_NOT_IN_EXAMPLE) |
| [DOUBLE_FORWARD_SLASHES_IN_URL](#DOUBLE_FORWARD_SLASHES_IN_URL) | [OAV129](#DOUBLE_FORWARD_SLASHES_IN_URL) |
@@ -546,6 +548,15 @@ This document lists the set of automated rules that can be validated against swa
**How to fix the violation**: Remove extra response code definition in example or correct it.
+### INVALID_RESPONSE_BODY
+
+**Output Message**:Body is required in response but not provided
+
+**Description**: Body schema is defined in swagger but body is not found in example or traffic.
+
+**How to fix the violation**: Add response body.
+
+
### KEYWORD_TYPE_EXPECTED
**Output Message**: Keyword 'type' is expected to be of type 'array,boolean,integer,number,null,object,string'.
@@ -611,6 +622,14 @@ This document lists the set of automated rules that can be validated against swa
**How to fix the violation**: Provide the requried property in example or remove this property from the required list of the definition in swagger spec. Or add items property if the type is array.
+### DISCRIMINATOR_VALUE_NOT_FOUND
+
+**Output Message**: Discriminator value "{0}" not found
+
+**Description**: The property used as discriminator has a value {0} but it's not found in swagger spec.
+
+**How to fix the violation**: Add the model that has the discriminator value or fix the discriminator value. The discriminator value could be specified by model name in definitions or by "x-ms-discriminator-value".
+
### DISCRIMINATOR_NOT_REQUIRED
diff --git a/documentation/code-gen/configure-python-sdk.md b/documentation/code-gen/configure-python-sdk.md
index 503f5acb1ec0..ad14782c78e2 100644
--- a/documentation/code-gen/configure-python-sdk.md
+++ b/documentation/code-gen/configure-python-sdk.md
@@ -86,7 +86,8 @@ This is not used by Autorest itself.
``` yaml $(swagger-to-sdk)
swagger-to-sdk:
- - repo: azure-sdk-for-python
+ - repo: azure-sdk-for-python // for track1 SDK
+ - repo: azure-sdk-for-python-track2 // for track2 SDK
- ...
@@ -226,12 +227,13 @@ After configure all the readme files, autorest can be used to generate SDK.
Track1 SDK is based on AutoRest version V2 that's going to be replaced by version V3.
~~~
-autorest --keep-version-file --multiapi --no-async --python --python-mode=update --python-sdks-folder=C:\ZZ\projects\codegen\azure-sdk-for-python\sdk --use=@microsoft.azure/autorest.python@~4.0.71 --version=V2 ..\azure-rest-api-specs\specification\appconfiguration\resource-manager\readme.md
+> autorest --keep-version-file --multiapi --no-async --python --python-mode=update --python-sdks-folder=C:\ZZ\projects\codegen\azure-sdk-for-python\sdk --use=@microsoft.azure/autorest.python@~4.0.71 --version=V2 ..\azure-rest-api-specs\specification\appconfiguration\resource-manager\readme.md
~~~
### Track2 (for latest Autorest)
Track 2 is based on the latest AutoRest code generator
~~~
-autorest --python --track2 --use=@autorest/python@5.1.0-preview.4 --python-sdks-folder=..\azure-sdk-for-python\sdk --multiapi --python-mode=update ..\azure-rest-api-specs\specification\appconfiguration\resource-manager\readme.md
+> autorest --reset
+> autorest --python --track2 --use=@autorest/python@5.3.0 --python-sdks-folder=..\azure-sdk-for-python\sdk --multiapi --python-mode=update ..\azure-rest-api-specs\specification\appconfiguration\resource-manager\readme.md
~~~
\ No newline at end of file
diff --git a/documentation/openapi-authoring-automated-guidelines.md b/documentation/openapi-authoring-automated-guidelines.md
index 1202a11e02d0..32866c30d025 100644
--- a/documentation/openapi-authoring-automated-guidelines.md
+++ b/documentation/openapi-authoring-automated-guidelines.md
@@ -56,6 +56,11 @@ We request OpenAPI(Swagger) spec authoring be assigned to engineers who have an
| [R4007](#r4007) | [DefaultErrorResponseSchema](#r4007) | ARM OpenAPI(swagger) specs |
| [R4010](#r4010) | [RequiredDefaultResponse](#r4010) | ARM OpenAPI(swagger) specs |
| [R4011](#r4011) | [DeleteOperationResponses](#r4011) | ARM OpenAPI(swagger) specs |
+| [R4015](#r4015) | [NestedResourcesMustHaveListOperation](#r4015) | ARM OpenAPI(swagger) specs |
+| [R4016](#r4016) | [TopLevelResourcesListByResourceGroup](#r4016) | ARM OpenAPI(swagger) specs |
+| [R4017](#r4017) | [TopLevelResourcesListBySubscription](#r4017) | ARM OpenAPI(swagger) specs |
+| [R4018](#r4018) | [OperationsApiResponseSchema](#r4018) | ARM OpenAPI(swagger) specs |
+| [R4019](#r4019) | [GetCollectionResponseSchema](#r4019) | ARM OpenAPI(swagger) specs |
#### ARM Warnings
@@ -67,7 +72,7 @@ We request OpenAPI(Swagger) spec authoring be assigned to engineers who have an
| [R3010](#r3010) | [TrackedResourceListByImmediateParent](#r3010) | ARM OpenAPI(swagger) specs |
| [R2004](#r2004) | [NonApplicationJsonType](#r2004) | ARM OpenAPI(swagger) specs |
| [R4009](#r4009) | [RequiredSystemDataInNewApiVersions](#r4009) | ARM OpenAPI(swagger) specs |
-
+| [R4014](#r4014) | [AllResourcesMustHaveGetOperation](#r4014) | ARM OpenAPI(swagger) specs |
### SDK Violations
#### SDK Errors
@@ -110,9 +115,9 @@ We request OpenAPI(Swagger) spec authoring be assigned to engineers who have an
| Id | Rule Name | Applies to |
| --- | --- | --- |
| [R4000](#r4000) | [ParameterDescriptionRequired](#r4000) | ARM and Data plane OpenAPI(swagger) specs |
-| [R4000](#r4000-3) | [DescriptiveDescriptionRequired](#r4000-3) | ARM and Data plane OpenAPI(swagger) specs |
-| [R4000](#r4000-4) | [DescriptionAndTitleMissing](#r4000-4) | ARM and Data plane OpenAPI(swagger) specs |
-| [R4000](#r4000-5) | [OperationDescriptionOrSummaryRequired](#r4000-5) | ARM and Data plane OpenAPI(swagger) specs |
+| [R4020](#r4000-3) | [DescriptiveDescriptionRequired](#r4000-3) | ARM and Data plane OpenAPI(swagger) specs |
+| [R4021](#r4000-4) | [DescriptionAndTitleMissing](#r4000-4) | ARM and Data plane OpenAPI(swagger) specs |
+| [R4022](#r4000-5) | [OperationDescriptionOrSummaryRequired](#r4000-5) | ARM and Data plane OpenAPI(swagger) specs |
| [R2001](#r2001) | [AvoidNestedProperties](#r2001) | ARM and Data plane OpenAPI(swagger) specs |
| [R4002](#r4002) | [LocationMustHaveXmsMutability](#r4002) | ARM OpenAPI(swagger) specs |
| [R2066](#r2066) | [PostOperationIdContainsUrlVerb](#r2066) | ARM and Data plane OpenAPI(swagger) specs |
@@ -135,7 +140,17 @@ We request OpenAPI(Swagger) spec authoring be assigned to engineers who have an
| [R2007](#r2007) | [LongRunningOperationsWithLongRunningExtension](#r2007) | ARM OpenAPI(swagger) specs |
| [R2029](#r2029) | [PageableOperation](#r2029) | ARM and Data plane OpenAPI(swagger) specs |
| [R4006](#r4006) | [DeprecatedXmsCodeGenerationSetting](#r4006) | ARM and Data plane OpenAPI(swagger) specs |
-
+| [R4024](#r4024) | [PreviewVersionOverOneYear](#r4024) | ARM OpenAPI(swagger) specs |
+
+
+### RPaaS Violations
+
+#### RPaaS Errors
+
+| Id | Rule Name | Applies to |
+| --- | --- | --- |
+| [R4023](#r4023) | [RPaasPutLongRunningOperation201Only](#r4023) | ARM OpenAPI(swagger) specs |
+
### Documentation
#### Documentation Errors
@@ -1418,7 +1433,7 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
**Applies to** : ARM OpenAPI(swagger) specs
-**Output Message**: Top level properties should be one of name, type, id, location, properties, tags, plan, sku, etag, managedBy, identity, systemdata. Model definition '{0}' has extra properties ['{1}'].
+**Output Message**: Top level properties should be one of name, type, id, location, properties, tags, plan, sku, etag, managedBy, identity, systemData, extendedlocation. Model definition '{0}' has extra properties ['{1}'].
**Description**: Per [ARM guidelines](https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/resource-api-reference.md), top level properties of a resource should be only ones from the allowed set.
@@ -1676,7 +1691,7 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
**Output Message**: Properties of a PATCH request body must not be {0}. PATCH operation: '{1}' Model Definition: '{2}' Property: '{3}'
**Description**: A request parameter of the Patch Operation must not have a required/default value.
-But it's allowed when all required properties are marked as discriminator, because the discriminator must be required.
+But it's allowed when the only required properties is marked as discriminator, because the discriminator must be required.
**CreatedAt** : N/A
@@ -1684,7 +1699,7 @@ But it's allowed when all required properties are marked as discriminator, becau
**Why the rule is important**: A PATCH operation is used to update properties of a resource. So, If the resource has 'X' number of properties and if you wish to change one of them, then a PATCH request could be sent with a value for that specified property. In other words, all the properties in the PATCH request are updated. Now, if any of the values are marked as required/default, it would force the system to update it always which is not the intention of the PATCH operation.
-**How to fix the violation**: Ensure that the request parameter of the Patch Operation does not have a required/default value.
+**How to fix the violation**: Ensure that the request parameter of the Patch Operation does not have a required/default value.A recommended way is to define a new model that only contains the patchable properties to replace the original parameter in request body.
**Good Examples**: The following is a good example:
```json
@@ -1716,10 +1731,7 @@ But it's allowed when all required properties are marked as discriminator, becau
"type": "string"
}
},
- "discriminator": "prop0",
- "required": [
- "prop0"
- ]
+ "required": []
}
}
......
@@ -1743,7 +1755,7 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
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)
-### R4000 DescriptiveDescriptionRequired
+### R4020 DescriptiveDescriptionRequired
**Category** : SDK Warning
**Applies to** : ARM and Data plane OpenAPI(swagger) specs
@@ -1758,7 +1770,7 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
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)
-### R4000 DescriptionAndTitleMissing
+### R4021 DescriptionAndTitleMissing
**Category** : SDK Warning
**Applies to** : ARM and Data plane OpenAPI(swagger) specs
@@ -1773,7 +1785,7 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
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)
-### R4000 OperationDescriptionOrSummaryRequired
+### R4022 OperationDescriptionOrSummaryRequired
**Category** : SDK Warning
**Applies to** : ARM and Data plane OpenAPI(swagger) specs
@@ -1913,7 +1925,7 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
**Output Message** : Missing operationId. path:'${operation path}' operation:'${operation}'.
-**Description** : Each operation must haave a unique operationId.
+**Description** : Each operation must have a unique operationId.
**CreatedAt** : February 18, 2020
@@ -1947,7 +1959,7 @@ For more detail, pls refer to https://github.com/microsoft/api-guidelines/blob/v
Rename resource provider as pascal case in path.
-Eg: In this case, you need to replace `Microsoft.computer` with `Microsoft.Computer` to follw pascal case.
+Eg: In this case, you need to replace `Microsoft.computer` with `Microsoft.Computer` to follow pascal case.
Invalid:
@@ -1983,7 +1995,7 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
### R3021 PathResourceTypeNameCamelCase
-**Category** : ARM Warning
+**Category** : ARM Error
**Applies to** : ARM and Data Plane OpenAPI(swagger) specs
@@ -2001,7 +2013,7 @@ For more detail, pls refer to https://github.com/microsoft/api-guidelines/blob/v
Rename resource type or other identifiers as camel case in path.
-Eg: In this case, you need to replace `ResourceGroups` with `resourceGroups` to follw camel case.
+Eg: In this case, you need to replace `ResourceGroups` with `resourceGroups` to follow camel case.
Invalid:
@@ -2041,9 +2053,9 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
**Applies to** : ARM and Data Plane OpenAPI(swagger) specs
-**Output Message** : Enum must not contain duplicated value (case insentive).
+**Output Message** : Enum must not contain duplicated value (case insensitive).
-**Description** : Enum must not contain duplicated value (case insentive).
+**Description** : Enum must not contain duplicated value (case insensitive).
**CreatedAt**: February 18, 2020
@@ -2143,7 +2155,7 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
**Output Message** : Enum value must not contain empty value.
-**Description** : Emum must not be empty, or contain special character, like space, tab, etc. It will lead to code generation failure in downstream pipeline.
+**Description** : Enum must not be empty, or contain special character, like space, tab, etc. It will lead to code generation failure in downstream pipeline.
**CreatedAt**: February 18, 2020
@@ -2341,7 +2353,7 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
The following would be invalid:
```json
- "responese":{
+ "response":{
"default": {
"schema":{
"error":"error msg",
@@ -2356,7 +2368,7 @@ The following would be invalid:
the correct schema:
```json
- "responese":{
+ "response":{
"default": {
"error":
{
@@ -2379,7 +2391,7 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
**Output Message** : Response schema must not be empty.
-**Description** : Response schema must not be empty, or it will block code genaration.
+**Description** : Response schema must not be empty, or it will block code generation.
**CreatedAt**: April 2, 2020
@@ -2391,7 +2403,7 @@ The following would be invalid:
```json
...
- "responese":{
+ "response":{
"default": {
"schema":{
}
@@ -2415,7 +2427,7 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
**LastModifiedAt**: May 21, 2020
-**How to fix the violation**: For each response in the GET/PUT/PATCH opearation add the systemData object:
+**How to fix the violation**: For each response in the GET/PUT/PATCH operation add the systemData object:
``` json
"systemData": {
"$ref": "#/definitions/SystemData"
@@ -2446,7 +2458,7 @@ The following would be valid:
"responses":{
"default": {
"schema":{
- "$ref":#/definiton/Error
+ "$ref":#/definition/Error
}
}
}
@@ -2482,20 +2494,20 @@ The following would be valid:
.....
.....
]
- "responese":{
+ "response":{
"default": {
"schema":{
- "$ref":#/definiton/Error
+ "$ref":#/definition/Error
}
},
"200": {
"schema":{
- "$ref":#/definiton/response
+ "$ref":#/definition/response
}
},
"204": {
"schema":{
- "$ref":#/definiton/resonse
+ "$ref":#/definition/response
}
}
}
@@ -2513,7 +2525,7 @@ Links: [Index](#index) | [Error vs. Warning](#error-vs-warning) | [Automated Rul
**Output Message** : The operation: '{operation name}' is defined with x-ms-pageable enabled,but can not find the corresponding nextLink property in the response, please add it.
-**Description** : Per [extensions](https://github.com/Azure/autorest/blob/master/docs/extensions/readme.md#x-ms-pageable) ,when specifying a x-ms-pagable/nextLinkName, the corresponding nextlink property must be defined in the response schema.
+**Description** : Per [extensions](https://github.com/Azure/autorest/blob/master/docs/extensions/readme.md#x-ms-pageable) ,when specifying a x-ms-pageable/nextLinkName, the corresponding nextlink property must be defined in the response schema.
**CreatedAt**: May 21, 2020
@@ -2531,7 +2543,7 @@ The following would be valid:
"nextLinkName": "nextLink"
},
....
- "responese":{
+ "response":{
"200": {
"schema":{
"description": "The list of metric items.",
@@ -2581,4 +2593,380 @@ The following would be valid:
}
...
```
-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)
+
+### R4014 AllResourcesMustHaveGetOperation
+
+**Category** : ARM Warning
+
+**Applies to** : ARM OpenAPI(swagger) specs
+
+**Output Message** : The resource "{0}" does not have get operation, please add it.
+
+**Description** : Per [ARM guidelines](https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/resource-api-reference.md) ,all the resources ,including top-level and nested resources, must have a get operation.
+
+**CreatedAt**: July 13, 2020
+
+**LastModifiedAt**: July 13, 2020
+
+**How to fix the violation**:
+Since all the models that having 'x-ms-azure-resource' enabled are considered as ARM resource,
+If the output resource is not exactly a ARM resource,you should remove the extension from the model.
+Otherwise,for each resource which doesn't have a get operation,add the corresponding get operation.
+
+For example:
+
+```json
+"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MyNameSpace/MyResourceType/{Name}/SubResource/{subName}": {
+ "get": {
+ ...
+ "operationId": "SubResource_Get",
+ "parameters": [
+
+ ],
+ "responses": {
+ "200": {
+ "schema": {
+ "$ref": "#/definitions/SubResource"
+ }
+ },
+```
+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)
+
+### R4015 NestedResourcesMustHaveListOperation
+
+**Category** : ARM Error
+
+**Applies to** : ARM OpenAPI(swagger) specs
+
+**Output Message** : The nested resource "{0}" does not have list operation, please add it.
+
+**Description** : Per [ARM guidelines](https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/resource-api-reference.md), all the nested must have a list operation which returns the collection of the resource.
+
+**CreatedAt**: July 13, 2020
+
+**LastModifiedAt**: July 13, 2020
+
+**How to fix the violation**: For each nested resource, add the corresponding list operation.
+
+For example:
+
+```json
+...
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MyNameSpace/MyTopLevelResourceType/{name}/MySubResource": {
+ "get": {
+ ...
+ ...
+ "description": "Handles requests to list all resources in a service.",
+ "operationId": "MySubResource_List",
+ ...
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of Services in the service.",
+ "schema": {
+ "$ref": "#/definitions/MySubResourceList"
+ }
+ }
+ },
+...
+```
+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)
+
+### R4016 TopLevelResourcesListByResourceGroup
+
+**Category** : ARM Error
+
+**Applies to** : ARM OpenAPI(swagger) specs
+
+**Output Message** : The top-level resource "{0}" does not have list by resource group operation, please add it.
+
+**Description** : Per [ARM guidelines](https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/resource-api-reference.md), all the top-level resources must have a list by resource group operation which returns the collection of the resource.
+
+**CreatedAt**: July 13, 2020
+
+**LastModifiedAt**: July 13, 2020
+
+**How to fix the violation**: For each top-level resource, add the corresponding list by resource group operation.
+
+For example:
+
+```json
+...
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MyNameSpace/MyTopLevelResourceType": {
+ "get": {
+ ...
+ ...
+ "description": "Handles requests to list all resources in a resource group.",
+ "operationId": "Services_ListByRG",
+ ...
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of Services in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/MyTopLevelResourceList"
+ }
+ }
+ },
+...
+```
+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)
+
+### R4017 TopLevelResourcesListBySubscription
+
+**Category** : ARM Error
+
+**Applies to** : ARM OpenAPI(swagger) specs
+
+**Output Message** : The top-level resource "{0}" does not have list by subscription operation, please add it.
+
+**Description** : Per [ARM guidelines](https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/resource-api-reference.md), all the top-level resources must have a list by subscription operation which returns the collection of the resource.
+
+**CreatedAt**: July 13, 2020
+
+**LastModifiedAt**: July 13, 2020
+
+**How to fix the violation**: For each top-level resource, add the corresponding list operation.
+
+For example:
+
+```json
+...
+ "/subscriptions/{subscriptionId}/providers/Microsoft.MyNameSpace/MyTopLevelResourceType": {
+ "get": {
+ ...
+ ...
+ "description": "Handles requests to list all resources in a subscription.",
+ "operationId": "Services_ListBySubscription",
+ ...
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of Services in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/MyTopLevelResourceList"
+ }
+ }
+ },
+...
+```
+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)
+
+### R4018 OperationsApiResponseSchema
+
+**Category** : ARM Error
+
+**Applies to** : ARM OpenAPI(swagger) specs
+
+**Output Message** : The response schema of operations API "{0}" does not match the ARM specification. Please standardize the schema.
+
+**Description** : The operations API should have a response body schema consistent with the [contract spec](https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/proxy-api-reference.md#exposing-available-operations). The required properties such as `isDataAction`,`display.description` or `display.resource`,must be included.
+
+**CreatedAt**: July 13, 2020
+
+**LastModifiedAt**: July 13, 2020
+
+**How to fix the violation**: For each operations API ,provide a schema which consistent with the above contract.
+
+The following response is a good example::
+
+```json
+...
+ "AvailableOperations": {
+ "description": "Available operations of the service",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of available operation details",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationDetail"
+ }
+ },
+ "nextLink": {
+ "description": "URL client should use to fetch the next page (per server side paging).\r\nIt's null for now, added for future use.",
+ "type": "string"
+ }
+ }
+ },
+ "OperationDetail": {
+ "description": "Operation detail payload",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the operation",
+ "type": "string"
+ },
+ "isDataAction": {
+ "description": "Indicates whether the operation is a data action",
+ "type": "boolean"
+ },
+ "display": {
+ "$ref": "#/definitions/OperationDisplay",
+ "description": "Display of the operation"
+ },
+ "origin": {
+ "description": "Origin of the operation",
+ "type": "string"
+ },
+ "properties": {
+ "$ref": "#/definitions/OperationProperties",
+ "description": "Properties of the operation"
+ }
+ }
+ },
+ "OperationDisplay": {
+ "description": "Operation display payload",
+ "type": "object",
+ "properties": {
+ "provider": {
+ "description": "Resource provider of the operation",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource of the operation",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Localized friendly name for the operation",
+ "type": "string"
+ },
+ "description": {
+ "description": "Localized friendly description for the operation",
+ "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)
+
+### R4019 GetCollectionResponseSchema
+
+**Category** : ARM Error
+
+**Applies to** : ARM OpenAPI(swagger) specs
+
+**Output Message** : The response model in the GET collection operation "{0}" does not match with the response model in the individual GET operation "{1}".
+
+**Description** : Per [ARM guidelines](https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/resource-api-reference.md#get-resource), for all resources (top-level and nested), collection GETs should have a response definition with a property "value" containing an array of the "resource" schema.The definition returned in the collection "value" array should be the same as the response body for the individual GET.
+
+**CreatedAt**: July 13, 2020
+
+**LastModifiedAt**: July 13, 2020
+
+**How to fix the violation**: Make sure the collection GETs return an array and its items schema the same as the response schema in corresponding individual GET.
+
+The following response is a good example:
+
+```json
+...
+
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MyNameSpace/MyResourceType/{Name}": {
+ "get": {
+ ...
+ ...
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the corresponding Service.",
+ "schema": {
+ "$ref": "#/definitions/MyResourceSchema"
+ }
+ }
+
+...
+...
+
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MyNameSpace/MyResourceType": {
+ "get": {
+ .....
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of Services in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/MyResourceList"
+ }
+ },
+...
+...
+"MyResourceList":{
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MyResourceSchema"
+ }
+ },
+...
+```
+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)
+
+### R4023 RPaasPutLongRunningOperation201Only
+
+**Category** : RPaaS Error
+
+**Applies to** : ARM OpenAPI(swagger) specs
+
+**Output Message** : [RPaaS] Only 201 is the supported response code for PUT async response
+
+**Description** : An async PUT operation response include status code 201 with Azure-async-operation header. Must also support status code 200, for simple updates that can be completed synchronously (ex: tags). Operation must also add "x-ms-long-running-operation and x-ms-long-running-operation-options" to describe how the long running operation is tracked.
+
+**CreatedAt**: August 10, 2020
+
+**LastModifiedAt**: August 10, 2020
+
+**Why this rule is important**: RPaaS only supports 201 for async operations. This is enforced at runtime via swagger validation.
+
+**How to fix the violation**: Add the following for async PUT operations.
+
+The following would be valid:
+
+```json
+...
+ "responses": {
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/MySimpleObject"
+ }
+ },
+ "200": {
+ "description": "Succeeded",
+ "schema": {
+ "$ref": "#/definitions/MySimpleObject"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "azure-async-operation"
+ }
+...
+```
+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)
+
+### R4024 PreviewVersionOverOneYear
+
+**Category** : SDK Warning
+
+**Applies to** : ARM OpenAPI(swagger) specs
+
+**Output Message** : The API version:{api-version} having been in a preview state over one year , please move to GA or retire.
+
+**Description** : Per [Retirement-of-Previews](https://dev.azure.com/msazure/AzureWiki/_wiki/wikis/AzureWiki.wiki/37683/Retirement-of-Previews), service, feature, API, and SKU in preview for over one year need to move to GA or retire.
+
+**CreatedAt**: Sep 8, 2020
+
+**LastModifiedAt**: Sep 8, 2020
+
+**How to fix the violation**:
+ Consider retiring or moving to GA.
+
+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/readme.azureresourceschema.md b/documentation/samplefiles/readme.azureresourceschema.md
new file mode 100644
index 000000000000..819cac202170
--- /dev/null
+++ b/documentation/samplefiles/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-yourservicename-YYYY-MM-DD
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-yourservicename-YYYY-MM-DD and azureresourceschema
+
+``` yaml $(tag) == 'schema-yourservicename-YYYY-MM-DD' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.YourServiceName/stable/YYYY-MM-DD/YourServiceName.json
+
+```
diff --git a/documentation/samplefiles/readme.go.md b/documentation/samplefiles/readme.go.md
index 932353580de4..ba38219f4d3e 100644
--- a/documentation/samplefiles/readme.go.md
+++ b/documentation/samplefiles/readme.go.md
@@ -23,9 +23,11 @@ These settings apply only when `--tag=package-2019-12-01 --go` is specified on t
Please also specify `--go-sdk-folder=`.
```yaml $(tag) == 'package-2019-12-01' && $(go)
+# NOTE: a stable tag must not contain any preview swagger files included
# NOTE: go namespace can only consist of lower case letters, numbers and underscores
namespace: yourservicename
# NOTE: for special cases, you can hard code the namespace in the output-folder
+# NOTE: the output-folder of a stable tag must not be under the preview subdirectory
output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2019-12-01/$(namespace)
```
@@ -35,8 +37,10 @@ These settings apply only when `--tag=package-2020-07-01-preview --go` is specif
Please also specify `--go-sdk-folder=`.
```yaml $(tag) == 'package-2020-07-01-preview' && $(go)
+# NOTE: a preview tag must not contain at least one preview swagger file included
# NOTE: go namespace can only consist of lower case letters, numbers and underscores
namespace: yourservicename
# NOTE: a preview api-version must be under the preview sub-directory
+# NOTE: the output-folder of a preview tag must be under the preview subdirectory
output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-07-01-preview/$(namespace)
```
diff --git a/documentation/samplefiles/samplereadme.md b/documentation/samplefiles/samplereadme.md
index f76fab965fc8..af02111a6c18 100644
--- a/documentation/samplefiles/samplereadme.md
+++ b/documentation/samplefiles/samplereadme.md
@@ -56,6 +56,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_YourServiceName']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js yourservicename/resource-manager
```
## Go
@@ -77,3 +80,7 @@ See configuration in [readme.typescript.md](https://github.com/Azure/azure-rest-
## CSharp
See configuration in [readme.csharp.md](https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/samplefiles/readme.chsarp.md)
+
+## AzureResourceSchema
+
+See configuration in [readme.azureresourceschema.md](https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/samplefiles/readme.azureresourceschema.md)
diff --git a/documentation/sdkautomation/sdk_customization.md b/documentation/sdkautomation/sdk_customization.md
new file mode 100644
index 000000000000..de083379fcf2
--- /dev/null
+++ b/documentation/sdkautomation/sdk_customization.md
@@ -0,0 +1,801 @@
+# SDK Automation Customization
+
+This is the specification of the new SDK Automation customization configuration.
+Old customization that hardcoded in sdk automation will still work but this new
+approach is preferred.
+
+## SDK Automation workflow
+
+### Opened PR Validation Trigger
+
+SDK Automation is launched with matrix in azure pipeline. For each language configured:
+
+1. Get the PR merge commit and clone the spec repo on the merge commit.
+
+2. Get the PR changed file list. For each changed file, find the nearest readme.md in parent folder. Get list of related readme.md.
+
+3. Filter the list of readme.md with: find the `swagger-to-sdk` section in the readme.md, and see if the specified language is configured for that readme.md. Example of `swagger-to-sdk` in SDK Automation:
+```
+```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-js
+```
+```
+If the configured language is not found here, generation for this readme.md will be skipped.
+
+4. Get `specificationRepositoryConfiguration.json` from spec repo default branch. See [SpecRepoConfig](#specrepoconfig). Get the repo and branch config in the file.
+
+5. Clone __mainRepository__ and checkout __mainBranch__. If __secondaryRepository__ is specified then checkout __secondaryRepository__ and __secondaryBranch__ instead.
+
+6. Get `swagger_to_sdk_config.json` from cloned SDK repository. The config file path could be customized by __configFilePath__ in spec config. For the definition of the config see [SwaggerToSdkConfig](#swaggertosdkconfig).
+
+7. Launch __initScript__ defined in [SwaggerToSdkConfig](#swaggertosdkconfig). All the script's working directory is root folder of cloned SDK repository.
+
+8. Calculate __PR diff__ and related `readme.md`. If __generationCallMode__ is __one-for-all-configs__ then run ___one pass for the rest steps___, else (__one-per-configs__) ___loop the rest steps___ with each `readme.md`.
+
+9. Launch __generateScript__ defined in [SwaggerToSdkConfig](#swaggertosdkconfig) with [generateInput.json](#generateinput). The script should produce [generateOutput.json](#generateoutput) if __parseGenerateOutput__ is true. If dryRun is set to true then first run of __generateScript__ will be used to collect package information , then loop each package info and checkout package related branch and launch __generateScript__ with package related readmeMd and dryRun set to false.
+
+10. Get generated package. If __packageFolderFromFileSearch__ is defined with file search then package folder is detected based on git diff in SDK repository and algorithm described in [SwaggerToSdkConfig Schema](#swaggertosdkconfig-schema). Else package folder is from [generateOutput.json](#generateoutput). For each package ___loop the rest steps___.
+
+11. Launch __buildScript__ to build the package. Collect the artifacts by config __artifactPathFromFileSearch__. This step could be skipped if it's not defined in [SwaggerToSdkConfig](#swaggertosdkconfig) and it's covered by __generateScript__ and the result could be found in [generateOutput.json](#generateoutput).
+
+12. Upload all the package related artifacts to Azure Storage Blob Container. All the artifact for one package is uploaded in one folder. These file could be downloaded on URL prefixed by __downloadUrlPrefix__ defined in [InstallInstructionScriptInput](#installinstructionscriptinput). It's redirected by openapiHub by design, and for SDK Automation on public repo the redirect don't need auth, but for SDK Automation in private repo it requires microsoft AAD auth. User could authenticate and download via web page oauth in browser or bearer token auth with `az rest --resource` in command line.
+
+13. Launch __changelogScript__ to get changelog and detect breaking change. This step could be skipped if changelog and breaking change could be found in [generateOutput.json](#generateoutput). If breaking change is found, the spec PR will be labelled with `CI-BreakingChange-`.
+
+14. Launch __installInstructionScript__ to get install instruction for that package. This step could be skipped if install instruction could be found in [generateOutput.json](#generateoutput). The lite install instruction will be shown in spec PR comment, the full install instruction will be shown in generated SDK PR.
+
+15. Commit the package related code in SDK repository. Force push to [GenerationBranch](#generationbranch) in __integrationRepository__. Create or update [GenerationPR](#generationpr) from [GenerationBranch](#generationbranch) to [MainBranch](#mainbranch) in __integrationRepository__. If __integrationRepository__ is a fork of __mainRepository__, its [MainBranch](#mainbranch) should be synced once a day.
+
+### Continuous Integration (PR Merged) Trigger
+
+Almost the same as opened PR trigger, with different on step 15:
+
+15. Commit the package related code in SDK repository. Close [GenerationPR](#generationpr) and delete [GenerationBranch](#generationbranch). Force push to [IntegrationBranch](#integrationbranch) in __integrationRepository__. Create or update [IntegrationPR](#integrationpr) from [IntegrationBranch](#integrationbranch) to [MainBranch](#mainbranch) in __mainRepository__. Close the [integrationPR](#integrationPR) if __closeIntegrationPR__ in [SwaggerToSdkConfig](#swaggertosdkconfig) is set to true.
+
+
+## Definitions
+
+### SpecRepoConfig
+This is type of file `./specificationRepositoryConfiguration.json` in swagger spec repo.
+
+#### SpecRepoConfig Example
+```json
+{
+ "sdkRepositoryMappings": {
+ "azure-sdk-for-js": {
+ "integrationRepository": "AzureSDKAutomation/azure-sdk-for-js",
+ "mainRepository": "Azure/azure-sdk-for-js"
+ },
+ "azure-sdk-for-python": {
+ "integrationRepository": "AzureSDKAutomation/azure-sdk-for-python",
+ "mainRepository": "Azure/azure-sdk-for-python",
+ "mainBranch": "release/v3"
+ },
+ "azure-sdk-for-python-track2": {
+ "integrationRepository": "AzureSDKAutomation/azure-sdk-for-python",
+ "mainRepository": "Azure/azure-sdk-for-python"
+ },
+ "azure-sdk-for-trenton": {
+ "integrationRepository": "Azure/azure-sdk-for-trenton",
+ "mainRepository": "Azure/azure-sdk-for-trenton",
+ "secondaryRepository": "Azure/azure-sdk-for-trenton",
+ "secondaryBranch": "secondary"
+ }
+ },
+ "overrides": {
+ "Azure/azure-rest-api-specs-pr": {
+ "sdkRepositoryMappings": {
+ "azure-sdk-for-js": {
+ "integrationRepository": "azure-sdk/azure-sdk-for-js-pr",
+ "mainRepository": "Azure/azure-sdk-for-js-pr"
+ },
+ "azure-sdk-for-python": {
+ "integrationRepository": "azure-sdk/azure-sdk-for-python-pr",
+ "mainRepository": "Azure/azure-sdk-for-python-pr",
+ "mainBranch": "release/v3"
+ },
+ "azure-sdk-for-python-track2": {
+ "integrationRepository": "azure-sdk/azure-sdk-for-python-pr",
+ "mainRepository": "Azure/azure-sdk-for-python-pr"
+ }
+ }
+ }
+ }
+}
+```
+
+#### SpecRepoConfig Schema
+``` jsonc
+{
+ "type": "object",
+ "properties": {
+ "sdkRepositoryMappings": {
+ // A mapping of SDK repository names to the names of the SDK repositories
+ // that all interaction should go to instead.
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/SdkRepositoryConfig"
+ },
+ "propertyNames": {
+ // The property name is the sdk name identifier.
+ "type": "string"
+ }
+ },
+ "overrides": {
+ // Override config for specific repository.
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/"
+ },
+ "propertyNames": {
+ // The property name is the sdk repo ref.
+ "$ref": "#/definitions/RepositoryName"
+ }
+ },
+ "required": [
+ "sdkRepositoryMappings"
+ ]
+ },
+ "definitions": {
+ "RepositoryName": {
+ // Reference to a repository on github. Could be or /.
+ // By default the is the same as the owner of the spec repo.
+ "type": "string"
+ },
+ "SdkRepositoryConfig": {
+ "type": "object",
+ "properties": {
+ "mainRepository": {
+ // The repository that the final release PR will targeting.
+ "$ref": "#/definitions/RepositoryName"
+ },
+ "mainBranch": {
+ // Base branch of codegen branches
+ "default": "master",
+ "type": "string"
+ },
+ "integrationRepository": {
+ // The repository that hold generation branch, generation PR and integration branch.
+ // By default it's the same as mainRepository
+ "$ref": "#/definitions/RepositoryName"
+ },
+ "secondaryRepository": {
+ // Codegen runs on this repository.
+ // By default it's the same as 'mainRepository' but it could be different.
+ "$ref": "#/definitions/RepositoryName"
+ },
+ "secondaryBranch": {
+ // Codegen runs on this branch on secondaryRepository.
+ // By default it's the same as 'mainBranch' but it could be different.
+ "type": "string"
+ },
+ "integrationBranchPrefix": {
+ // The prefix that will be applied to the beginning of integration branches
+ "type": "string",
+ "default": "sdkAutomation"
+ },
+ "configFilePath": {
+ // Path to swagger-to-sdk config in sdk repo
+ "default": "swagger_to_sdk_config.json"
+ }
+ },
+ "required": [
+ "mainRepository"
+ ]
+ }
+ }
+}
+```
+
+### SwaggerToSdkConfig
+This is type of file `./swagger_to_sdk_config.json` in sdk repo.
+The running environment of these scripts would be expected to be __Ubuntu 18.04__ on Azure Pipeline. This may change in the future. All the running script should be executable.
+The working folder of all the scripts is the __root folder of sdk repo__.
+
+#### SwaggerToSdkConfig Example
+``` jsonc
+{
+ "advancedOptions": {
+ "createSdkPullRequests": true,
+ "generationCallMode": "one-for-all-configs"
+ },
+ "initOptions": {
+ "initScript": {
+ "path": "./eng/tools/sdk_init"
+ }
+ },
+ "generateOptions": {
+ // Param:
+ // generateInput.json: See #GenerateInput .
+ // generateOutput.json: See #GenerateOutput .
+ "generateScript": {
+ "path": "./eng/tools/sdk_generate",
+ "stderr": {
+ "showInComment": true
+ },
+ "stdout": {
+ // Show logs start with "[Autorest]" in PR comment.
+ "showInComment": "^\\[Autorest\\]"
+ }
+ },
+
+ "parseGenerateOutput": true
+ },
+ "packageOptions": {
+ // Param:
+ "buildScript": {
+ "path": "./eng/tools/sdk_package",
+ "stderr": {
+ // Everything in stderr will show in comment and mark package with warning.
+ "showInComment": true,
+ "scriptWarning": true
+ },
+ "exitCode": {
+ // If exit code is not zero, mark package with warning instead of error.
+ "result": "warning"
+ }
+ },
+
+ // Param:
+ "changelogScript": {
+ "path": "./eng/tools/sdk_breaking_change",
+ "breakingChangeDetect": "Breaking Change"
+ }
+ },
+ "artifactOptions": {
+ // Param:
+ // installInstructionInput.json: See #InstallInstructionScriptInput .
+ // installInstructionOutput.json: See #InstallInstructionScriptOutput .
+ "installInstructionScript": {
+ "path": "./eng/tools/sdk_install_instruction"
+ }
+ }
+}
+```
+
+#### SwaggerToSdkConfig Schema
+``` jsonc
+{
+ "type": "object",
+ "properties": {
+ "advancedOptions": {
+ // To keep backward compatibility, but will not list schema for old config options.
+ "properties": {
+ "createSdkPullRequests": {
+ // Should SDK Automation create PR or not.
+ "type": "boolean",
+ "default": true
+ },
+ "closeIntegrationPR": {
+ // Should SDK Automation close integrationPR to reduce noise.
+ "type": "boolean",
+ "default": true
+ },
+ "generationCallMode": {
+ // If we have multiple related readme.md, should we call generation once with
+ // all the readme.md or should we call generation multiple times and one per readme.md.
+ "type": "string",
+ "enum": [
+ "one-per-config",
+ "one-for-all-configs"
+ ],
+ "default": "one-for-all-configs"
+ }
+ }
+ },
+ "initOptions": {
+ // Init the environment. Install dependencies.
+ "type": "object",
+ "properties": {
+ "initScript": {
+ // Script to init.
+ "$ref": "#/definitions/RunOptions"
+ }
+ },
+ "required": [
+ "initScript"
+ ]
+ },
+ "generateOptions": {
+ // Generate the SDK code.
+ "type": "object",
+ "properties": {
+ "generateScript": {
+ // Script to generate the SDK code.
+ // Param:
+ // generateInput.json: See #GenerateInput
+ // generateOutput.json: See #GenerateOutput
+ "$ref": "#/definitions/RunOptions"
+ },
+ "preprocessDryRunGetPackageName": {
+ // If this options is set to true, generateScript will first run with
+ // "dryRun": true to get package name and related readme.md,
+ // then for each package, checkout the expected branch and launch generateScript.
+ "type": "boolean",
+ "default": false
+ },
+ "parseGenerateOutput": {
+ // Will this script output to generateOutput.json.
+ // If not, default behavior will be applied that outcome will be
+ // detected automatically based on filename regex search.
+ "type": "boolean",
+ "default": true
+ }
+ },
+ "required": [
+ "generateScript"
+ ]
+ },
+ "packageOptions": {
+ // Get package folder and build / get changelog
+ "type": "object",
+ "properties": {
+ "packageFolderFromFileSearch": {
+ "oneOf": [
+ {
+ // If this option is set to object, then package folder will be detected automatically.
+ // based on filename regex search.
+ // This options must be set to object if parseGenerateOutput is false.
+ "type": "object",
+ "properties": {
+ "searchRegex": {
+ // Search algorithm:
+ // For each changed file detected after generation
+ // PotentialPackageFolder = folder of changed file
+ // While PotentialPackageFolder is not root folder of sdk repo:
+ // If PotentialPackageFolder contains a file that matches the searchRegex:
+ // PackageFolder found, break
+ // Else:
+ // PotentialPackageFolder = parent folder of PotentialPackageFolder
+ "type": "string",
+ "format": "regex"
+ },
+ "pageNamePrefix": {
+ // Prefix to be appended to packageName. By default packageName will be the folder name of packageFolder
+ "type": "string"
+ }
+ },
+ "required": [
+ "searchRegex"
+ ]
+ },
+ {
+ // If this option is set to false, then package folder will be from generateOutput.json.
+ "const": false
+ }
+ ],
+ "default": false,
+ },
+ "buildScript": {
+ // Build the generated sdk.
+ // Param:
+ // Package folder could be a list separated by space if it's from generateOutput.json.
+ "$ref": "#/definitions/RunOptions"
+ },
+ "changelogScript": {
+ // Changelog generation and breaking-change detection.
+ // Param:
+ // Package folder could be a list separated by space if it's from generateOutput.json.
+ // Expected output from stdout/stderr: Changelog in markdown
+ "allOf": {
+ "$ref": "#/definitions/RunOptions"
+ },
+ "properties": {
+ "breakingChangeDetect": {
+ // If stdout or stderr matches this in output of changelog tool
+ // then we assume this SDK has breaking change.
+ "$ref": "#/definitions/RunLogFilterOptions"
+ }
+ }
+ }
+ }
+ },
+ "artifactOptions": {
+ "artifactPathFromFileSearch": {
+ "oneOf": [
+ {
+ // If this option is set to object, then artifacts will be detected automatically
+ // based on filename regex search.
+ // This options must be set to object if parseGenerateOutput is false.
+ "type": "object",
+ "properties": {
+ "searchRegex": {
+ // Any file under package folder matching the searchRegex is package artifact.
+ "type": "string",
+ "format": "regex",
+ }
+ }
+ },
+ {
+ // If this option is set to false, then package folder will be from generateOutput.json
+ "const": false
+ }
+ ],
+ "default": false
+ },
+ "installInstructionScript": {
+ // Generate install instruction that could be shown in spec PR comment (lite version)
+ // or in generated SDK PR (full version).
+ // If generateOutput.json contains installInstruction then this could be skipped.
+ // Param:
+ // installInstructionInput.json: See #InstallInstructionScriptInput .
+ // installInstructionOutput.json: See #InstallInstructionScriptInput .
+ "allOf": {
+ "$ref": "#/definitions/RunOptions"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "RunOptions": {
+ // Options to run a script and collect log.
+ "type": "object",
+ "properties": {
+ "path": {
+ // Script path related to repo root
+ "type": "string"
+ },
+ "logPrefix": {
+ // Prefix to be added to SDK Automation log. By default it would be filename of the script.
+ "type": "string"
+ },
+ "stdout": {
+ // How should SDK Automation handle the script stdout stream
+ "$ref": "#/definitions/RunLogOptions"
+ },
+ "stderr": {
+ // How should SDK Automation handle the script stderr stream
+ "$ref": "#/definitions/RunLogOptions"
+ },
+ "exitCode": {
+ // How should SDK Automation handle non-zero exitCode.
+ "showInComment": {
+ // Should we show this error in comment.
+ "type": "boolean",
+ "default": true
+ },
+ "result": {
+ // If script has non-error exitCode how should we mark the script's result.
+ "type": "string",
+ "enum": [
+ "error", "warning", "ignore"
+ ],
+ "default": "error"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ }
+ },
+ "RunLogOptions": {
+ // How should SDK Automation handle the log stream.
+ "showInComment": {
+ // Should we show this stream in comment.
+ "$ref": "#/definitions/RunLogFilterOptions"
+ },
+ "scriptError": {
+ // If any line match, assume the script fails.
+ "$ref": "#/definitions/RunLogFilterOptions"
+ },
+ "scriptWarning": {
+ // If any line match, assume the script warns.
+ "$ref": "#/definitions/RunLogFilterOptions"
+ }
+ },
+ "RunLogFilterOptions": {
+ "oneOf": [
+ {
+ // If line of log match this regex then hit
+ "type": "string",
+ "format": "regex"
+ },
+ {
+ // If set to true, any line of log will hit
+ "type": "boolean"
+ }
+ ],
+ "default": false
+ }
+ }
+}
+```
+
+### GenerateInput
+
+Input file for generate script.
+
+#### GenerateInput Example
+
+```jsonc
+{
+ "dryRun": false,
+ "specFolder": "/z/work/azure-rest-api-specs",
+ "headSha": "fce3400431eff281bddd04bed9727e63765b8da0",
+ "headRef": "refs/pull/1234/merge",
+ "repoHttpsUrl": "https://github.com/Azure/azure-rest-api-specs.git",
+ "trigger": "pull_request",
+ "changedFiles": [
+ "specification/cdn/something/cdn.json"
+ ],
+ "relatedReadmeMdFiles": [
+ "specification/cdn/something/readme.md"
+ ]
+}
+```
+
+#### GenerateInput Schema
+
+```jsonc
+{
+ "type": "object",
+ "properties": {
+ "dryRun": {
+ // If dryRun is true, generateScript is expected to parse readme.md
+ // and output the package list with package name and related readme.md.
+ // Should not run codegen at this time.
+ "type": "boolean"
+ },
+ "specFolder": {
+ // Path to local spec folder.
+ "type": "string"
+ },
+ "headSha": {
+ // Git head sha.
+ "type": "string"
+ },
+ "headRef": {
+ // Git head ref.
+ // Format will be "refs/pull//merge" or "refs/heads/".
+ "type": "string"
+ },
+ "repoHttpsUrl": {
+ // Spec repo url in https without auth.
+ "type": "string"
+ },
+ "trigger": {
+ // How this generation is triggered.
+ "type": "string",
+ "enum": [
+ "pullRequest",
+ "continuousIntegration"
+ ]
+ },
+ "changedFiles": {
+ // Changed file list in spec PR.
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "relatedReadmeMdFiles": {
+ // Related readme.md files that pending generation.
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "installInstructionInput": {
+ // See #InstallInstructionScriptInput
+ "$ref": "#/definitions/InstallInstructionScriptInput"
+ }
+ },
+ "required": [
+ "specFolder", "headSha", "headRef", "repoHttpsUrl",
+ "trigger", "changedFiles", "relatedReadmeMdFiles"
+ ]
+}
+```
+
+### GenerateOutput
+
+Output file for generate script.
+
+#### GenerateOutput Example
+
+```jsonc
+{
+ "packages": [
+ {
+ "packageName": "Microsoft.Cdn",
+ "path": [
+ "sdk/cdn"
+ ],
+ "readmeMd": [
+ "specification/cdn/something/readme.md"
+ ],
+ "changelog": {
+ "content": "Feature: something \n Breaking Changes: something\n",
+ "hasBreakingChange": true
+ },
+ "artifacts": [
+ "sdk/cdn/cdn.nuget",
+ "sdk/cdn/cdn.snuget"
+ ],
+ "installInstructions": {
+ "full": "To install something...",
+ "lite": "dotnet something"
+ },
+ "result": "success"
+ }
+ ]
+}
+```
+
+#### GenerateOutput Schema
+
+```jsonc
+{
+ "type": "object",
+ "properties": {
+ "packages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PackageResult"
+ }
+ }
+ },
+ "required": [
+ "packages"
+ ],
+ "definitions": {
+ "PackageResult": {
+ "properties": {
+ "packageName": {
+ // Name of package. Will be used in branch name and PR title.
+ // By default it's folder name of first entry in path.
+ "type": "string",
+ },
+ "path": {
+ // List of package content paths.
+ // If the path points to a folder then
+ // all the content under the folder will be included.
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "readmeMd": {
+ // List of related readmeMd of this package.
+ // Must provide this field if dryRun is true.
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "changelog": {
+ "type": "object",
+ "properties": {
+ "content": {
+ // Content of changelog in markdown
+ "type": "string"
+ },
+ "hasBreakingChange": {
+ // Does the new package has breaking change
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "content"
+ ]
+ },
+ "artifacts": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "installInstructions": {
+ // See #InstallInstructionScriptOutput
+ "$ref": "#/definitions/InstallInstructionScriptOutput"
+ },
+ },
+ "required": [
+ "path"
+ ]
+ }
+ }
+}
+```
+
+### InstallInstructionScriptInput
+
+Input of install instruction script.
+
+#### InstallInstructionScriptInput Example
+
+```jsonc
+{
+ "packageName": "Microsoft.Cdn",
+ "artifacts": [
+ "sdk/cdn/cdn.nuget",
+ "sdk/cdn/cdn.snuget"
+ ],
+ "isPublic": true,
+ "downloadUrlPrefix": "https://portal.azure-devex-tools.com/api/sdk-dl-pub?p=Azure/azure-rest-api-specs/1234/azure-sdk-for-net/",
+ "downloadCommandTemplate": "curl -L \"{URL}\" -o {FILENAME}",
+ "trigger": "pullRequest",
+}
+```
+
+#### InstallInstructionScriptInput Schema
+
+```jsonc
+{
+ "type": "object",
+ "properties": {
+ "packageName": {
+ // The package name. May be skipped if sdk automation don't know the info yet.
+ "type": "string"
+ },
+ "artifacts": {
+ // List of artifact's path. May be skipped if sdk automation don't know the info yet.
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "isPublic": {
+ // Is the download url public accessible.
+ // If it's false, the download command template will be
+ // az rest --resource -u "{URL}" --output-file {FILENAME}
+ "type": "boolean",
+ },
+ "downloadUrlPrefix": {
+ // All the artifacts will be uploaded and user could access the artifact via
+ // a link composed by this prefix and artifact filename.
+ "type": "string"
+ },
+ "downloadCommandTemplate": {
+ // Download command template. Replace {URL} and {FILENAME} to get the real command.
+ "type": "string"
+ },
+ "trigger": {
+ "type": "string",
+ "enum": [
+ "pullRequest",
+ "continuousIntegration"
+ ]
+ }
+ }
+}
+```
+
+### InstallInstructionScriptOutput
+
+Output of install instruction script.
+
+#### InstallInstructionScriptOutput Example
+
+```jsonc
+{
+ "full": "To install something...",
+}
+```
+
+#### InstallInstructionScriptInput Schema
+
+```jsonc
+{
+ "type": "object",
+ "properties": {
+ "full": {
+ // Full version of install instruction will be shown in generated SDK PR.
+ // Should be in markdown format.
+ "type": "string"
+ },
+ "lite": {
+ // Lite version of install instruction will be shown in generated SDK PR.
+ // Should be in markdown format.
+ "type": "string"
+ }
+ },
+ "required": [
+ "full"
+ ]
+}
+```
diff --git a/package-lock.json b/package-lock.json
index 4404c0fc521a..47e96443676a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1769,9 +1769,9 @@
}
},
"dot-prop": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.1.0.tgz",
- "integrity": "sha512-n1oC6NBF+KM9oVXtjmen4Yo7HyAVWV2UUl50dCYJdw2924K6dX9bf9TTTWaKtYlRn0FEtxG27KS80ayVLixxJA==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
+ "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
"dev": true,
"requires": {
"is-obj": "^2.0.0"
@@ -3717,9 +3717,9 @@
}
},
"node-fetch": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
- "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
"dev": true
},
"node-object-hash": {
diff --git a/preproduction-azure-pipelines.yml b/preproduction-azure-pipelines.yml
index 56c9816bf51f..6b0e571283a1 100644
--- a/preproduction-azure-pipelines.yml
+++ b/preproduction-azure-pipelines.yml
@@ -16,7 +16,6 @@ variables:
PREPRODUCTION_PIPELINE: "true"
jobs:
- - template: .azure-pipelines/BreakingChange.yml
- template: .azure-pipelines/ModelValidation.yml
- template: .azure-pipelines/LintDiff.yml
- template: .azure-pipelines/Avocado.yml
diff --git a/profile/2020-09-01-hybrid.json b/profile/2020-09-01-hybrid.json
new file mode 100644
index 000000000000..4ba660dc88c7
--- /dev/null
+++ b/profile/2020-09-01-hybrid.json
@@ -0,0 +1,606 @@
+{
+ "info": {
+ "name": "2020-09-01-hybrid",
+ "description": "Profile definition targeted for hybrid applications that could run on azure stack general availability version and azure cloud for 2010."
+ },
+ "resource-manager": {
+ "microsoft.authorization": {
+ "2016-09-01": [
+ {
+ "resourceType": "locks",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Authorization/stable/2016-09-01/locks.json"
+ }
+ ],
+ "2016-12-01": [
+ {
+ "resourceType": "policyAssignments",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Authorization/stable/2016-12-01/policyAssignments.json"
+ },
+ {
+ "resourceType": "policyDefinitions",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Authorization/stable/2016-12-01/policyDefinitions.json"
+ }
+ ],
+ "2015-07-01": [
+ {
+ "resourceType": "permissions",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/authorization/resource-manager/Microsoft.Authorization/stable/2015-07-01/authorization.json"
+ },
+ {
+ "resourceType": "roleAssignments",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/authorization/resource-manager/Microsoft.Authorization/stable/2015-07-01/authorization.json"
+ },
+ {
+ "resourceType": "roleDefinitions",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/authorization/resource-manager/Microsoft.Authorization/stable/2015-07-01/authorization.json"
+ },
+ {
+ "resourceType": "providerOperations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/authorization/resource-manager/Microsoft.Authorization/stable/2015-07-01/authorization.json"
+ }
+ ]
+ },
+ "microsoft.commerce": {
+ "2015-06-01-preview":[
+ {
+ "resourceType": "estimateResourceSpend",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/commerce/resource-manager/Microsoft.Commerce/preview/2015-06-01-preview/commerce.json"
+ },
+ {
+ "resourceType": "operations",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/commerce/resource-manager/Microsoft.Commerce/preview/2015-06-01-preview/commerce.json"
+ },
+ {
+ "resourceType": "subscriberUsageAggregates",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/commerce/resource-manager/Microsoft.Commerce/preview/2015-06-01-preview/commerce.json"
+ },
+ {
+ "resourceType": "usageAggregates",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/commerce/resource-manager/Microsoft.Commerce/preview/2015-06-01-preview/commerce.json"
+ }
+ ]
+ },
+ "microsoft.compute": {
+ "2020-06-01": [
+ {
+ "resourceType": "availabilitySets",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ },
+ {
+ "resourceType": "images",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ },
+ {
+ "resourceType": "locations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ },
+ {
+ "resourceType": "locations/publishers",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ },
+ {
+ "resourceType": "locations/operations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ },
+ {
+ "resourceType": "locations/usages",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ },
+ {
+ "resourceType": "locations/vmSizes",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ },
+ {
+ "resourceType": "operations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ },
+ {
+ "resourceType": "virtualMachines",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ },
+ {
+ "resourceType": "virtualMachines/extensions",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ },
+ {
+ "resourceType": "virtualMachineScaleSets",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ },
+ {
+ "resourceType": "virtualMachineScaleSets/extensions",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ },
+ {
+ "resourceType": "virtualmachineScaleSets/networkInterfaces",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ },
+ {
+ "resourceType": "virtualMachineScaleSets/virtualMachines",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ },
+ {
+ "resourceType": "virtualMachineScaleSets/virtualMachines/networkInterfaces",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json"
+ }
+ ],
+ "2019-07-01": [
+ {
+ "resourceType": "disks",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2019-07-01/disk.json"
+ },
+ {
+ "resourceType": "snapshots",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2019-07-01/disk.json"
+ }
+ ]
+ },
+ "microsoft.databoxedge":{
+ "2019-08-01": [
+ {
+ "resourceType": "dataBoxEdgeDevices",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/stable/2019-08-01/databoxedge.json"
+ },
+ {
+ "resourceType": "dataBoxEdgeDevices/checkNameAvailability",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/stable/2019-08-01/databoxedge.json"
+ },
+ {
+ "resourceType": "operations",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/stable/2019-08-01/databoxedge.json"
+ }
+ ]
+ },
+ "microsoft.devices": {
+ "2019-07-01-preview":[
+ {
+ "resourceType": "usages",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/iothub/resource-manager/Microsoft.Devices/preview/2019-07-01-preview/iothub.json"
+ },
+ {
+ "resourceType": "locations",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/iothub/resource-manager/Microsoft.Devices/preview/2019-07-01-preview/iothub.json"
+ },
+ {
+ "resourceType": "locations/quotas",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/iothub/resource-manager/Microsoft.Devices/preview/2019-07-01-preview/iothub.json"
+ },
+ {
+ "resourceType": "locations/skus",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/iothub/resource-manager/Microsoft.Devices/preview/2019-07-01-preview/iothub.json"
+ },
+ {
+ "resourceType": "checkNameAvailability",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/iothub/resource-manager/Microsoft.Devices/preview/2019-07-01-preview/iothub.json"
+ },
+ {
+ "resourceType": "operations",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/iothub/resource-manager/Microsoft.Devices/preview/2019-07-01-preview/iothub.json"
+ },
+ {
+ "resourceType": "operationResults",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/iothub/resource-manager/Microsoft.Devices/preview/2019-07-01-preview/iothub.json"
+ },
+ {
+ "resourceType": "IotHubs",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/iothub/resource-manager/Microsoft.Devices/preview/2019-07-01-preview/iothub.json"
+ },
+ {
+ "resourceType": "backupProviders",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/iothub/resource-manager/Microsoft.Devices/preview/2019-07-01-preview/iothub.json"
+ },
+ {
+ "resourceType": "backupProviders/operationResults",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/iothub/resource-manager/Microsoft.Devices/preview/2019-07-01-preview/iothub.json"
+ }
+ ]
+ },
+ "microsoft.eventhubs": {
+ "2018-01-01-preview": [
+ {
+ "resourceType": "availableClusterRegions",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/AvailableClusterRegions-preview.json"
+ },
+ {
+ "resourceType": "clusters",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/Clusters-preview.json"
+ },
+ {
+ "resourceType": "namespaces",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/namespaces-preview.json"
+ }
+ ],
+ "2017-04-01": [
+ {
+ "resourceType": "checkNameAvailability",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/CheckNameAvailability.json"
+ },
+ {
+ "resourceType": "namespaces/authorizationRules",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/AuthorizationRules.json"
+ },
+ {
+ "resourceType": "namespaces/eventhubs",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/eventhubs.json"
+ },
+ {
+ "resourceType": "namespaces/eventhubs/authorizationRules",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/AuthorizationRules.json"
+ },
+ {
+ "resourceType": "namespaces/eventhubs/consumerGroups",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/consumergroups.json"
+ },
+ {
+ "resourceType": "operations",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/operations.json"
+ },
+ {
+ "resourceType": "sku",
+ "path":"https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/sku.json"
+ }
+ ]
+ },
+ "microsoft.insights": {
+ "2018-01-01": [
+ {
+ "resourceType": "metricDefinitions",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/monitor/resource-manager/Microsoft.Insights/stable/2018-01-01/metricDefinitions_API.json"
+ },
+ {
+ "resourceType": "metrics",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/monitor/resource-manager/Microsoft.Insights/stable/2018-01-01/metrics_API.json"
+ }
+ ],
+ "2017-05-01-preview": [
+ {
+ "resourceType": "diagnosticSettings",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/monitor/resource-manager/Microsoft.Insights/preview/2017-05-01-preview/diagnosticsSettings_API.json"
+ },
+ {
+ "resourceType": "diagnosticSettingCategories",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/monitor/resource-manager/Microsoft.Insights/preview/2017-05-01-preview/diagnosticsSettingsCategories_API.json"
+ }
+ ],
+ "2015-04-01": [
+ {
+ "resourceType": "eventCategories",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/monitor/resource-manager/Microsoft.Insights/stable/2015-04-01/eventCategories_API.json"
+ },
+ {
+ "resourceType": "operations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/monitor/resource-manager/Microsoft.Insights/stable/2015-04-01/operations_API.json"
+ }
+ ]
+ },
+ "microsoft.keyvault": {
+ "2019-09-01": [
+ {
+ "resourceType": "operations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/providers.json"
+ },
+ {
+ "resourceType": "vaults",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/keyvault.json"
+ },
+ {
+ "resourceType": "vaults/accessPolicies",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/keyvault.json"
+ },
+ {
+ "resourceType": "vaults/secrets",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2019-09-01/secrets.json"
+ }
+ ]
+ },
+ "microsoft.network": {
+ "2018-11-01": [
+ {
+ "resourceType": "connections",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/virtualNetworkGateway.json"
+ },
+ {
+ "resourceType": "loadBalancers",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/loadBalancer.json"
+ },
+ {
+ "resourceType": "localNetworkGateways",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/virtualNetworkGateway.json"
+ },
+ {
+ "resourceType": "locations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/network.json"
+ },
+ {
+ "resourceType": "locations/operationResults",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/network.json"
+ },
+ {
+ "resourceType": "locations/operations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/network.json"
+ },
+ {
+ "resourceType": "locations/usages",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/network.json"
+ },
+ {
+ "resourceType": "networkInterfaces",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/networkInterface.json"
+ },
+ {
+ "resourceType": "networkSecurityGroups",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/networkSecurityGroup.json"
+ },
+ {
+ "resourceType": "operations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/operation.json"
+ },
+ {
+ "resourceType": "publicIpAddresses",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/publicIpAddress.json"
+ },
+ {
+ "resourceType": "routeTables",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/routeTable.json"
+ },
+ {
+ "resourceType": "virtualNetworkGateways",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/virtualNetworkGateway.json"
+ },
+ {
+ "resourceType": "virtualNetworks",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/virtualNetwork.json"
+ }
+ ],
+ "2016-04-01": [
+ {
+ "resourceType": "dnsZones",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/dns/resource-manager/Microsoft.Network/stable/2016-04-01/dns.json"
+ }
+ ]
+ },
+ "microsoft.resources": {
+ "2016-06-01": [
+ {
+ "resourceType": "subscriptions",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2016-06-01/subscriptions.json"
+ },
+ {
+ "resourceType": "subscriptions/locations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2016-06-01/subscriptions.json"
+ },
+ {
+ "resourceType": "tenants",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2016-06-01/subscriptions.json"
+ }
+ ],
+ "2019-10-01": [
+ {
+ "resourceType": "deployments",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ },
+ {
+ "resourceType": "deployments/operations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ },
+ {
+ "resourceType": "links",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ },
+ {
+ "resourceType": "locations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ },
+ {
+ "resourceType": "operations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ },
+ {
+ "resourceType": "providers",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ },
+ {
+ "resourceType": "resourceGroups",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ },
+ {
+ "resourceType": "resources",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ },
+ {
+ "resourceType": "subscriptions/operationresults",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ },
+ {
+ "resourceType": "subscriptions/providers",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ },
+ {
+ "resourceType": "subscriptions/resourceGroups",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ },
+ {
+ "resourceType": "subscriptions/resourceGroups/resources",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ },
+ {
+ "resourceType": "subscriptions/resources",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ },
+ {
+ "resourceType": "subscriptions/tagNames",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ },
+ {
+ "resourceType": "subscriptions/tagNames/tagValues",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/resources/resource-manager/Microsoft.Resources/stable/2019-10-01/resources.json"
+ }
+ ]
+ },
+ "microsoft.storage": {
+ "2019-06-01": [
+ {
+ "resourceType": "checkNameAvailability",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ },
+ {
+ "resourceType": "locations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ },
+ {
+ "resourceType": "locations/quotas",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ },
+ {
+ "resourceType": "operations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ },
+ {
+ "resourceType": "storageAccounts",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ },
+ {
+ "resourceType": "storageAccounts/blobServices",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ },
+ {
+ "resourceType": "storageAccounts/queueServices",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ },
+ {
+ "resourceType": "storageAccounts/tableServices",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ },
+ {
+ "resourceType": "usages",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2017-10-01/storage.json"
+ }
+ ]
+ },
+ "microsoft.web": {
+ "2018-02-01": [
+ {
+ "resourceType": "certificates",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/Certificates.json"
+ },
+ {
+ "resourceType": "operations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json"
+ },
+ {
+ "resourceType": "checknameavailability",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/ResourceProvider.json"
+ },
+ {
+ "resourceType": "metadata",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json"
+ },
+ {
+ "resourceType": "sites",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json"
+ },
+ {
+ "resourceType": "sites/domainOwnershipIdentifiers",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json"
+ },
+ {
+ "resourceType": "sites/extensions",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json"
+ },
+ {
+ "resourceType": "sites/hostNameBindings",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json"
+ },
+ {
+ "resourceType": "sites/instances",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json"
+ },
+ {
+ "resourceType": "sites/instances/extensions",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json"
+ },
+ {
+ "resourceType": "sites/slots",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json"
+ },
+ {
+ "resourceType": "sites/slots/hostNameBindings",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json"
+ },
+ {
+ "resourceType": "sites/slots/instances",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json"
+ },
+ {
+ "resourceType": "sites/slots/instances/extensions",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json"
+ },
+ {
+ "resourceType": "serverFarms",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json"
+ }
+ ],
+ "2016-09-01": [
+ {
+ "resourceType": "serverFarms/metricDefinitions",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-09-01/AppServicePlans.json"
+ },
+ {
+ "resourceType": "serverFarms/metrics",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-09-01/AppServicePlans.json"
+ },
+ {
+ "resourceType": "serverFarms/usages",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-09-01/AppServicePlans.json"
+ }
+ ],
+ "2016-03-01": [
+ {
+ "resourceType": "availableStacks",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/Provider.json"
+ },
+ {
+ "resourceType": "deploymentLocations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/ResourceProvider.json"
+ },
+ {
+ "resourceType": "georegions",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/ResourceProvider.json"
+ },
+ {
+ "resourceType": "listSitesAssignedToHostName",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/ResourceProvider.json"
+ },
+ {
+ "resourceType": "publishingUsers",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/ResourceProvider.json"
+ },
+ {
+ "resourceType": "recommendations",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/Recommendations.json"
+ },
+ {
+ "resourceType": "sourceControls",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/ResourceProvider.json"
+ },
+ {
+ "resourceType": "validate",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/ResourceProvider.json"
+ }
+ ]
+ }
+ },
+ "data-plane": {
+ "microsoft.keyvault": {
+ "2016-10-01": [
+ {
+ "resourceType": "*",
+ "path": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/keyvault/data-plane/Microsoft.KeyVault/stable/2016-10-01/keyvault.json"
+ }
+ ]
+ },
+ "microsoft.storage": {
+ "resourceType": "*",
+ "2019-07-07": []
+ }
+ }
+}
\ No newline at end of file
diff --git a/scripts/breaking-change.ts b/scripts/breaking-change.ts
deleted file mode 100644
index b79c27007b1a..000000000000
--- a/scripts/breaking-change.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License. See License in the project root for license information.
-
-import * as scripts from '@azure/rest-api-specs-scripts'
-
-// magic starts here
-scripts.breakingChange().then(() => {
- console.log(`Thanks for using breaking change tool to review.`);
- console.log(`If you encounter any issue(s), please open issue(s) at https://github.com/Azure/openapi-diff/issues .`);
-}).catch(err => {
- console.log(err);
- process.exitCode = 1;
-})
diff --git a/scripts/multiapi.ts b/scripts/multiapi.ts
index 56d169adeb42..caed08c5e71e 100644
--- a/scripts/multiapi.ts
+++ b/scripts/multiapi.ts
@@ -12,15 +12,14 @@ type Code = {
readonly "input-file"?: ReadonlyArray|string
}
const magic = `yaml $(tag) == 'all-api-versions' /* autogenerated */`;
-const header = `## Multi-API/Profile support for AutoRest v3 generators`;
+const pathRegex = /microsoft\.(\w+)[\\\/]\S*[\\\/](\d{4}-\d{2}-\d{2}(|-preview))[\\\/]/i;
-
-const main = async (specificationDir: string, profilesDir: string) => {
+const main = async (specificationDir: string) => {
try {
const list = fs.recursiveReaddir(specificationDir)
for await (const file of list) {
const f = path.parse(file)
- if (f.base === "readme.md") {
+ if (f.base === "readme.md" && f.dir.endsWith('resource-manager')) {
const original_content = (await fs.readFile(file)).toString()
let content = original_content;
const readMe = cm.parse(content)
@@ -36,70 +35,68 @@ const main = async (specificationDir: string, profilesDir: string) => {
if (DOC ) {
const y = DOC['input-file']
if (typeof y === "string") {
- set.add(`$(this-folder)/${y}`)
+ set.add(y)
} else if (it.isArray(y)) {
for (const i of y) {
- set.add(`$(this-folder)/${i}`)
+ set.add(i)
}
}
}
-
}
}
- if( !content.includes(header) ) {
- // add the header to the content
- content = content + `
-${header}
+ let map = new Map();
+ for (let input of set) {
+ let match = pathRegex.exec(input);
+ if (!!match) {
+ let tagName = `schema-${match[1].toLowerCase()}-${match[2]}`;
+ if (!map.has(tagName)) {
+ map.set(tagName, []);
+ }
+ let array = map.get(tagName);
+ if (!!array) {
+ array.push(input);
+ }
+ }
+ }
+ map = new Map(Array.from(map.entries()).sort().reverse());
+ let schemaReadmeContent =
+`## AzureResourceSchema
-AutoRest V3 generators require the use of \`--tag=all-api-versions\` to select api files.
+These settings apply only when \`--azureresourceschema\` is specified on the command line.
-This block is updated by an automatic script. Edits may be lost!
+### AzureResourceSchema multi-api
-\`\`\` ${magic}
+\`\`\` yaml $(azureresourceschema) && $(multiapi)
+${yaml.dump({ 'batch': it.toArray(it.map(map.keys(), (tagName) => ({'tag': tagName})))}, { lineWidth: 1000})}
\`\`\`
-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.
+Please also specify \`--azureresourceschema-folder=\`.
+`
+ map.forEach((inputList, tagName) => {
+ schemaReadmeContent +=
+`
+### Tag: ${tagName} and azureresourceschema
+
+\`\`\` yaml $(tag) == '${tagName}' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
-\`\`\` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
+# all the input files in this apiVersion
+${yaml.dump({ 'input-file': it.toArray(inputList)}, { lineWidth: 1000})}
\`\`\`
-
`
- }
- // update the autogenrated block with the new content.
- /* const readMeMulti = cm.createNode(
- "document",
- cm.createNode(
- "heading",
- cm.createText("# Multi-API/Profile support for AutoRest v3 generators")
- ),
- cm.createCodeBlock(
- magic,
- yaml.dump({ "input-file": it.toArray(set), "require": `$(this-folder)/${path.relative(f.dir, profilesDir).replace(/\\/g, '/')}/readme.md` }, { lineWidth: 1000 })
- )
- )
- const block1 =cm.markDownExToString({ markDown: cm.createCodeBlock(
- magic,
- yaml.dump({
- "input-file": it.toArray(set),
- "require": `$(this-folder)/${path.relative(f.dir, profilesDir).replace(/\\/g, '/')}/readme.md` }, { lineWidth: 1000 })
- )});*/
- const block =
-`\`\`\` ${magic}
-# include the azure profile definitions from the standard location
-require: $(this-folder)/${path.relative(f.dir, profilesDir).replace(/\\/g, '/')}/readme.md
+ });
-# all the input files across all versions
-${yaml.dump({ 'input-file': it.toArray(set) },{ lineWidth: 1000 } )}
-\`\`\``
- content = content.replace( /``` yaml \$\(tag\) == 'all-api-versions' \/\* autogenerated \*\/[\S\s]*?```/g, block)
+ // content = content.replace( /``` yaml \$\(tag\) == 'all-api-versions' \/\* autogenerated \*\/[\S\s]*?```/g, '')
+ // content = content.replace( /``` yaml \$\(tag\) == 'all-api-versions'[\S\s]*?```/g, '')
+ // content = content.replace( /## Multi-API\/Profile support for AutoRest v3 generators[\S\s]*/g, '')
- if(original_content !== content ){
- console.log(`Updating: ${file}`);
- fs.writeFile(path.join(f.dir, "readme.md"), content)
- }
+ // if(original_content !== content ){
+ // console.log(`Updating: ${file}`);
+ // fs.writeFile(path.join(f.dir, "readme.md"), content)
+ // }
+
+ console.log(`Rewriting: ${f.dir}/readme.azureresourceschema.md`);
+ fs.writeFile(path.join(f.dir, "readme.azureresourceschema.md"), schemaReadmeContent);
}
}
@@ -108,4 +105,4 @@ ${yaml.dump({ 'input-file': it.toArray(set) },{ lineWidth: 1000 } )}
}
}
-main(path.join(process.cwd(), "specification"), path.join(process.cwd(), "profiles"))
+main(path.join(process.cwd(), "specification"))
diff --git a/specification/EnterpriseKnowledgeGraph/resource-manager/readme.azureresourceschema.md b/specification/EnterpriseKnowledgeGraph/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..b91b439d843d
--- /dev/null
+++ b/specification/EnterpriseKnowledgeGraph/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-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 18d7c396724d..f829ac9dfbb7 100644
--- a/specification/EnterpriseKnowledgeGraph/resource-manager/readme.md
+++ b/specification/EnterpriseKnowledgeGraph/resource-manager/readme.md
@@ -75,6 +75,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-net
- 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#
@@ -91,27 +94,7 @@ csharp:
clear-output-folder: true
```
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.EnterpriseKnowledgeGraph/preview/2018-12-03/EnterpriseKnowledgeGraphSwagger.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+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
new file mode 100644
index 000000000000..ae05babd8222
--- /dev/null
+++ b/specification/addons/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,36 @@
+## 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 50f7283f8527..324507aa8113 100644
--- a/specification/addons/resource-manager/readme.md
+++ b/specification/addons/resource-manager/readme.md
@@ -50,6 +50,17 @@ 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.
+
+``` yaml $(swagger-to-sdk)
+swagger-to-sdk:
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js addons/resource-manager
+```
---
## C#
@@ -182,28 +193,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
+## AzureResourceSchema
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Addons/preview/2018-03-01/addons-swagger.json
- - $(this-folder)/Microsoft.Addons/preview/2017-05-15/Addons.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+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
new file mode 100644
index 000000000000..1160a311964b
--- /dev/null
+++ b/specification/adhybridhealthservice/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-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 5628efb7da58..33c75ef311d4 100644
--- a/specification/adhybridhealthservice/resource-manager/readme.md
+++ b/specification/adhybridhealthservice/resource-manager/readme.md
@@ -54,6 +54,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-java
- repo: azure-sdk-for-go
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js adhybridhealthservice/resource-manager
```
@@ -94,27 +97,7 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.ADHybridHealthService\stable\2014-01-01\ADHybridHealthService.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/adp.json b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/adp.json
new file mode 100644
index 000000000000..91eededc55bc
--- /dev/null
+++ b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/adp.json
@@ -0,0 +1,1038 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-07-01-preview",
+ "title": "adp",
+ "description": "Microsoft Autonomous Development Platform"
+ },
+ "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.AutonomousDevelopmentPlatform/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Lists all of the available Autonomous Development Platform provider operations.",
+ "operationId": "Operations_List",
+ "x-ms-examples": {
+ "List operations": {
+ "$ref": "./examples/AdpOperationsList.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AutonomousDevelopmentPlatform/accounts": {
+ "get": {
+ "tags": [
+ "Accounts"
+ ],
+ "operationId": "Accounts_List",
+ "description": "List all ADP accounts available under the subscription",
+ "x-ms-examples": {
+ "List accounts": {
+ "$ref": "./examples/AdpAccountsList.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AccountList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AutonomousDevelopmentPlatform/accounts": {
+ "get": {
+ "tags": [
+ "Accounts"
+ ],
+ "operationId": "Accounts_ListByResourceGroup",
+ "description": "List all ADP accounts available under the resource group",
+ "x-ms-examples": {
+ "List accounts by resource group": {
+ "$ref": "./examples/AdpAccountsListByResourceGroup.json"
+ }
+ },
+ "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": "OK",
+ "schema": {
+ "$ref": "#/definitions/AccountList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/{accountName}": {
+ "get": {
+ "tags": [
+ "Accounts"
+ ],
+ "operationId": "Accounts_Get",
+ "description": "Gets the properties of an ADP account.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The ADP account properties were retrieved successfully.",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get account": {
+ "$ref": "./examples/AdpAccountGet.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Accounts"
+ ],
+ "operationId": "Accounts_Update",
+ "x-ms-long-running-operation": true,
+ "description": "Updates the properties of an existing ADP account.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "parameters",
+ "description": "The parameters to provide for the current ADP account.",
+ "schema": {
+ "$ref": "#/definitions/AccountPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource was updated successfully.",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ },
+ "201": {
+ "description": "The resource will be updated asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Patch account": {
+ "$ref": "./examples/AdpAccountPatch.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Accounts"
+ ],
+ "operationId": "Accounts_CreateOrUpdate",
+ "description": "Creates or updates an ADP account.",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "parameters",
+ "description": "The parameters to provide for the ADP account.",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The ADP account was successfully updated.",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ },
+ "201": {
+ "description": "The resource will be updated asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Put account": {
+ "$ref": "./examples/AdpAccountPut.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Accounts"
+ ],
+ "operationId": "Accounts_Delete",
+ "description": "Deletes an ADP account.",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The ADP account was successfully deleted."
+ },
+ "201": {
+ "description": "The ADP account will be deleted asynchronously."
+ },
+ "204": {
+ "description": "The ADP account does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete account": {
+ "$ref": "./examples/AdpAccountDelete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/{accountName}/dataPools": {
+ "get": {
+ "tags": [
+ "DataPools"
+ ],
+ "operationId": "DataPools_List",
+ "description": "Lists the data pools under the ADP account.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The list of data pools that was successfully retrieved.",
+ "schema": {
+ "$ref": "#/definitions/DataPoolList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Data Pools": {
+ "$ref": "./examples/AdpDataPoolsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/{accountName}/dataPools/{dataPoolName}": {
+ "get": {
+ "tags": [
+ "DataPools"
+ ],
+ "operationId": "DataPools_Get",
+ "description": "Gets the properties of a Data Pool.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DataPoolNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Data Pool that was successfully retrieved.",
+ "schema": {
+ "$ref": "#/definitions/DataPool"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Data Pool": {
+ "$ref": "./examples/AdpDataPoolGet.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "DataPools"
+ ],
+ "operationId": "DataPools_Update",
+ "description": "Updates the properties of an existing Data Pool.",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DataPoolNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "parameters",
+ "description": "The parameters to provide for the Data Pool.",
+ "schema": {
+ "$ref": "#/definitions/DataPoolPatch"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Data Pool was updated successfully.",
+ "schema": {
+ "$ref": "#/definitions/DataPool"
+ }
+ },
+ "201": {
+ "description": "The Data Pool will be updated asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/DataPool"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Patch Data Pool": {
+ "$ref": "./examples/AdpDataPoolPatch.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "DataPools"
+ ],
+ "operationId": "DataPools_CreateOrUpdate",
+ "description": "Creates or updates a Data Pool.",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DataPoolNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "parameters",
+ "description": "The parameters to provide for the Data Pool.",
+ "schema": {
+ "$ref": "#/definitions/DataPool"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Data Pool was successfully updated.",
+ "schema": {
+ "$ref": "#/definitions/DataPool"
+ }
+ },
+ "201": {
+ "description": "The Data Pool will be updated asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/DataPool"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Put Data Pool": {
+ "$ref": "./examples/AdpDataPoolPut.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DataPools"
+ ],
+ "operationId": "DataPools_Delete",
+ "description": "Deletes a Data Pool.",
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DataPoolNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Data Pool was successfully deleted."
+ },
+ "201": {
+ "description": "The Data Pool will be deleted asynchronously."
+ },
+ "204": {
+ "description": "The Data Pool does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete Data Pool": {
+ "$ref": "./examples/AdpDataPoolDelete.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Tags": {
+ "description": "Resource tags",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "x-ms-mutability": [
+ "read",
+ "create",
+ "update"
+ ],
+ "description": "Resource tags."
+ }
+ }
+ },
+ "Account": {
+ "description": "An ADP account.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "List of account properties",
+ "type": "object",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AccountProperties"
+ },
+ "systemData": {
+ "readOnly": true,
+ "description": "The system meta data relating to this resource.",
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/systemData"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ]
+ },
+ "AccountPatch": {
+ "description": "An ADP account.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "List of account properties",
+ "type": "object",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AccountProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Tags"
+ }
+ ]
+ },
+ "AccountProperties": {
+ "description": "ADP account properties",
+ "properties": {
+ "accountId": {
+ "description": "The account's data-plane ID",
+ "type": "string",
+ "readOnly": true
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Gets the status of the account at the time the operation was called.",
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Canceled",
+ "Provisioning",
+ "Deleting"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": false
+ }
+ }
+ }
+ },
+ "AccountList": {
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Account"
+ },
+ "description": "List of accounts and their properties."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ },
+ "description": "The list operation response, that contains the data pools and their properties."
+ },
+ "DataPool": {
+ "description": "An ADP Data Pool.",
+ "properties": {
+ "properties": {
+ "description": "List of data pool properties",
+ "type": "object",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DataPoolProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ]
+ },
+ "DataPoolPatch": {
+ "description": "An ADP Data Pool.",
+ "properties": {
+ "properties": {
+ "description": "List of data pool properties",
+ "type": "object",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DataPoolBaseProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
+ }
+ ]
+ },
+ "DataPoolBaseProperties": {
+ "description": "Data Pool properties",
+ "properties": {
+ "dataPoolId": {
+ "description": "The Data Pool's data-plane ID",
+ "type": "string",
+ "readOnly": true
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Gets the status of the data pool at the time the operation was called.",
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Canceled",
+ "Provisioning",
+ "Deleting"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": false
+ }
+ },
+ "locations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataPoolLocation"
+ },
+ "minItems": 1,
+ "description": "Gets or sets the collection of locations where Data Pool resources should be created."
+ }
+ }
+ },
+ "DataPoolProperties": {
+ "description": "Data Pool properties",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataPoolBaseProperties"
+ }
+ ],
+ "required": [
+ "locations"
+ ]
+ },
+ "DataPoolLocation": {
+ "description": "Location of a Data Pool",
+ "properties": {
+ "name": {
+ "description": "The location name",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "DataPoolList": {
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataPool"
+ },
+ "description": "List of data pools and their properties."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ },
+ "description": "The list operation response, that contains the data pools and their properties."
+ },
+ "Operation": {
+ "description": "Operation detail payload",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the operation",
+ "type": "string"
+ },
+ "isDataAction": {
+ "description": "Indicates whether the operation is a data action",
+ "type": "boolean"
+ },
+ "display": {
+ "$ref": "#/definitions/OperationDisplay",
+ "description": "Display of the operation"
+ },
+ "origin": {
+ "description": "Origin of the operation",
+ "type": "string"
+ },
+ "properties": {
+ "$ref": "#/definitions/OperationProperties",
+ "description": "Properties of the operation",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "OperationDisplay": {
+ "description": "Operation display payload",
+ "type": "object",
+ "properties": {
+ "provider": {
+ "description": "Resource provider of the operation",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource of the operation",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Localized friendly name for the operation",
+ "type": "string"
+ },
+ "description": {
+ "description": "Localized friendly description for the operation",
+ "type": "string"
+ }
+ }
+ },
+ "OperationProperties": {
+ "description": "Additional details about an operation.",
+ "type": "object",
+ "x-ms-client-flatten": true,
+ "properties": {
+ "serviceSpecification": {
+ "description": "Details about a service operation.",
+ "$ref": "#/definitions/OperationServiceSpecification"
+ }
+ }
+ },
+ "OperationServiceSpecification": {
+ "description": "Details about a service operation.",
+ "type": "object",
+ "properties": {
+ "logSpecifications": {
+ "description": "Details about operations related to logs.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationLogSpecification"
+ }
+ },
+ "metricSpecifications": {
+ "description": "Details about operations related to metrics.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationMetricSpecification"
+ }
+ }
+ }
+ },
+ "OperationLogSpecification": {
+ "description": "Details about an operation related to logs.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the log category.",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized display name.",
+ "type": "string"
+ },
+ "blobDuration": {
+ "description": "Blobs created in the customer storage account, per hour.",
+ "type": "string"
+ }
+ }
+ },
+ "OperationMetricSpecification": {
+ "description": "Details about an operation related to metrics.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the metric.",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized display name of the metric.",
+ "type": "string"
+ },
+ "displayDescription": {
+ "description": "The description of the metric.",
+ "type": "string"
+ },
+ "unit": {
+ "description": "The unit that the metric is measured in.",
+ "type": "string"
+ },
+ "aggregationType": {
+ "description": "The type of metric aggregation.",
+ "type": "string"
+ },
+ "enableRegionalMdmAccount": {
+ "description": "Whether or not the service is using regional MDM accounts.",
+ "type": "string"
+ },
+ "sourceMdmAccount": {
+ "description": "The name of the MDM account.",
+ "type": "string"
+ },
+ "sourceMdmNamespace": {
+ "description": "The name of the MDM namespace.",
+ "type": "string"
+ },
+ "availabilities": {
+ "description": "Defines how often data for metrics becomes available.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationMetricAvailability"
+ }
+ }
+ }
+ },
+ "OperationMetricAvailability": {
+ "description": "Defines how often data for a metric becomes available.",
+ "type": "object",
+ "properties": {
+ "timeGrain": {
+ "description": "The granularity for the metric.",
+ "type": "string"
+ },
+ "blobDuration": {
+ "description": "Blob created in the customer storage account, per hour.",
+ "type": "string"
+ }
+ }
+ },
+ "OperationListResult": {
+ "description": "Available operations of the service.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of operations supported by the Resource Provider."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "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": {
+ "AccountNameParameter": {
+ "name": "accountName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the ADP account.",
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*",
+ "maxLength": 50,
+ "x-ms-parameter-location": "method"
+ },
+ "DataPoolNameParameter": {
+ "name": "dataPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Data Pool.",
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*",
+ "maxLength": 50,
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountDelete.json b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountDelete.json
new file mode 100644
index 000000000000..d6e9aa9488b2
--- /dev/null
+++ b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "adpClient",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "201": {},
+ "204": {}
+ }
+}
diff --git a/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountGet.json b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountGet.json
new file mode 100644
index 000000000000..b26fb2fd4abb
--- /dev/null
+++ b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountGet.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "adpClient",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/adp1",
+ "name": "adp1",
+ "location": "Global",
+ "type": "Microsoft.AutonomousDevelopmentPlatform/accounts",
+ "tags": {},
+ "properties": {
+ "accountId": "id"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountPatch.json b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountPatch.json
new file mode 100644
index 000000000000..52f5a7518d75
--- /dev/null
+++ b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountPatch.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "adpClient",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/adp1",
+ "name": "adp1",
+ "location": "Global",
+ "type": "Microsoft.AutonomousDevelopmentPlatform/accounts",
+ "tags": {},
+ "properties": {}
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/adp1",
+ "name": "adp1",
+ "location": "Global",
+ "type": "Microsoft.AutonomousDevelopmentPlatform/accounts",
+ "tags": {},
+ "properties": {}
+ }
+ }
+ }
+}
diff --git a/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountPut.json b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountPut.json
new file mode 100644
index 000000000000..2eb9a55173d3
--- /dev/null
+++ b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountPut.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "adpClient",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "location": "Global",
+ "properties": {}
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/adp1",
+ "name": "adp1",
+ "location": "Global",
+ "type": "Microsoft.AutonomousDevelopmentPlatform/accounts",
+ "tags": {},
+ "properties": {}
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/adp1",
+ "name": "adp1",
+ "location": "Global",
+ "type": "Microsoft.AutonomousDevelopmentPlatform/accounts",
+ "tags": {},
+ "properties": {}
+ }
+ }
+ }
+}
diff --git a/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountsList.json b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountsList.json
new file mode 100644
index 000000000000..ec1224c955e4
--- /dev/null
+++ b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountsList.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "resourceGroupName": "adpClient",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/adp1",
+ "name": "adp1",
+ "type": "Microsoft.AutonomousDevelopmentPlatform/accounts",
+ "location": "Global",
+ "tags": {},
+ "properties": {
+ "accountId": "id"
+ }
+ }
+ ],
+ "nextLink": "link"
+ }
+ }
+ }
+}
diff --git a/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountsListByResourceGroup.json b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountsListByResourceGroup.json
new file mode 100644
index 000000000000..d3a341af516f
--- /dev/null
+++ b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpAccountsListByResourceGroup.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "subid",
+ "resourceGroupName": "adpClient"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/adp1",
+ "name": "adp1",
+ "type": "Microsoft.AutonomousDevelopmentPlatform/accounts",
+ "location": "Global",
+ "tags": {},
+ "properties": {
+ "accountId": "id"
+ }
+ }
+ ],
+ "nextLink": "link"
+ }
+ }
+ }
+}
diff --git a/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolDelete.json b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolDelete.json
new file mode 100644
index 000000000000..b07fcf338e68
--- /dev/null
+++ b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "dataPoolName": "sampledp",
+ "resourceGroupName": "adpClient",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "201": {},
+ "204": {}
+ }
+}
diff --git a/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolGet.json b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolGet.json
new file mode 100644
index 000000000000..6be7714e47a0
--- /dev/null
+++ b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolGet.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "dataPoolName": "sampledp",
+ "resourceGroupName": "adpClient",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/adp1/dataPools/dp1",
+ "name": "dp1",
+ "type": "Microsoft.AutonomousDevelopmentPlatform/accounts/dataPools",
+ "properties": {
+ "dataPoolId": "id",
+ "locations": [
+ {
+ "name": "westus"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolPatch.json b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolPatch.json
new file mode 100644
index 000000000000..3e1343f70936
--- /dev/null
+++ b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolPatch.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "dataPoolName": "sampledp",
+ "resourceGroupName": "adpClient",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "locations": [
+ {
+ "name": "westus"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/adp1/dataPools/dp1",
+ "name": "dp1",
+ "type": "Microsoft.AutonomousDevelopmentPlatform/accounts/dataPools",
+ "properties": {
+ "locations": [
+ {
+ "name": "westus"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/adp1/dataPools/dp1",
+ "name": "dp1",
+ "type": "Microsoft.AutonomousDevelopmentPlatform/accounts/dataPools",
+ "properties": {
+ "locations": [
+ {
+ "name": "westus"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolPut.json b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolPut.json
new file mode 100644
index 000000000000..3e1343f70936
--- /dev/null
+++ b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolPut.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "dataPoolName": "sampledp",
+ "resourceGroupName": "adpClient",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "locations": [
+ {
+ "name": "westus"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/adp1/dataPools/dp1",
+ "name": "dp1",
+ "type": "Microsoft.AutonomousDevelopmentPlatform/accounts/dataPools",
+ "properties": {
+ "locations": [
+ {
+ "name": "westus"
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/adp1/dataPools/dp1",
+ "name": "dp1",
+ "type": "Microsoft.AutonomousDevelopmentPlatform/accounts/dataPools",
+ "properties": {
+ "locations": [
+ {
+ "name": "westus"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolsList.json b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolsList.json
new file mode 100644
index 000000000000..61c1d13a4930
--- /dev/null
+++ b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpDataPoolsList.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "adpClient",
+ "api-version": "2020-07-01-preview",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.AutonomousDevelopmentPlatform/accounts/adp1/dataPools/dp1",
+ "name": "dp1",
+ "type": "Microsoft.AutonomousDevelopmentPlatform/accounts/dataPools",
+ "properties": {
+ "dataPoolId": "id",
+ "locations": [
+ {
+ "name": "westus"
+ }
+ ]
+ }
+ }
+ ],
+ "nextLink": "link"
+ }
+ }
+ }
+}
diff --git a/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpOperationsList.json b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpOperationsList.json
new file mode 100644
index 000000000000..e2f05ce8376f
--- /dev/null
+++ b/specification/adp/resource-manager/Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/examples/AdpOperationsList.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.AutonomousDevelopmentPlatform/accounts/read",
+ "display": {
+ "provider": "Microsoft Autonomous Development Platform",
+ "resource": "Account",
+ "operation": "Read accounts",
+ "description": "Read accounts"
+ }
+ },
+ {
+ "name": "Microsoft.AutonomousDevelopmentPlatform/accounts/write",
+ "display": {
+ "provider": "Microsoft Autonomous Development Platform",
+ "resource": "Account",
+ "operation": "Update accounts",
+ "description": "Update accounts"
+ }
+ },
+ {
+ "name": "Microsoft.AutonomousDevelopmentPlatform/accounts/delete",
+ "display": {
+ "provider": "Microsoft Autonomous Development Platform",
+ "resource": "Account",
+ "operation": "Delete accounts",
+ "description": "Delete accounts"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/adp/resource-manager/readme.az.md b/specification/adp/resource-manager/readme.az.md
new file mode 100644
index 000000000000..ad394bde867b
--- /dev/null
+++ b/specification/adp/resource-manager/readme.az.md
@@ -0,0 +1,12 @@
+## AZ
+
+These settings apply only when `--az` is specified on the command line.
+
+``` yaml $(az) && $(target-mode) != 'core'
+az:
+ extensions: adp
+ namespace: azure.mgmt.adp
+ package-name: azure-mgmt-adp
+az-output-folder: $(azure-cli-extension-folder)/src/adp
+python-sdk-output-folder: "$(az-output-folder)/azext_adp/vendored_sdks/adp"
+```
diff --git a/specification/adp/resource-manager/readme.cli.md b/specification/adp/resource-manager/readme.cli.md
new file mode 100644
index 000000000000..bd1ae237a340
--- /dev/null
+++ b/specification/adp/resource-manager/readme.cli.md
@@ -0,0 +1,6 @@
+## CLI
+
+These settings don't need to apply `--cli` on the command line.
+
+``` yaml
+```
diff --git a/specification/adp/resource-manager/readme.csharp.md b/specification/adp/resource-manager/readme.csharp.md
new file mode 100644
index 000000000000..5ed6552b1f8c
--- /dev/null
+++ b/specification/adp/resource-manager/readme.csharp.md
@@ -0,0 +1,14 @@
+## C
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+```yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 1
+ clear-output-folder: true
+ namespace: Microsoft.Azure.Management.AutonomousDevelopmentPlatform
+ output-folder: $(csharp-sdks-folder)/adp/Microsoft.Azure.Management.AutonomousDevelopmentPlatform/Generated
+```
diff --git a/specification/adp/resource-manager/readme.go.md b/specification/adp/resource-manager/readme.go.md
new file mode 100644
index 000000000000..428c70e15dbb
--- /dev/null
+++ b/specification/adp/resource-manager/readme.go.md
@@ -0,0 +1,19 @@
+## Go
+
+These settings apply only when `--go` is specified on the command line.
+
+```yaml $(go)
+go:
+ license-header: MICROSOFT_APACHE_NO_VERSION
+ namespace: adp
+ clear-output-folder: true
+```
+
+### Tag: package-2020-07-01-preview and go
+
+These settings apply only when `--tag=package-2020-07-01-preview --go` is specified on the command line.
+Please also specify `--go-sdks-folder=`.
+
+```yaml $(tag) == 'package-2020-07-01-preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/adp/mgmt/2019-07-01-preview
+```
diff --git a/specification/adp/resource-manager/readme.md b/specification/adp/resource-manager/readme.md
new file mode 100644
index 000000000000..fbcf3b99cb44
--- /dev/null
+++ b/specification/adp/resource-manager/readme.md
@@ -0,0 +1,81 @@
+# adp
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for adp.
+
+## 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 adp.
+
+```yaml
+title: AdpManagementClient
+openapi-type: arm
+tag: package-2020-07-01-preview
+```
+
+### Tag: package-2020-07-01-preview
+
+These settings apply only when `--tag=package-2020-07-01-preview` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-07-01-preview'
+input-file:
+ - Microsoft.AutonomousDevelopmentPlatform/preview/2020-07-01-preview/adp.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-java
+ - repo: azure-sdk-for-go
+ - repo: azure-sdk-for-js
+ - repo: azure-sdk-for-ruby
+ after_scripts:
+ - bundle install && rake arm:regen_all_profiles['azure_mgmt_adp']
+ - repo: azure-cli-extensions
+```
+
+## Go
+
+See configuration in [readme.go.md](./readme.go.md)
+
+## Python
+
+See configuration in [readme.python.md](./readme.python.md)
+
+## Ruby
+
+See configuration in [readme.ruby.md](./readme.ruby.md)
+
+## TypeScript
+
+See configuration in [readme.typescript.md](./readme.typescript.md)
+
+## CSharp
+
+See configuration in [readme.csharp.md](./readme.csharp.md)
diff --git a/specification/adp/resource-manager/readme.python.md b/specification/adp/resource-manager/readme.python.md
new file mode 100644
index 000000000000..07758b81e1ea
--- /dev/null
+++ b/specification/adp/resource-manager/readme.python.md
@@ -0,0 +1,35 @@
+## 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-adp
+clear-output-folder: true
+no-namespace-folders: true
+modelerfour:
+ lenient-model-deduplication: true
+```
+
+```yaml $(multiapi)
+clear-output-folder: true
+batch:
+ - tag: package-2020-07-01-preview
+ - multiapiscript: true
+```
+
+``` yaml $(multiapiscript)
+output-folder: $(python-sdks-folder)/adp/azure-mgmt-adp/azure/mgmt/adp/
+clear-output-folder: false
+perform-load: false
+```
+
+``` yaml $(tag) == 'package-2020-07-01-preview'
+namespace: azure.mgmt.adp.v2020_07_01_preview
+output-folder: $(python-sdks-folder)/adp/azure-mgmt-adp/azure/mgmt/adp/v2020_07_01_preview
+python:
+ namespace: azure.mgmt.adp.v2020_07_01_preview
+ output-folder: $(python-sdks-folder)/adp/azure-mgmt-adp/azure/mgmt/adp/v2020_07_01_preview
+```
diff --git a/specification/adp/resource-manager/readme.ruby.md b/specification/adp/resource-manager/readme.ruby.md
new file mode 100644
index 000000000000..cedab1ae4f5d
--- /dev/null
+++ b/specification/adp/resource-manager/readme.ruby.md
@@ -0,0 +1,25 @@
+## Ruby
+
+These settings apply only when `--ruby` is specified on the command line.
+
+```yaml
+package-name: azure_mgmt_adp
+package-version: 2020-07-01-preview
+azure-arm: true
+```
+
+``` yaml $(ruby) && $(multiapi)
+batch:
+ - tag: package-2020-07-01-preview
+```
+
+
+### Tag: package-2020-07-01-preview and ruby
+
+These settings apply only when `--tag=package-2020-07-01-preview --ruby` is specified on the command line.
+Please also specify `--ruby-sdks-folder=`.
+
+```yaml $(tag) == 'package-2020-07-01-preview' && $(ruby)
+namespace: Azure::AutonomousDevelopmentPlatform::Mgmt::V2020_07_01_preview
+output-folder: $(ruby-sdks-folder)/management/azure_mgmt_adp/lib
+```
diff --git a/specification/adp/resource-manager/readme.typescript.md b/specification/adp/resource-manager/readme.typescript.md
new file mode 100644
index 000000000000..5bc90c6d3cbd
--- /dev/null
+++ b/specification/adp/resource-manager/readme.typescript.md
@@ -0,0 +1,14 @@
+## 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: "adp"
+ output-folder: "$(typescript-sdks-folder)/sdk/adp/arm-adp"
+ payload-flattening-threshold: 1
+ generate-metadata: true
+ override-client-name: AdpManagementClient
+```
diff --git a/specification/advisor/resource-manager/readme.azureresourceschema.md b/specification/advisor/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..8419f1c1778c
--- /dev/null
+++ b/specification/advisor/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,72 @@
+## 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 1ac722c6bee0..a686c40128f2 100644
--- a/specification/advisor/resource-manager/readme.md
+++ b/specification/advisor/resource-manager/readme.md
@@ -90,6 +90,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- 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
@@ -145,30 +148,7 @@ csharp:
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Advisor/preview/2020-07-01-preview/advisor.json
- - $(this-folder)/Microsoft.Advisor/stable/2020-01-01/advisor.json
- - $(this-folder)/Microsoft.Advisor/stable/2017-04-19/advisor.json
- - $(this-folder)/Microsoft.Advisor/stable/2017-03-31/advisor.json
- - $(this-folder)/Microsoft.Advisor/preview/2016-07-12-preview/advisor.json
-
-```
-
-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/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2019-05-05-preview/ActionRules.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2019-05-05-preview/ActionRules.json
new file mode 100644
index 000000000000..a441d6e0b967
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2019-05-05-preview/ActionRules.json
@@ -0,0 +1,944 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2019-05-05-preview",
+ "title": "Azure Alerts Management Service Resource Provider",
+ "description": "APIs for Azure Action Rules CRUD operations."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/actionRules": {
+ "get": {
+ "summary": "Get all action rule in a given subscription",
+ "description": "List all action rules of the subscription and given input filters",
+ "operationId": "ActionRules_ListBySubscription",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/targetResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/targetResourceType"
+ },
+ {
+ "$ref": "#/parameters/targetResource"
+ },
+ {
+ "$ref": "#/parameters/severity"
+ },
+ {
+ "$ref": "#/parameters/monitorService"
+ },
+ {
+ "$ref": "#/parameters/impactedScope"
+ },
+ {
+ "$ref": "#/parameters/description"
+ },
+ {
+ "$ref": "#/parameters/alertRuleId"
+ },
+ {
+ "$ref": "#/parameters/actionGroup"
+ },
+ {
+ "$ref": "#/parameters/actionRuleName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Return the list of action rules",
+ "headers": {
+ "x-ms-request-id": {
+ "type": "string",
+ "description": "Service generated Request ID."
+ }
+ },
+ "schema": {
+ "$ref": "#/definitions/ActionRulesList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/errorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetActionRulesSubscriptionWide": {
+ "$ref": "./examples/ActionRules_List_Subscription.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/actionRules": {
+ "get": {
+ "summary": "Get all action rules created in a resource group",
+ "operationId": "ActionRules_ListByResourceGroup",
+ "description": "List all action rules of the subscription, created in given resource group and given input filters",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/targetResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/targetResourceType"
+ },
+ {
+ "$ref": "#/parameters/targetResource"
+ },
+ {
+ "$ref": "#/parameters/severity"
+ },
+ {
+ "$ref": "#/parameters/monitorService"
+ },
+ {
+ "$ref": "#/parameters/impactedScope"
+ },
+ {
+ "$ref": "#/parameters/description"
+ },
+ {
+ "$ref": "#/parameters/alertRuleId"
+ },
+ {
+ "$ref": "#/parameters/actionGroup"
+ },
+ {
+ "$ref": "#/parameters/actionRuleName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Return the list of action rules",
+ "headers": {
+ "x-ms-request-id": {
+ "type": "string",
+ "description": "Service generated Request ID."
+ }
+ },
+ "schema": {
+ "$ref": "#/definitions/ActionRulesList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/errorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetActionRulesResourceGroupWide": {
+ "$ref": "./examples/ActionRules_List_ResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/actionRules/{actionRuleName}": {
+ "get": {
+ "summary": "Get action rule by name",
+ "operationId": "ActionRules_GetByName",
+ "description": "Get a specific action rule",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "actionRuleName",
+ "in": "path",
+ "description": "The name of action rule that needs to be fetched",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Returns the specific action rule",
+ "headers": {
+ "x-ms-request-id": {
+ "type": "string",
+ "description": "Service generated Request ID."
+ }
+ },
+ "schema": {
+ "$ref": "#/definitions/ActionRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/errorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetActionRuleById": {
+ "$ref": "./examples/ActionRules_GetById.json"
+ }
+ }
+ },
+ "put": {
+ "summary": "Create/update an action rule",
+ "operationId": "ActionRules_CreateUpdate",
+ "description": "Creates/Updates a specific action rule",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "actionRuleName",
+ "in": "path",
+ "description": "The name of action rule that needs to be created/updated",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "actionRule",
+ "in": "body",
+ "description": "action rule to be created/updated",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ActionRule"
+ }
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Returns the created/updated action rule",
+ "headers": {
+ "x-ms-request-id": {
+ "type": "string",
+ "description": "Service generated Request ID."
+ }
+ },
+ "schema": {
+ "$ref": "#/definitions/ActionRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/errorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PutActionRule": {
+ "$ref": "./examples/ActionRules_Create_SuppressionRule.json"
+ }
+ }
+ },
+ "delete": {
+ "summary": "Delete action rule",
+ "description": "Deletes a given action rule",
+ "operationId": "ActionRules_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "actionRuleName",
+ "in": "path",
+ "description": "The name that needs to be deleted",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Returns true if deleted successfully",
+ "headers": {
+ "x-ms-request-id": {
+ "type": "string",
+ "description": "Service generated Request ID."
+ }
+ },
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/errorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DeleteActionRule": {
+ "$ref": "./examples/ActionRules_Delete.json"
+ }
+ }
+ },
+ "patch": {
+ "summary": "Patch action rule",
+ "description": "Update enabled flag and/or tags for the given action rule",
+ "operationId": "ActionRules_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "actionRuleName",
+ "in": "path",
+ "description": "The name that needs to be updated",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "actionRulePatch",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PatchObject"
+ },
+ "description": "Parameters supplied to the operation."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Returns the created/updated action rule",
+ "headers": {
+ "x-ms-request-id": {
+ "type": "string",
+ "description": "Service generated Request ID."
+ }
+ },
+ "schema": {
+ "$ref": "#/definitions/ActionRule"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/errorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PatchActionRule": {
+ "$ref": "./examples/ActionRules_Patch.json"
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "subscriptionId": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the target subscription.",
+ "minLength": 1
+ },
+ "resourceGroupName": {
+ "name": "resourceGroupName",
+ "description": "Resource group name where the resource is created.",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "api-version": {
+ "name": "api-version",
+ "description": "client API version",
+ "type": "string",
+ "in": "query",
+ "required": true,
+ "enum": [
+ "2019-05-05-preview"
+ ],
+ "x-ms-enum": {
+ "name": "api-version",
+ "modelAsString": true
+ }
+ },
+ "targetResourceGroup": {
+ "description": "Filter by target resource group name. Default value is select all.",
+ "name": "targetResourceGroup",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "targetResource": {
+ "description": "Filter by target resource( which is full ARM ID) Default value is select all.",
+ "name": "targetResource",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "targetResourceType": {
+ "description": "Filter by target resource type. Default value is select all.",
+ "name": "targetResourceType",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "monitorService": {
+ "description": "Filter by monitor service which generates the alert instance. Default value is select all.",
+ "name": "monitorService",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "Application Insights",
+ "ActivityLog Administrative",
+ "ActivityLog Security",
+ "ActivityLog Recommendation",
+ "ActivityLog Policy",
+ "ActivityLog Autoscale",
+ "Log Analytics",
+ "Nagios",
+ "Platform",
+ "SCOM",
+ "ServiceHealth",
+ "SmartDetector",
+ "VM Insights",
+ "Zabbix"
+ ],
+ "x-ms-enum": {
+ "name": "MonitorService",
+ "modelAsString": true
+ }
+ },
+ "severity": {
+ "description": "Filter by severity. Default value is select all.",
+ "name": "severity",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "Sev0",
+ "Sev1",
+ "Sev2",
+ "Sev3",
+ "Sev4"
+ ],
+ "x-ms-enum": {
+ "name": "Severity",
+ "modelAsString": true
+ }
+ },
+ "description": {
+ "description": "filter by alert rule description",
+ "name": "description",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "alertRuleId": {
+ "description": "filter by alert rule id",
+ "name": "alertRuleId",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "actionGroup": {
+ "description": "filter by action group configured as part of action rule",
+ "name": "actionGroup",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "actionRuleName": {
+ "description": "filter by action rule name",
+ "name": "name",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "impactedScope": {
+ "description": "filter by impacted/target scope (provide comma separated list for multiple scopes). The value should be an well constructed ARM id of the scope.",
+ "name": "impactedScope",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "definitions": {
+ "errorResponse": {
+ "description": "An error response from the service.",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/errorResponseBody"
+ }
+ }
+ },
+ "errorResponseBody": {
+ "description": "Details of error response.",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Error code, intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "Description of the error, intended for display in user interface."
+ },
+ "target": {
+ "type": "string",
+ "description": "Target of the particular error, for example name of the property."
+ },
+ "details": {
+ "type": "array",
+ "description": "A list of additional details about the error.",
+ "items": {
+ "$ref": "#/definitions/errorResponseBody"
+ }
+ }
+ }
+ },
+ "Resource": {
+ "x-ms-azure-resource": true,
+ "description": "An azure resource object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource Id"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource type"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource name"
+ }
+ }
+ },
+ "ManagedResource": {
+ "description": "An azure managed resource object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "required": [
+ "location"
+ ]
+ },
+ "Scope": {
+ "type": "object",
+ "description": "Target scope for a given action rule. By default scope will be the subscription. User can also provide list of resource groups or list of resources from the scope subscription as well.",
+ "properties": {
+ "scopeType": {
+ "type": "string",
+ "description": "type of target scope",
+ "enum": [
+ "ResourceGroup",
+ "Resource",
+ "Subscription"
+ ],
+ "x-ms-enum": {
+ "name": "ScopeType",
+ "modelAsString": true
+ }
+ },
+ "values": {
+ "type": "array",
+ "description": "list of ARM IDs of the given scope type which will be the target of the given action rule.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "Condition": {
+ "type": "object",
+ "description": "condition to trigger an action rule",
+ "properties": {
+ "operator": {
+ "type": "string",
+ "description": "operator for a given condition",
+ "enum": [
+ "Equals",
+ "NotEquals",
+ "Contains",
+ "DoesNotContain"
+ ],
+ "x-ms-enum": {
+ "name": "Operator",
+ "modelAsString": true
+ }
+ },
+ "values": {
+ "type": "array",
+ "description": "list of values to match for a given condition.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "Conditions": {
+ "type": "object",
+ "description": "Conditions in alert instance to be matched for a given action rule. Default value is all. Multiple values could be provided with comma separation.",
+ "properties": {
+ "severity": {
+ "description": "filter alerts by severity",
+ "$ref": "#/definitions/Condition"
+ },
+ "monitorService": {
+ "description": "filter alerts by monitor service",
+ "$ref": "#/definitions/Condition"
+ },
+ "monitorCondition": {
+ "description": "filter alerts by monitor condition",
+ "$ref": "#/definitions/Condition"
+ },
+ "targetResourceType": {
+ "description": "filter alerts by target resource type",
+ "$ref": "#/definitions/Condition"
+ },
+ "alertRuleId": {
+ "description": "filter alerts by alert rule id",
+ "$ref": "#/definitions/Condition"
+ },
+ "description": {
+ "description": "filter alerts by alert rule description",
+ "$ref": "#/definitions/Condition"
+ },
+ "alertContext": {
+ "description": "filter alerts by alert context (payload)",
+ "$ref": "#/definitions/Condition"
+ }
+ }
+ },
+ "SuppressionConfig": {
+ "type": "object",
+ "description": "Suppression logic for a given action rule",
+ "required": [
+ "recurrenceType"
+ ],
+ "properties": {
+ "recurrenceType": {
+ "type": "string",
+ "description": "Specifies when the suppression should be applied",
+ "enum": [
+ "Always",
+ "Once",
+ "Daily",
+ "Weekly",
+ "Monthly"
+ ],
+ "x-ms-enum": {
+ "name": "SuppressionType",
+ "modelAsString": true
+ }
+ },
+ "schedule": {
+ "description": "suppression schedule configuration",
+ "$ref": "#/definitions/SuppressionSchedule"
+ }
+ }
+ },
+ "SuppressionSchedule": {
+ "type": "object",
+ "description": "Schedule for a given suppression configuration.",
+ "properties": {
+ "startDate": {
+ "type": "string",
+ "description": "Start date for suppression"
+ },
+ "endDate": {
+ "type": "string",
+ "description": "End date for suppression"
+ },
+ "startTime": {
+ "type": "string",
+ "description": "Start time for suppression"
+ },
+ "endTime": {
+ "type": "string",
+ "description": "End date for suppression"
+ },
+ "recurrenceValues": {
+ "type": "array",
+ "description": "Specifies the values for recurrence pattern",
+ "items": {
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "ActionRule": {
+ "description": "Action rule object containing target scope, conditions and suppression logic",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ManagedResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "action rule properties",
+ "$ref": "#/definitions/ActionRuleProperties"
+ }
+ }
+ },
+ "ActionRuleProperties": {
+ "description": "Action rule properties defining scope, conditions, suppression logic for action rule",
+ "discriminator": "type",
+ "required": [
+ "type"
+ ],
+ "properties": {
+ "scope": {
+ "description": "scope on which action rule will apply",
+ "$ref": "#/definitions/Scope"
+ },
+ "conditions": {
+ "description": "conditions on which alerts will be filtered",
+ "$ref": "#/definitions/Conditions"
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of action rule"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Creation time of action rule. Date-Time in ISO-8601 format.",
+ "readOnly": true
+ },
+ "lastModifiedAt": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Last updated time of action rule. Date-Time in ISO-8601 format.",
+ "readOnly": true
+ },
+ "createdBy": {
+ "type": "string",
+ "description": "Created by user name.",
+ "readOnly": true
+ },
+ "lastModifiedBy": {
+ "type": "string",
+ "description": "Last modified by user name.",
+ "readOnly": true
+ },
+ "status": {
+ "type": "string",
+ "description": "Indicates if the given action rule is enabled or disabled",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "ActionRuleStatus",
+ "modelAsString": true
+ }
+ },
+ "type": {
+ "type": "string",
+ "description": "Indicates type of action rule",
+ "enum": [
+ "Suppression",
+ "ActionGroup",
+ "Diagnostics"
+ ],
+ "x-ms-enum": {
+ "name": "ActionRuleType",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "Suppression": {
+ "title": "Suppression based Action Rule",
+ "description": "Action rule with suppression configuration",
+ "required": [
+ "suppressionConfig"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/ActionRuleProperties"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "suppressionConfig": {
+ "description": "suppression configuration for the action rule",
+ "$ref": "#/definitions/SuppressionConfig"
+ }
+ }
+ }
+ ]
+ },
+ "ActionGroup": {
+ "title": "Action Group based Action Rule",
+ "description": "Action rule with action group configuration",
+ "required": [
+ "actionGroupId"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/ActionRuleProperties"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "actionGroupId": {
+ "type": "string",
+ "description": "Action group to trigger if action rule matches"
+ }
+ }
+ }
+ ]
+ },
+ "Diagnostics": {
+ "title": "Diagnostics based Action Rule",
+ "description": "Action rule with diagnostics configuration",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ActionRuleProperties"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "ActionRulesList": {
+ "description": "List of action rules",
+ "properties": {
+ "nextLink": {
+ "type": "string",
+ "description": "URL to fetch the next set of action rules"
+ },
+ "value": {
+ "type": "array",
+ "description": "List of action rules",
+ "items": {
+ "$ref": "#/definitions/ActionRule"
+ }
+ }
+ }
+ },
+ "PatchProperties": {
+ "description": "Action rule properties supported by patch",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "Indicates if the given action rule is enabled or disabled",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "ActionRuleStatus",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "PatchObject": {
+ "description": "Data contract for patch",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "properties supported by patch operation",
+ "$ref": "#/definitions/PatchProperties"
+ },
+ "tags": {
+ "type": "object",
+ "description": "tags to be updated"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2019-05-05-preview/AlertsManagement.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2019-05-05-preview/AlertsManagement.json
index 608116ab02a9..8ae19f29a9e5 100644
--- a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2019-05-05-preview/AlertsManagement.json
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2019-05-05-preview/AlertsManagement.json
@@ -158,7 +158,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
+ "$ref": "#/definitions/errorResponse"
}
}
},
@@ -201,7 +201,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
+ "$ref": "#/definitions/errorResponse"
}
}
},
@@ -240,7 +240,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
+ "$ref": "#/definitions/errorResponse"
}
}
},
@@ -276,7 +276,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
+ "$ref": "#/definitions/errorResponse"
}
}
},
@@ -345,7 +345,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
+ "$ref": "#/definitions/errorResponse"
}
}
},
@@ -355,1456 +355,420 @@
}
}
}
- },
- "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/smartGroups": {
- "get": {
- "operationId": "SmartGroups_GetAll",
- "summary": "Get all Smart Groups within a specified subscription",
- "description": "List all the Smart Groups within a specified subscription. ",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/targetResource"
- },
- {
- "$ref": "#/parameters/targetResourceGroup"
- },
- {
- "$ref": "#/parameters/targetResourceType"
- },
- {
- "$ref": "#/parameters/monitorService"
- },
- {
- "$ref": "#/parameters/monitorCondition"
- },
- {
- "$ref": "#/parameters/severity"
- },
- {
- "$ref": "#/parameters/smartGroupState"
- },
- {
- "$ref": "#/parameters/timeRange"
- },
- {
- "$ref": "#/parameters/pageCount"
- },
- {
- "$ref": "#/parameters/smartGroupsSortBy"
- },
- {
- "$ref": "#/parameters/sortOrder"
- },
- {
- "$ref": "#/parameters/api-version"
- }
- ],
- "produces": [
- "application/json"
- ],
- "responses": {
- "200": {
- "description": "OK. Returns list of all smartGroups.",
- "schema": {
- "$ref": "#/definitions/smartGroupsList",
- "description": "List of smart groups in value property."
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
- },
- "x-ms-examples": {
- "List": {
- "$ref": "./examples/SmartGroups_List.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/smartGroups/{smartGroupId}": {
- "get": {
- "operationId": "SmartGroups_GetById",
- "summary": "Get information related to a specific Smart Group.",
- "description": "Get information related to a specific Smart Group.",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/smartGroupId"
- },
- {
- "$ref": "#/parameters/api-version"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. Returns the group with the specified smart group Id.",
- "headers": {
- "x-ms-request-id": {
- "type": "string",
- "description": "Service generated Request ID."
- }
- },
- "schema": {
- "$ref": "#/definitions/smartGroup"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Get": {
- "$ref": "./examples/SmartGroups_GetById.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/smartGroups/{smartGroupId}/changeState": {
- "post": {
- "operationId": "SmartGroups_ChangeState",
- "description": "Change the state of a Smart Group.",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/smartGroupId"
- },
- {
- "$ref": "#/parameters/api-version"
- },
- {
- "$ref": "#/parameters/newState"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. Smart Group state updated.",
- "headers": {
- "x-ms-request-id": {
- "type": "string",
- "description": "Service generated Request ID."
- }
- },
- "schema": {
- "$ref": "#/definitions/smartGroup"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "changestate": {
- "$ref": "./examples/SmartGroups_ChangeState.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/smartGroups/{smartGroupId}/history": {
- "get": {
- "operationId": "SmartGroups_GetHistory",
- "description": "Get the history a smart group, which captures any Smart Group state changes (New/Acknowledged/Closed) .",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/smartGroupId"
- },
- {
- "$ref": "#/parameters/api-version"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. Returns the list of changes of smart group.",
- "schema": {
- "$ref": "#/definitions/smartGroupModification"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Resolve": {
- "$ref": "./examples/SmartGroups_History.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/actionRules": {
- "get": {
- "summary": "Get all action rule in a given subscription",
- "description": "List all action rules of the subscription and given input filters",
- "operationId": "ActionRules_ListBySubscription",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/targetResourceGroup"
- },
- {
- "$ref": "#/parameters/targetResourceType"
- },
- {
- "$ref": "#/parameters/targetResource"
- },
- {
- "$ref": "#/parameters/severity"
- },
- {
- "$ref": "#/parameters/monitorService"
- },
- {
- "$ref": "#/parameters/impactedScope"
- },
- {
- "$ref": "#/parameters/description"
- },
- {
- "$ref": "#/parameters/alertRuleId"
- },
- {
- "$ref": "#/parameters/actionGroup"
- },
- {
- "$ref": "#/parameters/actionRuleName"
- },
- {
- "$ref": "#/parameters/api-version"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. Return the list of action rules",
- "headers": {
- "x-ms-request-id": {
- "type": "string",
- "description": "Service generated Request ID."
- }
- },
- "schema": {
- "$ref": "#/definitions/ActionRulesList"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
- },
- "x-ms-examples": {
- "GetActionRulesSubscriptionWide": {
- "$ref": "./examples/ActionRules_List_Subscription.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/actionRules": {
- "get": {
- "summary": "Get all action rules created in a resource group",
- "operationId": "ActionRules_ListByResourceGroup",
- "description": "List all action rules of the subscription, created in given resource group and given input filters",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/resourceGroupName"
- },
- {
- "$ref": "#/parameters/targetResourceGroup"
- },
- {
- "$ref": "#/parameters/targetResourceType"
- },
- {
- "$ref": "#/parameters/targetResource"
- },
- {
- "$ref": "#/parameters/severity"
- },
- {
- "$ref": "#/parameters/monitorService"
- },
- {
- "$ref": "#/parameters/impactedScope"
- },
- {
- "$ref": "#/parameters/description"
- },
- {
- "$ref": "#/parameters/alertRuleId"
- },
- {
- "$ref": "#/parameters/actionGroup"
- },
- {
- "$ref": "#/parameters/actionRuleName"
- },
- {
- "$ref": "#/parameters/api-version"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. Return the list of action rules",
- "headers": {
- "x-ms-request-id": {
- "type": "string",
- "description": "Service generated Request ID."
- }
- },
- "schema": {
- "$ref": "#/definitions/ActionRulesList"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
- }
- }
- },
- "x-ms-pageable": {
- "nextLinkName": "nextLink"
- },
- "x-ms-examples": {
- "GetActionRulesResourceGroupWide": {
- "$ref": "./examples/ActionRules_List_ResourceGroup.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/actionRules/{actionRuleName}": {
- "get": {
- "summary": "Get action rule by name",
- "operationId": "ActionRules_GetByName",
- "description": "Get a specific action rule",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/resourceGroupName"
- },
- {
- "name": "actionRuleName",
- "in": "path",
- "description": "The name of action rule that needs to be fetched",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/api-version"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. Returns the specific action rule",
- "headers": {
- "x-ms-request-id": {
- "type": "string",
- "description": "Service generated Request ID."
- }
- },
- "schema": {
- "$ref": "#/definitions/ActionRule"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "GetActionRuleById": {
- "$ref": "./examples/ActionRules_GetById.json"
- }
- }
- },
- "put": {
- "summary": "Create/update an action rule",
- "operationId": "ActionRules_CreateUpdate",
- "description": "Creates/Updates a specific action rule",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/resourceGroupName"
- },
- {
- "name": "actionRuleName",
- "in": "path",
- "description": "The name of action rule that needs to be created/updated",
- "required": true,
- "type": "string"
- },
- {
- "name": "actionRule",
- "in": "body",
- "description": "action rule to be created/updated",
- "required": true,
- "schema": {
- "$ref": "#/definitions/ActionRule"
- }
- },
- {
- "$ref": "#/parameters/api-version"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. Returns the created/updated action rule",
- "headers": {
- "x-ms-request-id": {
- "type": "string",
- "description": "Service generated Request ID."
- }
- },
- "schema": {
- "$ref": "#/definitions/ActionRule"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "PutActionRule": {
- "$ref": "./examples/ActionRules_Create_SuppressionRule.json"
- }
- }
- },
- "delete": {
- "summary": "Delete action rule",
- "description": "Deletes a given action rule",
- "operationId": "ActionRules_Delete",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/resourceGroupName"
- },
- {
- "name": "actionRuleName",
- "in": "path",
- "description": "The name that needs to be deleted",
- "required": true,
- "type": "string"
- },
- {
- "$ref": "#/parameters/api-version"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. Returns true if deleted successfully",
- "headers": {
- "x-ms-request-id": {
- "type": "string",
- "description": "Service generated Request ID."
- }
- },
- "schema": {
- "type": "boolean"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "DeleteActionRule": {
- "$ref": "./examples/ActionRules_Delete.json"
- }
- }
- },
- "patch": {
- "summary": "Patch action rule",
- "description": "Update enabled flag and/or tags for the given action rule",
- "operationId": "ActionRules_Update",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/resourceGroupName"
- },
- {
- "name": "actionRuleName",
- "in": "path",
- "description": "The name that needs to be updated",
- "required": true,
- "type": "string"
- },
- {
- "name": "actionRulePatch",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/PatchObject"
- },
- "description": "Parameters supplied to the operation."
- },
- {
- "$ref": "#/parameters/api-version"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. Returns the created/updated action rule",
- "headers": {
- "x-ms-request-id": {
- "type": "string",
- "description": "Service generated Request ID."
- }
- },
- "schema": {
- "$ref": "#/definitions/ActionRule"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "PatchActionRule": {
- "$ref": "./examples/ActionRules_Patch.json"
- }
- }
- }
- }
- },
- "parameters": {
- "subscriptionId": {
- "name": "subscriptionId",
- "in": "path",
- "required": true,
- "type": "string",
- "description": "The ID of the target subscription.",
- "minLength": 1
- },
- "resourceGroupName": {
- "name": "resourceGroupName",
- "description": "Resource group name where the resource is created.",
- "type": "string",
- "in": "path",
- "required": true,
- "x-ms-parameter-location": "method"
- },
- "api-version": {
- "name": "api-version",
- "description": "client API version",
- "type": "string",
- "in": "query",
- "required": true,
- "enum": [
- "2019-05-05-preview"
- ],
- "x-ms-enum": {
- "name": "api-version",
- "modelAsString": true
- }
- },
- "alertId": {
- "name": "alertId",
- "description": "Unique ID of an alert instance.",
- "type": "string",
- "in": "path",
- "required": true,
- "x-ms-parameter-location": "method"
- },
- "targetResourceGroup": {
- "description": "Filter by target resource group name. Default value is select all.",
- "name": "targetResourceGroup",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method"
- },
- "targetResource": {
- "description": "Filter by target resource( which is full ARM ID) Default value is select all.",
- "name": "targetResource",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method"
- },
- "targetResourceType": {
- "description": "Filter by target resource type. Default value is select all.",
- "name": "targetResourceType",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method"
- },
- "monitorService": {
- "description": "Filter by monitor service which generates the alert instance. Default value is select all.",
- "name": "monitorService",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method",
- "enum": [
- "Application Insights",
- "ActivityLog Administrative",
- "ActivityLog Security",
- "ActivityLog Recommendation",
- "ActivityLog Policy",
- "ActivityLog Autoscale",
- "Log Analytics",
- "Nagios",
- "Platform",
- "SCOM",
- "ServiceHealth",
- "SmartDetector",
- "VM Insights",
- "Zabbix"
- ],
- "x-ms-enum": {
- "name": "MonitorService",
- "modelAsString": true
- }
- },
- "severity": {
- "description": "Filter by severity. Default value is select all.",
- "name": "severity",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method",
- "enum": [
- "Sev0",
- "Sev1",
- "Sev2",
- "Sev3",
- "Sev4"
- ],
- "x-ms-enum": {
- "name": "Severity",
- "modelAsString": true
- }
- },
- "smartGroupIdFilter": {
- "description": "Filter the alerts list by the Smart Group Id. Default value is none.",
- "name": "smartGroupId",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method"
- },
- "smartGroupId": {
- "description": "Smart group unique id. ",
- "name": "smartGroupId",
- "type": "string",
- "in": "path",
- "required": true,
- "x-ms-parameter-location": "method"
- },
- "newState": {
- "description": "New state of the alert.",
- "name": "newState",
- "type": "string",
- "in": "query",
- "required": true,
- "x-ms-parameter-location": "method",
- "enum": [
- "New",
- "Acknowledged",
- "Closed"
- ],
- "x-ms-enum": {
- "name": "AlertState",
- "modelAsString": true
- }
- },
- "alertState": {
- "description": "Filter by state of the alert instance. Default value is to select all.",
- "name": "alertState",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method",
- "enum": [
- "New",
- "Acknowledged",
- "Closed"
- ],
- "x-ms-enum": {
- "name": "AlertState",
- "modelAsString": true
- }
- },
- "smartGroupState": {
- "description": "Filter by state of the smart group. Default value is to select all.",
- "name": "smartGroupState",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method",
- "enum": [
- "New",
- "Acknowledged",
- "Closed"
- ],
- "x-ms-enum": {
- "name": "AlertState",
- "modelAsString": true
- }
- },
- "monitorCondition": {
- "description": "Filter by monitor condition which is either 'Fired' or 'Resolved'. Default value is to select all.",
- "name": "monitorCondition",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method",
- "enum": [
- "Fired",
- "Resolved"
- ],
- "x-ms-enum": {
- "name": "MonitorCondition",
- "modelAsString": true
- }
- },
- "alertRule": {
- "description": "Filter by specific alert rule. Default value is to select all.",
- "name": "alertRule",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method"
- },
- "timeRange": {
- "description": "Filter by time range by below listed values. Default value is 1 day.",
- "name": "timeRange",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method",
- "enum": [
- "1h",
- "1d",
- "7d",
- "30d"
- ],
- "x-ms-enum": {
- "name": "TimeRange",
- "modelAsString": true
- }
- },
- "customTimeRange": {
- "description": "Filter by custom time range in the format / where time is in (ISO-8601 format)'. Permissible values is within 30 days from query time. Either timeRange or customTimeRange could be used but not both. Default is none.",
- "name": "customTimeRange",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method"
- },
- "includeContext": {
- "description": "Include context which has contextual data specific to the monitor service. Default value is false'",
- "name": "includeContext",
- "type": "boolean",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method"
- },
- "includeEgressConfig": {
- "description": "Include egress config which would be used for displaying the content in portal. Default value is 'false'.",
- "name": "includeEgressConfig",
- "type": "boolean",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method"
- },
- "includeSmartGroupsCount": {
- "description": "Include count of the SmartGroups as part of the summary. Default value is 'false'.",
- "name": "includeSmartGroupsCount",
- "type": "boolean",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method"
- },
- "pageCount": {
- "description": "Determines number of alerts returned per page in response. Permissible value is between 1 to 250. When the \"includeContent\" filter is selected, maximum value allowed is 25. Default value is 25.",
- "name": "pageCount",
- "type": "integer",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method"
- },
- "alertsSortBy": {
- "description": "Sort the query results by input field, Default value is 'lastModifiedDateTime'.",
- "name": "sortBy",
+ }
+ },
+ "parameters": {
+ "subscriptionId": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
"type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method",
- "enum": [
- "name",
- "severity",
- "alertState",
- "monitorCondition",
- "targetResource",
- "targetResourceName",
- "targetResourceGroup",
- "targetResourceType",
- "startDateTime",
- "lastModifiedDateTime"
- ],
- "x-ms-enum": {
- "name": "AlertsSortByFields",
- "modelAsString": true
- }
+ "description": "The ID of the target subscription.",
+ "minLength": 1
},
- "alertsSummaryGroupBy": {
- "description": "This parameter allows the result set to be grouped by input fields (Maximum 2 comma separated fields supported). For example, groupby=severity or groupby=severity,alertstate.",
- "name": "groupby",
+ "api-version": {
+ "name": "api-version",
+ "description": "client API version",
"type": "string",
"in": "query",
"required": true,
- "x-ms-parameter-location": "method",
- "enum": [
- "severity",
- "alertState",
- "monitorCondition",
- "monitorService",
- "signalType",
- "alertRule"
- ],
- "x-ms-enum": {
- "name": "AlertsSummaryGroupByFields",
- "modelAsString": true
- }
- },
- "smartGroupsSortBy": {
- "description": "Sort the query results by input field. Default value is sort by 'lastModifiedDateTime'.",
- "name": "sortBy",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method",
"enum": [
- "alertsCount",
- "state",
- "severity",
- "startDateTime",
- "lastModifiedDateTime"
+ "2019-05-05-preview"
],
"x-ms-enum": {
- "name": "SmartGroupsSortByFields",
+ "name": "api-version",
"modelAsString": true
}
},
- "sortOrder": {
- "description": "Sort the query results order in either ascending or descending. Default value is 'desc' for time fields and 'asc' for others.",
- "name": "sortOrder",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method",
- "enum": [
- "asc",
- "desc"
- ]
- },
- "select": {
- "description": "This filter allows to selection of the fields(comma separated) which would be part of the essential section. This would allow to project only the required fields rather than getting entire content. Default is to fetch all the fields in the essentials section.",
- "name": "select",
- "type": "string",
- "in": "query",
- "required": false,
- "x-ms-parameter-location": "method"
- },
- "description": {
- "description": "filter by alert rule description",
- "name": "description",
+ "alertId": {
+ "name": "alertId",
+ "description": "Unique ID of an alert instance.",
"type": "string",
- "in": "query",
- "required": false,
+ "in": "path",
+ "required": true,
"x-ms-parameter-location": "method"
},
- "alertRuleId": {
- "description": "filter by alert rule id",
- "name": "alertRuleId",
+ "targetResourceGroup": {
+ "description": "Filter by target resource group name. Default value is select all.",
+ "name": "targetResourceGroup",
"type": "string",
"in": "query",
"required": false,
"x-ms-parameter-location": "method"
},
- "actionGroup": {
- "description": "filter by action group configured as part of action rule",
- "name": "actionGroup",
+ "targetResource": {
+ "description": "Filter by target resource( which is full ARM ID) Default value is select all.",
+ "name": "targetResource",
"type": "string",
"in": "query",
"required": false,
"x-ms-parameter-location": "method"
},
- "actionRuleName": {
- "description": "filter by action rule name",
- "name": "name",
+ "targetResourceType": {
+ "description": "Filter by target resource type. Default value is select all.",
+ "name": "targetResourceType",
"type": "string",
"in": "query",
"required": false,
"x-ms-parameter-location": "method"
},
- "impactedScope": {
- "description": "filter by impacted/target scope (provide comma separated list for multiple scopes). The value should be an well constructed ARM id of the scope.",
- "name": "impactedScope",
+ "monitorService": {
+ "description": "Filter by monitor service which generates the alert instance. Default value is select all.",
+ "name": "monitorService",
"type": "string",
"in": "query",
"required": false,
- "x-ms-parameter-location": "method"
- },
- "identifier": {
- "name": "identifier",
- "description": "Identification of the information to be retrieved by API call.",
- "type": "string",
- "in": "query",
- "required": true,
+ "x-ms-parameter-location": "method",
"enum": [
- "MonitorServiceList"
- ],
- "x-ms-enum": {
- "name": "identifier",
- "modelAsString": true
- },
- "x-ms-parameter-location": "method"
- }
- },
- "definitions": {
- "operation": {
- "description": "Operation provided by provider",
- "properties": {
- "name": {
- "type": "string",
- "description": "Name of the operation"
- },
- "display": {
- "type": "object",
- "description": "Properties of the operation",
- "properties": {
- "provider": {
- "type": "string",
- "description": "Provider name"
- },
- "resource": {
- "type": "string",
- "description": "Resource name"
- },
- "operation": {
- "type": "string",
- "description": "Operation name"
- },
- "description": {
- "type": "string",
- "description": "Description of the operation"
- }
- }
- }
- }
- },
- "operationsList": {
- "description": "Lists the operations available in the AlertsManagement RP.",
- "properties": {
- "nextLink": {
- "description": "URL to fetch the next set of alerts.",
- "type": "string"
- },
- "value": {
- "description": "Array of operations",
- "type": "array",
- "items": {
- "$ref": "#/definitions/operation"
- }
- }
- },
- "required": [
- "value"
- ]
- },
- "AlertsManagementErrorResponse": {
- "description": "An error response from the service.",
- "properties": {
- "error": {
- "$ref": "#/definitions/errorResponseBody"
- }
- }
- },
- "errorResponseBody": {
- "description": "Details of error response.",
- "properties": {
- "code": {
- "type": "string",
- "description": "Error code, intended to be consumed programmatically."
- },
- "message": {
- "type": "string",
- "description": "Description of the error, intended for display in user interface."
- },
- "target": {
- "type": "string",
- "description": "Target of the particular error, for example name of the property."
- },
- "details": {
- "type": "array",
- "description": "A list of additional details about the error.",
- "items": {
- "$ref": "#/definitions/errorResponseBody"
- }
- }
- }
- },
- "Resource": {
- "x-ms-azure-resource": true,
- "description": "An azure resource object",
- "properties": {
- "id": {
- "type": "string",
- "readOnly": true,
- "description": "Azure resource Id"
- },
- "type": {
- "type": "string",
- "readOnly": true,
- "description": "Azure resource type"
- },
- "name": {
- "type": "string",
- "readOnly": true,
- "description": "Azure resource name"
- }
- }
- },
- "ManagedResource": {
- "description": "An azure managed resource object",
- "allOf": [
- {
- "$ref": "#/definitions/Resource"
- }
- ],
- "properties": {
- "location": {
- "type": "string",
- "description": "Resource location",
- "x-ms-mutability": [
- "create",
- "read"
- ]
- },
- "tags": {
- "additionalProperties": {
- "type": "string"
- },
- "description": "Resource tags"
- }
- },
- "required": [
- "location"
- ]
- },
- "alert": {
- "description": "An alert created in alert management service.",
- "allOf": [
- {
- "$ref": "#/definitions/Resource"
- }
+ "Application Insights",
+ "ActivityLog Administrative",
+ "ActivityLog Security",
+ "ActivityLog Recommendation",
+ "ActivityLog Policy",
+ "ActivityLog Autoscale",
+ "Log Analytics",
+ "Nagios",
+ "Platform",
+ "SCOM",
+ "ServiceHealth",
+ "SmartDetector",
+ "VM Insights",
+ "Zabbix"
],
- "properties": {
- "properties": {
- "$ref": "#/definitions/alertProperties"
- }
+ "x-ms-enum": {
+ "name": "MonitorService",
+ "modelAsString": true
}
},
- "alertsList": {
- "description": "List the alerts.",
- "properties": {
- "nextLink": {
- "description": "URL to fetch the next set of alerts.",
- "type": "string"
- },
- "value": {
- "description": "List of alerts",
- "type": "array",
- "items": {
- "$ref": "#/definitions/alert"
- }
- }
+ "severity": {
+ "description": "Filter by severity. Default value is select all.",
+ "name": "severity",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "Sev0",
+ "Sev1",
+ "Sev2",
+ "Sev3",
+ "Sev4"
+ ],
+ "x-ms-enum": {
+ "name": "Severity",
+ "modelAsString": true
}
},
- "alertProperties": {
- "type": "object",
- "description": "Alert property bag",
- "properties": {
- "essentials": {
- "$ref": "#/definitions/essentials"
- },
- "context": {
- "$ref": "#/definitions/alertContext"
- },
- "egressConfig": {
- "$ref": "#/definitions/egressConfig"
- }
- }
+ "smartGroupIdFilter": {
+ "description": "Filter the alerts list by the Smart Group Id. Default value is none.",
+ "name": "smartGroupId",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
},
- "egressConfig": {
- "type": "object",
- "description": "Config which would be used for displaying the data in portal.",
- "readOnly": true
+ "newState": {
+ "description": "New state of the alert.",
+ "name": "newState",
+ "type": "string",
+ "in": "query",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "New",
+ "Acknowledged",
+ "Closed"
+ ],
+ "x-ms-enum": {
+ "name": "AlertState",
+ "modelAsString": true
+ }
},
- "alertContext": {
- "type": "object",
- "description": "Information specific to the monitor service that gives more contextual details about the alert.",
- "readOnly": true
+ "alertState": {
+ "description": "Filter by state of the alert instance. Default value is to select all.",
+ "name": "alertState",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "New",
+ "Acknowledged",
+ "Closed"
+ ],
+ "x-ms-enum": {
+ "name": "AlertState",
+ "modelAsString": true
+ }
},
- "essentials": {
- "type": "object",
- "description": "This object contains consistent fields across different monitor services.",
- "properties": {
- "severity": {
- "type": "string",
- "description": "Severity of alert Sev0 being highest and Sev4 being lowest.",
- "readOnly": true,
- "enum": [
- "Sev0",
- "Sev1",
- "Sev2",
- "Sev3",
- "Sev4"
- ],
- "x-ms-enum": {
- "name": "Severity",
- "modelAsString": true
- }
- },
- "signalType": {
- "type": "string",
- "description": "The type of signal the alert is based on, which could be metrics, logs or activity logs.",
- "readOnly": true,
- "enum": [
- "Metric",
- "Log",
- "Unknown"
- ],
- "x-ms-enum": {
- "name": "SignalType",
- "modelAsString": true
- }
- },
- "alertState": {
- "type": "string",
- "description": "Alert object state, which can be modified by the user.",
- "readOnly": true,
- "enum": [
- "New",
- "Acknowledged",
- "Closed"
- ],
- "x-ms-enum": {
- "name": "AlertState",
- "modelAsString": true
- }
- },
- "monitorCondition": {
- "type": "string",
- "description": "Condition of the rule at the monitor service. It represents whether the underlying conditions have crossed the defined alert rule thresholds.",
- "readOnly": true,
- "enum": [
- "Fired",
- "Resolved"
- ],
- "x-ms-enum": {
- "name": "MonitorCondition",
- "modelAsString": true
- }
- },
- "targetResource": {
- "type": "string",
- "description": "Target ARM resource, on which alert got created."
- },
- "targetResourceName": {
- "type": "string",
- "description": "Name of the target ARM resource name, on which alert got created."
- },
- "targetResourceGroup": {
- "type": "string",
- "description": "Resource group of target ARM resource, on which alert got created."
- },
- "targetResourceType": {
- "type": "string",
- "description": "Resource type of target ARM resource, on which alert got created."
- },
- "monitorService": {
- "type": "string",
- "description": "Monitor service on which the rule(monitor) is set.",
- "readOnly": true,
- "enum": [
- "Application Insights",
- "ActivityLog Administrative",
- "ActivityLog Security",
- "ActivityLog Recommendation",
- "ActivityLog Policy",
- "ActivityLog Autoscale",
- "Log Analytics",
- "Nagios",
- "Platform",
- "SCOM",
- "ServiceHealth",
- "SmartDetector",
- "VM Insights",
- "Zabbix"
- ],
- "x-ms-enum": {
- "name": "MonitorService",
- "modelAsString": true
- }
- },
- "alertRule": {
- "type": "string",
- "description": "Rule(monitor) which fired alert instance. Depending on the monitor service, this would be ARM id or name of the rule.",
- "readOnly": true
- },
- "sourceCreatedId": {
- "type": "string",
- "description": "Unique Id created by monitor service for each alert instance. This could be used to track the issue at the monitor service, in case of Nagios, Zabbix, SCOM etc.",
- "readOnly": true
- },
- "smartGroupId": {
- "type": "string",
- "description": "Unique Id of the smart group",
- "readOnly": true
- },
- "smartGroupingReason": {
- "type": "string",
- "description": "Verbose reason describing the reason why this alert instance is added to a smart group",
- "readOnly": true
- },
- "startDateTime": {
- "type": "string",
- "format": "date-time",
- "description": "Creation time(ISO-8601 format) of alert instance.",
- "readOnly": true
- },
- "lastModifiedDateTime": {
- "type": "string",
- "format": "date-time",
- "description": "Last modification time(ISO-8601 format) of alert instance.",
- "readOnly": true
- },
- "monitorConditionResolvedDateTime": {
- "type": "string",
- "format": "date-time",
- "description": "Resolved time(ISO-8601 format) of alert instance. This will be updated when monitor service resolves the alert instance because the rule condition is no longer met.",
- "readOnly": true
- },
- "lastModifiedUserName": {
- "type": "string",
- "description": "User who last modified the alert, in case of monitor service updates user would be 'system', otherwise name of the user.",
- "readOnly": true
- }
+ "monitorCondition": {
+ "description": "Filter by monitor condition which is either 'Fired' or 'Resolved'. Default value is to select all.",
+ "name": "monitorCondition",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "Fired",
+ "Resolved"
+ ],
+ "x-ms-enum": {
+ "name": "MonitorCondition",
+ "modelAsString": true
}
},
- "alertModification": {
- "description": "Alert Modification details",
- "allOf": [
- {
- "$ref": "#/definitions/Resource"
- }
+ "alertRule": {
+ "description": "Filter by specific alert rule. Default value is to select all.",
+ "name": "alertRule",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "timeRange": {
+ "description": "Filter by time range by below listed values. Default value is 1 day.",
+ "name": "timeRange",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "1h",
+ "1d",
+ "7d",
+ "30d"
],
- "properties": {
- "properties": {
- "$ref": "#/definitions/alertModificationProperties"
- }
+ "x-ms-enum": {
+ "name": "TimeRange",
+ "modelAsString": true
}
},
- "alertModificationProperties": {
- "type": "object",
- "description": "Properties of the alert modification item.",
- "properties": {
- "alertId": {
- "type": "string",
- "description": "Unique Id of the alert for which the history is being retrieved",
- "readOnly": true
- },
- "modifications": {
- "type": "array",
- "description": "Modification details",
- "items": {
- "$ref": "#/definitions/alertModificationItem"
- }
- }
+ "customTimeRange": {
+ "description": "Filter by custom time range in the format / where time is in (ISO-8601 format)'. Permissible values is within 30 days from query time. Either timeRange or customTimeRange could be used but not both. Default is none.",
+ "name": "customTimeRange",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "includeContext": {
+ "description": "Include context which has contextual data specific to the monitor service. Default value is false'",
+ "name": "includeContext",
+ "type": "boolean",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "includeEgressConfig": {
+ "description": "Include egress config which would be used for displaying the content in portal. Default value is 'false'.",
+ "name": "includeEgressConfig",
+ "type": "boolean",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "includeSmartGroupsCount": {
+ "description": "Include count of the SmartGroups as part of the summary. Default value is 'false'.",
+ "name": "includeSmartGroupsCount",
+ "type": "boolean",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "pageCount": {
+ "description": "Determines number of alerts returned per page in response. Permissible value is between 1 to 250. When the \"includeContent\" filter is selected, maximum value allowed is 25. Default value is 25.",
+ "name": "pageCount",
+ "type": "integer",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "alertsSortBy": {
+ "description": "Sort the query results by input field, Default value is 'lastModifiedDateTime'.",
+ "name": "sortBy",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "name",
+ "severity",
+ "alertState",
+ "monitorCondition",
+ "targetResource",
+ "targetResourceName",
+ "targetResourceGroup",
+ "targetResourceType",
+ "startDateTime",
+ "lastModifiedDateTime"
+ ],
+ "x-ms-enum": {
+ "name": "AlertsSortByFields",
+ "modelAsString": true
}
},
- "alertModificationItem": {
- "description": "Alert modification item.",
- "properties": {
- "modificationEvent": {
- "type": "string",
- "description": "Reason for the modification",
- "enum": [
- "AlertCreated",
- "StateChange",
- "MonitorConditionChange",
- "SeverityChange",
- "ActionRuleTriggered",
- "ActionRuleSuppressed",
- "ActionsTriggered",
- "ActionsSuppressed",
- "ActionsFailed"
- ],
- "x-ms-enum": {
- "name": "AlertModificationEvent"
- }
- },
- "oldValue": {
- "type": "string",
- "description": "Old value"
- },
- "newValue": {
- "type": "string",
- "description": "New value"
- },
- "modifiedAt": {
- "type": "string",
- "description": "Modified date and time"
- },
- "modifiedBy": {
- "type": "string",
- "description": "Modified user details (Principal client name)"
- },
- "comments": {
- "type": "string",
- "description": "Modification comments"
- },
- "description": {
- "type": "string",
- "description": "Description of the modification"
- }
+ "alertsSummaryGroupBy": {
+ "description": "This parameter allows the result set to be grouped by input fields (Maximum 2 comma separated fields supported). For example, groupby=severity or groupby=severity,alertstate.",
+ "name": "groupby",
+ "type": "string",
+ "in": "query",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "severity",
+ "alertState",
+ "monitorCondition",
+ "monitorService",
+ "signalType",
+ "alertRule"
+ ],
+ "x-ms-enum": {
+ "name": "AlertsSummaryGroupByFields",
+ "modelAsString": true
}
},
- "smartGroupModification": {
- "description": "Alert Modification details",
- "allOf": [
- {
- "$ref": "#/definitions/Resource"
- }
+ "sortOrder": {
+ "description": "Sort the query results order in either ascending or descending. Default value is 'desc' for time fields and 'asc' for others.",
+ "name": "sortOrder",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "asc",
+ "desc"
+ ]
+ },
+ "select": {
+ "description": "This filter allows to selection of the fields(comma separated) which would be part of the essential section. This would allow to project only the required fields rather than getting entire content. Default is to fetch all the fields in the essentials section.",
+ "name": "select",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "identifier": {
+ "name": "identifier",
+ "description": "Identification of the information to be retrieved by API call.",
+ "type": "string",
+ "in": "query",
+ "required": true,
+ "enum": [
+ "MonitorServiceList"
],
+ "x-ms-enum": {
+ "name": "identifier",
+ "modelAsString": true
+ },
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "definitions": {
+ "operation": {
+ "description": "Operation provided by provider",
"properties": {
- "properties": {
- "$ref": "#/definitions/smartGroupModificationProperties"
+ "name": {
+ "type": "string",
+ "description": "Name of the operation"
+ },
+ "display": {
+ "type": "object",
+ "description": "Properties of the operation",
+ "properties": {
+ "provider": {
+ "type": "string",
+ "description": "Provider name"
+ },
+ "resource": {
+ "type": "string",
+ "description": "Resource name"
+ },
+ "operation": {
+ "type": "string",
+ "description": "Operation name"
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the operation"
+ }
+ }
}
}
},
- "smartGroupModificationProperties": {
- "description": "Properties of the smartGroup modification item.",
+ "operationsList": {
+ "description": "Lists the operations available in the AlertsManagement RP.",
"properties": {
- "smartGroupId": {
- "type": "string",
- "description": "Unique Id of the smartGroup for which the history is being retrieved",
- "readOnly": true
+ "nextLink": {
+ "description": "URL to fetch the next set of alerts.",
+ "type": "string"
},
- "modifications": {
+ "value": {
+ "description": "Array of operations",
"type": "array",
- "description": "Modification details",
"items": {
- "$ref": "#/definitions/smartGroupModificationItem"
+ "$ref": "#/definitions/operation"
}
- },
- "nextLink": {
- "description": "URL to fetch the next set of results.",
- "type": "string"
+ }
+ },
+ "required": [
+ "value"
+ ]
+ },
+ "errorResponse": {
+ "description": "An error response from the service.",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/errorResponseBody"
}
}
},
- "smartGroupModificationItem": {
- "description": "smartGroup modification item.",
+ "errorResponseBody": {
+ "description": "Details of error response.",
"properties": {
- "modificationEvent": {
- "type": "string",
- "description": "Reason for the modification",
- "enum": [
- "SmartGroupCreated",
- "StateChange",
- "AlertAdded",
- "AlertRemoved"
- ],
- "x-ms-enum": {
- "name": "SmartGroupModificationEvent"
- }
- },
- "oldValue": {
+ "code": {
"type": "string",
- "description": "Old value"
+ "description": "Error code, intended to be consumed programmatically."
},
- "newValue": {
+ "message": {
"type": "string",
- "description": "New value"
+ "description": "Description of the error, intended for display in user interface."
},
- "modifiedAt": {
+ "target": {
"type": "string",
- "description": "Modified date and time"
+ "description": "Target of the particular error, for example name of the property."
},
- "modifiedBy": {
+ "details": {
+ "type": "array",
+ "description": "A list of additional details about the error.",
+ "items": {
+ "$ref": "#/definitions/errorResponseBody"
+ }
+ }
+ }
+ },
+ "Resource": {
+ "x-ms-azure-resource": true,
+ "description": "An azure resource object",
+ "properties": {
+ "id": {
"type": "string",
- "description": "Modified user details (Principal client name)"
+ "readOnly": true,
+ "description": "Azure resource Id"
},
- "comments": {
+ "type": {
"type": "string",
- "description": "Modification comments"
+ "readOnly": true,
+ "description": "Azure resource type"
},
- "description": {
+ "name": {
"type": "string",
- "description": "Description of the modification"
+ "readOnly": true,
+ "description": "Azure resource name"
}
}
},
- "alertsSummary": {
- "description": "Summary of alerts based on the input filters and 'groupby' parameters.",
+ "alert": {
+ "description": "An alert created in alert management service.",
"allOf": [
{
"$ref": "#/definitions/Resource"
@@ -1812,61 +776,11 @@
],
"properties": {
"properties": {
- "$ref": "#/definitions/alertsSummaryGroup"
- }
- }
- },
- "alertsSummaryGroup": {
- "type": "object",
- "description": "Group the result set.",
- "properties": {
- "total": {
- "type": "integer",
- "description": "Total count of the result set."
- },
- "smartGroupsCount": {
- "type": "integer",
- "description": "Total count of the smart groups."
- },
- "groupedby": {
- "type": "string",
- "description": "Name of the field aggregated"
- },
- "values": {
- "type": "array",
- "description": "List of the items",
- "items": {
- "$ref": "#/definitions/alertsSummaryGroupItem"
- }
- }
- }
- },
- "alertsSummaryGroupItem": {
- "type": "object",
- "description": "Alerts summary group item",
- "properties": {
- "name": {
- "type": "string",
- "description": "Value of the aggregated field"
- },
- "count": {
- "type": "integer",
- "description": "Count of the aggregated field"
- },
- "groupedby": {
- "type": "string",
- "description": "Name of the field aggregated"
- },
- "values": {
- "type": "array",
- "description": "List of the items",
- "items": {
- "$ref": "#/definitions/alertsSummaryGroupItem"
- }
+ "$ref": "#/definitions/alertProperties"
}
}
},
- "smartGroupsList": {
+ "alertsList": {
"description": "List the alerts.",
"properties": {
"nextLink": {
@@ -1877,50 +791,43 @@
"description": "List of alerts",
"type": "array",
"items": {
- "$ref": "#/definitions/smartGroup"
+ "$ref": "#/definitions/alert"
}
}
}
},
- "smartGroup": {
- "description": "Set of related alerts grouped together smartly by AMS.",
- "allOf": [
- {
- "$ref": "#/definitions/Resource"
- }
- ],
+ "alertProperties": {
+ "type": "object",
+ "description": "Alert property bag",
"properties": {
- "properties": {
- "x-ms-client-flatten": true,
- "$ref": "#/definitions/smartGroupProperties"
+ "essentials": {
+ "$ref": "#/definitions/essentials"
+ },
+ "context": {
+ "$ref": "#/definitions/alertContext"
+ },
+ "egressConfig": {
+ "$ref": "#/definitions/egressConfig"
}
}
},
- "smartGroupProperties": {
+ "egressConfig": {
+ "type": "object",
+ "description": "Config which would be used for displaying the data in portal.",
+ "readOnly": true
+ },
+ "alertContext": {
+ "type": "object",
+ "description": "Information specific to the monitor service that gives more contextual details about the alert.",
+ "readOnly": true
+ },
+ "essentials": {
"type": "object",
- "description": "Properties of smart group.",
+ "description": "This object contains consistent fields across different monitor services.",
"properties": {
- "alertsCount": {
- "type": "integer",
- "description": "Total number of alerts in smart group"
- },
- "smartGroupState": {
- "type": "string",
- "description": "Smart group state",
- "readOnly": true,
- "enum": [
- "New",
- "Acknowledged",
- "Closed"
- ],
- "x-ms-enum": {
- "name": "State",
- "modelAsString": true
- }
- },
"severity": {
"type": "string",
- "description": "Severity of smart group is the highest(Sev0 >... > Sev4) severity of all the alerts in the group.",
+ "description": "Severity of alert Sev0 being highest and Sev4 being lowest.",
"readOnly": true,
"enum": [
"Sev0",
@@ -1934,416 +841,271 @@
"modelAsString": true
}
},
- "startDateTime": {
- "type": "string",
- "format": "date-time",
- "description": "Creation time of smart group. Date-Time in ISO-8601 format.",
- "readOnly": true
- },
- "lastModifiedDateTime": {
- "type": "string",
- "format": "date-time",
- "description": "Last updated time of smart group. Date-Time in ISO-8601 format.",
- "readOnly": true
- },
- "lastModifiedUserName": {
- "type": "string",
- "description": "Last modified by user name.",
- "readOnly": true
- },
- "resources": {
- "items": {
- "$ref": "#/definitions/smartGroupAggregatedProperty"
- },
- "type": "array",
- "description": "Summary of target resources in the smart group"
- },
- "resourceTypes": {
- "items": {
- "$ref": "#/definitions/smartGroupAggregatedProperty"
- },
- "type": "array",
- "description": "Summary of target resource types in the smart group"
- },
- "resourceGroups": {
- "items": {
- "$ref": "#/definitions/smartGroupAggregatedProperty"
- },
- "type": "array",
- "description": "Summary of target resource groups in the smart group"
- },
- "monitorServices": {
- "items": {
- "$ref": "#/definitions/smartGroupAggregatedProperty"
- },
- "type": "array",
- "description": "Summary of monitorServices in the smart group"
- },
- "monitorConditions": {
- "items": {
- "$ref": "#/definitions/smartGroupAggregatedProperty"
- },
- "type": "array",
- "description": "Summary of monitorConditions in the smart group"
- },
- "alertStates": {
- "items": {
- "$ref": "#/definitions/smartGroupAggregatedProperty"
- },
- "type": "array",
- "description": "Summary of alertStates in the smart group"
- },
- "alertSeverities": {
- "items": {
- "$ref": "#/definitions/smartGroupAggregatedProperty"
- },
- "type": "array",
- "description": "Summary of alertSeverities in the smart group"
- },
- "nextLink": {
- "type": "string",
- "description": "The URI to fetch the next page of alerts. Call ListNext() with this URI to fetch the next page alerts."
- }
- }
- },
- "smartGroupAggregatedProperty": {
- "type": "object",
- "description": "Aggregated property of each type",
- "properties": {
- "name": {
- "type": "string",
- "description": "Name of the type."
- },
- "count": {
- "type": "integer",
- "description": "Total number of items of type."
- }
- }
- },
- "Scope": {
- "type": "object",
- "description": "Target scope for a given action rule. By default scope will be the subscription. User can also provide list of resource groups or list of resources from the scope subscription as well.",
- "properties": {
- "scopeType": {
+ "signalType": {
"type": "string",
- "description": "type of target scope",
+ "description": "The type of signal the alert is based on, which could be metrics, logs or activity logs.",
+ "readOnly": true,
"enum": [
- "ResourceGroup",
- "Resource",
- "Subscription"
+ "Metric",
+ "Log",
+ "Unknown"
],
"x-ms-enum": {
- "name": "ScopeType",
+ "name": "SignalType",
"modelAsString": true
}
},
- "values": {
- "type": "array",
- "description": "list of ARM IDs of the given scope type which will be the target of the given action rule.",
- "items": {
- "type": "string"
+ "alertState": {
+ "type": "string",
+ "description": "Alert object state, which can be modified by the user.",
+ "readOnly": true,
+ "enum": [
+ "New",
+ "Acknowledged",
+ "Closed"
+ ],
+ "x-ms-enum": {
+ "name": "AlertState",
+ "modelAsString": true
}
- }
- }
- },
- "Condition": {
- "type": "object",
- "description": "condition to trigger an action rule",
- "properties": {
- "operator": {
+ },
+ "monitorCondition": {
"type": "string",
- "description": "operator for a given condition",
+ "description": "Condition of the rule at the monitor service. It represents whether the underlying conditions have crossed the defined alert rule thresholds.",
+ "readOnly": true,
"enum": [
- "Equals",
- "NotEquals",
- "Contains",
- "DoesNotContain"
+ "Fired",
+ "Resolved"
],
"x-ms-enum": {
- "name": "Operator",
+ "name": "MonitorCondition",
"modelAsString": true
}
},
- "values": {
- "type": "array",
- "description": "list of values to match for a given condition.",
- "items": {
- "type": "string"
- }
- }
- }
- },
- "Conditions": {
- "type": "object",
- "description": "Conditions in alert instance to be matched for a given action rule. Default value is all. Multiple values could be provided with comma separation.",
- "properties": {
- "severity": {
- "description": "filter alerts by severity",
- "$ref": "#/definitions/Condition"
+ "targetResource": {
+ "type": "string",
+ "description": "Target ARM resource, on which alert got created."
},
- "monitorService": {
- "description": "filter alerts by monitor service",
- "$ref": "#/definitions/Condition"
+ "targetResourceName": {
+ "type": "string",
+ "description": "Name of the target ARM resource name, on which alert got created."
},
- "monitorCondition": {
- "description": "filter alerts by monitor condition",
- "$ref": "#/definitions/Condition"
+ "targetResourceGroup": {
+ "type": "string",
+ "description": "Resource group of target ARM resource, on which alert got created."
},
"targetResourceType": {
- "description": "filter alerts by target resource type",
- "$ref": "#/definitions/Condition"
- },
- "alertRuleId": {
- "description": "filter alerts by alert rule id",
- "$ref": "#/definitions/Condition"
- },
- "description": {
- "description": "filter alerts by alert rule description",
- "$ref": "#/definitions/Condition"
+ "type": "string",
+ "description": "Resource type of target ARM resource, on which alert got created."
},
- "alertContext": {
- "description": "filter alerts by alert context (payload)",
- "$ref": "#/definitions/Condition"
- }
- }
- },
- "SuppressionConfig": {
- "type": "object",
- "description": "Suppression logic for a given action rule",
- "required": [
- "recurrenceType"
- ],
- "properties": {
- "recurrenceType": {
+ "monitorService": {
"type": "string",
- "description": "Specifies when the suppression should be applied",
+ "description": "Monitor service on which the rule(monitor) is set.",
+ "readOnly": true,
"enum": [
- "Always",
- "Once",
- "Daily",
- "Weekly",
- "Monthly"
+ "Application Insights",
+ "ActivityLog Administrative",
+ "ActivityLog Security",
+ "ActivityLog Recommendation",
+ "ActivityLog Policy",
+ "ActivityLog Autoscale",
+ "Log Analytics",
+ "Nagios",
+ "Platform",
+ "SCOM",
+ "ServiceHealth",
+ "SmartDetector",
+ "VM Insights",
+ "Zabbix"
],
"x-ms-enum": {
- "name": "SuppressionType",
+ "name": "MonitorService",
"modelAsString": true
}
},
- "schedule": {
- "description": "suppression schedule configuration",
- "$ref": "#/definitions/SuppressionSchedule"
- }
- }
- },
- "SuppressionSchedule": {
- "type": "object",
- "description": "Schedule for a given suppression configuration.",
- "properties": {
- "startDate": {
+ "alertRule": {
+ "type": "string",
+ "description": "Rule(monitor) which fired alert instance. Depending on the monitor service, this would be ARM id or name of the rule.",
+ "readOnly": true
+ },
+ "sourceCreatedId": {
+ "type": "string",
+ "description": "Unique Id created by monitor service for each alert instance. This could be used to track the issue at the monitor service, in case of Nagios, Zabbix, SCOM etc.",
+ "readOnly": true
+ },
+ "smartGroupId": {
"type": "string",
- "description": "Start date for suppression"
+ "description": "Unique Id of the smart group",
+ "readOnly": true
},
- "endDate": {
+ "smartGroupingReason": {
"type": "string",
- "description": "End date for suppression"
+ "description": "Verbose reason describing the reason why this alert instance is added to a smart group",
+ "readOnly": true
},
- "startTime": {
+ "startDateTime": {
"type": "string",
- "description": "Start time for suppression"
+ "format": "date-time",
+ "description": "Creation time(ISO-8601 format) of alert instance.",
+ "readOnly": true
},
- "endTime": {
+ "lastModifiedDateTime": {
"type": "string",
- "description": "End date for suppression"
+ "format": "date-time",
+ "description": "Last modification time(ISO-8601 format) of alert instance.",
+ "readOnly": true
},
- "recurrenceValues": {
- "type": "array",
- "description": "Specifies the values for recurrence pattern",
- "items": {
- "type": "integer"
- }
+ "monitorConditionResolvedDateTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Resolved time(ISO-8601 format) of alert instance. This will be updated when monitor service resolves the alert instance because the rule condition is no longer met.",
+ "readOnly": true
+ },
+ "lastModifiedUserName": {
+ "type": "string",
+ "description": "User who last modified the alert, in case of monitor service updates user would be 'system', otherwise name of the user.",
+ "readOnly": true
}
}
},
- "ActionRule": {
- "description": "Action rule object containing target scope, conditions and suppression logic",
+ "alertModification": {
+ "description": "Alert Modification details",
"allOf": [
{
- "$ref": "#/definitions/ManagedResource"
+ "$ref": "#/definitions/Resource"
}
],
"properties": {
"properties": {
- "description": "action rule properties",
- "$ref": "#/definitions/ActionRuleProperties"
+ "$ref": "#/definitions/alertModificationProperties"
}
}
},
- "ActionRuleProperties": {
- "description": "Action rule properties defining scope, conditions, suppression logic for action rule",
- "discriminator": "type",
- "required": [
- "type"
- ],
+ "alertModificationProperties": {
+ "type": "object",
+ "description": "Properties of the alert modification item.",
"properties": {
- "scope": {
- "description": "scope on which action rule will apply",
- "$ref": "#/definitions/Scope"
- },
- "conditions": {
- "description": "conditions on which alerts will be filtered",
- "$ref": "#/definitions/Conditions"
+ "alertId": {
+ "type": "string",
+ "description": "Unique Id of the alert for which the history is being retrieved",
+ "readOnly": true
},
- "description": {
+ "modifications": {
+ "type": "array",
+ "description": "Modification details",
+ "items": {
+ "$ref": "#/definitions/alertModificationItem"
+ }
+ }
+ }
+ },
+ "alertModificationItem": {
+ "description": "Alert modification item.",
+ "properties": {
+ "modificationEvent": {
"type": "string",
- "description": "Description of action rule"
+ "description": "Reason for the modification",
+ "enum": [
+ "AlertCreated",
+ "StateChange",
+ "MonitorConditionChange",
+ "SeverityChange",
+ "ActionRuleTriggered",
+ "ActionRuleSuppressed",
+ "ActionsTriggered",
+ "ActionsSuppressed",
+ "ActionsFailed"
+ ],
+ "x-ms-enum": {
+ "name": "AlertModificationEvent"
+ }
},
- "createdAt": {
+ "oldValue": {
"type": "string",
- "format": "date-time",
- "description": "Creation time of action rule. Date-Time in ISO-8601 format.",
- "readOnly": true
+ "description": "Old value"
},
- "lastModifiedAt": {
+ "newValue": {
"type": "string",
- "format": "date-time",
- "description": "Last updated time of action rule. Date-Time in ISO-8601 format.",
- "readOnly": true
+ "description": "New value"
},
- "createdBy": {
+ "modifiedAt": {
"type": "string",
- "description": "Created by user name.",
- "readOnly": true
+ "description": "Modified date and time"
},
- "lastModifiedBy": {
+ "modifiedBy": {
"type": "string",
- "description": "Last modified by user name.",
- "readOnly": true
+ "description": "Modified user details (Principal client name)"
},
- "status": {
+ "comments": {
"type": "string",
- "description": "Indicates if the given action rule is enabled or disabled",
- "enum": [
- "Enabled",
- "Disabled"
- ],
- "x-ms-enum": {
- "name": "ActionRuleStatus",
- "modelAsString": true
- }
+ "description": "Modification comments"
},
- "type": {
+ "description": {
"type": "string",
- "description": "Indicates type of action rule",
- "enum": [
- "Suppression",
- "ActionGroup",
- "Diagnostics"
- ],
- "x-ms-enum": {
- "name": "ActionRuleType",
- "modelAsString": true
- }
+ "description": "Description of the modification"
}
}
},
- "Suppression": {
- "title": "Suppression based Action Rule",
- "description": "Action rule with suppression configuration",
- "required": [
- "suppressionConfig"
- ],
+ "alertsSummary": {
+ "description": "Summary of alerts based on the input filters and 'groupby' parameters.",
"allOf": [
{
- "$ref": "#/definitions/ActionRuleProperties"
- },
- {
- "type": "object"
+ "$ref": "#/definitions/Resource"
}
],
"properties": {
- "suppressionConfig": {
- "description": "suppression configuration for the action rule",
- "$ref": "#/definitions/SuppressionConfig"
+ "properties": {
+ "$ref": "#/definitions/alertsSummaryGroup"
}
}
},
- "ActionGroup": {
- "title": "Action Group based Action Rule",
- "description": "Action rule with action group configuration",
- "required": [
- "actionGroupId"
- ],
- "allOf": [
- {
- "$ref": "#/definitions/ActionRuleProperties"
- },
- {
- "type": "object"
- }
- ],
+ "alertsSummaryGroup": {
+ "type": "object",
+ "description": "Group the result set.",
"properties": {
- "actionGroupId": {
- "type": "string",
- "description": "Action group to trigger if action rule matches"
- }
- }
- },
- "Diagnostics": {
- "title": "Diagnostics based Action Rule",
- "description": "Action rule with diagnostics configuration",
- "allOf": [
- {
- "$ref": "#/definitions/ActionRuleProperties"
+ "total": {
+ "type": "integer",
+ "description": "Total count of the result set."
},
- {
- "type": "object"
- }
- ]
- },
- "ActionRulesList": {
- "description": "List of action rules",
- "properties": {
- "nextLink": {
+ "smartGroupsCount": {
+ "type": "integer",
+ "description": "Total count of the smart groups."
+ },
+ "groupedby": {
"type": "string",
- "description": "URL to fetch the next set of action rules"
+ "description": "Name of the field aggregated"
},
- "value": {
+ "values": {
"type": "array",
- "description": "List of action rules",
+ "description": "List of the items",
"items": {
- "$ref": "#/definitions/ActionRule"
+ "$ref": "#/definitions/alertsSummaryGroupItem"
}
}
}
},
- "PatchProperties": {
- "description": "Action rule properties supported by patch",
+ "alertsSummaryGroupItem": {
+ "type": "object",
+ "description": "Alerts summary group item",
"properties": {
- "status": {
+ "name": {
"type": "string",
- "description": "Indicates if the given action rule is enabled or disabled",
- "enum": [
- "Enabled",
- "Disabled"
- ],
- "x-ms-enum": {
- "name": "ActionRuleStatus",
- "modelAsString": true
- }
- }
- }
- },
- "PatchObject": {
- "description": "Data contract for patch",
- "properties": {
- "properties": {
- "x-ms-client-flatten": true,
- "description": "properties supported by patch operation",
- "$ref": "#/definitions/PatchProperties"
+ "description": "Value of the aggregated field"
},
- "tags": {
- "type": "object",
- "description": "tags to be updated"
+ "count": {
+ "type": "integer",
+ "description": "Count of the aggregated field"
+ },
+ "groupedby": {
+ "type": "string",
+ "description": "Name of the field aggregated"
+ },
+ "values": {
+ "type": "array",
+ "description": "List of the items",
+ "items": {
+ "$ref": "#/definitions/alertsSummaryGroupItem"
+ }
}
}
},
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2019-05-05-preview/SmartGroups.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2019-05-05-preview/SmartGroups.json
new file mode 100644
index 000000000000..c30ce89e0d8a
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2019-05-05-preview/SmartGroups.json
@@ -0,0 +1,727 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2019-05-05-preview",
+ "title": "Azure Alerts Management Service Resource Provider",
+ "description": "APIs for Azure Smart Groups CRUD operations."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/smartGroups": {
+ "get": {
+ "operationId": "SmartGroups_GetAll",
+ "summary": "Get all Smart Groups within a specified subscription",
+ "description": "List all the Smart Groups within a specified subscription. ",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/targetResource"
+ },
+ {
+ "$ref": "#/parameters/targetResourceGroup"
+ },
+ {
+ "$ref": "#/parameters/targetResourceType"
+ },
+ {
+ "$ref": "#/parameters/monitorService"
+ },
+ {
+ "$ref": "#/parameters/monitorCondition"
+ },
+ {
+ "$ref": "#/parameters/severity"
+ },
+ {
+ "$ref": "#/parameters/smartGroupState"
+ },
+ {
+ "$ref": "#/parameters/timeRange"
+ },
+ {
+ "$ref": "#/parameters/pageCount"
+ },
+ {
+ "$ref": "#/parameters/smartGroupsSortBy"
+ },
+ {
+ "$ref": "#/parameters/sortOrder"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Returns list of all smartGroups.",
+ "schema": {
+ "$ref": "#/definitions/smartGroupsList",
+ "description": "List of smart groups in value property."
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/errorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List": {
+ "$ref": "./examples/SmartGroups_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/smartGroups/{smartGroupId}": {
+ "get": {
+ "operationId": "SmartGroups_GetById",
+ "summary": "Get information related to a specific Smart Group.",
+ "description": "Get information related to a specific Smart Group.",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/smartGroupId"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Returns the group with the specified smart group Id.",
+ "headers": {
+ "x-ms-request-id": {
+ "type": "string",
+ "description": "Service generated Request ID."
+ }
+ },
+ "schema": {
+ "$ref": "#/definitions/smartGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/errorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get": {
+ "$ref": "./examples/SmartGroups_GetById.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/smartGroups/{smartGroupId}/changeState": {
+ "post": {
+ "operationId": "SmartGroups_ChangeState",
+ "description": "Change the state of a Smart Group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/smartGroupId"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/newState"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Smart Group state updated.",
+ "headers": {
+ "x-ms-request-id": {
+ "type": "string",
+ "description": "Service generated Request ID."
+ }
+ },
+ "schema": {
+ "$ref": "#/definitions/smartGroup"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/errorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "changestate": {
+ "$ref": "./examples/SmartGroups_ChangeState.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/smartGroups/{smartGroupId}/history": {
+ "get": {
+ "operationId": "SmartGroups_GetHistory",
+ "description": "Get the history a smart group, which captures any Smart Group state changes (New/Acknowledged/Closed) .",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/smartGroupId"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Returns the list of changes of smart group.",
+ "schema": {
+ "$ref": "#/definitions/smartGroupModification"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/errorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Resolve": {
+ "$ref": "./examples/SmartGroups_History.json"
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "subscriptionId": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the target subscription.",
+ "minLength": 1
+ },
+ "api-version": {
+ "name": "api-version",
+ "description": "client API version",
+ "type": "string",
+ "in": "query",
+ "required": true,
+ "enum": [
+ "2019-05-05-preview"
+ ],
+ "x-ms-enum": {
+ "name": "api-version",
+ "modelAsString": true
+ }
+ },
+ "targetResourceGroup": {
+ "description": "Filter by target resource group name. Default value is select all.",
+ "name": "targetResourceGroup",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "targetResource": {
+ "description": "Filter by target resource( which is full ARM ID) Default value is select all.",
+ "name": "targetResource",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "targetResourceType": {
+ "description": "Filter by target resource type. Default value is select all.",
+ "name": "targetResourceType",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "monitorService": {
+ "description": "Filter by monitor service which generates the alert instance. Default value is select all.",
+ "name": "monitorService",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "Application Insights",
+ "ActivityLog Administrative",
+ "ActivityLog Security",
+ "ActivityLog Recommendation",
+ "ActivityLog Policy",
+ "ActivityLog Autoscale",
+ "Log Analytics",
+ "Nagios",
+ "Platform",
+ "SCOM",
+ "ServiceHealth",
+ "SmartDetector",
+ "VM Insights",
+ "Zabbix"
+ ],
+ "x-ms-enum": {
+ "name": "MonitorService",
+ "modelAsString": true
+ }
+ },
+ "severity": {
+ "description": "Filter by severity. Default value is select all.",
+ "name": "severity",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "Sev0",
+ "Sev1",
+ "Sev2",
+ "Sev3",
+ "Sev4"
+ ],
+ "x-ms-enum": {
+ "name": "Severity",
+ "modelAsString": true
+ }
+ },
+ "smartGroupId": {
+ "description": "Smart group unique id. ",
+ "name": "smartGroupId",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "newState": {
+ "description": "New state of the alert.",
+ "name": "newState",
+ "type": "string",
+ "in": "query",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "New",
+ "Acknowledged",
+ "Closed"
+ ],
+ "x-ms-enum": {
+ "name": "AlertState",
+ "modelAsString": true
+ }
+ },
+ "smartGroupState": {
+ "description": "Filter by state of the smart group. Default value is to select all.",
+ "name": "smartGroupState",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "New",
+ "Acknowledged",
+ "Closed"
+ ],
+ "x-ms-enum": {
+ "name": "AlertState",
+ "modelAsString": true
+ }
+ },
+ "monitorCondition": {
+ "description": "Filter by monitor condition which is either 'Fired' or 'Resolved'. Default value is to select all.",
+ "name": "monitorCondition",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "Fired",
+ "Resolved"
+ ],
+ "x-ms-enum": {
+ "name": "MonitorCondition",
+ "modelAsString": true
+ }
+ },
+ "timeRange": {
+ "description": "Filter by time range by below listed values. Default value is 1 day.",
+ "name": "timeRange",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "1h",
+ "1d",
+ "7d",
+ "30d"
+ ],
+ "x-ms-enum": {
+ "name": "TimeRange",
+ "modelAsString": true
+ }
+ },
+ "pageCount": {
+ "description": "Determines number of alerts returned per page in response. Permissible value is between 1 to 250. When the \"includeContent\" filter is selected, maximum value allowed is 25. Default value is 25.",
+ "name": "pageCount",
+ "type": "integer",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "smartGroupsSortBy": {
+ "description": "Sort the query results by input field. Default value is sort by 'lastModifiedDateTime'.",
+ "name": "sortBy",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "alertsCount",
+ "state",
+ "severity",
+ "startDateTime",
+ "lastModifiedDateTime"
+ ],
+ "x-ms-enum": {
+ "name": "SmartGroupsSortByFields",
+ "modelAsString": true
+ }
+ },
+ "sortOrder": {
+ "description": "Sort the query results order in either ascending or descending. Default value is 'desc' for time fields and 'asc' for others.",
+ "name": "sortOrder",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "enum": [
+ "asc",
+ "desc"
+ ]
+ }
+ },
+ "definitions": {
+ "errorResponse": {
+ "description": "An error response from the service.",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/errorResponseBody"
+ }
+ }
+ },
+ "errorResponseBody": {
+ "description": "Details of error response.",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Error code, intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "Description of the error, intended for display in user interface."
+ },
+ "target": {
+ "type": "string",
+ "description": "Target of the particular error, for example name of the property."
+ },
+ "details": {
+ "type": "array",
+ "description": "A list of additional details about the error.",
+ "items": {
+ "$ref": "#/definitions/errorResponseBody"
+ }
+ }
+ }
+ },
+ "Resource": {
+ "x-ms-azure-resource": true,
+ "description": "An azure resource object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource Id"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource type"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource name"
+ }
+ }
+ },
+ "smartGroupModification": {
+ "description": "Alert Modification details",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/smartGroupModificationProperties"
+ }
+ }
+ },
+ "smartGroupModificationProperties": {
+ "description": "Properties of the smartGroup modification item.",
+ "properties": {
+ "smartGroupId": {
+ "type": "string",
+ "description": "Unique Id of the smartGroup for which the history is being retrieved",
+ "readOnly": true
+ },
+ "modifications": {
+ "type": "array",
+ "description": "Modification details",
+ "items": {
+ "$ref": "#/definitions/smartGroupModificationItem"
+ }
+ },
+ "nextLink": {
+ "description": "URL to fetch the next set of results.",
+ "type": "string"
+ }
+ }
+ },
+ "smartGroupModificationItem": {
+ "description": "smartGroup modification item.",
+ "properties": {
+ "modificationEvent": {
+ "type": "string",
+ "description": "Reason for the modification",
+ "enum": [
+ "SmartGroupCreated",
+ "StateChange",
+ "AlertAdded",
+ "AlertRemoved"
+ ],
+ "x-ms-enum": {
+ "name": "SmartGroupModificationEvent"
+ }
+ },
+ "oldValue": {
+ "type": "string",
+ "description": "Old value"
+ },
+ "newValue": {
+ "type": "string",
+ "description": "New value"
+ },
+ "modifiedAt": {
+ "type": "string",
+ "description": "Modified date and time"
+ },
+ "modifiedBy": {
+ "type": "string",
+ "description": "Modified user details (Principal client name)"
+ },
+ "comments": {
+ "type": "string",
+ "description": "Modification comments"
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the modification"
+ }
+ }
+ },
+ "smartGroupsList": {
+ "description": "List the alerts.",
+ "properties": {
+ "nextLink": {
+ "description": "URL to fetch the next set of alerts.",
+ "type": "string"
+ },
+ "value": {
+ "description": "List of alerts",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/smartGroup"
+ }
+ }
+ }
+ },
+ "smartGroup": {
+ "description": "Set of related alerts grouped together smartly by AMS.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/smartGroupProperties"
+ }
+ }
+ },
+ "smartGroupProperties": {
+ "type": "object",
+ "description": "Properties of smart group.",
+ "properties": {
+ "alertsCount": {
+ "type": "integer",
+ "description": "Total number of alerts in smart group"
+ },
+ "smartGroupState": {
+ "type": "string",
+ "description": "Smart group state",
+ "readOnly": true,
+ "enum": [
+ "New",
+ "Acknowledged",
+ "Closed"
+ ],
+ "x-ms-enum": {
+ "name": "State",
+ "modelAsString": true
+ }
+ },
+ "severity": {
+ "type": "string",
+ "description": "Severity of smart group is the highest(Sev0 >... > Sev4) severity of all the alerts in the group.",
+ "readOnly": true,
+ "enum": [
+ "Sev0",
+ "Sev1",
+ "Sev2",
+ "Sev3",
+ "Sev4"
+ ],
+ "x-ms-enum": {
+ "name": "Severity",
+ "modelAsString": true
+ }
+ },
+ "startDateTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Creation time of smart group. Date-Time in ISO-8601 format.",
+ "readOnly": true
+ },
+ "lastModifiedDateTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Last updated time of smart group. Date-Time in ISO-8601 format.",
+ "readOnly": true
+ },
+ "lastModifiedUserName": {
+ "type": "string",
+ "description": "Last modified by user name.",
+ "readOnly": true
+ },
+ "resources": {
+ "items": {
+ "$ref": "#/definitions/smartGroupAggregatedProperty"
+ },
+ "type": "array",
+ "description": "Summary of target resources in the smart group"
+ },
+ "resourceTypes": {
+ "items": {
+ "$ref": "#/definitions/smartGroupAggregatedProperty"
+ },
+ "type": "array",
+ "description": "Summary of target resource types in the smart group"
+ },
+ "resourceGroups": {
+ "items": {
+ "$ref": "#/definitions/smartGroupAggregatedProperty"
+ },
+ "type": "array",
+ "description": "Summary of target resource groups in the smart group"
+ },
+ "monitorServices": {
+ "items": {
+ "$ref": "#/definitions/smartGroupAggregatedProperty"
+ },
+ "type": "array",
+ "description": "Summary of monitorServices in the smart group"
+ },
+ "monitorConditions": {
+ "items": {
+ "$ref": "#/definitions/smartGroupAggregatedProperty"
+ },
+ "type": "array",
+ "description": "Summary of monitorConditions in the smart group"
+ },
+ "alertStates": {
+ "items": {
+ "$ref": "#/definitions/smartGroupAggregatedProperty"
+ },
+ "type": "array",
+ "description": "Summary of alertStates in the smart group"
+ },
+ "alertSeverities": {
+ "items": {
+ "$ref": "#/definitions/smartGroupAggregatedProperty"
+ },
+ "type": "array",
+ "description": "Summary of alertSeverities in the smart group"
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of alerts. Call ListNext() with this URI to fetch the next page alerts."
+ }
+ }
+ },
+ "smartGroupAggregatedProperty": {
+ "type": "object",
+ "description": "Aggregated property of each type",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the type."
+ },
+ "count": {
+ "type": "integer",
+ "description": "Total number of items of type."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/AlertsManagement.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/AlertsManagement.json
new file mode 100644
index 000000000000..6a49a3228a39
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/AlertsManagement.json
@@ -0,0 +1,649 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-08-04-preview",
+ "title": "Azure Alerts Management Service Resource Provider",
+ "description": "Azure Alerts Management Service provides a single pane of glass of alerts across Azure Monitor."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.AlertsManagement/operations": {
+ "get": {
+ "operationId": "Operations_List",
+ "description": "List all operations available through Azure Alerts Management Resource Provider.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully retrieved operations list.",
+ "schema": {
+ "$ref": "#/definitions/operationsList"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/resourceHealthAlerts": {
+ "get": {
+ "tags": [
+ "HealthAlerts"
+ ],
+ "description": "Retrieve health alert rule definitions in a subscription.",
+ "operationId": "HealthAlerts_ListBySubscription",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request for a list of health alerts",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertResourceCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertsErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "ListResourceHealthAlertRules": {
+ "$ref": "./examples/listResourceHealthAlerts.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/resourceHealthAlerts": {
+ "get": {
+ "tags": [
+ "HealthAlerts"
+ ],
+ "description": "Retrieve alert rule definitions in a resource group.",
+ "operationId": "HealthAlerts_ListByResourceGroup",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request for a list of health alerts",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertResourceCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertsErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "ListResourceHealthAlertRules": {
+ "$ref": "./examples/listResourceHealthAlerts.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/resourceHealthAlerts/{ruleName}": {
+ "get": {
+ "tags": [
+ "HealthAlerts"
+ ],
+ "description": "Retrieve an alert rule definition.",
+ "operationId": "HealthAlerts_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/RuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request for a list of health alerts",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertsErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetResourceHealthAlertRule": {
+ "$ref": "./examples/getResourceHealthAlert.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "HealthAlerts"
+ ],
+ "description": "Create or update an health alert definition.",
+ "operationId": "HealthAlerts_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/RuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/HealthAlertResource"
+ },
+ "description": "The parameters of the rule to create or update."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertsErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "CreateResourceHealthAlertRule": {
+ "$ref": "./examples/createOrUpdateResourceHealthAlert.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "HealthAlerts"
+ ],
+ "description": "Update an health alert definition.",
+ "operationId": "HealthAlerts_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/RuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/HealthAlertResourcePatch"
+ },
+ "description": "The parameters of the rule to update."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertsErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PatchResourceHealthAlertRule": {
+ "$ref": "./examples/patchResourceHealthAlert.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "HealthAlerts"
+ ],
+ "description": "Delete an alert rule definition.",
+ "operationId": "HealthAlerts_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/RuleNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request to delete an health alert rule"
+ },
+ "204": {
+ "description": "No content: the request was successful, but the response is empty"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/HealthAlertsErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "DeleteResourceHealthAlertRule": {
+ "$ref": "./examples/deleteResourceHealthAlert.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Resource": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource Id"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource name"
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure resource type"
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "required": [
+ "location"
+ ],
+ "x-ms-azure-resource": true,
+ "description": "An azure resource object"
+ },
+ "HealthAlertAction": {
+ "description": "An alert action.",
+ "properties": {
+ "actionGroupId": {
+ "type": "string",
+ "description": "the id of the action group to use."
+ },
+ "webHookProperties": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "description": "the dictionary of custom properties to include with the post operation. These data are appended to the webhook payload."
+ },
+ "description": "The properties of a webhook object."
+ }
+ }
+ },
+ "HealthAlertProperties": {
+ "required": [
+ "enabled",
+ "description",
+ "criteria"
+ ],
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "the description of the health alert that will be included in the alert email."
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "the flag that indicates whether the health alert is enabled."
+ },
+ "scopes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "the list of resource id's that this health alert is scoped to."
+ },
+ "criteria": {
+ "$ref": "#/definitions/HealthAlertCriteria",
+ "description": "defines the specific alert criteria information."
+ },
+ "actions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthAlertAction"
+ },
+ "description": "the array of actions that are performed when the alert rule becomes active, and when an alert condition is resolved."
+ },
+ "lastUpdatedTime": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "Last time the rule was updated in ISO8601 format."
+ }
+ },
+ "description": "An alert rule."
+ },
+ "HealthAlertResource": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "properties"
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/HealthAlertProperties",
+ "description": "The alert rule properties of the resource."
+ }
+ },
+ "description": "The health alert resource."
+ },
+ "HealthAlertResourcePatch": {
+ "properties": {
+ "tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/HealthAlertProperties",
+ "description": "The alert rule properties of the resource."
+ }
+ },
+ "description": "The health alert resource for patch operations."
+ },
+ "HealthAlertResourceCollection": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthAlertResource"
+ },
+ "description": "the values for the alert rule resources."
+ }
+ },
+ "description": "Represents a collection of alert rule resources."
+ },
+ "HealthAlertCriteria": {
+ "type": "object",
+ "properties": {
+ "allOf": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthAlertCriterion"
+ },
+ "description": "The list of metric criteria for this 'all of' operation. "
+ }
+ },
+ "description": "Specifies the resource health alert criteria for a single resource that has multiple metric criteria."
+ },
+ "HealthAlertCriterion": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "discriminator": "namespace",
+ "properties": {
+ "namespace": {
+ "type": "string",
+ "enum": [
+ "VmGuestHealth"
+ ],
+ "x-ms-enum": {
+ "name": "HealthAlertsNamespace",
+ "modelAsString": true
+ },
+ "description": "specifies the type of the alert criterion."
+ }
+ },
+ "required": [
+ "namespace"
+ ],
+ "description": "The rule criterion that defines the conditions of the alert rule."
+ },
+ "VmGuestHealthAlertCriterion": {
+ "x-ms-discriminator-value": "VmGuestHealth",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/HealthAlertCriterion"
+ }
+ ],
+ "properties": {
+ "healthMonitorName": {
+ "type": "string",
+ "description": "Name of health monitor on which to define alert"
+ },
+ "healthStates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HealthState"
+ },
+ "description": "Health states to alert on"
+ }
+ },
+ "required": [
+ "healthMonitorName"
+ ],
+ "description": "Specifies the health alert criteria to alert on."
+ },
+ "HealthState": {
+ "type": "object",
+ "properties": {
+ "healthStateName": {
+ "type": "string",
+ "description": "Health state"
+ },
+ "severity": {
+ "type": "string",
+ "description": "Severity of alert fired"
+ }
+ },
+ "required": [
+ "healthStateName",
+ "severity"
+ ],
+ "description": "Specifies the health state to alert on and the corresponding severity"
+ },
+ "HealthAlertsErrorResponse": {
+ "description": "Describes the format of Error response.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/HealthAlertsErrorResponseBody"
+ }
+ }
+ },
+ "HealthAlertsErrorResponseBody": {
+ "description": "Describes the format of Error response.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Error code",
+ "type": "string"
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "type": "string"
+ }
+ }
+ },
+ "operation": {
+ "description": "Operation provided by provider",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the operation"
+ },
+ "display": {
+ "type": "object",
+ "description": "Properties of the operation",
+ "properties": {
+ "provider": {
+ "type": "string",
+ "description": "Provider name"
+ },
+ "resource": {
+ "type": "string",
+ "description": "Resource name"
+ },
+ "operation": {
+ "type": "string",
+ "description": "Operation name"
+ },
+ "description": {
+ "type": "string",
+ "description": "Description of the operation"
+ }
+ }
+ }
+ }
+ },
+ "operationsList": {
+ "description": "Lists the operations available in the AlertsManagement RP.",
+ "properties": {
+ "nextLink": {
+ "description": "URL to fetch the next set of operations.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Array of operations",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/operation"
+ }
+ }
+ },
+ "required": [
+ "value"
+ ]
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Azure subscription Id."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group.",
+ "x-ms-parameter-location": "method"
+ },
+ "RuleNameParameter": {
+ "name": "ruleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the rule.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/createOrUpdateResourceHealthAlert.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/createOrUpdateResourceHealthAlert.json
new file mode 100644
index 000000000000..0a46e4630d1f
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/createOrUpdateResourceHealthAlert.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "subscriptionId": "14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7",
+ "resourceGroupName": "gigtest",
+ "ruleName": "highcpu",
+ "api-version": "2020-08-04-preview",
+ "parameters": {
+ "location": "global",
+ "properties": {
+ "description": "This is the description of the rule1",
+ "enabled": true,
+ "scopes": [
+ "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourceGroups/gigtest/providers/Microsoft.Compute/virtualMachines/gigwadme"
+ ],
+ "criteria": {
+ "allOf": [
+ {
+ "healthMonitorName": "root",
+ "namespace": "VmGuestHealth"
+ }
+ ]
+ },
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourcegroups/gigtest/providers/microsoft.insights/notificationgroups/group2",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourceGroups/gigtest/providers/providers/Microsoft.AlertsManagement/resourceHealthAlerts/highcpu",
+ "type": "Microsoft.AlertsManagement/resourceHealthAlerts",
+ "location": "global",
+ "properties": {
+ "description": "This is the description of the first rule",
+ "enabled": true,
+ "scopes": [
+ "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourceGroups/gigtest/providers/Microsoft.Compute/virtualMachines/gigwadme"
+ ],
+ "criteria": {
+ "allOf": [
+ {
+ "healthMonitorName": "root",
+ "namespace": "VmGuestHealth"
+ }
+ ]
+ },
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourcegroups/gigtest/providers/microsoft.insights/notificationgroups/group2",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/deleteResourceHealthAlert.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/deleteResourceHealthAlert.json
new file mode 100644
index 000000000000..0d5dfed02952
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/deleteResourceHealthAlert.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7",
+ "resourceGroupName": "gigtest",
+ "ruleName": "highcpu",
+ "api-version": "2018-03-01"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/getResourceHealthAlert.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/getResourceHealthAlert.json
new file mode 100644
index 000000000000..18432a7ab89a
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/getResourceHealthAlert.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "subscriptionId": "14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7",
+ "resourceGroupName": "gigtest",
+ "ruleName": "highcpu",
+ "api-version": "2020-08-04-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourceGroups/gigtest/providers/providers/Microsoft.AlertsManagement/resourceHealthAlerts/highcpu",
+ "type": "Microsoft.AlertsManagement/resourceHealthAlerts",
+ "location": "global",
+ "properties": {
+ "description": "This is the description of the rule1",
+ "enabled": true,
+ "scopes": [
+ "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourceGroups/gigtest/providers/Microsoft.Compute/virtualMachines/gigwadme"
+ ],
+ "criteria": {
+ "allOf": [
+ {
+ "healthMonitorName": "root",
+ "namespace": "VmGuestHealth"
+ }
+ ]
+ },
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourcegroups/gigtest/providers/microsoft.insights/notificationgroups/group2",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/listResourceHealthAlerts.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/listResourceHealthAlerts.json
new file mode 100644
index 000000000000..42bc3c7156c4
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/listResourceHealthAlerts.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7",
+ "resourceGroupName": "gigtest",
+ "api-version": "2020-08-04-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourceGroups/gigtest/providers/providers/Microsoft.AlertsManagement/resourceHealthAlerts/highcpu",
+ "type": "Microsoft.AlertsManagement/resourceHealthAlerts",
+ "location": "global",
+ "properties": {
+ "description": "This is the description of the first rule",
+ "enabled": true,
+ "scopes": [
+ "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourceGroups/gigtest/providers/Microsoft.Compute/virtualMachines/gigwadme"
+ ],
+ "criteria": {
+ "allOf": [
+ {
+ "healthMonitorName": "root",
+ "namespace": "VmGuestHealth"
+ }
+ ]
+ },
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourcegroups/gigtest/providers/microsoft.insights/notificationgroups/group2",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/patchResourceHealthAlert.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/patchResourceHealthAlert.json
new file mode 100644
index 000000000000..c67cb10e162e
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/preview/2020-08-04-preview/examples/patchResourceHealthAlert.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "subscriptionId": "14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7",
+ "resourceGroupName": "gigtest",
+ "ruleName": "highcpu",
+ "api-version": "2020-08-04-preview",
+ "parameters": {
+ "properties": {
+ "description": "This is the description of the rule1",
+ "enabled": true,
+ "scopes": [
+ "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourceGroups/gigtest/providers/Microsoft.Compute/virtualMachines/gigwadme"
+ ],
+ "criteria": {
+ "allOf": [
+ {
+ "healthMonitorName": "root",
+ "namespace": "VmGuestHealth"
+ }
+ ]
+ },
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourcegroups/gigtest/providers/microsoft.insights/notificationgroups/group2",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourceGroups/gigtest/providers/providers/Microsoft.AlertsManagement/resourceHealthAlerts/highcpu",
+ "type": "Microsoft.AlertsManagement/resourceHealthAlerts",
+ "location": "global",
+ "properties": {
+ "description": "This is the description of the rule1",
+ "enabled": true,
+ "scopes": [
+ "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourceGroups/gigtest/providers/Microsoft.Compute/virtualMachines/gigwadme"
+ ],
+ "criteria": {
+ "allOf": [
+ {
+ "healthMonitorName": "root",
+ "namespace": "VmGuestHealth"
+ }
+ ]
+ },
+ "actions": [
+ {
+ "actionGroupId": "/subscriptions/14ddf0c5-77c5-4b53-84f6-e1fa43ad68f7/resourcegroups/gigtest/providers/microsoft.insights/notificationgroups/group2",
+ "webHookProperties": {
+ "key11": "value11",
+ "key12": "value12"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
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 dc6ce3d65350..b5be751defbb 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
@@ -52,6 +52,42 @@
}
}
},
+ "/providers/Microsoft.AlertsManagement/alertsMetaData": {
+ "get": {
+ "operationId": "Alerts_MetaData",
+ "description": "List alerts meta data information based on value of identifier parameter.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/identifier"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully listed alert meta data.",
+ "schema": {
+ "$ref": "#/definitions/alertsMetaData"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/AlertsManagementErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "MonService": {
+ "$ref": "./examples/AlertsMetaData_MonitorService.json"
+ }
+ }
+ }
+ },
"/{scope}/providers/Microsoft.AlertsManagement/alerts": {
"get": {
"operationId": "Alerts_GetAll",
@@ -325,204 +361,6 @@
}
}
}
- },
- "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/smartGroups": {
- "get": {
- "operationId": "SmartGroups_GetAll",
- "summary": "Get all Smart Groups within a specified subscription",
- "description": "List all the Smart Groups within a specified subscription. ",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/targetResource"
- },
- {
- "$ref": "#/parameters/targetResourceGroup"
- },
- {
- "$ref": "#/parameters/targetResourceType"
- },
- {
- "$ref": "#/parameters/monitorService"
- },
- {
- "$ref": "#/parameters/monitorCondition"
- },
- {
- "$ref": "#/parameters/severity"
- },
- {
- "$ref": "#/parameters/smartGroupState"
- },
- {
- "$ref": "#/parameters/timeRange"
- },
- {
- "$ref": "#/parameters/pageCount"
- },
- {
- "$ref": "#/parameters/smartGroupsSortBy"
- },
- {
- "$ref": "#/parameters/sortOrder"
- },
- {
- "$ref": "#/parameters/api-version"
- }
- ],
- "produces": [
- "application/json"
- ],
- "responses": {
- "200": {
- "description": "OK. Returns list of all smartGroups.",
- "schema": {
- "$ref": "#/definitions/smartGroupsList",
- "description": "List of smart groups in value property."
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "List": {
- "$ref": "./examples/SmartGroups_List.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/smartGroups/{smartGroupId}": {
- "get": {
- "operationId": "SmartGroups_GetById",
- "summary": "Get information related to a specific Smart Group.",
- "description": "Get information related to a specific Smart Group.",
- "produces": [
- "application/json"
- ],
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/smartGroupId"
- },
- {
- "$ref": "#/parameters/api-version"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. Returns the group with the specified smart group Id.",
- "headers": {
- "x-ms-request-id": {
- "type": "string",
- "description": "Service generated Request ID."
- }
- },
- "schema": {
- "$ref": "#/definitions/smartGroup"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Get": {
- "$ref": "./examples/SmartGroups_GetById.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/smartGroups/{smartGroupId}/changeState": {
- "post": {
- "operationId": "SmartGroups_ChangeState",
- "description": "Change the state of a Smart Group.",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/smartGroupId"
- },
- {
- "$ref": "#/parameters/api-version"
- },
- {
- "$ref": "#/parameters/newState"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. Smart Group state updated.",
- "headers": {
- "x-ms-request-id": {
- "type": "string",
- "description": "Service generated Request ID."
- }
- },
- "schema": {
- "$ref": "#/definitions/smartGroup"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "changestate": {
- "$ref": "./examples/SmartGroups_ChangeState.json"
- }
- }
- }
- },
- "/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/smartGroups/{smartGroupId}/history": {
- "get": {
- "operationId": "SmartGroups_GetHistory",
- "description": "Get the history a smart group, which captures any Smart Group state changes (New/Acknowledged/Closed) .",
- "parameters": [
- {
- "$ref": "#/parameters/subscriptionId"
- },
- {
- "$ref": "#/parameters/smartGroupId"
- },
- {
- "$ref": "#/parameters/api-version"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. Returns the list of changes of smart group.",
- "schema": {
- "$ref": "#/definitions/smartGroupModification"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/AlertsManagementErrorResponse"
- }
- }
- },
- "x-ms-examples": {
- "Resolve": {
- "$ref": "./examples/SmartGroups_History.json"
- }
- }
- }
}
},
"parameters": {
@@ -867,6 +705,21 @@
"in": "query",
"required": false,
"x-ms-parameter-location": "method"
+ },
+ "identifier": {
+ "name": "identifier",
+ "description": "Identification of the information to be retrieved by API call.",
+ "type": "string",
+ "in": "query",
+ "required": true,
+ "enum": [
+ "MonitorServiceList"
+ ],
+ "x-ms-enum": {
+ "name": "identifier",
+ "modelAsString": true
+ },
+ "x-ms-parameter-location": "method"
}
},
"definitions": {
@@ -1388,6 +1241,34 @@
}
}
},
+ "alertsMetaData": {
+ "description": "alert meta data information.",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/alertsMetaDataProperties"
+ }
+ }
+ },
+ "alertsMetaDataProperties": {
+ "description": "alert meta data property bag",
+ "discriminator": "metadataIdentifier",
+ "required": [
+ "metadataIdentifier"
+ ],
+ "properties": {
+ "metadataIdentifier": {
+ "type": "string",
+ "description": "Identification of the information to be retrieved by API call",
+ "enum": [
+ "MonitorServiceList"
+ ],
+ "x-ms-enum": {
+ "name": "metadataIdentifier",
+ "modelAsString": true
+ }
+ }
+ }
+ },
"smartGroupsList": {
"description": "List the alerts.",
"properties": {
@@ -1541,6 +1422,43 @@
"description": "Total number of items of type."
}
}
+ },
+ "MonitorServiceList": {
+ "title": "Monitor service details",
+ "description": "Monitor service details",
+ "required": [
+ "data"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/alertsMetaDataProperties"
+ },
+ {
+ "type": "object"
+ }
+ ],
+ "properties": {
+ "data": {
+ "description": "Array of operations",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MonitorServiceDetails"
+ }
+ }
+ }
+ },
+ "MonitorServiceDetails": {
+ "description": "Details of a monitor service",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Monitor service name"
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Monitor service display name"
+ }
+ }
}
}
}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/AlertsMetaData_MonitorService.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/AlertsMetaData_MonitorService.json
new file mode 100644
index 000000000000..41ef963509e3
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/AlertsMetaData_MonitorService.json
@@ -0,0 +1,89 @@
+{
+ "parameters": {
+ "api-version": "2019-03-01",
+ "identifier": "MonitorServiceList"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "metadataIdentifier": "MonitorServiceList",
+ "data": [
+ {
+ "name": "ActivityLog Administrative",
+ "displayName": "Activity Log - Administrative"
+ },
+ {
+ "name": "ActivityLog Autoscale",
+ "displayName": "Activity Log - Autoscale"
+ },
+ {
+ "name": "ActivityLog Policy",
+ "displayName": "Activity Log - Policy"
+ },
+ {
+ "name": "ActivityLog Recommendation",
+ "displayName": "Activity Log - Recommendation"
+ },
+ {
+ "name": "ActivityLog Security",
+ "displayName": "Activity Log - Security"
+ },
+ {
+ "name": "Application Insights",
+ "displayName": "Application Insights"
+ },
+ {
+ "name": "Azure Backup",
+ "displayName": "Azure Backup"
+ },
+ {
+ "name": "Custom",
+ "displayName": "Custom"
+ },
+ {
+ "name": "Data Box Edge",
+ "displayName": "Data Box Edge"
+ },
+ {
+ "name": "VM Insights",
+ "displayName": "VM Insights"
+ },
+ {
+ "name": "Log Analytics",
+ "displayName": "Log Analytics"
+ },
+ {
+ "name": "Nagios",
+ "displayName": "NAGIOS"
+ },
+ {
+ "name": "Platform",
+ "displayName": "Platform"
+ },
+ {
+ "name": "Resource Health",
+ "displayName": "Resource Health"
+ },
+ {
+ "name": "SCOM",
+ "displayName": "SCOM"
+ },
+ {
+ "name": "ServiceHealth",
+ "displayName": "Service Health"
+ },
+ {
+ "name": "Smart Detector",
+ "displayName": "SmartDetector"
+ },
+ {
+ "name": "Zabbix",
+ "displayName": "ZABBIX"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/SmartGroups_ChangeState.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/SmartGroups_ChangeState.json
deleted file mode 100644
index 9b07e12589e0..000000000000
--- a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/SmartGroups_ChangeState.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "parameters": {
- "api-version": "2018-05-05",
- "subscriptionId": "dd91de05-d791-4ceb-b6dc-988682dc7d72",
- "smartGroupId": "a808445e-bb38-4751-85c2-1b109ccc1059",
- "newState": "Acknowledged",
- "body": {
- "comments": "Acknowledging smart group"
- }
- },
- "responses": {
- "200": {
- "body": {
- "properties": {
- "alertsCount": 1942,
- "smartGroupState": "Acknowledged",
- "severity": "Sev3",
- "startDateTime": "2018-06-06T12:35:09Z",
- "lastModifiedDateTime": "2018-06-13T06:30:09Z",
- "lastModifiedUserName": "System",
- "resources": [
- {
- "name": "/subscriptions/dd91de05-d791-4ceb-b6dc-988682dc7d72/resourcegroups/alertscorrelationrg/providers/microsoft.insights/components/alertscorrelationworkerrole_int",
- "count": 1942
- }
- ],
- "resourceTypes": [
- {
- "name": "components",
- "count": 1942
- }
- ],
- "resourceGroups": [
- {
- "name": "alertscorrelationrg",
- "count": 1942
- }
- ],
- "monitorServices": [
- {
- "name": "Application Insights",
- "count": 1942
- }
- ],
- "monitorConditions": [
- {
- "name": "Fired",
- "count": 1942
- }
- ],
- "alertStates": [
- {
- "name": "New",
- "count": 1941
- },
- {
- "name": "Acknowledged",
- "count": 1
- }
- ],
- "alertSeverities": [
- {
- "name": "Sev3",
- "count": 1942
- }
- ]
- },
- "id": "/subscriptions/dd91de05-d791-4ceb-b6dc-988682dc7d72/providers/Microsoft.AlertsManagement/smartGroups/a808445e-bb38-4751-85c2-1b109ccc1059",
- "type": "Microsoft.AlertsManagement/smartGroups",
- "name": "cpu alert"
- }
- }
- }
-}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/SmartGroups_GetById.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/SmartGroups_GetById.json
deleted file mode 100644
index fb66b322f894..000000000000
--- a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/SmartGroups_GetById.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "parameters": {
- "api-version": "2018-05-05",
- "subscriptionId": "9e261de7-c804-4b9d-9ebf-6f50fe350a9a",
- "smartGroupId": "603675da-9851-4b26-854a-49fc53d32715"
- },
- "responses": {
- "200": {
- "body": {
- "properties": {
- "alertsCount": 1942,
- "smartGroupState": "New",
- "severity": "Sev3",
- "startDateTime": "2018-06-06T12:35:09Z",
- "lastModifiedDateTime": "2018-06-13T06:30:09Z",
- "lastModifiedUserName": "System",
- "resources": [
- {
- "name": "/subscriptions/dd91de05-d791-4ceb-b6dc-988682dc7d72/resourcegroups/alertscorrelationrg/providers/microsoft.insights/components/alertscorrelationworkerrole_int",
- "count": 1942
- }
- ],
- "resourceTypes": [
- {
- "name": "components",
- "count": 1942
- }
- ],
- "resourceGroups": [
- {
- "name": "alertscorrelationrg",
- "count": 1942
- }
- ],
- "monitorServices": [
- {
- "name": "Application Insights",
- "count": 1942
- }
- ],
- "monitorConditions": [
- {
- "name": "Fired",
- "count": 1942
- }
- ],
- "alertStates": [
- {
- "name": "New",
- "count": 1941
- },
- {
- "name": "Acknowledged",
- "count": 1
- }
- ],
- "alertSeverities": [
- {
- "name": "Sev3",
- "count": 1942
- }
- ]
- },
- "id": "/subscriptions/dd91de05-d791-4ceb-b6dc-988682dc7d72/providers/Microsoft.AlertsManagement/smartGroups/a808445e-bb38-4751-85c2-1b109ccc1059",
- "type": "Microsoft.AlertsManagement/smartGroups",
- "name": "cpu alert"
- }
- }
- }
-}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/SmartGroups_History.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/SmartGroups_History.json
deleted file mode 100644
index a3d749f1d6ff..000000000000
--- a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/SmartGroups_History.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "parameters": {
- "api-version": "2018-05-05",
- "subscriptionId": "9e261de7-c804-4b9d-9ebf-6f50fe350a9a",
- "smartGroupId": "a808445e-bb38-4751-85c2-1b109ccc1059"
- },
- "responses": {
- "200": {
- "body": {
- "properties": {
- "smartGroupId": "a808445e-bb38-4751-85c2-1b109ccc1059",
- "modifications": [
- {
- "modificationEvent": "SmartGroupCreated",
- "oldValue": "",
- "newValue": "",
- "modifiedAt": "2018-06-06T12:35:09Z",
- "modifiedBy": "System",
- "comments": "",
- "description": "New Smart Group is created"
- }
- ]
- },
- "id": "/subscriptions/9e261de7-c804-4b9d-9ebf-6f50fe350a9a/providers/Microsoft.AlertsManagement/smartGroups/a808445e-bb38-4751-85c2-1b109ccc1059/history/default",
- "type": "Microsoft.AlertsManagement/alerts",
- "name": "cpu alert"
- }
- }
- }
-}
diff --git a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/SmartGroups_List.json b/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/SmartGroups_List.json
deleted file mode 100644
index bf4722bcdb59..000000000000
--- a/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2019-03-01/examples/SmartGroups_List.json
+++ /dev/null
@@ -1,145 +0,0 @@
-{
- "parameters": {
- "api-version": "2018-05-05",
- "subscriptionId": "dd91de05-d791-4ceb-b6dc-988682dc7d72"
- },
- "responses": {
- "200": {
- "body": {
- "nextLink": null,
- "value": [
- {
- "properties": {
- "alertsCount": 1942,
- "smartGroupState": "New",
- "severity": "Sev3",
- "startDateTime": "2018-06-06T12:35:09Z",
- "lastModifiedDateTime": "2018-06-13T06:30:09Z",
- "lastModifiedUserName": "System",
- "resources": [
- {
- "name": "/subscriptions/dd91de05-d791-4ceb-b6dc-988682dc7d72/resourcegroups/alertscorrelationrg/providers/microsoft.insights/components/alertscorrelationworkerrole_int",
- "count": 1942
- }
- ],
- "resourceTypes": [
- {
- "name": "components",
- "count": 1942
- }
- ],
- "resourceGroups": [
- {
- "name": "alertscorrelationrg",
- "count": 1942
- }
- ],
- "monitorServices": [
- {
- "name": "Application Insights",
- "count": 1942
- }
- ],
- "monitorConditions": [
- {
- "name": "Fired",
- "count": 1942
- }
- ],
- "alertStates": [
- {
- "name": "New",
- "count": 1941
- },
- {
- "name": "Acknowledged",
- "count": 1
- }
- ],
- "alertSeverities": [
- {
- "name": "Sev3",
- "count": 1942
- }
- ]
- },
- "id": "/subscriptions/dd91de05-d791-4ceb-b6dc-988682dc7d72/providers/Microsoft.AlertsManagement/smartGroups/a808445e-bb38-4751-85c2-1b109ccc1059",
- "type": "Microsoft.AlertsManagement/smartGroups",
- "name": "cpu alert"
- },
- {
- "properties": {
- "alertsCount": 15374,
- "smartGroupState": "Acknowledged",
- "severity": "Sev0",
- "startDateTime": "2018-05-17T10:18:44.2020997Z",
- "lastModifiedDateTime": "2018-06-13T06:29:01Z",
- "lastModifiedUserName": "System",
- "resources": [
- {
- "name": "/subscriptions/dd91de05-d791-4ceb-b6dc-988682dc7d72/resourcegroups/mms-eus/providers/microsoft.operationalinsights/workspaces/alertsint",
- "count": 15374
- }
- ],
- "resourceTypes": [
- {
- "name": "microsoft.operationalinsights/workspaces",
- "count": 6912
- },
- {
- "name": "workspaces",
- "count": 8462
- }
- ],
- "resourceGroups": [
- {
- "name": "mms-eus",
- "count": 15374
- }
- ],
- "monitorServices": [
- {
- "name": "Log Analytics",
- "count": 13911
- }
- ],
- "monitorConditions": [
- {
- "name": "Fired",
- "count": 15374
- }
- ],
- "alertStates": [
- {
- "name": "New",
- "count": 15358
- },
- {
- "name": "Acknowledged",
- "count": 12
- },
- {
- "name": "Closed",
- "count": 4
- }
- ],
- "alertSeverities": [
- {
- "name": "Sev0",
- "count": 6984
- },
- {
- "name": "Sev1",
- "count": 6927
- }
- ]
- },
- "id": "/subscriptions/dd91de05-d791-4ceb-b6dc-988682dc7d72/providers/Microsoft.AlertsManagement/smartGroups/01114c7c-769f-4fd4-b6fa-ab77693b83cd",
- "type": "Microsoft.AlertsManagement/smartGroups",
- "name": "CPU Alert"
- }
- ]
- }
- }
- }
-}
diff --git a/specification/alertsmanagement/resource-manager/readme.azureresourceschema.md b/specification/alertsmanagement/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..7e310183b24c
--- /dev/null
+++ b/specification/alertsmanagement/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,87 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - 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-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
+
+```
+
+### 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 f3499619c52f..4c1754e7b365 100644
--- a/specification/alertsmanagement/resource-manager/readme.md
+++ b/specification/alertsmanagement/resource-manager/readme.md
@@ -50,7 +50,9 @@ These settings apply only when `--tag=package-2019-06-preview` is specified on t
```yaml $(tag) == 'package-2019-06-preview'
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
- Microsoft.AlertsManagement/stable/2019-06-01/SmartDetectorAlertRulesApi.json
```
@@ -80,7 +82,9 @@ These settings apply only when `--tag=package-preview-2019-05` is specified on t
``` yaml $(tag) == 'package-preview-2019-05'
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: package-2018-05
@@ -101,6 +105,15 @@ input-file:
- Microsoft.AlertsManagement/preview/2018-05-05-preview/AlertsManagement.json
```
+### Tag: package-2020-08-04-preview
+
+These settings apply only when `--tag=package-2020-08-04` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-08-04-preview'
+input-file:
+- Microsoft.AlertsManagement/preview/2020-08-04-preview/AlertsManagement.json
+```
+
---
# Code Generation
@@ -116,6 +129,10 @@ swagger-to-sdk:
- repo: azure-sdk-for-python
- repo: azure-libraries-for-java
- 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#
@@ -169,32 +186,7 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.AlertsManagement/preview/2019-05-05-preview/AlertsManagement.json
- - $(this-folder)/Microsoft.AlertsManagement/stable/2019-06-01/SmartDetectorAlertRulesApi.json
- - $(this-folder)/Microsoft.AlertsManagement/stable/2019-03-01/AlertsManagement.json
- - $(this-folder)/Microsoft.AlertsManagement/stable/2019-03-01/SmartDetectorAlertRulesApi.json
- - $(this-folder)/Microsoft.AlertsManagement/stable/2018-05-05/AlertsManagement.json
- - $(this-folder)/Microsoft.AlertsManagement/preview/2018-05-05-preview/AlertsManagement.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/alertsmanagement/resource-manager/readme.trenton.md b/specification/alertsmanagement/resource-manager/readme.trenton.md
index 4a374c2f42fd..caac806574a8 100644
--- a/specification/alertsmanagement/resource-manager/readme.trenton.md
+++ b/specification/alertsmanagement/resource-manager/readme.trenton.md
@@ -7,6 +7,7 @@ overrides:
resource: "*"
set:
- NeedSeparated: true
+ - CombineCreateUpdate: true
- where:
resource: "ActionRules"
property: "properties"
diff --git a/specification/analysisservices/resource-manager/readme.azureresourceschema.md b/specification/analysisservices/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..d89301b2b8b3
--- /dev/null
+++ b/specification/analysisservices/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,48 @@
+## 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 47c8ceba9a14..1e60c46b1f69 100644
--- a/specification/analysisservices/resource-manager/readme.md
+++ b/specification/analysisservices/resource-manager/readme.md
@@ -84,6 +84,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
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
```
@@ -183,30 +186,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.AnalysisServices/stable/2017-08-01/analysisservices.json
- - $(this-folder)/Microsoft.AnalysisServices/preview/2017-08-01-beta/analysisservices.json
- - $(this-folder)/Microsoft.AnalysisServices/stable/2017-07-14/analysisservices.json
- - $(this-folder)/Microsoft.AnalysisServices/stable/2016-05-16/analysisservices.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/examples/ApiManagementGetContentType.json b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/examples/ApiManagementGetContentType.json
index 236c09de813f..fe3b604cd40c 100644
--- a/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/examples/ApiManagementGetContentType.json
+++ b/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2019-12-01/examples/ApiManagementGetContentType.json
@@ -18,12 +18,6 @@
"schema": {
"properties": {
"en_us": {
- "$ref": "#/definitions/metadata"
- }
- },
- "additionalProperties": false,
- "definitions": {
- "metadata": {
"type": "object",
"properties": {
"title": {
@@ -63,7 +57,8 @@
"documentId"
]
}
- }
+ },
+ "additionalProperties": false
},
"version": "1.0.0"
}
diff --git a/specification/apimanagement/resource-manager/readme.azureresourceschema.md b/specification/apimanagement/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..7afd9c95a116
--- /dev/null
+++ b/specification/apimanagement/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,305 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - 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-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 c9c4710e178d..623baea81b75 100644
--- a/specification/apimanagement/resource-manager/readme.md
+++ b/specification/apimanagement/resource-manager/readme.md
@@ -345,6 +345,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
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#
@@ -373,230 +376,7 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimanagement.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimapis.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimapisByTags.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimapiversionsets.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimauthorizationservers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimbackends.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimcaches.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimcertificates.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimcontenttypes.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimdeployment.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimdiagnostics.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimemailtemplates.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimgateways.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimgroups.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimidentityprovider.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimissues.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimloggers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimnamedvalues.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimnetworkstatus.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimnotifications.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimopenidconnectproviders.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimpolicies.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimpolicydescriptions.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimportalsettings.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimproducts.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimproductsByTags.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimquotas.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimregions.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimreports.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimsubscriptions.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimtagresources.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimtags.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimtenant.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/apimusers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-12-01/definitions.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimanagement.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimapis.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimapisByTags.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimapiversionsets.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimauthorizationservers.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimbackends.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimcaches.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimcertificates.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimdeployment.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimdiagnostics.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimemailtemplates.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimgateways.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimgroups.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimidentityprovider.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimissues.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimloggers.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimnetworkstatus.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimnotifications.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimopenidconnectproviders.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimpolicies.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimpolicydescriptions.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimportalsettings.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimproducts.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimproductsByTags.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimnamedvalues.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimquotas.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimregions.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimreports.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimsubscriptions.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimtagresources.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimtags.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimtenant.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/apimusers.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2019-12-01-preview/definitions.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimanagement.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimapis.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimapisByTags.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimapiversionsets.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimauthorizationservers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimbackends.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimcaches.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimcertificates.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimdeployment.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimdiagnostics.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimemailtemplates.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimgroups.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimidentityprovider.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimissues.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimloggers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimnetworkstatus.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimnotifications.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimopenidconnectproviders.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimpolicies.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimpolicysnippets.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimportalsettings.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimproducts.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimproductsByTags.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimproperties.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimquotas.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimregions.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimreports.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimsubscriptions.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimtagresources.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimtags.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimtenant.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/apimusers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2019-01-01/definitions.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimanagement.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimapis.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimapisByTags.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimauthorizationservers.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimbackends.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimcaches.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimcertificates.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimdeployment.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimdiagnostics.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimemailtemplates.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimgroups.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimidentityprovider.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimissues.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimloggers.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimnotifications.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimnetworkstatus.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimopenidconnectproviders.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimpolicies.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimpolicysnippets.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimportalsettings.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimproducts.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimproductsByTags.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimproperties.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimquotas.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimregions.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimreports.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimsubscriptions.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimtagresources.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimtags.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimtenant.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimusers.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/apimapiversionsets.json
- - $(this-folder)/Microsoft.ApiManagement/preview/2018-06-01-preview/definitions.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimanagement.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimapis.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimauthorizationservers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimbackends.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimcertificates.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimdeployment.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimdiagnostics.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimemailtemplate.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimgroups.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimidentityprovider.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimloggers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimnotifications.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimnetworkstatus.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimopenidconnectproviders.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimportalsettings.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimproducts.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimproperties.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimquotas.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimreports.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimsubscriptions.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimtagresources.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimtags.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimtenant.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimusers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2018-01-01/apimversionsets.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimanagement.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimapis.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimauthorizationservers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimbackends.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimcertificates.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimdeployment.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimdiagnostics.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimemailtemplate.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimgroups.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimidentityprovider.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimloggers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimnotifications.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimnetworkstatus.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimopenidconnectproviders.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimportalsettings.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimproducts.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimproperties.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimquotas.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimreports.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimsubscriptions.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimtagresources.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimtags.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimtenant.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimusers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2017-03-01/apimversionsets.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimanagement.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimapis.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimauthorizationservers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimbackends.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimcertificates.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimdeployment.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimgroups.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimidentityprovider.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimloggers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimnetworkstatus.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimopenidconnectproviders.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimproducts.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimproperties.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimquotas.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimreports.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimsubscriptions.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimtenant.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-10-10/apimusers.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-07-07/apimanagement.json
- - $(this-folder)/Microsoft.ApiManagement/stable/2016-07-07/apimdeployment.json
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-```
-
-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/appconfiguration/resource-manager/Microsoft.AppConfiguration/stable/2020-06-01/appconfiguration.json b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/stable/2020-06-01/appconfiguration.json
index aae591980eaa..f82beb0b8e13 100644
--- a/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/stable/2020-06-01/appconfiguration.json
+++ b/specification/appconfiguration/resource-manager/Microsoft.AppConfiguration/stable/2020-06-01/appconfiguration.json
@@ -1045,6 +1045,18 @@
"encryption": {
"$ref": "#/definitions/EncryptionProperties",
"description": "The encryption settings of the configuration store."
+ },
+ "publicNetworkAccess": {
+ "description": "Control permission for data plane traffic coming from public networks while private endpoint is enabled.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "PublicNetworkAccess",
+ "modelAsString": true
+ }
}
}
},
diff --git a/specification/appconfiguration/resource-manager/readme.azureresourceschema.md b/specification/appconfiguration/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..8c628ac435fb
--- /dev/null
+++ b/specification/appconfiguration/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,60 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - 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-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 169e554cc7cc..8b9ca1624935 100644
--- a/specification/appconfiguration/resource-manager/readme.go.md
+++ b/specification/appconfiguration/resource-manager/readme.go.md
@@ -25,7 +25,7 @@ These settings apply only when `--tag=package-2020-06-01 --go` is specified on t
Please also specify `--go-sdk-folder=`.
``` yaml $(tag) == 'package-2020-06-01' && $(go)
-output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-06-01/$(namespace)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-06-01/$(namespace)
```
### Tag: package-2019-11-01-preview and go
diff --git a/specification/appconfiguration/resource-manager/readme.md b/specification/appconfiguration/resource-manager/readme.md
index 1368cb987b57..8f59f70c2a43 100644
--- a/specification/appconfiguration/resource-manager/readme.md
+++ b/specification/appconfiguration/resource-manager/readme.md
@@ -85,6 +85,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
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#
@@ -129,30 +132,7 @@ directive:
reason: This is data plane level information proxied through the RP and cannot be changed.
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.AppConfiguration/stable/2020-06-01/appconfiguration.json
- - $(this-folder)/Microsoft.AppConfiguration/preview/2019-11-01-preview/appconfiguration.json
- - $(this-folder)/Microsoft.AppConfiguration/preview/2019-02-01-preview/appconfiguration.json
- - $(this-folder)/Microsoft.AppConfiguration/stable/2019-10-01/appconfiguration.json
-
-```
-
-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.
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/applicationinsights/data-plane/Monitor.Exporters/preview/2020-09-15_Preview/examples/track.json b/specification/applicationinsights/data-plane/Monitor.Exporters/preview/2020-09-15_Preview/examples/track.json
new file mode 100644
index 000000000000..dad4cd1bc839
--- /dev/null
+++ b/specification/applicationinsights/data-plane/Monitor.Exporters/preview/2020-09-15_Preview/examples/track.json
@@ -0,0 +1,193 @@
+{
+ "parameters": {
+ "Host": "{Host}",
+ "body": [
+ {
+ "ver": 1,
+ "name": "Microsoft.ApplicationInsights.b4f83947968d4e2f82ad804be07697ae.Event",
+ "time": "2020-09-22T10:12:53.208-0700",
+ "sampleRate": 100.0,
+ "iKey": "c1f83947-938c-5e2a-82ff-804be07647bc",
+ "tags": {
+ "ai.internal.sdkVersion": "java:3.0.0-PREVIEW.5",
+ "ai.internal.nodeName": "MININT-PLOJ2RD",
+ "ai.operation.id": "f364119ed1ff3bcda0d4ee0896cf785f",
+ "ai.cloud.roleInstance": "MININT-PLOJ2RD",
+ "ai.operation.childid": "75706a2ac9456288"
+ }
+ },
+ {
+ "ver": 1,
+ "name": "Microsoft.ApplicationInsights.b4f83947968d4e2f82ad804be07697ae.Event",
+ "time": "2020-09-22T10:12:53.208-0700",
+ "sampleRate": 100.0,
+ "iKey": "c1f83947-938c-5e2a-82ff-804be07647bc",
+ "tags": {
+ "ai.internal.sdkVersion": "java:3.0.0-PREVIEW.5",
+ "ai.internal.nodeName": "MININT-PLOJ2RD",
+ "ai.operation.id": "f364119ed1ff3bcda0d4ee0896cf785f",
+ "ai.cloud.roleInstance": "MININT-PLOJ2RD",
+ "ai.operation.childid": "75706a2ac9456288"
+ }
+ },
+ {
+ "ver": 1,
+ "name": "Microsoft.ApplicationInsights.b4f83947968d4e2f82ad804be07697ae.Event",
+ "time": "2020-09-22T10:12:53.208-0700",
+ "sampleRate": 100.0,
+ "iKey": "c1f83947-938c-5e2a-82ff-804be07647bc",
+ "tags": {
+ "ai.internal.sdkVersion": "java:3.0.0-PREVIEW.5",
+ "ai.internal.nodeName": "MININT-PLOJ2RD",
+ "ai.operation.id": "f364119ed1ff3bcda0d4ee0896cf785f",
+ "ai.cloud.roleInstance": "MININT-PLOJ2RD",
+ "ai.operation.childid": "75706a2ac9456288"
+ }
+ },
+ {
+ "ver": 1,
+ "name": "Microsoft.ApplicationInsights.b4f83947968d4e2f82ad804be07697ae.Event",
+ "time": "2020-09-22T10:12:53.208-0700",
+ "sampleRate": 100.0,
+ "iKey": "c1f83947-938c-5e2a-82ff-804be07647bc",
+ "tags": {
+ "ai.internal.sdkVersion": "java:3.0.0-PREVIEW.5",
+ "ai.internal.nodeName": "MININT-PLOJ2RD",
+ "ai.operation.id": "f364119ed1ff3bcda0d4ee0896cf785f",
+ "ai.cloud.roleInstance": "MININT-PLOJ2RD",
+ "ai.operation.childid": "75706a2ac9456288"
+ }
+ },
+ {
+ "ver": 1,
+ "name": "Microsoft.ApplicationInsights.b4f83947968d4e2f82ad804be07697ae.Event",
+ "time": "2020-09-22T10:12:53.208-0700",
+ "sampleRate": 100.0,
+ "iKey": "c1f83947-938c-5e2a-82ff-804be07647bc",
+ "tags": {
+ "ai.internal.sdkVersion": "java:3.0.0-PREVIEW.5",
+ "ai.internal.nodeName": "MININT-PLOJ2RD",
+ "ai.operation.id": "f364119ed1ff3bcda0d4ee0896cf785f",
+ "ai.cloud.roleInstance": "MININT-PLOJ2RD",
+ "ai.operation.childid": "75706a2ac9456288"
+ }
+ },
+ {
+ "ver": 1,
+ "name": "Microsoft.ApplicationInsights.b4f83947968d4e2f82ad804be07697ae.Event",
+ "time": "2020-09-22T10:12:53.208-0700",
+ "sampleRate": 100.0,
+ "iKey": "c1f83947-938c-5e2a-82ff-804be07647bc",
+ "tags": {
+ "ai.internal.sdkVersion": "java:3.0.0-PREVIEW.5",
+ "ai.internal.nodeName": "MININT-PLOJ2RD",
+ "ai.operation.id": "f364119ed1ff3bcda0d4ee0896cf785f",
+ "ai.cloud.roleInstance": "MININT-PLOJ2RD",
+ "ai.operation.childid": "75706a2ac9456288"
+ }
+ },
+ {
+ "ver": 1,
+ "name": "Microsoft.ApplicationInsights.b4f83947968d4e2f82ad804be07697ae.Event",
+ "time": "2020-09-22T10:12:53.208-0700",
+ "sampleRate": 100.0,
+ "iKey": "c1f83947-938c-5e2a-82ff-804be07647bc",
+ "tags": {
+ "ai.internal.sdkVersion": "java:3.0.0-PREVIEW.5",
+ "ai.internal.nodeName": "MININT-PLOJ2RD",
+ "ai.operation.id": "f364119ed1ff3bcda0d4ee0896cf785f",
+ "ai.cloud.roleInstance": "MININT-PLOJ2RD",
+ "ai.operation.childid": "75706a2ac9456288"
+ }
+ }
+ ]
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "itemsReceived": 1,
+ "itemsAccepted": 1,
+ "errors": []
+ }
+ },
+ "206": {
+ "headers": {},
+ "body": {
+ "itemsReceived": 1,
+ "itemsAccepted": 1,
+ "errors": []
+ }
+ },
+ "400": {
+ "headers": {},
+ "body": {
+ "itemsReceived": 1,
+ "itemsAccepted": 0,
+ "errors": [
+ {
+ "index": 1,
+ "statusCode": 400,
+ "message": "103: Field 'time' on type 'Envelope' is older than the allowed min date. Expected: now - 172800000ms, Actual: now - 2694990759ms"
+ }
+ ]
+ }
+ },
+ "402": {
+ "headers": {},
+ "body": {
+ "itemsReceived": 1,
+ "itemsAccepted": 0,
+ "errors": [
+ {
+ "index": 1,
+ "statusCode": 402,
+ "message": ""
+ }
+ ]
+ }
+ },
+ "429": {
+ "headers": {},
+ "body": {
+ "itemsReceived": 1,
+ "itemsAccepted": 0,
+ "errors": [
+ {
+ "index": 1,
+ "statusCode": 429,
+ "message": ""
+ }
+ ]
+ }
+ },
+ "500": {
+ "headers": {},
+ "body": {
+ "itemsReceived": 1,
+ "itemsAccepted": 0,
+ "errors": [
+ {
+ "index": 1,
+ "statusCode": 500,
+ "message": ""
+ }
+ ]
+ }
+ },
+ "503": {
+ "headers": {},
+ "body": {
+ "itemsReceived": 1,
+ "itemsAccepted": 0,
+ "errors": [
+ {
+ "index": 1,
+ "statusCode": 503,
+ "message": ""
+ }
+ ]
+ }
+ }
+ }
+}
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
new file mode 100644
index 000000000000..90a37e91a9ee
--- /dev/null
+++ b/specification/applicationinsights/data-plane/Monitor.Exporters/preview/2020-09-15_Preview/swagger.json
@@ -0,0 +1,1020 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-09-15_Preview",
+ "title": "ApplicationInsightsClient",
+ "description": "This document describes the protocol for client requests and responses to the data collection endpoint."
+ },
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{Host}/v2/",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Host"
+ }
+ ]
+ },
+ "paths": {
+ "/track": {
+ "post": {
+ "summary": "Track telemetry events",
+ "description": "This operation sends a sequence of telemetry events that will be monitored by Azure Monitor.",
+ "operationId": "track",
+ "parameters": [
+ {
+ "name": "body",
+ "in": "body",
+ "description": "The list of telemetry events to track.",
+ "required": true,
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TelemetryEnvelope"
+ }
+ }
+ }
+ ],
+ "consumes": [
+ "application/json",
+ "x-json-stream"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "All of the telemetry items were accepted and processed.",
+ "schema": {
+ "$ref": "#/definitions/TrackResponse"
+ }
+ },
+ "206": {
+ "description": "Partial success. Some of the telemetry items were accepted and processed.",
+ "schema": {
+ "$ref": "#/definitions/TrackResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "x-ms-error-response": true,
+ "schema": {
+ "$ref": "#/definitions/TrackResponse"
+ }
+ },
+ "402": {
+ "description": "Payment Required",
+ "x-ms-error-response": true,
+ "schema": {
+ "$ref": "#/definitions/TrackResponse"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "x-ms-error-response": true,
+ "schema": {
+ "$ref": "#/definitions/TrackResponse"
+ }
+ },
+ "500": {
+ "description": "Internal Server Error",
+ "x-ms-error-response": true,
+ "schema": {
+ "$ref": "#/definitions/TrackResponse"
+ }
+ },
+ "503": {
+ "description": "Service Unavailable",
+ "x-ms-error-response": true,
+ "schema": {
+ "$ref": "#/definitions/TrackResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Track examples": {
+ "$ref": "examples/track.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AvailabilityData": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Domain"
+ },
+ {
+ "type": "object",
+ "description": "Instances of AvailabilityData represent the result of executing an availability test.",
+ "required": [
+ "id",
+ "name",
+ "duration",
+ "success"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identifier of a test run. Use it to correlate steps of test run and telemetry generated by the service.",
+ "maxLength": 512
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the test that these availability results represent.",
+ "maxLength": 1024
+ },
+ "duration": {
+ "type": "string",
+ "description": "Duration in format: DD.HH:MM:SS.MMMMMM. Must be less than 1000 days."
+ },
+ "success": {
+ "type": "boolean",
+ "x-nullable": false,
+ "description": "Success flag."
+ },
+ "runLocation": {
+ "type": "string",
+ "description": "Name of the location where the test was run from.",
+ "maxLength": 1024
+ },
+ "message": {
+ "type": "string",
+ "description": "Diagnostic message for the result.",
+ "maxLength": 8192
+ },
+ "properties": {
+ "type": "object",
+ "description": "Collection of custom properties.",
+ "additionalProperties": {
+ "type": "string",
+ "maxLength": 8192
+ }
+ },
+ "measurements": {
+ "type": "object",
+ "description": "Collection of custom measurements.",
+ "additionalProperties": {
+ "type": "number",
+ "format": "double"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "Base": {
+ "x-ms-client-name": "MonitorBase",
+ "type": "object",
+ "description": "Data struct to contain only C section with custom fields.",
+ "properties": {
+ "baseType": {
+ "type": "string",
+ "description": "Name of item (B section) if any. If telemetry data is derived straight from this, this should be null."
+ },
+ "baseData": {
+ "$ref": "#/definitions/Domain",
+ "description": "The data payload for the telemetry request"
+ }
+ }
+ },
+ "DataPoint": {
+ "x-ms-client-name": "MetricDataPoint",
+ "type": "object",
+ "description": "Metric data single measurement.",
+ "required": [
+ "name",
+ "value"
+ ],
+ "properties": {
+ "ns": {
+ "x-ms-client-name": "namespace",
+ "type": "string",
+ "description": "Namespace of the metric.",
+ "maxLength": 256
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the metric.",
+ "maxLength": 1024
+ },
+ "kind": {
+ "x-ms-client-name": "dataPointType",
+ "$ref": "#/definitions/DataPointType",
+ "description": "Metric type. Single measurement or the aggregated value."
+ },
+ "value": {
+ "type": "number",
+ "description": "Single value for measurement. Sum of individual measurements for the aggregation.",
+ "format": "double"
+ },
+ "count": {
+ "type": "number",
+ "format": "int32",
+ "description": "Metric weight of the aggregated metric. Should not be set for a measurement.",
+ "x-nullable": true
+ },
+ "min": {
+ "type": "number",
+ "format": "double",
+ "description": "Minimum value of the aggregated metric. Should not be set for a measurement.",
+ "x-nullable": true
+ },
+ "max": {
+ "type": "number",
+ "format": "double",
+ "description": "Maximum value of the aggregated metric. Should not be set for a measurement.",
+ "x-nullable": true
+ },
+ "stdDev": {
+ "type": "number",
+ "format": "double",
+ "description": "Standard deviation of the aggregated metric. Should not be set for a measurement.",
+ "x-nullable": true
+ }
+ }
+ },
+ "DataPointType": {
+ "type": "string",
+ "description": "Type of the metric data measurement.",
+ "enum": [
+ "Measurement",
+ "Aggregation"
+ ]
+ },
+ "Domain": {
+ "x-ms-client-name": "MonitorDomain",
+ "type": "object",
+ "description": "The abstract common base of all domains.",
+ "required": [
+ "ver"
+ ],
+ "properties": {
+ "ver": {
+ "x-ms-client-name": "version",
+ "type": "integer",
+ "format": "int32",
+ "description": "Schema version",
+ "default": 2
+ }
+ }
+ },
+ "EventData": {
+ "x-ms-client-name": "TelemetryEventData",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Domain"
+ },
+ {
+ "type": "object",
+ "description": "Instances of Event represent structured event records that can be grouped and searched by their properties. Event data item also creates a metric of event count by name.",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Event name. Keep it low cardinality to allow proper grouping and useful metrics.",
+ "maxLength": 512
+ },
+ "properties": {
+ "type": "object",
+ "description": "Collection of custom properties.",
+ "additionalProperties": {
+ "type": "string",
+ "maxLength": 8192
+ }
+ },
+ "measurements": {
+ "type": "object",
+ "description": "Collection of custom measurements.",
+ "additionalProperties": {
+ "type": "number",
+ "format": "double"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "ExceptionData": {
+ "x-ms-client-name": "TelemetryExceptionData",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Domain"
+ },
+ {
+ "type": "object",
+ "description": "An instance of Exception represents a handled or unhandled exception that occurred during execution of the monitored application.",
+ "required": [
+ "exceptions"
+ ],
+ "properties": {
+ "exceptions": {
+ "type": "array",
+ "description": "Exception chain - list of inner exceptions.",
+ "items": {
+ "$ref": "#/definitions/ExceptionDetails"
+ }
+ },
+ "severityLevel": {
+ "x-nullable": true,
+ "description": "Severity level. Mostly used to indicate exception severity level when it is reported by logging library.",
+ "$ref": "#/definitions/SeverityLevel"
+ },
+ "problemId": {
+ "type": "string",
+ "description": "Identifier of where the exception was thrown in code. Used for exceptions grouping. Typically a combination of exception type and a function from the call stack.",
+ "maxLength": 1024
+ },
+ "properties": {
+ "type": "object",
+ "description": "Collection of custom properties.",
+ "additionalProperties": {
+ "type": "string",
+ "maxLength": 8192
+ }
+ },
+ "measurements": {
+ "type": "object",
+ "description": "Collection of custom measurements.",
+ "additionalProperties": {
+ "type": "number",
+ "format": "double"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "ExceptionDetails": {
+ "x-ms-client-name": "TelemetryExceptionDetails",
+ "type": "object",
+ "description": "Exception details of the exception in a chain.",
+ "required": [
+ "message"
+ ],
+ "properties": {
+ "id": {
+ "type": "number",
+ "format": "int32",
+ "description": "In case exception is nested (outer exception contains inner one), the id and outerId properties are used to represent the nesting."
+ },
+ "outerId": {
+ "type": "number",
+ "format": "int32",
+ "description": "The value of outerId is a reference to an element in ExceptionDetails that represents the outer exception"
+ },
+ "typeName": {
+ "type": "string",
+ "description": "Exception type name.",
+ "maxLength": 1024
+ },
+ "message": {
+ "type": "string",
+ "description": "Exception message.",
+ "maxLength": 32768
+ },
+ "hasFullStack": {
+ "type": "boolean",
+ "default": true,
+ "description": "Indicates if full exception stack is provided in the exception. The stack may be trimmed, such as in the case of a StackOverflow exception."
+ },
+ "stack": {
+ "type": "string",
+ "description": "Text describing the stack. Either stack or parsedStack should have a value.",
+ "maxLength": 32768
+ },
+ "parsedStack": {
+ "type": "array",
+ "description": "List of stack frames. Either stack or parsedStack should have a value.",
+ "items": {
+ "$ref": "#/definitions/StackFrame"
+ }
+ }
+ }
+ },
+ "MessageData": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Domain"
+ },
+ {
+ "type": "object",
+ "description": "Instances of Message represent printf-like trace statements that are text-searched. Log4Net, NLog and other text-based log file entries are translated into instances of this type. The message does not have measurements.",
+ "required": [
+ "message"
+ ],
+ "properties": {
+ "message": {
+ "type": "string",
+ "description": "Trace message",
+ "maxLength": 32768
+ },
+ "severityLevel": {
+ "$ref": "#/definitions/SeverityLevel",
+ "description": "Trace severity level."
+ },
+ "properties": {
+ "type": "object",
+ "description": "Collection of custom properties.",
+ "additionalProperties": {
+ "type": "string",
+ "maxLength": 8192
+ }
+ },
+ "measurements": {
+ "type": "object",
+ "description": "Collection of custom measurements.",
+ "additionalProperties": {
+ "type": "number",
+ "format": "double"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "MetricsData": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Domain"
+ },
+ {
+ "type": "object",
+ "description": "An instance of the Metric item is a list of measurements (single data points) and/or aggregations.",
+ "required": [
+ "metrics"
+ ],
+ "properties": {
+ "metrics": {
+ "type": "array",
+ "description": "List of metrics. Only one metric in the list is currently supported by Application Insights storage. If multiple data points were sent only the first one will be used.",
+ "items": {
+ "$ref": "#/definitions/DataPoint"
+ }
+ },
+ "properties": {
+ "type": "object",
+ "description": "Collection of custom properties.",
+ "additionalProperties": {
+ "type": "string",
+ "maxLength": 8192
+ }
+ }
+ }
+ }
+ ]
+ },
+ "PageViewData": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Domain"
+ },
+ {
+ "type": "object",
+ "description": "An instance of PageView represents a generic action on a page like a button click. It is also the base type for PageView.",
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identifier of a page view instance. Used for correlation between page view and other telemetry items.",
+ "maxLength": 512
+ },
+ "name": {
+ "type": "string",
+ "description": "Event name. Keep it low cardinality to allow proper grouping and useful metrics.",
+ "maxLength": 1024
+ },
+ "url": {
+ "type": "string",
+ "description": "Request URL with all query string parameters",
+ "maxLength": 2048
+ },
+ "duration": {
+ "type": "string",
+ "description": "Request duration in format: DD.HH:MM:SS.MMMMMM. For a page view (PageViewData), this is the duration. For a page view with performance information (PageViewPerfData), this is the page load time. Must be less than 1000 days."
+ },
+ "referredUri": {
+ "type": "string",
+ "description": "Fully qualified page URI or URL of the referring page; if unknown, leave blank",
+ "maxLength": 2048
+ },
+ "properties": {
+ "type": "object",
+ "description": "Collection of custom properties.",
+ "additionalProperties": {
+ "type": "string",
+ "maxLength": 8192
+ }
+ },
+ "measurements": {
+ "type": "object",
+ "description": "Collection of custom measurements.",
+ "additionalProperties": {
+ "type": "number",
+ "format": "double"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "PageViewPerfData": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Domain"
+ },
+ {
+ "type": "object",
+ "description": "An instance of PageViewPerf represents: a page view with no performance data, a page view with performance data, or just the performance data of an earlier page request.",
+ "required": [
+ "id",
+ "name"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identifier of a page view instance. Used for correlation between page view and other telemetry items.",
+ "maxLength": 512
+ },
+ "name": {
+ "type": "string",
+ "description": "Event name. Keep it low cardinality to allow proper grouping and useful metrics.",
+ "maxLength": 1024
+ },
+ "url": {
+ "type": "string",
+ "description": "Request URL with all query string parameters",
+ "maxLength": 2048
+ },
+ "duration": {
+ "type": "string",
+ "description": "Request duration in format: DD.HH:MM:SS.MMMMMM. For a page view (PageViewData), this is the duration. For a page view with performance information (PageViewPerfData), this is the page load time. Must be less than 1000 days."
+ },
+ "perfTotal": {
+ "type": "string",
+ "description": "Performance total in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff"
+ },
+ "networkConnect": {
+ "type": "string",
+ "description": "Network connection time in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff"
+ },
+ "sentRequest": {
+ "type": "string",
+ "description": "Sent request time in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff"
+ },
+ "receivedResponse": {
+ "type": "string",
+ "description": "Received response time in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff"
+ },
+ "domProcessing": {
+ "type": "string",
+ "description": "DOM processing time in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff"
+ },
+ "properties": {
+ "type": "object",
+ "description": "Collection of custom properties.",
+ "additionalProperties": {
+ "type": "string",
+ "maxLength": 8192
+ }
+ },
+ "measurements": {
+ "type": "object",
+ "description": "Collection of custom measurements.",
+ "additionalProperties": {
+ "type": "number",
+ "format": "double"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "RemoteDependencyData": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Domain"
+ },
+ {
+ "type": "object",
+ "description": "An instance of Remote Dependency represents an interaction of the monitored component with a remote component/service like SQL or an HTTP endpoint.",
+ "required": [
+ "name",
+ "duration"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identifier of a dependency call instance. Used for correlation with the request telemetry item corresponding to this dependency call.",
+ "maxLength": 512
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the command initiated with this dependency call. Low cardinality value. Examples are stored procedure name and URL path template.",
+ "maxLength": 1024
+ },
+ "resultCode": {
+ "type": "string",
+ "description": "Result code of a dependency call. Examples are SQL error code and HTTP status code.",
+ "maxLength": 1024
+ },
+ "data": {
+ "type": "string",
+ "description": "Command initiated by this dependency call. Examples are SQL statement and HTTP URL with all query parameters.",
+ "maxLength": 8192
+ },
+ "type": {
+ "type": "string",
+ "description": "Dependency type name. Very low cardinality value for logical grouping of dependencies and interpretation of other fields like commandName and resultCode. Examples are SQL, Azure table, and HTTP.",
+ "maxLength": 1024
+ },
+ "target": {
+ "type": "string",
+ "description": "Target site of a dependency call. Examples are server name, host address.",
+ "maxLength": 1024
+ },
+ "duration": {
+ "type": "string",
+ "description": "Request duration in format: DD.HH:MM:SS.MMMMMM. Must be less than 1000 days."
+ },
+ "success": {
+ "type": "boolean",
+ "description": "Indication of successful or unsuccessful call.",
+ "default": true
+ },
+ "properties": {
+ "type": "object",
+ "description": "Collection of custom properties.",
+ "additionalProperties": {
+ "type": "string",
+ "maxLength": 8192
+ }
+ },
+ "measurements": {
+ "type": "object",
+ "description": "Collection of custom measurements.",
+ "additionalProperties": {
+ "type": "number",
+ "format": "double"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "RequestData": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Domain"
+ },
+ {
+ "type": "object",
+ "description": "An instance of Request represents completion of an external request to the application to do work and contains a summary of that request execution and the results.",
+ "required": [
+ "id",
+ "duration",
+ "responseCode",
+ "success"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Identifier of a request call instance. Used for correlation between request and other telemetry items.",
+ "maxLength": 512
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the request. Represents code path taken to process request. Low cardinality value to allow better grouping of requests. For HTTP requests it represents the HTTP method and URL path template like 'GET /values/{id}'.",
+ "maxLength": 1024
+ },
+ "duration": {
+ "type": "string",
+ "description": "Request duration in format: DD.HH:MM:SS.MMMMMM. Must be less than 1000 days."
+ },
+ "success": {
+ "type": "boolean",
+ "description": "Indication of successful or unsuccessful call.",
+ "default": true
+ },
+ "responseCode": {
+ "type": "string",
+ "description": "Result of a request execution. HTTP status code for HTTP requests.",
+ "maxLength": 1024
+ },
+ "source": {
+ "type": "string",
+ "description": "Source of the request. Examples are the instrumentation key of the caller or the ip address of the caller.",
+ "maxLength": 1024
+ },
+ "url": {
+ "type": "string",
+ "description": "Request URL with all query string parameters.",
+ "maxLength": 2048
+ },
+ "properties": {
+ "type": "object",
+ "description": "Collection of custom properties.",
+ "additionalProperties": {
+ "type": "string",
+ "maxLength": 8192
+ }
+ },
+ "measurements": {
+ "type": "object",
+ "description": "Collection of custom measurements.",
+ "additionalProperties": {
+ "type": "number",
+ "format": "double"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "SeverityLevel": {
+ "type": "string",
+ "description": "Defines the level of severity for the event.",
+ "enum": [
+ "Verbose",
+ "Information",
+ "Warning",
+ "Error",
+ "Critical"
+ ]
+ },
+ "StackFrame": {
+ "type": "object",
+ "description": "Stack frame information.",
+ "required": [
+ "level",
+ "method"
+ ],
+ "properties": {
+ "level": {
+ "type": "number",
+ "format": "int32",
+ "description": ""
+ },
+ "method": {
+ "type": "string",
+ "description": "Method name.",
+ "maxLength": 1024
+ },
+ "assembly": {
+ "type": "string",
+ "description": "Name of the assembly (dll, jar, etc.) containing this function.",
+ "maxLength": 1024
+ },
+ "fileName": {
+ "type": "string",
+ "description": "File name or URL of the method implementation.",
+ "maxLength": 1024
+ },
+ "line": {
+ "type": "number",
+ "format": "int32",
+ "description": "Line number of the code implementation."
+ }
+ }
+ },
+ "TrackResponse": {
+ "description": "Response containing the status of each telemetry item.",
+ "type": "object",
+ "properties": {
+ "itemsReceived": {
+ "type": "number",
+ "format": "int32",
+ "description": "The number of items received."
+ },
+ "itemsAccepted": {
+ "type": "number",
+ "format": "int32",
+ "description": "The number of items accepted."
+ },
+ "errors": {
+ "type": "array",
+ "description": "An array of error detail objects.",
+ "items": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ },
+ "ErrorDetails": {
+ "x-ms-client-name": "TelemetryErrorDetails",
+ "description": "The error details",
+ "type": "object",
+ "properties": {
+ "index": {
+ "type": "number",
+ "format": "int32",
+ "description": "The index in the original payload of the item."
+ },
+ "statusCode": {
+ "type": "number",
+ "format": "int32",
+ "description": "The item specific [HTTP Response status code](#Response Status Codes)."
+ },
+ "message": {
+ "type": "string",
+ "description": "The error message."
+ }
+ }
+ },
+ "TelemetryEnvelope": {
+ "x-ms-client-name": "TelemetryItem",
+ "description": "System variables for a telemetry item.",
+ "type": "object",
+ "required": [
+ "name",
+ "time"
+ ],
+ "properties": {
+ "ver": {
+ "type": "number",
+ "x-ms-client-name": "version",
+ "format": "int32",
+ "default": 1,
+ "description": "Envelope version. For internal use only. By assigning this the default, it will not be serialized within the payload unless changed to a value other than #1."
+ },
+ "name": {
+ "type": "string",
+ "description": "Type name of telemetry data item."
+ },
+ "time": {
+ "type": "string",
+ "description": "Event date time when telemetry item was created. This is the wall clock time on the client when the event was generated. There is no guarantee that the client's time is accurate. This field must be formatted in UTC ISO 8601 format, with a trailing 'Z' character, as described publicly on https://en.wikipedia.org/wiki/ISO_8601#UTC. Note: the number of decimal seconds digits provided are variable (and unspecified). Consumers should handle this, i.e. managed code consumers should not use format 'O' for parsing as it specifies a fixed length. Example: 2009-06-15T13:45:30.0000000Z."
+ },
+ "sampleRate": {
+ "type": "number",
+ "format": "float",
+ "default": 100.0,
+ "description": "Sampling rate used in application. This telemetry item represents 1 / sampleRate actual telemetry items."
+ },
+ "seq": {
+ "type": "string",
+ "x-ms-client-name": "sequence",
+ "maxLength": 64,
+ "description": "Sequence field used to track absolute order of uploaded events."
+ },
+ "iKey": {
+ "type": "string",
+ "x-ms-client-name": "instrumentationKey",
+ "description": "The instrumentation key of the Application Insights resource."
+ },
+ "tags": {
+ "type": "object",
+ "description": "Key/value collection of context properties. See ContextTagKeys for information on available properties.",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "data": {
+ "$ref": "#/definitions/Base",
+ "description": "Telemetry data item."
+ }
+ }
+ },
+ "ContextTagKeys": {
+ "type": "string",
+ "description": "The context tag keys.",
+ "enum": [
+ "ApplicationVersion",
+ "DeviceId",
+ "DeviceLocale",
+ "DeviceModel",
+ "DeviceOEMName",
+ "DeviceOSVersion",
+ "DeviceType",
+ "LocationIp",
+ "LocationCountry",
+ "LocationProvince",
+ "LocationCity",
+ "OperationId",
+ "OperationName",
+ "OperationParentId",
+ "OperationSyntheticSource",
+ "OperationCorrelationVector",
+ "SessionId",
+ "SessionIsFirst",
+ "UserAccountId",
+ "UserId",
+ "UserAuthUserId",
+ "CloudRole",
+ "CloudRoleVer",
+ "CloudRoleInstance",
+ "CloudLocation",
+ "InternalSdkVersion",
+ "InternalAgentVersion",
+ "InternalNodeName "
+ ],
+ "x-ms-enum": {
+ "name": "ContextTagKeys",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "ai.application.ver"
+ },
+ {
+ "value": "ai.device.id"
+ },
+ {
+ "value": "ai.device.locale"
+ },
+ {
+ "value": "ai.device.model"
+ },
+ {
+ "value": "ai.device.oemName"
+ },
+ {
+ "value": "ai.device.osVersion"
+ },
+ {
+ "value": "ai.device.type"
+ },
+ {
+ "value": "ai.location.ip"
+ },
+ {
+ "value": "ai.location.country"
+ },
+ {
+ "value": "ai.location.province"
+ },
+ {
+ "value": "ai.location.city"
+ },
+ {
+ "value": "ai.operation.id"
+ },
+ {
+ "value": "ai.operation.name"
+ },
+ {
+ "value": "ai.operation.parentId"
+ },
+ {
+ "value": "ai.operation.syntheticSource"
+ },
+ {
+ "value": "ai.operation.correlationVector"
+ },
+ {
+ "value": "ai.session.id"
+ },
+ {
+ "value": "ai.session.isFirst"
+ },
+ {
+ "value": "ai.user.accountId"
+ },
+ {
+ "value": "ai.user.id"
+ },
+ {
+ "value": "ai.user.authUserId"
+ },
+ {
+ "value": "ai.cloud.role"
+ },
+ {
+ "value": "ai.cloud.roleVer"
+ },
+ {
+ "value": "ai.cloud.roleInstance"
+ },
+ {
+ "value": "ai.cloud.location"
+ },
+ {
+ "value": "ai.internal.sdkVersion"
+ },
+ {
+ "value": "ai.internal.agentVersion"
+ },
+ {
+ "value": "ai.internal.nodeName"
+ }
+ ]
+ }
+ }
+ },
+ "parameters": {
+ "Host": {
+ "name": "Host",
+ "description": "Breeze endpoint: https://dc.services.visualstudio.com",
+ "x-ms-parameter-location": "client",
+ "default": "https://dc.services.visualstudio.com",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ }
+ }
+}
diff --git a/specification/applicationinsights/data-plane/Monitor.Exporters/readme.md b/specification/applicationinsights/data-plane/Monitor.Exporters/readme.md
new file mode 100644
index 000000000000..b1ae6ed86f47
--- /dev/null
+++ b/specification/applicationinsights/data-plane/Monitor.Exporters/readme.md
@@ -0,0 +1,44 @@
+# Exporter for Azure Monitor
+> see https://aka.ms/autorest
+
+## 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
+
+The following are the settings for this using this API with AutoRest.
+
+``` yaml
+# specify the version of Autorest to use
+version: 1.0.1-20170402
+
+# (more settings here...)
+```
+
+### Basic Information
+
+These are the global settings for the schemaregistry.
+
+```yaml
+openapi-type: data-plane
+tag: 2020-09-15-preview
+```
+
+### Tag: 2020-09-15-preview
+
+These settings apply only when `--tag=2020-09-15-preview` is specified on the command line.
+
+```yaml $(tag) == '2020-09-15-preview'
+input-file:
+ - preview/2020-09-15_Preview/swagger.json
+```
+
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/examples/WorkbookAdd.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/examples/WorkbookAdd.json
index d54c5d28f134..c82aee93ec99 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/examples/WorkbookAdd.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/examples/WorkbookAdd.json
@@ -12,7 +12,7 @@
"kind": "shared",
"properties": {
"displayName": "Blah Blah Blah",
- "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}",
"category": "workbook",
"version": "ME",
@@ -31,7 +31,7 @@
"name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
"properties": {
"displayName": "Blah Blah Blah",
- "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}",
"category": "workbook",
"version": "ME",
@@ -49,7 +49,7 @@
"name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
"properties": {
"displayName": "Blah Blah Blah",
- "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}",
"category": "workbook",
"version": "ME",
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/examples/WorkbookGet.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/examples/WorkbookGet.json
index e6bd72b08cb7..1a66ad2bece5 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/examples/WorkbookGet.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/examples/WorkbookGet.json
@@ -15,7 +15,7 @@
"location": "westus",
"properties": {
"displayName": "My New Workbook",
- "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}",
"category": "workbook",
"version": "ME",
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/examples/WorkbooksList.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/examples/WorkbooksList.json
index 37e97dbfe3a8..dd601dac096e 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/examples/WorkbooksList.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/examples/WorkbooksList.json
@@ -18,7 +18,7 @@
"tags": [],
"properties": {
"displayName": "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}",
"category": "workbook",
"version": "ME",
@@ -37,7 +37,7 @@
],
"properties": {
"displayName": "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}",
"category": "workbook",
"version": "ME",
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json
index 85fd1577f11b..cdf1e0cec2c2 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json
@@ -350,8 +350,7 @@
"required": [
"displayName",
"category",
- "serializedData",
- "userId"
+ "serializedData"
],
"properties": {
"displayName": {
@@ -384,7 +383,12 @@
},
"userId": {
"type": "string",
- "description": "Unique user id of the specific user that owns this workbook."
+ "description": "Unique user id of the specific user that owns this workbook.",
+ "readOnly": true
+ },
+ "sourceId": {
+ "type": "string",
+ "description": "ResourceId for a source resource."
}
}
},
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/QueryPackQueries_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/QueryPackQueries_API.json
index b4e94629052f..6c1383c0621b 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/QueryPackQueries_API.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/QueryPackQueries_API.json
@@ -34,7 +34,7 @@
}
},
"paths": {
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/queryPacks/{queryPackName}/queries": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/queryPacks/{queryPackName}/queries": {
"get": {
"description": "Gets a list of Queries defined within a Log Analytics QueryPack.",
"operationId": "Queries_List",
@@ -65,17 +65,17 @@
"nextLinkName": "nextLink"
},
"responses": {
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- },
"200": {
"description": "A list containing 0 or more queries contained within the Log Analytics QueryPack.",
"schema": {
"$ref": "#/definitions/LogAnalyticsQueryPackQueryListResult"
}
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
}
},
"x-ms-examples": {
@@ -85,7 +85,7 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/queryPacks/{queryPackName}/queries/search": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/queryPacks/{queryPackName}/queries/search": {
"post": {
"description": "Search a list of Queries defined within a Log Analytics QueryPack according to given search properties.",
"operationId": "Queries_Search",
@@ -125,17 +125,17 @@
"nextLinkName": "nextLink"
},
"responses": {
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- },
"200": {
"description": "A list containing 0 or more queries contained within the Log Analytics QueryPack.",
"schema": {
"$ref": "#/definitions/LogAnalyticsQueryPackQueryListResult"
}
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
}
},
"x-ms-examples": {
@@ -145,7 +145,7 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/queryPacks/{queryPackName}/queries/{queryId}": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/queryPacks/{queryPackName}/queries/{id}": {
"get": {
"description": "Gets a specific Log Analytics Query defined within a Log Analytics QueryPack.",
"operationId": "Queries_Get",
@@ -167,17 +167,17 @@
}
],
"responses": {
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- },
"200": {
"description": "A single query contained within the Log Analytics QueryPack.",
"schema": {
"$ref": "#/definitions/LogAnalyticsQueryPackQuery"
}
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
}
},
"x-ms-examples": {
@@ -216,22 +216,71 @@
}
],
"responses": {
+ "200": {
+ "description": "The new or updated query contained within the Log Analytics QueryPack.",
+ "schema": {
+ "$ref": "#/definitions/LogAnalyticsQueryPackQuery"
+ }
+ },
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
"$ref": "#/definitions/ErrorResponse"
}
+ }
+ },
+ "x-ms-examples": {
+ "QueryPut": {
+ "$ref": "./examples/QueryPackQueriesPut.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Adds or Updates a specific Query within a Log Analytics QueryPack.",
+ "operationId": "Queries_Update",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
},
+ {
+ "$ref": "#/parameters/QueryPackNameParameter"
+ },
+ {
+ "$ref": "#/parameters/QueryIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "QueryPayload",
+ "description": "Properties that need to be specified to create a new query and add it to a Log Analytics QueryPack.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/LogAnalyticsQueryPackQuery"
+ }
+ }
+ ],
+ "responses": {
"200": {
"description": "The new or updated query contained within the Log Analytics QueryPack.",
"schema": {
"$ref": "#/definitions/LogAnalyticsQueryPackQuery"
}
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
}
},
"x-ms-examples": {
- "QueryPut": {
- "$ref": "./examples/QueryPackQueriesPut.json"
+ "QueryPatch": {
+ "$ref": "./examples/QueryPackQueriesUpdate.json"
}
}
},
@@ -256,17 +305,17 @@
}
],
"responses": {
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- },
"200": {
"description": "The query has been successfully removed from the Log Analytics QueryPack"
},
"204": {
"description": "The specified query or associated QueryPack does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
}
},
"x-ms-examples": {
@@ -281,16 +330,82 @@
"ErrorResponse": {
"description": "Describe the format of an Error response.",
"type": "object",
+ "properties": {
+ "error": {
+ "description": "The error details.",
+ "$ref": "#/definitions/ErrorInfo"
+ }
+ }
+ },
+ "ErrorDetail": {
+ "title": "Error details.",
+ "type": "object",
"properties": {
"code": {
- "description": "Error code",
+ "description": "The error's code.",
"type": "string"
},
"message": {
- "description": "Error message indicating why the operation failed.",
+ "description": "A human readable error message.",
"type": "string"
+ },
+ "target": {
+ "description": "Indicates which property in the request is responsible for the error.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Indicates which value in 'target' is responsible for the error.",
+ "type": "string"
+ },
+ "resources": {
+ "description": "Indicates resources which were responsible for the error.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": {
+ "description": "Additional properties that can be provided on the error details object",
+ "type": "object"
}
- }
+ },
+ "required": [
+ "code",
+ "message"
+ ]
+ },
+ "ErrorInfo": {
+ "title": "The code and message for an error.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "A machine readable error code.",
+ "type": "string"
+ },
+ "message": {
+ "description": "A human readable error message.",
+ "type": "string"
+ },
+ "details": {
+ "description": "error details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDetail"
+ }
+ },
+ "innererror": {
+ "description": "Inner error details if they exist.",
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "additionalProperties": {
+ "description": "Additional properties that can be provided on the error info object",
+ "type": "object"
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ]
},
"AzureResourceProperties": {
"properties": {
@@ -308,6 +423,11 @@
"type": "string",
"readOnly": true,
"description": "Azure resource type"
+ },
+ "systemData": {
+ "$ref": "#/definitions/SystemData",
+ "readOnly": true,
+ "description": "Read only system data"
}
},
"description": "An Azure resource QueryPack-Query object"
@@ -330,7 +450,7 @@
"LogAnalyticsQueryPackQueryProperties": {
"description": "Properties that define an Log Analytics QueryPack-Query resource.",
"properties": {
- "queryId": {
+ "id": {
"type": "string",
"description": "The unique ID of your application. This field cannot be changed.",
"readOnly": true
@@ -367,31 +487,46 @@
"readOnly": false,
"description": "Body of the query."
},
- "linkedResourceId": {
- "type": "string",
- "readOnly": false,
- "description": "Resource id associated with the query."
- },
- "categories": {
- "description": "Categories associated with the query.",
- "type": "array",
- "items": {
- "type": "string"
+ "related": {
+ "description": "The related metadata items for the function.",
+ "type": "object",
+ "properties": {
+ "categories": {
+ "description": "The related categories for the function.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "resourceTypes": {
+ "description": "The related resource types for the function.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "solutions": {
+ "description": "The related Log Analytics solutions for the function.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
}
},
- "resourceTypes": {
- "description": "Resource Types associated with the query.",
- "type": "array",
- "items": {
- "type": "string"
+ "tags": {
+ "description": "Tags associated with the query.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
}
},
- "labels": {
- "description": "Labels associated with the query.",
- "type": "array",
- "items": {
- "type": "string"
- }
+ "properties": {
+ "type": "object",
+ "description": "Additional properties that can be set for the query."
}
},
"required": [
@@ -402,25 +537,41 @@
"LogAnalyticsQueryPackQuerySearchProperties": {
"description": "Properties that define an Log Analytics QueryPack-Query search properties.",
"properties": {
- "categories": {
- "description": "Categories associated with the query.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "resourceTypes": {
- "description": "Resource Types associated with the query.",
- "type": "array",
- "items": {
- "type": "string"
+ "related": {
+ "type": "object",
+ "description": "The related metadata items for the function.",
+ "properties": {
+ "categories": {
+ "description": "The related categories for the function.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "resourceTypes": {
+ "description": "The related resource types for the function.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "solutions": {
+ "description": "The related Log Analytics solutions for the function.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
}
},
- "labels": {
- "description": "Labels associated with the query.",
- "type": "array",
- "items": {
- "type": "string"
+ "tags": {
+ "description": "Tags associated with the query.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
}
}
}
@@ -443,6 +594,52 @@
"description": "The URI to get the next set of Log Analytics QueryPack definitions if too many QueryPack-Queries where returned in the result set."
}
}
+ },
+ "SystemData": {
+ "description": "Read only system data",
+ "type": "object",
+ "properties": {
+ "createdBy": {
+ "type": "string",
+ "description": "An identifier for the identity that created the resource"
+ },
+ "createdByType": {
+ "$ref": "#/definitions/IdentityType",
+ "description": "The type of identity that created the resource"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The timestamp of resource creation (UTC)"
+ },
+ "lastModifiedBy": {
+ "type": "string",
+ "description": "An identifier for the identity that last modified the resource"
+ },
+ "lastModifiedByType": {
+ "$ref": "#/definitions/IdentityType",
+ "description": "The type of identity that last modified the resource"
+ },
+ "lastModifiedAt": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The timestamp of resource last modification (UTC)"
+ }
+ }
+ },
+ "IdentityType": {
+ "description": "The type of identity that creates/modifies resources",
+ "type": "string",
+ "enum": [
+ "user",
+ "application",
+ "managedIdentity",
+ "key"
+ ],
+ "x-ms-enum": {
+ "name": "IdentityType",
+ "modelAsString": true
+ }
}
},
"parameters": {
@@ -455,7 +652,7 @@
"x-ms-parameter-location": "method"
},
"QueryIdParameter": {
- "name": "queryId",
+ "name": "id",
"in": "path",
"required": true,
"type": "string",
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/QueryPacks_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/QueryPacks_API.json
index de48278f9aa3..58d3e127d4db 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/QueryPacks_API.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/QueryPacks_API.json
@@ -34,7 +34,44 @@
}
},
"paths": {
- "/subscriptions/{subscriptionId}/providers/microsoft.insights/queryPacks": {
+ "/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"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Insights/queryPacks": {
"get": {
"description": "Gets a list of all Log Analytics QueryPacks within a subscription.",
"operationId": "QueryPacks_List",
@@ -70,7 +107,7 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/queryPacks": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/queryPacks": {
"get": {
"description": "Gets a list of Log Analytics QueryPacks within a resource group.",
"operationId": "QueryPacks_ListByResourceGroup",
@@ -109,7 +146,7 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/queryPacks/{queryPackName}": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/queryPacks/{queryPackName}": {
"delete": {
"description": "Deletes a Log Analytics QueryPack.",
"operationId": "QueryPacks_Delete",
@@ -285,16 +322,82 @@
"ErrorResponse": {
"description": "Describe the format of an Error response.",
"type": "object",
+ "properties": {
+ "error": {
+ "description": "The error details.",
+ "$ref": "#/definitions/ErrorInfo"
+ }
+ }
+ },
+ "ErrorDetail": {
+ "title": "Error details.",
+ "type": "object",
"properties": {
"code": {
- "description": "Error code",
+ "description": "The error's code.",
"type": "string"
},
"message": {
- "description": "Error message indicating why the operation failed.",
+ "description": "A human readable error message.",
+ "type": "string"
+ },
+ "target": {
+ "description": "Indicates which property in the request is responsible for the error.",
"type": "string"
+ },
+ "value": {
+ "description": "Indicates which value in 'target' is responsible for the error.",
+ "type": "string"
+ },
+ "resources": {
+ "description": "Indicates resources which were responsible for the error.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": {
+ "description": "Additional properties that can be provided on the error details object",
+ "type": "object"
}
- }
+ },
+ "required": [
+ "code",
+ "message"
+ ]
+ },
+ "ErrorInfo": {
+ "title": "The code and message for an error.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "A machine readable error code.",
+ "type": "string"
+ },
+ "message": {
+ "description": "A human readable error message.",
+ "type": "string"
+ },
+ "details": {
+ "description": "error details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDetail"
+ }
+ },
+ "innererror": {
+ "description": "Inner error details if they exist.",
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "additionalProperties": {
+ "description": "Additional properties that can be provided on the error info object",
+ "type": "object"
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ]
},
"QueryPacksResource": {
"properties": {
@@ -408,6 +511,68 @@
"description": "The URI to get the next set of Log Analytics QueryPack definitions if too many QueryPacks where returned in the result set."
}
}
+ },
+ "Operation": {
+ "description": "CDN REST API operation",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}",
+ "type": "string"
+ },
+ "isDataAction": {
+ "description": "Indicates whether the operation is a data action",
+ "type": "boolean"
+ },
+ "display": {
+ "$ref": "#/definitions/OperationDisplay",
+ "description": "Display of the operation"
+ },
+ "origin": {
+ "description": "Origin of the operation",
+ "type": "string"
+ }
+ }
+ },
+ "OperationListResult": {
+ "description": "Result of the request to list CDN operations. It contains a list of operations and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "uniqueItems": false,
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of CDN operations supported by the CDN resource provider."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "OperationDisplay": {
+ "description": "Operation display payload",
+ "type": "object",
+ "properties": {
+ "provider": {
+ "description": "Resource provider of the operation",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource of the operation",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Localized friendly name for the operation",
+ "type": "string"
+ },
+ "description": {
+ "description": "Localized friendly description for the operation",
+ "type": "string"
+ }
+ }
}
},
"parameters": {
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesDelete.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesDelete.json
index f2efa8ef8cc2..c5bbf23ef665 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesDelete.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesDelete.json
@@ -4,7 +4,7 @@
"subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4918",
"resourceGroupName": "my-resource-group",
"queryPackName": "my-querypack",
- "queryId": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4"
+ "id": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4"
},
"responses": {
"200": {},
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesGet.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesGet.json
index 5d4d7f4415b8..c2666213a43f 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesGet.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesGet.json
@@ -4,7 +4,7 @@
"subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4918",
"resourceGroupName": "my-resource-group",
"queryPackName": "my-querypack",
- "queryId": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4"
+ "id": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4"
},
"responses": {
"200": {
@@ -12,9 +12,17 @@
"id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4918/resourceGroups/my-resource-group/providers/microsoft.insights/queryPacks/my-querypack/queries/a449f8af-8e64-4b3a-9b16-5a7165ff98c4",
"name": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4",
"type": "microsoft.insights/queryPacks/queries",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-02-03T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-02-04T02:03:01.1974346Z"
+ },
"properties": {
"displayName": "Exceptions - New in the last 24 hours",
- "queryId": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4",
+ "id": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4",
"body": "let newExceptionsTimeRange = 1d;\nlet timeRangeToCheckBefore = 7d;\nexceptions\n| where timestamp < ago(timeRangeToCheckBefore)\n| summarize count() by problemId\n| join kind= rightanti (\nexceptions\n| where timestamp >= ago(newExceptionsTimeRange)\n| extend stack = tostring(details[0].rawStack)\n| summarize count(), dcount(user_AuthenticatedId), min(timestamp), max(timestamp), any(stack) by problemId \n) on problemId \n| order by count_ desc\n",
"timeModified": "2018-02-14T13:13:19.3381394Z",
"timeCreated": "2018-02-12T11:44:39.2980634Z",
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesList.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesList.json
index 316a829cfdf1..657b2d706e0f 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesList.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesList.json
@@ -14,8 +14,16 @@
"id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4918/resourceGroups/my-resource-group/providers/microsoft.insights/queryPacks/my-querypack/queries/4337bb16-d6fe-4ff7-97cf-59df25941476",
"name": "4337bb16-d6fe-4ff7-97cf-59df25941476",
"type": "microsoft.insights/queryPacks/queries",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-02-03T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-02-04T02:03:01.1974346Z"
+ },
"properties": {
- "queryId": "4337bb16-d6fe-4ff7-97cf-59df25941476",
+ "id": "4337bb16-d6fe-4ff7-97cf-59df25941476",
"timeCreated": "2019-08-15T10:29:56.1030254Z",
"author": "1809f206-263a-46f7-942d-4572c156b7e7",
"timeModified": "2019-08-15T10:29:56.1030254Z",
@@ -28,8 +36,16 @@
"id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4918/resourceGroups/my-resource-group/providers/microsoft.insights/queryPacks/my-querypack/queries/bf015bf7-be70-49c2-8d52-4cce85c42ef1",
"name": "bf015bf7-be70-49c2-8d52-4cce85c42ef1",
"type": "microsoft.insights/queryPacks/queries",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-02-03T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-02-04T02:03:01.1974346Z"
+ },
"properties": {
- "queryId": "bf015bf7-be70-49c2-8d52-4cce85c42ef1",
+ "id": "bf015bf7-be70-49c2-8d52-4cce85c42ef1",
"timeCreated": "2019-08-15T10:30:26.7943629Z",
"author": "1809f206-263a-46f7-942d-4572c156b7e7",
"timeModified": "2019-08-15T10:30:26.7943629Z",
@@ -42,8 +58,16 @@
"id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4918/resourceGroups/my-resource-group/providers/microsoft.insights/queryPacks/my-querypack/queries/8d91c6ca-9c56-49c6-b3ae-112a68871acd",
"name": "8d91c6ca-9c56-49c6-b3ae-112a68871acd",
"type": "microsoft.insights/queryPacks/queries",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-02-03T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-02-04T02:03:01.1974346Z"
+ },
"properties": {
- "queryId": "8d91c6ca-9c56-49c6-b3ae-112a68871acd",
+ "id": "8d91c6ca-9c56-49c6-b3ae-112a68871acd",
"timeCreated": "2019-08-15T10:30:29.4505584Z",
"author": "1809f206-263a-46f7-942d-4572c156b7e7",
"timeModified": "2019-08-15T10:30:29.4505584Z",
@@ -56,8 +80,16 @@
"id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4918/resourceGroups/my-resource-group/providers/microsoft.insights/queryPacks/my-querypack/queries/a5a9010e-e4b7-45ad-8b14-09d7e6082819",
"name": "a5a9010e-e4b7-45ad-8b14-09d7e6082819",
"type": "microsoft.insights/queryPacks/queries",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-02-03T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-02-04T02:03:01.1974346Z"
+ },
"properties": {
- "queryId": "a5a9010e-e4b7-45ad-8b14-09d7e6082819",
+ "id": "a5a9010e-e4b7-45ad-8b14-09d7e6082819",
"timeCreated": "2019-08-15T10:30:32.5742324Z",
"author": "1809f206-263a-46f7-942d-4572c156b7e7",
"timeModified": "2019-08-15T10:30:32.5742324Z",
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesPut.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesPut.json
index 3680b863b5ae..7146d0101472 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesPut.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesPut.json
@@ -4,20 +4,25 @@
"subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4918",
"resourceGroupName": "my-resource-group",
"queryPackName": "my-querypack",
- "queryId": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4",
+ "id": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4",
"QueryPayload": {
"properties": {
"displayName": "Exceptions - New in the last 24 hours",
"description": "my description",
"body": "let newExceptionsTimeRange = 1d;\nlet timeRangeToCheckBefore = 7d;\nexceptions\n| where timestamp < ago(timeRangeToCheckBefore)\n| summarize count() by problemId\n| join kind= rightanti (\nexceptions\n| where timestamp >= ago(newExceptionsTimeRange)\n| extend stack = tostring(details[0].rawStack)\n| summarize count(), dcount(user_AuthenticatedId), min(timestamp), max(timestamp), any(stack) by problemId \n) on problemId \n| order by count_ desc\n",
- "categories": [
- "analytics"
- ],
- "labels": [
- "my-label",
- "my-other-label"
- ],
- "linkedResourceId": "/subscriptions/a51967b5-271e-4f12-810e-e7fa20c8828d/resourceGroups/FoodHere/providers/Microsoft.KeyVault/vaults/FoodHere"
+ "related": {
+ "categories": [
+ "analytics"
+ ]
+ },
+ "tags": {
+ "my-label": [
+ "label1"
+ ],
+ "my-other-label": [
+ "label2"
+ ]
+ }
}
}
},
@@ -27,22 +32,35 @@
"id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4918/resourceGroups/my-resource-group/providers/microsoft.insights/queryPacks/my-querypack/queries/a449f8af-8e64-4b3a-9b16-5a7165ff98c4",
"name": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4",
"type": "microsoft.insights/queryPacks/queries",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-02-03T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-02-04T02:03:01.1974346Z"
+ },
"properties": {
- "queryId": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4",
+ "id": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4",
"timeCreated": "2019-08-15T10:30:32.5742324Z",
"author": "1809f206-263a-46f7-942d-4572c156b7e7",
"timeModified": "2019-08-15T10:30:32.5742324Z",
"displayName": "Exceptions - New in the last 24 hours",
"description": "my description",
"body": "let newExceptionsTimeRange = 1d;\nlet timeRangeToCheckBefore = 7d;\nexceptions\n| where timestamp < ago(timeRangeToCheckBefore)\n| summarize count() by problemId\n| join kind= rightanti (\nexceptions\n| where timestamp >= ago(newExceptionsTimeRange)\n| extend stack = tostring(details[0].rawStack)\n| summarize count(), dcount(user_AuthenticatedId), min(timestamp), max(timestamp), any(stack) by problemId \n) on problemId \n| order by count_ desc\n",
- "categories": [
- "analytics"
- ],
- "labels": [
- "my-label",
- "my-other-label"
- ],
- "linkedResourceId": "/subscriptions/a51967b5-271e-4f12-810e-e7fa20c8828d/resourceGroups/FoodHere/providers/Microsoft.KeyVault/vaults/FoodHere"
+ "related": {
+ "categories": [
+ "analytics"
+ ]
+ },
+ "tags": {
+ "my-label": [
+ "label1"
+ ],
+ "my-other-label": [
+ "label2"
+ ]
+ }
}
}
}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesSearch.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesSearch.json
index 186ce1ec3f41..7a5d2118c10d 100644
--- a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesSearch.json
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesSearch.json
@@ -7,13 +7,17 @@
"includeBody": true,
"$top": 3,
"QuerySearchProperties": {
- "categories": [
- "other",
- "analytics"
- ],
- "labels": [
- "my-label"
- ]
+ "related": {
+ "categories": [
+ "other",
+ "analytics"
+ ]
+ },
+ "tags": {
+ "my-label": [
+ "label1"
+ ]
+ }
}
},
"responses": {
@@ -24,61 +28,106 @@
"id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4918/resourceGroups/my-resource-group/providers/microsoft.insights/queryPacks/my-querypack/queries/4337bb16-d6fe-4ff7-97cf-59df25941476",
"name": "4337bb16-d6fe-4ff7-97cf-59df25941476",
"type": "microsoft.insights/queryPacks/queries",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-02-03T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-02-04T02:03:01.1974346Z"
+ },
"properties": {
- "queryId": "4337bb16-d6fe-4ff7-97cf-59df25941476",
+ "id": "4337bb16-d6fe-4ff7-97cf-59df25941476",
"timeCreated": "2019-08-15T10:29:56.1030254Z",
"author": "1809f206-263a-46f7-942d-4572c156b7e7",
"timeModified": "2019-08-15T10:29:56.1030254Z",
"displayName": "Heartbeat_1",
"description": "Thie query takes 10 entries of heartbeat 0",
"body": "Heartbeat | take 1",
- "categories": [
- "other"
- ],
- "labels": [
- "my-label"
- ]
+ "related": {
+ "categories": [
+ "other"
+ ]
+ },
+ "tags": {
+ "my-label": [
+ "label1"
+ ],
+ "my-other-label": [
+ "label2"
+ ]
+ }
}
},
{
"id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4918/resourceGroups/my-resource-group/providers/microsoft.insights/queryPacks/my-querypack/queries/bf015bf7-be70-49c2-8d52-4cce85c42ef1",
"name": "bf015bf7-be70-49c2-8d52-4cce85c42ef1",
"type": "microsoft.insights/queryPacks/queries",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-02-03T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-02-04T02:03:01.1974346Z"
+ },
"properties": {
- "queryId": "bf015bf7-be70-49c2-8d52-4cce85c42ef1",
+ "id": "bf015bf7-be70-49c2-8d52-4cce85c42ef1",
"timeCreated": "2019-08-15T10:30:26.7943629Z",
"author": "1809f206-263a-46f7-942d-4572c156b7e7",
"timeModified": "2019-08-15T10:30:26.7943629Z",
"displayName": "Heartbeat_2",
"description": "Thie query takes 10 entries of heartbeat 1",
"body": "Heartbeat | take 1",
- "categories": [
- "analytics"
- ],
- "labels": [
- "my-label"
- ]
+ "related": {
+ "categories": [
+ "analytics"
+ ]
+ },
+ "tags": {
+ "my-label": [
+ "label1"
+ ],
+ "my-other-label": [
+ "label2"
+ ]
+ }
}
},
{
"id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4918/resourceGroups/my-resource-group/providers/microsoft.insights/queryPacks/my-querypack/queries/8d91c6ca-9c56-49c6-b3ae-112a68871acd",
"name": "8d91c6ca-9c56-49c6-b3ae-112a68871acd",
"type": "microsoft.insights/queryPacks/queries",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-02-03T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-02-04T02:03:01.1974346Z"
+ },
"properties": {
- "queryId": "8d91c6ca-9c56-49c6-b3ae-112a68871acd",
+ "id": "8d91c6ca-9c56-49c6-b3ae-112a68871acd",
"timeCreated": "2019-08-15T10:30:29.4505584Z",
"author": "1809f206-263a-46f7-942d-4572c156b7e7",
"timeModified": "2019-08-15T10:30:29.4505584Z",
"displayName": "Heartbeat_3",
"description": "Thie query takes 10 entries of heartbeat 2",
"body": "Heartbeat | take 1",
- "categories": [
- "other",
- "analytics"
- ],
- "labels": [
- "my-label"
- ]
+ "related": {
+ "categories": [
+ "other",
+ "analytics"
+ ]
+ },
+ "tags": {
+ "my-label": [
+ "label1"
+ ],
+ "my-other-label": [
+ "label2"
+ ]
+ }
}
}
],
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesUpdate.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesUpdate.json
new file mode 100644
index 000000000000..7146d0101472
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2019-09-01-preview/examples/QueryPackQueriesUpdate.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "api-version": "2019-09-01-preview",
+ "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4918",
+ "resourceGroupName": "my-resource-group",
+ "queryPackName": "my-querypack",
+ "id": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4",
+ "QueryPayload": {
+ "properties": {
+ "displayName": "Exceptions - New in the last 24 hours",
+ "description": "my description",
+ "body": "let newExceptionsTimeRange = 1d;\nlet timeRangeToCheckBefore = 7d;\nexceptions\n| where timestamp < ago(timeRangeToCheckBefore)\n| summarize count() by problemId\n| join kind= rightanti (\nexceptions\n| where timestamp >= ago(newExceptionsTimeRange)\n| extend stack = tostring(details[0].rawStack)\n| summarize count(), dcount(user_AuthenticatedId), min(timestamp), max(timestamp), any(stack) by problemId \n) on problemId \n| order by count_ desc\n",
+ "related": {
+ "categories": [
+ "analytics"
+ ]
+ },
+ "tags": {
+ "my-label": [
+ "label1"
+ ],
+ "my-other-label": [
+ "label2"
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4918/resourceGroups/my-resource-group/providers/microsoft.insights/queryPacks/my-querypack/queries/a449f8af-8e64-4b3a-9b16-5a7165ff98c4",
+ "name": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4",
+ "type": "microsoft.insights/queryPacks/queries",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "application",
+ "createdAt": "2020-02-03T01:01:01.1075056Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "application",
+ "lastModifiedAt": "2020-02-04T02:03:01.1974346Z"
+ },
+ "properties": {
+ "id": "a449f8af-8e64-4b3a-9b16-5a7165ff98c4",
+ "timeCreated": "2019-08-15T10:30:32.5742324Z",
+ "author": "1809f206-263a-46f7-942d-4572c156b7e7",
+ "timeModified": "2019-08-15T10:30:32.5742324Z",
+ "displayName": "Exceptions - New in the last 24 hours",
+ "description": "my description",
+ "body": "let newExceptionsTimeRange = 1d;\nlet timeRangeToCheckBefore = 7d;\nexceptions\n| where timestamp < ago(timeRangeToCheckBefore)\n| summarize count() by problemId\n| join kind= rightanti (\nexceptions\n| where timestamp >= ago(newExceptionsTimeRange)\n| extend stack = tostring(details[0].rawStack)\n| summarize count(), dcount(user_AuthenticatedId), min(timestamp), max(timestamp), any(stack) by problemId \n) on problemId \n| order by count_ desc\n",
+ "related": {
+ "categories": [
+ "analytics"
+ ]
+ },
+ "tags": {
+ "my-label": [
+ "label1"
+ ],
+ "my-other-label": [
+ "label2"
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbookAdd.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbookAdd.json
new file mode 100644
index 000000000000..44b33f169d2d
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbookAdd.json
@@ -0,0 +1,66 @@
+{
+ "parameters": {
+ "api-version": "2015-05-01",
+ "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"
+ },
+ "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"
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbookDelete.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbookDelete.json
new file mode 100644
index 000000000000..0f0066656add
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbookDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2015-05-01",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "resourceName": "deadb33f-5e0d-4064-8ebb-1a4ed0313eb2"
+ },
+ "responses": {
+ "201": {},
+ "204": {}
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbookGet.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbookGet.json
new file mode 100644
index 000000000000..640ff6b08c01
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbookGet.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2015-05-01",
+ "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
+ },
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbookUpdate.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbookUpdate.json
new file mode 100644
index 000000000000..6df92009e06e
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbookUpdate.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "api-version": "2015-05-01",
+ "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"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "c0deea5e-3344-40f2-96f8-6f8e1c3b5722",
+ "type": "microsoft.insights/myworkbooks",
+ "location": "westus",
+ "name": "deadb33f-8bee-4d3b-a059-9be8dac93960",
+ "tags": [
+ "TagSample01",
+ "TagSample02"
+ ],
+ "kind": "user",
+ "properties": {
+ "displayName": "Blah Blah Blah",
+ "serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\"json\":\"## New workbook\\r\\n---\\r\\n\\r\\nWelcome to your new workbook. This area will display text formatted as markdown.\\r\\n\\r\\n\\r\\nWe've included a basic analytics query to get you started. Use the `Edit` button below each section to configure it or add more sections.\"}\",\"halfWidth\":null,\"conditionalVisibility\":null},{\"type\":3,\"content\":\"{\"version\":\"KqlItem/1.0\",\"query\":\"union withsource=TableName *\\n| summarize Count=count() by TableName\\n| render barchart\",\"showQuery\":false,\"size\":1,\"aggregation\":0,\"showAnnotations\":false}\",\"halfWidth\":null,\"conditionalVisibility\":null}],\"isLocked\":false}",
+ "version": "ME",
+ "sourceId": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MyGroup/providers/Microsoft.Web/sites/MyTestApp-CodeLens",
+ "category": "workbook"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbooksList.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbooksList.json
new file mode 100644
index 000000000000..5aca7c5f3e07
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/examples/MyWorkbooksList.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "api-version": "2015-05-01",
+ "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
+ }
+ },
+ {
+ "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
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/myworkbooks_API.json b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/myworkbooks_API.json
new file mode 100644
index 000000000000..3f3d5067ce54
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/myworkbooks_API.json
@@ -0,0 +1,539 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ApplicationInsightsManagementClient",
+ "description": "Azure Application Insights private workbook type.",
+ "version": "2015-05-01"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/myWorkbooks": {
+ "get": {
+ "description": "Get all private workbooks defined within a specified resource group and category.",
+ "operationId": "MyWorkbooks_ListByResourceGroup",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CategoryParameter"
+ },
+ {
+ "$ref": "#/parameters/TagsParameter"
+ },
+ {
+ "$ref": "#/parameters/CanFetchWorkbookContentParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A list containing 0 or more private workbook definitions.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbooksListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "WorkbooksList": {
+ "$ref": "./examples/MyWorkbooksList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Insights/myWorkbooks": {
+ "get": {
+ "description": "Get all private workbooks defined within a specified subscription and category.",
+ "operationId": "MyWorkbooks_ListBySubscription",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/CategoryParameter"
+ },
+ {
+ "$ref": "#/parameters/TagsParameter"
+ },
+ {
+ "$ref": "#/parameters/CanFetchWorkbookContentParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A list containing 0 or more private workbook definitions.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbooksListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "WorkbooksList": {
+ "$ref": "./examples/MyWorkbooksList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/myWorkbooks/{resourceName}": {
+ "get": {
+ "description": "Get a single private workbook by its resourceName.",
+ "operationId": "MyWorkbooks_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A private workbook definition.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookGet": {
+ "$ref": "./examples/MyWorkbookGet.json"
+ }
+ }
+ },
+ "delete": {
+ "description": "Delete a private workbook.",
+ "operationId": "MyWorkbooks_Delete",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The private workbook has been successfully deleted."
+ },
+ "204": {
+ "description": "The resource doesn't exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookDelete": {
+ "$ref": "./examples/MyWorkbookDelete.json"
+ }
+ }
+ },
+ "put": {
+ "description": "Create a new private workbook.",
+ "operationId": "MyWorkbooks_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "workbookProperties",
+ "description": "Properties that need to be specified to create a new private workbook.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The newly created private workbook.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ },
+ "201": {
+ "description": "The newly created private workbook.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookAdd": {
+ "$ref": "./examples/MyWorkbookAdd.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Updates a private workbook that has already been added.",
+ "operationId": "MyWorkbooks_Update",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkbookResourceNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "workbookProperties",
+ "description": "Properties that need to be specified to create a new private workbook.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The private workbook definition updated.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbook"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MyWorkbookError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "WorkbookUpdate": {
+ "$ref": "./examples/MyWorkbookUpdate.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "MyWorkbookResource": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Azure resource Id",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "name": {
+ "type": "string",
+ "description": "Azure resource name",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "type": {
+ "type": "string",
+ "description": "Azure resource type",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "location": {
+ "type": "string",
+ "description": "Resource location",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "x-ms-azure-resource": true,
+ "description": "An azure resource object"
+ },
+ "MyWorkbooksListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/MyWorkbook"
+ },
+ "description": "An array of private workbooks."
+ }
+ },
+ "description": "Workbook list result."
+ },
+ "MyWorkbook": {
+ "description": "An Application Insights private workbook definition.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/MyWorkbookResource"
+ }
+ ],
+ "properties": {
+ "kind": {
+ "type": "string",
+ "description": "The kind of workbook. Choices are user and shared.",
+ "enum": [
+ "user",
+ "shared"
+ ],
+ "x-ms-enum": {
+ "name": "SharedTypeKind",
+ "modelAsString": true
+ }
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Metadata describing a workbook for an Azure resource.",
+ "$ref": "#/definitions/MyWorkbookProperties"
+ }
+ }
+ },
+ "MyWorkbookProperties": {
+ "description": "Properties that contain a private workbook.",
+ "required": [
+ "displayName",
+ "category",
+ "serializedData"
+ ],
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "The user-defined name of the private workbook."
+ },
+ "serializedData": {
+ "type": "string",
+ "description": "Configuration of this particular private workbook. Configuration data is a string containing valid JSON"
+ },
+ "version": {
+ "type": "string",
+ "description": "This instance's version of the data model. This can change as new features are added that can be marked private workbook."
+ },
+ "timeModified": {
+ "type": "string",
+ "description": "Date and time in UTC of the last modification that was made to this private workbook definition.",
+ "readOnly": true
+ },
+ "category": {
+ "type": "string",
+ "description": "Workbook category, as defined by the user at creation time."
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of 0 or more tags that are associated with this private workbook definition"
+ },
+ "userId": {
+ "type": "string",
+ "description": "Unique user id of the specific user that owns this private workbook.",
+ "readOnly": true
+ },
+ "sourceId": {
+ "type": "string",
+ "description": "Optional resourceId for a source resource."
+ }
+ }
+ },
+ "ErrorFieldContract": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Property level error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Human-readable representation of property-level error."
+ },
+ "target": {
+ "type": "string",
+ "description": "Property name."
+ }
+ },
+ "description": "Error Field contract."
+ },
+ "MyWorkbookError": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response."
+ },
+ "message": {
+ "type": "string",
+ "description": "Human-readable representation of the error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorFieldContract"
+ },
+ "description": "The list of invalid fields send in request, in case of validation error."
+ }
+ },
+ "description": "Error message body that will indicate why the operation failed."
+ }
+ },
+ "parameters": {
+ "WorkbookResourceNameParameter": {
+ "name": "resourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Application Insights component resource.",
+ "x-ms-parameter-location": "method"
+ },
+ "CategoryParameter": {
+ "name": "category",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "workbook",
+ "TSG",
+ "performance",
+ "retention"
+ ],
+ "x-ms-enum": {
+ "name": "CategoryType",
+ "modelAsString": true
+ },
+ "description": "Category of workbook to return.",
+ "x-ms-parameter-location": "method"
+ },
+ "SourceIdParameter": {
+ "name": "sourceId",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Azure Resource Id that will fetch all linked workbooks.",
+ "x-ms-parameter-location": "method"
+ },
+ "ResourceIdParameter": {
+ "name": "resourceId",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Azure Resource Id or any target workbook resource id.",
+ "x-ms-parameter-location": "method"
+ },
+ "CanFetchWorkbookContentParameter": {
+ "name": "canFetchContent",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Flag indicating whether or not to return the full content for each applicable workbook. If false, only return summary content for workbooks.",
+ "x-ms-parameter-location": "method"
+ },
+ "TagsParameter": {
+ "name": "tags",
+ "in": "query",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "csv",
+ "description": "Tags presents on each workbook returned.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/applicationinsights/resource-manager/readme.azureresourceschema.md b/specification/applicationinsights/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..12a53d8275a8
--- /dev/null
+++ b/specification/applicationinsights/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,148 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-insights-2020-06-02-preview
+ - tag: schema-insights-2020-03-01-preview
+ - tag: schema-insights-2020-02-10-preview
+ - tag: schema-insights-2020-02-02-preview
+ - tag: schema-insights-2019-10-17-preview
+ - tag: schema-insights-2019-09-01-preview
+ - tag: schema-insights-2018-06-17-preview
+ - tag: schema-insights-2018-05-01-preview
+ - tag: schema-insights-2017-10-01
+ - tag: schema-insights-2015-05-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-insights-2020-06-02-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-insights-2020-06-02-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Insights/preview/2020-06-02-preview/livetoken_API.json
+
+```
+
+### Tag: schema-insights-2020-03-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-insights-2020-03-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Insights/preview/2020-03-01-preview/componentLinkedStorageAccounts_API.json
+
+```
+
+### Tag: schema-insights-2020-02-10-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-insights-2020-02-10-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Insights/preview/2020-02-10-preview/WebTestResults_API.json
+
+```
+
+### Tag: schema-insights-2020-02-02-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-insights-2020-02-02-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Insights/preview/2020-02-02-preview/components_API.json
+
+```
+
+### Tag: schema-insights-2019-10-17-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-insights-2019-10-17-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Insights/preview/2019-10-17-preview/workbookTemplates_API.json
+
+```
+
+### Tag: schema-insights-2019-09-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-insights-2019-09-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Insights/preview/2019-09-01-preview/QueryPackQueries_API.json
+ - Microsoft.Insights/preview/2019-09-01-preview/QueryPacks_API.json
+
+```
+
+### Tag: schema-insights-2018-06-17-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-insights-2018-06-17-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json
+
+```
+
+### Tag: schema-insights-2018-05-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-insights-2018-05-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Insights/preview/2018-05-01-preview/components_API.json
+ - Microsoft.Insights/preview/2018-05-01-preview/componentProactiveDetection_API.json
+
+```
+
+### Tag: schema-insights-2017-10-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-insights-2017-10-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Insights/preview/2017-10-01/eaSubscriptionMigration_API.json
+ - Microsoft.Insights/preview/2017-10-01/componentFeaturesAndPricing_API.json
+
+```
+
+### Tag: schema-insights-2015-05-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-insights-2015-05-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Insights/stable/2015-05-01/aiOperations_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/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/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/stable/2015-05-01/components_API.json
+
+```
diff --git a/specification/applicationinsights/resource-manager/readme.go.md b/specification/applicationinsights/resource-manager/readme.go.md
index d3b2a8df018a..1fb4390be7b1 100644
--- a/specification/applicationinsights/resource-manager/readme.go.md
+++ b/specification/applicationinsights/resource-manager/readme.go.md
@@ -41,6 +41,7 @@ input-file:
- ./Microsoft.Insights/stable/2015-05-01/components_API.json
- ./Microsoft.Insights/stable/2015-05-01/webTests_API.json
- ./Microsoft.Insights/stable/2015-05-01/workbooks_API.json
+ - ./Microsoft.Insights/stable/2015-05-01/myworkbooks_API.json
override-info:
title: ApplicationInsightsManagementClient
diff --git a/specification/applicationinsights/resource-manager/readme.md b/specification/applicationinsights/resource-manager/readme.md
index eeeb91d57b0e..5c0ad5cb963a 100644
--- a/specification/applicationinsights/resource-manager/readme.md
+++ b/specification/applicationinsights/resource-manager/readme.md
@@ -97,6 +97,12 @@ directive:
where: $.definitions.WorkbookResource.properties.name
from: workbooks_API.json
reason: 'This property is already a part of our API, cannot remove it'
+ - suppress: DefaultErrorResponseSchema
+ from: myworkbooks_API.json
+ reason: 'this error format is already part of the previous api, cannot change it'
+ - suppress: DeleteOperationResponses
+ from: myworkbooks_API.json
+ reason: 'delete API returns empty response and is already part of the previous api, cannot change it'
```
### Tag: package-preview-2020-06-only
@@ -126,6 +132,7 @@ input-file:
- Microsoft.Insights/stable/2015-05-01/webTests_API.json
- 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
- Microsoft.Insights/preview/2020-06-02-preview/livetoken_API.json
@@ -159,6 +166,7 @@ input-file:
- Microsoft.Insights/stable/2015-05-01/webTests_API.json
- 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
```
### Tag: package-2017-10
@@ -245,6 +253,7 @@ input-file:
- Microsoft.Insights/stable/2015-05-01/webTests_API.json
- 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
```
@@ -268,6 +277,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- 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
@@ -336,50 +348,7 @@ input-file:
- Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Insights/preview/2020-06-02-preview/livetoken_API.json
- - $(this-folder)/Microsoft.Insights/stable/2015-05-01/aiOperations_API.json
- - $(this-folder)/Microsoft.Insights/stable/2015-05-01/componentAnnotations_API.json
- - $(this-folder)/Microsoft.Insights/stable/2015-05-01/componentApiKeys_API.json
- - $(this-folder)/Microsoft.Insights/stable/2015-05-01/componentContinuousExport_API.json
- - $(this-folder)/Microsoft.Insights/stable/2015-05-01/componentFeaturesAndPricing_API.json
- - $(this-folder)/Microsoft.Insights/stable/2015-05-01/componentProactiveDetection_API.json
- - $(this-folder)/Microsoft.Insights/stable/2015-05-01/componentWorkItemConfigs_API.json
- - $(this-folder)/Microsoft.Insights/stable/2015-05-01/favorites_API.json
- - $(this-folder)/Microsoft.Insights/stable/2015-05-01/webTestLocations_API.json
- - $(this-folder)/Microsoft.Insights/stable/2015-05-01/webTests_API.json
- - $(this-folder)/Microsoft.Insights/stable/2015-05-01/analyticsItems_API.json
- - $(this-folder)/Microsoft.Insights/stable/2015-05-01/workbooks_API.json
- - $(this-folder)/Microsoft.Insights/preview/2018-05-01-preview/components_API.json
- - $(this-folder)/Microsoft.Insights/preview/2020-03-01-preview/componentLinkedStorageAccounts_API.json
- - $(this-folder)/Microsoft.Insights/preview/2020-02-10-preview/WebTestResults_API.json
- - $(this-folder)/Microsoft.Insights/stable/2015-05-01/components_API.json
- - $(this-folder)/Microsoft.Insights/preview/2017-10-01/eaSubscriptionMigration_API.json
- - $(this-folder)/Microsoft.Insights/preview/2017-10-01/componentFeaturesAndPricing_API.json
- - $(this-folder)/Microsoft.Insights/preview/2018-06-17-preview/workbooks_API.json
- - $(this-folder)/Microsoft.Insights/preview/2019-10-17-preview/workbookTemplates_API.json
- - $(this-folder)/Microsoft.Insights/preview/2018-05-01-preview/componentProactiveDetection_API.json
- - $(this-folder)/Microsoft.Insights/preview/2019-09-01-preview/QueryPackQueries_API.json
- - $(this-folder)/Microsoft.Insights/preview/2019-09-01-preview/QueryPacks_API.json
- - $(this-folder)/Microsoft.Insights/preview/2020-02-02-preview/components_API.json
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-```
-
-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/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 72a4748132a2..8787229ed864 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
@@ -2163,6 +2163,39 @@
}
}
},
+ "/providers/Microsoft.AppPlatform/runtimeVersions": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Lists all of the available runtime versions supported by Microsoft.AppPlatform provider.",
+ "operationId": "RuntimeVersions_ListRuntimeVersions",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the details of all supported deployment runtime versions.",
+ "schema": {
+ "$ref": "#/definitions/AvailableRuntimeVersions"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "RuntimeVersions_ListRuntimeVersions": {
+ "$ref": "./examples/RuntimeVersions_ListRuntimeVersions.json"
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/providers/Microsoft.AppPlatform/skus": {
"get": {
"tags": [
@@ -2446,6 +2479,21 @@
"appNetworkResourceGroup": {
"description": "Name of the resource group containing network resources of Azure Spring Cloud Apps",
"type": "string"
+ },
+ "outboundIPs": {
+ "description": "Desired outbound IP resources for Azure Spring Cloud instance.",
+ "type": "object",
+ "readOnly": true,
+ "properties": {
+ "publicIPs": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of public IP addresses."
+ }
+ }
}
}
},
@@ -3191,6 +3239,7 @@
"description": "Type of the source uploaded",
"enum": [
"Jar",
+ "NetCoreZip",
"Source"
],
"type": "string",
@@ -3233,6 +3282,10 @@
"description": "JVM parameter",
"type": "string"
},
+ "netCoreMainEntryPath": {
+ "description": "The path to the .NET executable relative to zip root",
+ "type": "string"
+ },
"instanceCount": {
"format": "int32",
"description": "Instance count, basic tier should be in range (1, 25), standard tier should be in range (1, 500)",
@@ -3250,7 +3303,8 @@
"description": "Runtime version",
"enum": [
"Java_8",
- "Java_11"
+ "Java_11",
+ "NetCore_31"
],
"type": "string",
"x-ms-enum": {
@@ -3283,6 +3337,11 @@
"description": "Discovery status of the deployment instance",
"type": "string",
"readOnly": true
+ },
+ "startTime": {
+ "description": "Start time of the deployment instance",
+ "type": "string",
+ "readOnly": true
}
}
},
@@ -3777,6 +3836,57 @@
}
},
"x-ms-external": true
+ },
+ "AvailableRuntimeVersions": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of all supported runtime versions.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SupportedRuntimeVersion"
+ },
+ "readOnly": true
+ }
+ },
+ "readOnly": true
+ },
+ "SupportedRuntimeVersion": {
+ "description": "Supported deployment runtime version descriptor.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The raw value which could be passed to deployment CRUD operations.",
+ "enum": [
+ "Java_8",
+ "Java_11",
+ "NetCore_31"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SupportedRuntimeValue",
+ "modelAsString": true
+ }
+ },
+ "platform": {
+ "description": "The platform of this runtime version (possible values: \"Java\" or \".NET\").",
+ "enum": [
+ "Java",
+ ".NET Core"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SupportedRuntimePlatform",
+ "modelAsString": true
+ }
+ },
+ "version": {
+ "description": "The detailed version (major.minor) of the platform.",
+ "type": "string"
+ }
+ },
+ "readOnly": true
}
},
"parameters": {
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_CreateOrUpdate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_CreateOrUpdate.json
index 0204c12e6e2b..c29a033df194 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_CreateOrUpdate.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_CreateOrUpdate.json
@@ -56,7 +56,8 @@
{
"name": "instance1",
"status": "Running",
- "discoveryStatus": "pending"
+ "discoveryStatus": "pending",
+ "startTime": "2020-08-26T01:55:02Z"
}
]
},
@@ -92,7 +93,8 @@
{
"name": "instance1",
"status": "Running",
- "discoveryStatus": "pending"
+ "discoveryStatus": "pending",
+ "startTime": "2020-08-26T01:55:02Z"
}
]
},
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_Get.json
index e574a0dea582..19cf2196418a 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_Get.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_Get.json
@@ -35,7 +35,8 @@
{
"name": "instance1",
"status": "Running",
- "discoveryStatus": "pending"
+ "discoveryStatus": "pending",
+ "startTime": "2020-08-26T01:55:02Z"
}
]
},
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_List.json
index 221113ccf649..287ffdd7381e 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_List.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_List.json
@@ -36,7 +36,8 @@
{
"name": "instance1",
"status": "Running",
- "discoveryStatus": "pending"
+ "discoveryStatus": "pending",
+ "startTime": "2020-08-26T01:55:02Z"
}
]
},
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_ListClusterAllDeployments.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_ListClusterAllDeployments.json
index 221113ccf649..287ffdd7381e 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_ListClusterAllDeployments.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_ListClusterAllDeployments.json
@@ -36,7 +36,8 @@
{
"name": "instance1",
"status": "Running",
- "discoveryStatus": "pending"
+ "discoveryStatus": "pending",
+ "startTime": "2020-08-26T01:55:02Z"
}
]
},
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_Update.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_Update.json
index 4a778752688a..b0e5592ad49d 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_Update.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Deployments_Update.json
@@ -46,7 +46,8 @@
{
"name": "instance1",
"status": "Running",
- "discoveryStatus": "pending"
+ "discoveryStatus": "pending",
+ "startTime": "2020-08-26T01:55:02Z"
}
]
},
@@ -82,7 +83,8 @@
{
"name": "instance1",
"status": "Running",
- "discoveryStatus": "pending"
+ "discoveryStatus": "pending",
+ "startTime": "2020-08-26T01:55:02Z"
}
]
},
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/RuntimeVersions_ListRuntimeVersions.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/RuntimeVersions_ListRuntimeVersions.json
new file mode 100644
index 000000000000..051d4085549f
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/RuntimeVersions_ListRuntimeVersions.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2019-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "value": "Java_8",
+ "platform": "Java",
+ "version": "8"
+ },
+ {
+ "value": "Java_11",
+ "platform": "Java",
+ "version": "11"
+ },
+ {
+ "value": "NetCore_31",
+ "platform": ".NET Core",
+ "version": "3.1"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_CreateOrUpdate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_CreateOrUpdate.json
index 025ca3152466..136def1b9f26 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_CreateOrUpdate.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_CreateOrUpdate.json
@@ -54,7 +54,15 @@
"enabled": true,
"appInsightInstrumentationKey": "00000000-0000-0000-0000-000000000000"
},
- "serviceId": "12345678abcd1234abcd12345678abcd"
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
},
"type": "Microsoft.AppPlatform/Spring",
"sku": {
@@ -90,7 +98,15 @@
"enabled": true,
"appInsightInstrumentationKey": "00000000-0000-0000-0000-000000000000"
},
- "serviceId": "12345678abcd1234abcd12345678abcd"
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
},
"type": "Microsoft.AppPlatform/Spring",
"sku": {
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_CreateOrUpdate_VNetInjection.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_CreateOrUpdate_VNetInjection.json
index 282f4e0d1dc3..6df578357701 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_CreateOrUpdate_VNetInjection.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_CreateOrUpdate_VNetInjection.json
@@ -34,7 +34,12 @@
"appSubnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/apps",
"serviceCidr": "10.8.0.0/16,10.244.0.0/16,10.245.0.1/16",
"serviceRuntimeNetworkResourceGroup": "my-service-runtime-network-rg",
- "appNetworkResourceGroup": "my-app-network-rg"
+ "appNetworkResourceGroup": "my-app-network-rg",
+ "outboundIPs": {
+ "publicIPs": [
+ "40.64.67.13"
+ ]
+ }
},
"serviceId": "12345678abcd1234abcd12345678abcd"
},
@@ -60,7 +65,12 @@
"appSubnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/apps",
"serviceCidr": "10.8.0.0/16,10.244.0.0/16,10.245.0.1/16",
"serviceRuntimeNetworkResourceGroup": "my-service-runtime-network-rg",
- "appNetworkResourceGroup": "my-app-network-rg"
+ "appNetworkResourceGroup": "my-app-network-rg",
+ "outboundIPs": {
+ "publicIPs": [
+ "40.64.67.13"
+ ]
+ }
},
"serviceId": "12345678abcd1234abcd12345678abcd"
},
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_Get.json
index 533a76844cc0..7d8d1007219c 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_Get.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_Get.json
@@ -27,7 +27,15 @@
"enabled": true,
"appInsightInstrumentationKey": "00000000-0000-0000-0000-000000000000"
},
- "serviceId": "12345678abcd1234abcd12345678abcd"
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
},
"type": "Microsoft.AppPlatform/Spring",
"sku": {
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_List.json
index 15723d2c8147..aff184407138 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_List.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_List.json
@@ -28,7 +28,15 @@
"enabled": true,
"appInsightInstrumentationKey": "00000000-0000-0000-0000-000000000000"
},
- "serviceId": "12345678abcd1234abcd12345678abcd"
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
},
"type": "Microsoft.AppPlatform/Spring",
"sku": {
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_ListBySubscription.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_ListBySubscription.json
index 3d07b6937972..daeaac0d14a6 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_ListBySubscription.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_ListBySubscription.json
@@ -27,7 +27,15 @@
"enabled": true,
"appInsightInstrumentationKey": "00000000-0000-0000-0000-000000000000"
},
- "serviceId": "12345678abcd1234abcd12345678abcd"
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
},
"type": "Microsoft.AppPlatform/Spring",
"sku": {
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_Update.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_Update.json
index 066d495c9f61..fcf36b043ad1 100644
--- a/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_Update.json
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2019-05-01-preview/examples/Services_Update.json
@@ -54,7 +54,15 @@
"enabled": true,
"appInsightInstrumentationKey": "00000000-0000-0000-0000-000000000000"
},
- "serviceId": "12345678abcd1234abcd12345678abcd"
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
},
"type": "Microsoft.AppPlatform/Spring",
"sku": {
@@ -90,7 +98,15 @@
"enabled": true,
"appInsightInstrumentationKey": "00000000-0000-0000-0000-000000000000"
},
- "serviceId": "12345678abcd1234abcd12345678abcd"
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
},
"type": "Microsoft.AppPlatform/Spring",
"sku": {
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
new file mode 100644
index 000000000000..5d0e7e8f056c
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/appplatform.json
@@ -0,0 +1,4461 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-07-01",
+ "title": "AppPlatformManagementClient",
+ "description": "REST API for Azure Spring Cloud"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Get a Service and its properties.",
+ "operationId": "Services_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the corresponding Service.",
+ "schema": {
+ "$ref": "#/definitions/ServiceResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Services_Get": {
+ "$ref": "./examples/Services_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Create a new Service or update an exiting Service.",
+ "operationId": "Services_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "resource",
+ "in": "body",
+ "description": "Parameters for the create or update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ServiceResource"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Created. The response describes the new Service and contains a Location header to query the\r\noperation result.",
+ "schema": {
+ "$ref": "#/definitions/ServiceResource"
+ }
+ },
+ "200": {
+ "description": "Success. The response describes the updated Service.",
+ "schema": {
+ "$ref": "#/definitions/ServiceResource"
+ }
+ },
+ "202": {
+ "description": "Accepted. The response indicates the exiting Service is now updating and contains a Location\r\nheader to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/ServiceResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Services_CreateOrUpdate": {
+ "$ref": "./examples/Services_CreateOrUpdate.json"
+ },
+ "Services_CreateOrUpdate_VNetInjection": {
+ "$ref": "./examples/Services_CreateOrUpdate_VNetInjection.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Operation to delete a Service.",
+ "operationId": "Services_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted. The response indicates the delete operation is performed in the background."
+ },
+ "204": {
+ "description": "Success. The response indicates the resource is already deleted."
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Services_Delete": {
+ "$ref": "./examples/Services_Delete.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Operation to update an exiting Service.",
+ "operationId": "Services_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "resource",
+ "in": "body",
+ "description": "Parameters for the update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ServiceResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the updated Service.",
+ "schema": {
+ "$ref": "#/definitions/ServiceResource"
+ }
+ },
+ "202": {
+ "description": "Accepted. The response indicates the exiting Service is now updating and contains a Location\r\nheader to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/ServiceResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Services_Update": {
+ "$ref": "./examples/Services_Update.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/listTestKeys": {
+ "post": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "List test keys for a Service.",
+ "operationId": "Services_ListTestKeys",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the test keys.",
+ "schema": {
+ "$ref": "#/definitions/TestKeys"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Services_ListTestKeys": {
+ "$ref": "./examples/Services_ListTestKeys.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/regenerateTestKey": {
+ "post": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Regenerate a test key for a Service.",
+ "operationId": "Services_RegenerateTestKey",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "regenerateTestKeyRequest",
+ "in": "body",
+ "description": "Parameters for the operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RegenerateTestKeyRequestPayload"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success.",
+ "schema": {
+ "$ref": "#/definitions/TestKeys"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Services_RegenerateTestKey": {
+ "$ref": "./examples/Services_RegenerateTestKey.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/disableTestEndpoint": {
+ "post": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Disable test endpoint functionality for a Service.",
+ "operationId": "Services_DisableTestEndpoint",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Services_DisableTestEndpoint": {
+ "$ref": "./examples/Services_DisableTestEndpoint.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/enableTestEndpoint": {
+ "post": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Enable test endpoint functionality for a Service.",
+ "operationId": "Services_EnableTestEndpoint",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/TestKeys"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Services_EnableTestEndpoint": {
+ "$ref": "./examples/Services_EnableTestEndpoint.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configServers/default": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Get the config server and its properties.",
+ "operationId": "ConfigServers_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the corresponding Config Server.",
+ "schema": {
+ "$ref": "#/definitions/ConfigServerResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ConfigServers_Get": {
+ "$ref": "./examples/ConfigServers_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Update the config server.",
+ "operationId": "ConfigServers_UpdatePut",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "configServerResource",
+ "in": "body",
+ "description": "Parameters for the update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConfigServerResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the updated Config Server.",
+ "schema": {
+ "$ref": "#/definitions/ConfigServerResource"
+ }
+ },
+ "202": {
+ "description": "Accepted. The response indicates the exiting Config Server is now updating and contains a Location\r\nheader to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/ConfigServerResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "ConfigServers_UpdatePut": {
+ "$ref": "./examples/ConfigServers_UpdatePut.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Update the config server.",
+ "operationId": "ConfigServers_UpdatePatch",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "configServerResource",
+ "in": "body",
+ "description": "Parameters for the update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConfigServerResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the updated Config Server.",
+ "schema": {
+ "$ref": "#/definitions/ConfigServerResource"
+ }
+ },
+ "202": {
+ "description": "Accepted. The response indicates the exiting Config Server is now updating and contains a Location\r\nheader to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/ConfigServerResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "ConfigServers_UpdatePatch": {
+ "$ref": "./examples/ConfigServers_UpdatePatch.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/monitoringSettings/default": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Get the Monitoring Setting and its properties.",
+ "operationId": "MonitoringSettings_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the corresponding Monitoring Setting.",
+ "schema": {
+ "$ref": "#/definitions/MonitoringSettingResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "MonitoringSettings_Get": {
+ "$ref": "./examples/MonitoringSettings_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Update the Monitoring Setting.",
+ "operationId": "MonitoringSettings_UpdatePut",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "monitoringSettingResource",
+ "in": "body",
+ "description": "Parameters for the update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MonitoringSettingResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the updated Monitoring Setting.",
+ "schema": {
+ "$ref": "#/definitions/MonitoringSettingResource"
+ }
+ },
+ "202": {
+ "description": "Accepted. The response indicates the exiting Monitoring Setting is now updating and contains a Location\r\nheader to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/MonitoringSettingResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "MonitoringSettings_UpdatePut": {
+ "$ref": "./examples/MonitoringSettings_UpdatePut.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Update the Monitoring Setting.",
+ "operationId": "MonitoringSettings_UpdatePatch",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "monitoringSettingResource",
+ "in": "body",
+ "description": "Parameters for the update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MonitoringSettingResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the updated Monitoring Setting.",
+ "schema": {
+ "$ref": "#/definitions/MonitoringSettingResource"
+ }
+ },
+ "202": {
+ "description": "Accepted. The response indicates the exiting Monitoring Setting is now updating and contains a Location\r\nheader to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/MonitoringSettingResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "MonitoringSettings_UpdatePatch": {
+ "$ref": "./examples/MonitoringSettings_UpdatePatch.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Get an App and its properties.",
+ "operationId": "Apps_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "name": "syncStatus",
+ "in": "query",
+ "description": "Indicates whether sync status",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the corresponding App.",
+ "schema": {
+ "$ref": "#/definitions/AppResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Apps_Get": {
+ "$ref": "./examples/Apps_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Create a new App or update an exiting App.",
+ "operationId": "Apps_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "name": "appResource",
+ "in": "body",
+ "description": "Parameters for the create or update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AppResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the updated App.",
+ "schema": {
+ "$ref": "#/definitions/AppResource"
+ }
+ },
+ "201": {
+ "description": "Created. The response describes the new App and contains a Location header to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/AppResource"
+ }
+ },
+ "202": {
+ "description": "Accepted. The response indicates the exiting App is now updating and contains a Location\r\nheader to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/AppResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Apps_CreateOrUpdate": {
+ "$ref": "./examples/Apps_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Operation to delete an App.",
+ "operationId": "Apps_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success. The response indicates the resource doesn't exist."
+ },
+ "200": {
+ "description": "Success. The response indicates the resource is deleted."
+ },
+ "202": {
+ "description": "Accepted. The response indicates the delete operation is performed in the background."
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Apps_Delete": {
+ "$ref": "./examples/Apps_Delete.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Operation to update an exiting App.",
+ "operationId": "Apps_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "name": "appResource",
+ "in": "body",
+ "description": "Parameters for the update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AppResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the updated App.",
+ "schema": {
+ "$ref": "#/definitions/AppResource"
+ }
+ },
+ "202": {
+ "description": "Accepted. The response indicates the exiting App is now updating and contains a Location header to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/AppResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Apps_Update": {
+ "$ref": "./examples/Apps_Update.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Handles requests to list all resources in a Service.",
+ "operationId": "Apps_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of Apps in the Service.",
+ "schema": {
+ "$ref": "#/definitions/AppResourceCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Apps_List": {
+ "$ref": "./examples/Apps_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/getResourceUploadUrl": {
+ "post": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Get an resource upload URL for an App, which may be artifacts or source archive.",
+ "operationId": "Apps_GetResourceUploadUrl",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the resource upload URL.",
+ "schema": {
+ "$ref": "#/definitions/ResourceUploadDefinition"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Apps_GetResourceUploadUrl": {
+ "$ref": "./examples/Apps_GetResourceUploadUrl.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings/{bindingName}": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Get a Binding and its properties.",
+ "operationId": "Bindings_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/BindingNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the corresponding Binding.",
+ "schema": {
+ "$ref": "#/definitions/BindingResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Bindings_Get": {
+ "$ref": "./examples/Bindings_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Create a new Binding or update an exiting Binding.",
+ "operationId": "Bindings_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/BindingNameParameter"
+ },
+ {
+ "name": "bindingResource",
+ "in": "body",
+ "description": "Parameters for the create or update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BindingResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the created or updated Binding.",
+ "schema": {
+ "$ref": "#/definitions/BindingResource"
+ }
+ },
+ "201": {
+ "description": "Created. The response describes the new Binding and contains a Location header to query the\r\noperation result.",
+ "schema": {
+ "$ref": "#/definitions/BindingResource"
+ }
+ },
+ "202": {
+ "description": "Accepted. The response indicates the exiting Binding is now updating and contains a Location\r\nheader to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/BindingResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Bindings_CreateOrUpdate": {
+ "$ref": "./examples/Bindings_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Operation to delete a Binding.",
+ "operationId": "Bindings_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/BindingNameParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success. The response indicates the resource doesn't exist."
+ },
+ "202": {
+ "description": "Accepted. The response indicates the delete operation is performed in the background."
+ },
+ "200": {
+ "description": "Success. The response indicates the resource is deleted."
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Bindings_Delete": {
+ "$ref": "./examples/Bindings_Delete.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Operation to update an exiting Binding.",
+ "operationId": "Bindings_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/BindingNameParameter"
+ },
+ {
+ "name": "bindingResource",
+ "in": "body",
+ "description": "Parameters for the update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BindingResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the updated Binding.",
+ "schema": {
+ "$ref": "#/definitions/BindingResource"
+ }
+ },
+ "202": {
+ "description": "Accepted. The response indicates the exiting Binding is now updating and contains a Location\r\nheader to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/BindingResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Bindings_Update": {
+ "$ref": "./examples/Bindings_Update.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Handles requests to list all resources in an App.",
+ "operationId": "Bindings_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of Bindings in the App.",
+ "schema": {
+ "$ref": "#/definitions/BindingResourceCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Bindings_List": {
+ "$ref": "./examples/Bindings_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/certificates/{certificateName}": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Get the certificate resource.",
+ "operationId": "Certificates_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CertificateNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describe the certificate.",
+ "schema": {
+ "$ref": "#/definitions/CertificateResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Certificates_Get": {
+ "$ref": "./examples/Certificates_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Create or update certificate resource.",
+ "operationId": "Certificates_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CertificateNameParameter"
+ },
+ {
+ "name": "certificateResource",
+ "in": "body",
+ "description": "Parameters for the create or update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describe the existed certificate updated.",
+ "schema": {
+ "$ref": "#/definitions/CertificateResource"
+ }
+ },
+ "201": {
+ "description": "Created. The response describes the new certificate and contains a Location header to query the\r\noperation result.",
+ "schema": {
+ "$ref": "#/definitions/CertificateResource"
+ }
+ },
+ "202": {
+ "description": "Accepted. The response indicates the exiting certificate is now updating and contains a Location\r\nheader to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/CertificateResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Certificates_CreateOrUpdate": {
+ "$ref": "./examples/Certificates_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Delete the certificate resource.",
+ "operationId": "Certificates_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CertificateNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response indicates the certificate deleted."
+ },
+ "202": {
+ "description": "Accepted. The response indicates the delete operation is performed in the background."
+ },
+ "204": {
+ "description": "No content. The response indicates the certificate doesn't exist."
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Certificates_Delete": {
+ "$ref": "./examples/Certificates_Delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/certificates": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "List all the certificates of one user.",
+ "operationId": "Certificates_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describe the custom domain resource list of one application.",
+ "schema": {
+ "$ref": "#/definitions/CertificateResourceCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Certificates_List": {
+ "$ref": "./examples/Certificates_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AppPlatform/locations/{location}/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Checks that the resource name is valid and is not already in use.",
+ "operationId": "Services_CheckNameAvailability",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "location",
+ "in": "path",
+ "description": "the region",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "availabilityParameters",
+ "in": "body",
+ "description": "Parameters supplied to the operation.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NameAvailabilityParameters"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the name availability.",
+ "schema": {
+ "$ref": "#/definitions/NameAvailability"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Services_CheckNameAvailability": {
+ "$ref": "./examples/Services_CheckNameAvailability.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/domains/{domainName}": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Get the custom domain of one lifecycle application.",
+ "operationId": "CustomDomains_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CustomDomainNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describe the custom domain.",
+ "schema": {
+ "$ref": "#/definitions/CustomDomainResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "CustomDomains_Get": {
+ "$ref": "./examples/CustomDomains_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Create or update custom domain of one lifecycle application.",
+ "operationId": "CustomDomains_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CustomDomainNameParameter"
+ },
+ {
+ "name": "domainResource",
+ "in": "body",
+ "description": "Parameters for the create or update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CustomDomainResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describe the existed custom domain updated.",
+ "schema": {
+ "$ref": "#/definitions/CustomDomainResource"
+ }
+ },
+ "201": {
+ "description": "Created. The response describes the new custom domain and contains a Location header to query the\r\noperation result.",
+ "schema": {
+ "$ref": "#/definitions/CustomDomainResource"
+ }
+ },
+ "202": {
+ "description": "Accepted. The response indicates the exiting custom domain is now updating and contains a Location\r\nheader to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/CustomDomainResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "CustomDomains_CreateOrUpdate": {
+ "$ref": "./examples/CustomDomains_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Delete the custom domain of one lifecycle application.",
+ "operationId": "CustomDomains_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CustomDomainNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response indicates the custom domain deleted."
+ },
+ "202": {
+ "description": "Accepted. The response indicates the delete operation is performed in the background."
+ },
+ "204": {
+ "description": "No content. The response indicates the custom domain doesn't exist."
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "CustomDomains_Delete": {
+ "$ref": "./examples/CustomDomains_Delete.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Update custom domain of one lifecycle application.",
+ "operationId": "CustomDomains_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CustomDomainNameParameter"
+ },
+ {
+ "name": "domainResource",
+ "in": "body",
+ "description": "Parameters for the create or update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CustomDomainResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describe the existed custom domain updated.",
+ "schema": {
+ "$ref": "#/definitions/CustomDomainResource"
+ }
+ },
+ "202": {
+ "description": "Accepted. The response indicates the exiting custom domain is now updating and contains a Location\r\nheader to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/CustomDomainResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "CustomDomains_Update": {
+ "$ref": "./examples/CustomDomains_Update.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/domains": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "List the custom domains of one lifecycle application.",
+ "operationId": "CustomDomains_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describe the custom domain resource list of one application.",
+ "schema": {
+ "$ref": "#/definitions/CustomDomainResourceCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "CustomDomains_List": {
+ "$ref": "./examples/CustomDomains_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/validateDomain": {
+ "post": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Check the resource name is valid as well as not in use.",
+ "operationId": "Apps_ValidateDomain",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "name": "validatePayload",
+ "in": "body",
+ "description": "Custom domain payload to be validated",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CustomDomainValidatePayload"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describe the name is available.",
+ "schema": {
+ "$ref": "#/definitions/CustomDomainValidateResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Apps_ValidateDomain": {
+ "$ref": "./examples/Apps_ValidateDomain.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Get a Deployment and its properties.",
+ "operationId": "Deployments_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DeploymentNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the corresponding Deployment.",
+ "schema": {
+ "$ref": "#/definitions/DeploymentResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Deployments_Get": {
+ "$ref": "./examples/Deployments_Get.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Create a new Deployment or update an exiting Deployment.",
+ "operationId": "Deployments_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DeploymentNameParameter"
+ },
+ {
+ "name": "deploymentResource",
+ "in": "body",
+ "description": "Parameters for the create or update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DeploymentResource"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Created. The response describes the new Deployment and contains a Location header to query the\r\noperation result.",
+ "schema": {
+ "$ref": "#/definitions/DeploymentResource"
+ }
+ },
+ "200": {
+ "description": "Success. The response describes the updated Deployment.",
+ "schema": {
+ "$ref": "#/definitions/DeploymentResource"
+ }
+ },
+ "202": {
+ "description": "Accepted. The response indicates the exiting Deployment is now updating and contains a Location\r\nheader to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/DeploymentResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Deployments_CreateOrUpdate": {
+ "$ref": "./examples/Deployments_CreateOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Operation to delete a Deployment.",
+ "operationId": "Deployments_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DeploymentNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response indicates the resource is deleted."
+ },
+ "204": {
+ "description": "Success. The response indicates the resource doesn't exist."
+ },
+ "202": {
+ "description": "Accepted. The response indicates the delete operation is performed in the background."
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Deployments_Delete": {
+ "$ref": "./examples/Deployments_Delete.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Operation to update an exiting Deployment.",
+ "operationId": "Deployments_Update",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DeploymentNameParameter"
+ },
+ {
+ "name": "deploymentResource",
+ "in": "body",
+ "description": "Parameters for the update operation",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DeploymentResource"
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted. The response indicates the exiting Deployment is now updating and contains a Location\r\nheader to query the operation result.",
+ "schema": {
+ "$ref": "#/definitions/DeploymentResource"
+ }
+ },
+ "200": {
+ "description": "Success. The response describes the updated Deployment.",
+ "schema": {
+ "$ref": "#/definitions/DeploymentResource"
+ }
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Deployments_Update": {
+ "$ref": "./examples/Deployments_Update.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Handles requests to list all resources in an App.",
+ "operationId": "Deployments_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "name": "version",
+ "in": "query",
+ "description": "Version of the deployments to be listed",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi",
+ "uniqueItems": false
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of Deployments in the App.",
+ "schema": {
+ "$ref": "#/definitions/DeploymentResourceCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Deployments_List": {
+ "$ref": "./examples/Deployments_List.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/deployments": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "List deployments for a certain service",
+ "operationId": "Deployments_ListForCluster",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "name": "version",
+ "in": "query",
+ "description": "Version of the deployments to be listed",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "collectionFormat": "multi",
+ "uniqueItems": false
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/DeploymentResourceCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Deployments_ListForCluster": {
+ "$ref": "./examples/Deployments_ListForCluster.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/start": {
+ "post": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Start the deployment.",
+ "operationId": "Deployments_Start",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DeploymentNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success."
+ },
+ "202": {
+ "description": "Accepted. The response indicates the Deployment is now starting and contains a Location header to\r\nquery the operation result."
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Deployments_Start": {
+ "$ref": "./examples/Deployments_Start.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/stop": {
+ "post": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Stop the deployment.",
+ "operationId": "Deployments_Stop",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DeploymentNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success."
+ },
+ "202": {
+ "description": "Accepted. The response indicates the Deployment is now stopping and contains a Location header to\r\nquery the operation result."
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Deployments_Stop": {
+ "$ref": "./examples/Deployments_Stop.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/restart": {
+ "post": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Restart the deployment.",
+ "operationId": "Deployments_Restart",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DeploymentNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success."
+ },
+ "202": {
+ "description": "Accepted. The response indicates the Deployment is now restarting and contains a Location header\r\nto query the operation result."
+ },
+ "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": "azure-async-operation"
+ },
+ "x-ms-examples": {
+ "Deployments_Restart": {
+ "$ref": "./examples/Deployments_Restart.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/getLogFileUrl": {
+ "post": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Get deployment log file URL",
+ "operationId": "Deployments_GetLogFileUrl",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AppNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DeploymentNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response contains the log file URL.",
+ "schema": {
+ "$ref": "#/definitions/LogFileUrlResponse"
+ }
+ },
+ "204": {
+ "description": "Success. The deployment does not have log file."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Deployments_GetLogFileUrl": {
+ "$ref": "./examples/Deployments_GetLogFileUrl.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AppPlatform/Spring": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Handles requests to list all resources in a subscription.",
+ "operationId": "Services_ListBySubscription",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of Services in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/ServiceResourceList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Services_ListBySubscription": {
+ "$ref": "./examples/Services_ListBySubscription.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Handles requests to list all resources in a resource group.",
+ "operationId": "Services_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of Services in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/ServiceResourceList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Services_List": {
+ "$ref": "./examples/Services_List.json"
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.AppPlatform/operations": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Lists all of the available REST API operations of the Microsoft.AppPlatform provider.",
+ "operationId": "Operations_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of operations.",
+ "schema": {
+ "$ref": "#/definitions/AvailableOperations"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Operations_List": {
+ "$ref": "./examples/Operations_List.json"
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.AppPlatform/runtimeVersions": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Lists all of the available runtime versions supported by Microsoft.AppPlatform provider.",
+ "operationId": "RuntimeVersions_ListRuntimeVersions",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the details of all supported deployment runtime versions.",
+ "schema": {
+ "$ref": "#/definitions/AvailableRuntimeVersions"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "RuntimeVersions_ListRuntimeVersions": {
+ "$ref": "./examples/RuntimeVersions_ListRuntimeVersions.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AppPlatform/skus": {
+ "get": {
+ "tags": [
+ "AppPlatform"
+ ],
+ "description": "Lists all of the available skus of the Microsoft.AppPlatform provider.",
+ "operationId": "Skus_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ResourceSkuCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Skus_List": {
+ "$ref": "./examples/Skus_List.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ServiceResource": {
+ "description": "Service resource",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/TrackedResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ClusterResourceProperties",
+ "description": "Properties of the Service resource",
+ "x-ms-client-flatten": false
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "Sku of the Service resource"
+ }
+ }
+ },
+ "TrackedResource": {
+ "description": "The resource model definition for a ARM tracked top level resource.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "location": {
+ "description": "The GEO location of the resource.",
+ "type": "string"
+ },
+ "tags": {
+ "description": "Tags of the service which is a list of key value pairs that describe the resource.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "Resource": {
+ "description": "The core properties of ARM resources.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Fully qualified resource Id for the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "The name of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "The type of the resource.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "ClusterResourceProperties": {
+ "description": "Service properties payload",
+ "type": "object",
+ "properties": {
+ "provisioningState": {
+ "description": "Provisioning state of the Service",
+ "enum": [
+ "Creating",
+ "Updating",
+ "Deleting",
+ "Deleted",
+ "Succeeded",
+ "Failed",
+ "Moving",
+ "Moved",
+ "MoveFailed"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "networkProfile": {
+ "$ref": "#/definitions/NetworkProfile",
+ "description": "Network profile of the Service"
+ },
+ "version": {
+ "format": "int32",
+ "description": "Version of the Service",
+ "type": "integer",
+ "readOnly": true
+ },
+ "serviceId": {
+ "description": "ServiceInstanceEntity GUID which uniquely identifies a created resource",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ManagedIdentityProperties": {
+ "description": "Managed identity properties retrieved from ARM request headers.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "Type of the managed identity",
+ "enum": [
+ "None",
+ "SystemAssigned",
+ "UserAssigned",
+ "SystemAssigned,UserAssigned"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ManagedIdentityType",
+ "modelAsString": true
+ }
+ },
+ "principalId": {
+ "description": "Principal Id",
+ "type": "string"
+ },
+ "tenantId": {
+ "description": "Tenant Id",
+ "type": "string"
+ }
+ }
+ },
+ "Sku": {
+ "description": "Sku of Azure Spring Cloud",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the Sku",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Tier of the Sku",
+ "type": "string"
+ },
+ "capacity": {
+ "format": "int32",
+ "description": "Current capacity of the target resource",
+ "type": "integer"
+ }
+ }
+ },
+ "ConfigServerResource": {
+ "description": "Config Server resource",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ConfigServerProperties",
+ "description": "Properties of the Config Server resource",
+ "x-ms-client-flatten": false
+ }
+ }
+ },
+ "ConfigServerProperties": {
+ "description": "Config server git properties payload",
+ "type": "object",
+ "properties": {
+ "provisioningState": {
+ "description": "State of the config server.",
+ "enum": [
+ "NotAvailable",
+ "Deleted",
+ "Failed",
+ "Succeeded",
+ "Updating"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ConfigServerState",
+ "modelAsString": true
+ }
+ },
+ "error": {
+ "$ref": "#/definitions/Error",
+ "description": "Error when apply config server settings."
+ },
+ "configServer": {
+ "$ref": "#/definitions/ConfigServerSettings",
+ "description": "Settings of config server."
+ }
+ }
+ },
+ "MonitoringSettingResource": {
+ "description": "Monitoring Setting resource",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/MonitoringSettingProperties",
+ "description": "Properties of the Monitoring Setting resource",
+ "x-ms-client-flatten": false
+ }
+ }
+ },
+ "MonitoringSettingProperties": {
+ "description": "Monitoring Setting properties payload",
+ "type": "object",
+ "properties": {
+ "provisioningState": {
+ "description": "State of the Monitoring Setting.",
+ "enum": [
+ "NotAvailable",
+ "Failed",
+ "Succeeded",
+ "Updating"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "MonitoringSettingState",
+ "modelAsString": true
+ }
+ },
+ "error": {
+ "$ref": "#/definitions/Error",
+ "description": "Error when apply Monitoring Setting changes."
+ },
+ "traceEnabled": {
+ "description": "Indicates whether enable the trace functionality",
+ "type": "boolean"
+ },
+ "appInsightsInstrumentationKey": {
+ "description": "Target application insight instrumentation key",
+ "type": "string"
+ }
+ }
+ },
+ "NetworkProfile": {
+ "description": "Service network profile payload",
+ "type": "object",
+ "properties": {
+ "serviceRuntimeSubnetId": {
+ "description": "Fully qualified resource Id of the subnet to host Azure Spring Cloud Service Runtime",
+ "type": "string"
+ },
+ "appSubnetId": {
+ "description": "Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps",
+ "type": "string"
+ },
+ "serviceCidr": {
+ "description": "Azure Spring Cloud service reserved CIDR",
+ "type": "string"
+ },
+ "serviceRuntimeNetworkResourceGroup": {
+ "description": "Name of the resource group containing network resources of Azure Spring Cloud Service Runtime",
+ "type": "string"
+ },
+ "appNetworkResourceGroup": {
+ "description": "Name of the resource group containing network resources of Azure Spring Cloud Apps",
+ "type": "string"
+ },
+ "outboundIPs": {
+ "description": "Desired outbound IP resources for Azure Spring Cloud instance.",
+ "type": "object",
+ "readOnly": true,
+ "properties": {
+ "publicIPs": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of public IP addresses."
+ }
+ }
+ }
+ }
+ },
+ "Error": {
+ "description": "The error code compose of code and message.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The code of error.",
+ "type": "string"
+ },
+ "message": {
+ "description": "The message of error.",
+ "type": "string"
+ }
+ }
+ },
+ "ConfigServerSettings": {
+ "description": "The settings of config server.",
+ "type": "object",
+ "properties": {
+ "gitProperty": {
+ "$ref": "#/definitions/ConfigServerGitProperty",
+ "description": "Property of git environment."
+ }
+ }
+ },
+ "ConfigServerGitProperty": {
+ "description": "Property of git.",
+ "required": [
+ "uri"
+ ],
+ "type": "object",
+ "properties": {
+ "repositories": {
+ "description": "Repositories of git.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GitPatternRepository"
+ }
+ },
+ "uri": {
+ "description": "URI of the repository",
+ "type": "string"
+ },
+ "label": {
+ "description": "Label of the repository",
+ "type": "string"
+ },
+ "searchPaths": {
+ "description": "Searching path of the repository",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "username": {
+ "description": "Username of git repository basic auth.",
+ "type": "string"
+ },
+ "password": {
+ "description": "Password of git repository basic auth.",
+ "type": "string"
+ },
+ "hostKey": {
+ "description": "Public sshKey of git repository.",
+ "type": "string"
+ },
+ "hostKeyAlgorithm": {
+ "description": "SshKey algorithm of git repository.",
+ "type": "string"
+ },
+ "privateKey": {
+ "description": "Private sshKey algorithm of git repository.",
+ "type": "string"
+ },
+ "strictHostKeyChecking": {
+ "description": "Strict host key checking or not.",
+ "type": "boolean"
+ }
+ }
+ },
+ "GitPatternRepository": {
+ "description": "Git repository property payload",
+ "required": [
+ "name",
+ "uri"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the repository",
+ "type": "string"
+ },
+ "pattern": {
+ "description": "Collection of pattern of the repository",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "uri": {
+ "description": "URI of the repository",
+ "type": "string"
+ },
+ "label": {
+ "description": "Label of the repository",
+ "type": "string"
+ },
+ "searchPaths": {
+ "description": "Searching path of the repository",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "username": {
+ "description": "Username of git repository basic auth.",
+ "type": "string"
+ },
+ "password": {
+ "description": "Password of git repository basic auth.",
+ "type": "string"
+ },
+ "hostKey": {
+ "description": "Public sshKey of git repository.",
+ "type": "string"
+ },
+ "hostKeyAlgorithm": {
+ "description": "SshKey algorithm of git repository.",
+ "type": "string"
+ },
+ "privateKey": {
+ "description": "Private sshKey algorithm of git repository.",
+ "type": "string"
+ },
+ "strictHostKeyChecking": {
+ "description": "Strict host key checking or not.",
+ "type": "boolean"
+ }
+ }
+ },
+ "TestKeys": {
+ "description": "Test keys payload",
+ "type": "object",
+ "properties": {
+ "primaryKey": {
+ "description": "Primary key",
+ "type": "string"
+ },
+ "secondaryKey": {
+ "description": "Secondary key",
+ "type": "string"
+ },
+ "primaryTestEndpoint": {
+ "description": "Primary test endpoint",
+ "type": "string"
+ },
+ "secondaryTestEndpoint": {
+ "description": "Secondary test endpoint",
+ "type": "string"
+ },
+ "enabled": {
+ "description": "Indicates whether the test endpoint feature enabled or not",
+ "type": "boolean"
+ }
+ }
+ },
+ "RegenerateTestKeyRequestPayload": {
+ "description": "Regenerate test key request payload",
+ "required": [
+ "keyType"
+ ],
+ "type": "object",
+ "properties": {
+ "keyType": {
+ "description": "Type of the test key",
+ "enum": [
+ "Primary",
+ "Secondary"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TestKeyType",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "AppResource": {
+ "description": "App resource payload",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/AppResourceProperties",
+ "description": "Properties of the App resource",
+ "x-ms-client-flatten": false
+ },
+ "identity": {
+ "$ref": "#/definitions/ManagedIdentityProperties",
+ "description": "The Managed Identity type of the app resource"
+ },
+ "location": {
+ "description": "The GEO location of the application, always the same with its parent resource",
+ "type": "string"
+ }
+ }
+ },
+ "ProxyResource": {
+ "description": "The resource model definition for a ARM proxy resource. It will have everything other than required location and tags.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {}
+ },
+ "AppResourceProperties": {
+ "description": "App resource properties payload",
+ "type": "object",
+ "properties": {
+ "public": {
+ "description": "Indicates whether the App exposes public endpoint",
+ "type": "boolean"
+ },
+ "url": {
+ "description": "URL of the App",
+ "type": "string",
+ "readOnly": true
+ },
+ "provisioningState": {
+ "description": "Provisioning state of the App",
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Creating",
+ "Updating"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "AppResourceProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "activeDeploymentName": {
+ "description": "Name of the active deployment of the App",
+ "type": "string"
+ },
+ "fqdn": {
+ "description": "Fully qualified dns Name.",
+ "type": "string"
+ },
+ "httpsOnly": {
+ "description": "Indicate if only https is allowed.",
+ "type": "boolean"
+ },
+ "createdTime": {
+ "format": "date-time",
+ "description": "Date time when the resource is created",
+ "type": "string",
+ "readOnly": true
+ },
+ "temporaryDisk": {
+ "$ref": "#/definitions/TemporaryDisk",
+ "description": "Temporary disk settings"
+ },
+ "persistentDisk": {
+ "$ref": "#/definitions/PersistentDisk",
+ "description": "Persistent disk settings"
+ }
+ }
+ },
+ "TemporaryDisk": {
+ "description": "Temporary disk payload",
+ "type": "object",
+ "properties": {
+ "sizeInGB": {
+ "format": "int32",
+ "description": "Size of the temporary disk in GB",
+ "maximum": 5.0,
+ "minimum": 0.0,
+ "type": "integer"
+ },
+ "mountPath": {
+ "description": "Mount path of the temporary disk",
+ "type": "string"
+ }
+ }
+ },
+ "PersistentDisk": {
+ "description": "Persistent disk payload",
+ "type": "object",
+ "properties": {
+ "sizeInGB": {
+ "format": "int32",
+ "description": "Size of the persistent disk in GB",
+ "maximum": 50.0,
+ "minimum": 0.0,
+ "type": "integer"
+ },
+ "usedInGB": {
+ "format": "int32",
+ "description": "Size of the used persistent disk in GB",
+ "maximum": 50.0,
+ "minimum": 0.0,
+ "type": "integer",
+ "readOnly": true
+ },
+ "mountPath": {
+ "description": "Mount path of the persistent disk",
+ "type": "string"
+ }
+ }
+ },
+ "AppResourceCollection": {
+ "description": "Object that includes an array of App resources and a possible link for next set",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of App resources",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AppResource"
+ }
+ },
+ "nextLink": {
+ "description": "URL client should use to fetch the next page (per server side paging).\r\nIt's null for now, added for future use.",
+ "type": "string"
+ }
+ }
+ },
+ "ResourceUploadDefinition": {
+ "description": "Resource upload definition payload",
+ "type": "object",
+ "properties": {
+ "relativePath": {
+ "description": "Source relative path",
+ "type": "string"
+ },
+ "uploadUrl": {
+ "description": "Upload URL",
+ "type": "string"
+ }
+ }
+ },
+ "BindingResource": {
+ "description": "Binding resource payload",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/BindingResourceProperties",
+ "description": "Properties of the Binding resource",
+ "x-ms-client-flatten": false
+ }
+ }
+ },
+ "BindingResourceProperties": {
+ "description": "Binding resource properties payload",
+ "type": "object",
+ "properties": {
+ "resourceName": {
+ "description": "The name of the bound resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "resourceType": {
+ "description": "The standard Azure resource type of the bound resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "resourceId": {
+ "description": "The Azure resource id of the bound resource",
+ "type": "string"
+ },
+ "key": {
+ "description": "The key of the bound resource",
+ "type": "string"
+ },
+ "bindingParameters": {
+ "description": "Binding parameters of the Binding resource",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "generatedProperties": {
+ "description": "The generated Spring Boot property file for this binding. The secret will be deducted.",
+ "type": "string",
+ "readOnly": true
+ },
+ "createdAt": {
+ "description": "Creation time of the Binding resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "updatedAt": {
+ "description": "Update time of the Binding resource",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "BindingResourceCollection": {
+ "description": "Object that includes an array of Binding resources and a possible link for next set",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of Binding resources",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BindingResource"
+ }
+ },
+ "nextLink": {
+ "description": "URL client should use to fetch the next page (per server side paging).\r\nIt's null for now, added for future use.",
+ "type": "string"
+ }
+ }
+ },
+ "CertificateResource": {
+ "description": "Certificate resource payload.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/CertificateProperties",
+ "description": "Properties of the certificate resource payload.",
+ "x-ms-client-flatten": false
+ }
+ }
+ },
+ "CertificateProperties": {
+ "description": "Certificate resource payload.",
+ "required": [
+ "vaultUri",
+ "keyVaultCertName"
+ ],
+ "type": "object",
+ "properties": {
+ "thumbprint": {
+ "description": "The thumbprint of certificate.",
+ "type": "string",
+ "readOnly": true
+ },
+ "vaultUri": {
+ "description": "The vault uri of user key vault.",
+ "type": "string"
+ },
+ "keyVaultCertName": {
+ "description": "The certificate name of key vault.",
+ "type": "string"
+ },
+ "certVersion": {
+ "description": "The certificate version of key vault.",
+ "type": "string"
+ },
+ "issuer": {
+ "description": "The issuer of certificate.",
+ "type": "string",
+ "readOnly": true
+ },
+ "issuedDate": {
+ "description": "The issue date of certificate.",
+ "type": "string",
+ "readOnly": true
+ },
+ "expirationDate": {
+ "description": "The expiration date of certificate.",
+ "type": "string",
+ "readOnly": true
+ },
+ "activateDate": {
+ "description": "The activate date of certificate.",
+ "type": "string",
+ "readOnly": true
+ },
+ "subjectName": {
+ "description": "The subject name of certificate.",
+ "type": "string",
+ "readOnly": true
+ },
+ "dnsNames": {
+ "description": "The domain list of certificate.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "CertificateResourceCollection": {
+ "description": "Collection compose of certificate resources list and a possible link for next page.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The certificate resources list.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateResource"
+ }
+ },
+ "nextLink": {
+ "description": "The link to next page of certificate list.",
+ "type": "string"
+ }
+ }
+ },
+ "NameAvailabilityParameters": {
+ "description": "Name availability parameters payload",
+ "required": [
+ "type",
+ "name"
+ ],
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "Type of the resource to check name availability",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name to be checked",
+ "type": "string"
+ }
+ }
+ },
+ "NameAvailability": {
+ "description": "Name availability result payload",
+ "type": "object",
+ "properties": {
+ "nameAvailable": {
+ "description": "Indicates whether the name is available",
+ "type": "boolean"
+ },
+ "reason": {
+ "description": "Reason why the name is not available",
+ "type": "string"
+ },
+ "message": {
+ "description": "Message why the name is not available",
+ "type": "string"
+ }
+ },
+ "readOnly": true
+ },
+ "CustomDomainResource": {
+ "description": "Custom domain resource payload.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/CustomDomainProperties",
+ "description": "Properties of the custom domain resource.",
+ "x-ms-client-flatten": false
+ }
+ }
+ },
+ "CustomDomainProperties": {
+ "description": "Custom domain of app resource payload.",
+ "type": "object",
+ "properties": {
+ "thumbprint": {
+ "description": "The thumbprint of bound certificate.",
+ "type": "string"
+ },
+ "appName": {
+ "description": "The app name of domain.",
+ "type": "string",
+ "readOnly": true
+ },
+ "certName": {
+ "description": "The bound certificate name of domain.",
+ "type": "string"
+ }
+ }
+ },
+ "CustomDomainResourceCollection": {
+ "description": "Collection compose of a custom domain resources list and a possible link for next page.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The custom domain resources list.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CustomDomainResource"
+ }
+ },
+ "nextLink": {
+ "description": "The link to next page of custom domain list.",
+ "type": "string"
+ }
+ }
+ },
+ "CustomDomainValidatePayload": {
+ "description": "Custom domain validate payload.",
+ "required": [
+ "name"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name to be validated",
+ "type": "string"
+ }
+ }
+ },
+ "CustomDomainValidateResult": {
+ "description": "Validation result for custom domain.",
+ "type": "object",
+ "properties": {
+ "isValid": {
+ "description": "Indicates if domain name is valid.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message of why domain name is invalid.",
+ "type": "string"
+ }
+ }
+ },
+ "DeploymentResource": {
+ "description": "Deployment resource payload",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/DeploymentResourceProperties",
+ "description": "Properties of the Deployment resource",
+ "x-ms-client-flatten": false
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "Sku of the Deployment resource"
+ }
+ }
+ },
+ "DeploymentResourceProperties": {
+ "description": "Deployment resource properties payload",
+ "type": "object",
+ "properties": {
+ "source": {
+ "$ref": "#/definitions/UserSourceInfo",
+ "description": "Uploaded source information of the deployment."
+ },
+ "appName": {
+ "description": "App name of the deployment",
+ "type": "string",
+ "readOnly": true
+ },
+ "deploymentSettings": {
+ "$ref": "#/definitions/DeploymentSettings",
+ "description": "Deployment settings of the Deployment"
+ },
+ "provisioningState": {
+ "description": "Provisioning state of the Deployment",
+ "enum": [
+ "Creating",
+ "Updating",
+ "Succeeded",
+ "Failed"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "DeploymentResourceProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "status": {
+ "description": "Status of the Deployment",
+ "enum": [
+ "Unknown",
+ "Stopped",
+ "Running",
+ "Failed",
+ "Allocating",
+ "Upgrading",
+ "Compiling"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "DeploymentResourceStatus",
+ "modelAsString": true
+ }
+ },
+ "active": {
+ "description": "Indicates whether the Deployment is active",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "createdTime": {
+ "format": "date-time",
+ "description": "Date time when the resource is created",
+ "type": "string",
+ "readOnly": true
+ },
+ "instances": {
+ "description": "Collection of instances belong to the Deployment",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeploymentInstance"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "UserSourceInfo": {
+ "description": "Source information for a deployment",
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "Type of the source uploaded",
+ "enum": [
+ "Jar",
+ "NetCoreZip",
+ "Source"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "UserSourceType",
+ "modelAsString": true
+ }
+ },
+ "relativePath": {
+ "description": "Relative path of the storage which stores the source",
+ "type": "string"
+ },
+ "version": {
+ "description": "Version of the source",
+ "type": "string"
+ },
+ "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"
+ }
+ }
+ },
+ "DeploymentSettings": {
+ "description": "Deployment settings payload",
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "format": "int32",
+ "description": "Required CPU, basic tier should be 1, standard tier should be in range (1, 4)",
+ "default": 1,
+ "type": "integer"
+ },
+ "memoryInGB": {
+ "format": "int32",
+ "description": "Required Memory size in GB, basic tier should be in range (1, 2), standard tier should be in range (1, 8)",
+ "default": 1,
+ "type": "integer"
+ },
+ "jvmOptions": {
+ "description": "JVM parameter",
+ "type": "string"
+ },
+ "netCoreMainEntryPath": {
+ "description": "The path to the .NET executable relative to zip root",
+ "type": "string"
+ },
+ "environmentVariables": {
+ "description": "Collection of environment variables",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "runtimeVersion": {
+ "description": "Runtime version",
+ "enum": [
+ "Java_8",
+ "Java_11",
+ "NetCore_31"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "RuntimeVersion",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "DeploymentInstance": {
+ "description": "Deployment instance payload",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the deployment instance",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Status of the deployment instance",
+ "type": "string",
+ "readOnly": true
+ },
+ "reason": {
+ "description": "Failed reason of the deployment instance",
+ "type": "string",
+ "readOnly": true
+ },
+ "discoveryStatus": {
+ "description": "Discovery status of the deployment instance",
+ "type": "string",
+ "readOnly": true
+ },
+ "startTime": {
+ "description": "Start time of the deployment instance",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "DeploymentResourceCollection": {
+ "description": "Object that includes an array of App resources and a possible link for next set",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of Deployment resources",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeploymentResource"
+ }
+ },
+ "nextLink": {
+ "description": "URL client should use to fetch the next page (per server side paging).\r\nIt's null for now, added for future use.",
+ "type": "string"
+ }
+ }
+ },
+ "LogFileUrlResponse": {
+ "description": "Log file URL payload",
+ "required": [
+ "url"
+ ],
+ "type": "object",
+ "properties": {
+ "url": {
+ "description": "URL of the log file",
+ "type": "string"
+ }
+ }
+ },
+ "ServiceResourceList": {
+ "description": "Object that includes an array of Service resources and a possible link for next set",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of Service resources",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceResource"
+ }
+ },
+ "nextLink": {
+ "description": "URL client should use to fetch the next page (per server side paging).\r\nIt's null for now, added for future use.",
+ "type": "string"
+ }
+ }
+ },
+ "AvailableOperations": {
+ "description": "Available operations of the service",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of available operation details",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationDetail"
+ }
+ },
+ "nextLink": {
+ "description": "URL client should use to fetch the next page (per server side paging).\r\nIt's null for now, added for future use.",
+ "type": "string"
+ }
+ }
+ },
+ "OperationDetail": {
+ "description": "Operation detail payload",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the operation",
+ "type": "string"
+ },
+ "isDataAction": {
+ "description": "Indicates whether the operation is a data action",
+ "type": "boolean"
+ },
+ "display": {
+ "$ref": "#/definitions/OperationDisplay",
+ "description": "Display of the operation"
+ },
+ "origin": {
+ "description": "Origin of the operation",
+ "type": "string"
+ },
+ "properties": {
+ "$ref": "#/definitions/OperationProperties",
+ "description": "Properties of the operation"
+ }
+ }
+ },
+ "OperationDisplay": {
+ "description": "Operation display payload",
+ "type": "object",
+ "properties": {
+ "provider": {
+ "description": "Resource provider of the operation",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource of the operation",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Localized friendly name for the operation",
+ "type": "string"
+ },
+ "description": {
+ "description": "Localized friendly description for the operation",
+ "type": "string"
+ }
+ }
+ },
+ "OperationProperties": {
+ "description": "Extra Operation properties",
+ "type": "object",
+ "properties": {
+ "serviceSpecification": {
+ "$ref": "#/definitions/ServiceSpecification",
+ "description": "Service specifications of the operation"
+ }
+ }
+ },
+ "ServiceSpecification": {
+ "description": "Service specification payload",
+ "type": "object",
+ "properties": {
+ "logSpecifications": {
+ "description": "Specifications of the Log for Azure Monitoring",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LogSpecification"
+ }
+ },
+ "metricSpecifications": {
+ "description": "Specifications of the Metrics for Azure Monitoring",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricSpecification"
+ }
+ }
+ }
+ },
+ "LogSpecification": {
+ "description": "Specifications of the Log for Azure Monitoring",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the log",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized friendly display name of the log",
+ "type": "string"
+ },
+ "blobDuration": {
+ "description": "Blob duration of the log",
+ "type": "string"
+ }
+ }
+ },
+ "MetricSpecification": {
+ "description": "Specifications of the Metrics for Azure Monitoring",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the metric",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized friendly display name of the metric",
+ "type": "string"
+ },
+ "displayDescription": {
+ "description": "Localized friendly description of the metric",
+ "type": "string"
+ },
+ "unit": {
+ "description": "Unit that makes sense for the metric",
+ "type": "string"
+ },
+ "category": {
+ "description": "Name of the metric category that the metric belongs to. A metric can only belong to a single category.",
+ "type": "string"
+ },
+ "aggregationType": {
+ "description": "Only provide one value for this field. Valid values: Average, Minimum, Maximum, Total, Count.",
+ "type": "string"
+ },
+ "supportedAggregationTypes": {
+ "description": "Supported aggregation types",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "supportedTimeGrainTypes": {
+ "description": "Supported time grain types",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fillGapWithZero": {
+ "description": "Optional. If set to true, then zero will be returned for time duration where no metric is emitted/published.",
+ "type": "boolean"
+ },
+ "dimensions": {
+ "description": "Dimensions of the metric",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricDimension"
+ }
+ }
+ }
+ },
+ "MetricDimension": {
+ "description": "Specifications of the Dimension of metrics",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the dimension",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized friendly display name of the dimension",
+ "type": "string"
+ }
+ }
+ },
+ "ResourceSkuCollection": {
+ "description": "Object that includes an array of Azure Spring Cloud SKU and a possible link for next set",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of resource SKU",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceSku"
+ }
+ },
+ "nextLink": {
+ "description": "URL client should use to fetch the next page (per server side paging).\r\nIt's null for now, added for future use.",
+ "type": "string"
+ }
+ }
+ },
+ "ResourceSku": {
+ "description": "Describes an available Azure Spring Cloud SKU.",
+ "type": "object",
+ "properties": {
+ "resourceType": {
+ "description": "Gets the type of resource the SKU applies to.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Gets the name of SKU.",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Gets the tier of SKU.",
+ "type": "string"
+ },
+ "capacity": {
+ "$ref": "#/definitions/SkuCapacity",
+ "description": "Gets the capacity of SKU."
+ },
+ "locations": {
+ "description": "Gets the set of locations that the SKU is available.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "locationInfo": {
+ "description": "Gets a list of locations and availability zones in those locations where the SKU is available.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceSkuLocationInfo"
+ }
+ },
+ "restrictions": {
+ "description": "Gets the restrictions because of which SKU cannot be used. This is\r\nempty if there are no restrictions.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceSkuRestrictions"
+ }
+ }
+ }
+ },
+ "SkuCapacity": {
+ "description": "The SKU capacity",
+ "required": [
+ "minimum"
+ ],
+ "type": "object",
+ "properties": {
+ "minimum": {
+ "format": "int32",
+ "description": "Gets or sets the minimum.",
+ "type": "integer"
+ },
+ "maximum": {
+ "format": "int32",
+ "description": "Gets or sets the maximum.",
+ "type": "integer"
+ },
+ "default": {
+ "format": "int32",
+ "description": "Gets or sets the default.",
+ "type": "integer"
+ },
+ "scaleType": {
+ "description": "Gets or sets the type of the scale.",
+ "enum": [
+ "None",
+ "Manual",
+ "Automatic"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuScaleType",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "ResourceSkuLocationInfo": {
+ "description": "Locations and availability zones where the SKU is available",
+ "type": "object",
+ "properties": {
+ "location": {
+ "description": "Gets location of the SKU",
+ "type": "string"
+ },
+ "zones": {
+ "description": "Gets list of availability zones where the SKU is supported.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "zoneDetails": {
+ "description": "Gets details of capabilities available to a SKU in specific zones.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceSkuZoneDetails"
+ }
+ }
+ }
+ },
+ "ResourceSkuRestrictions": {
+ "description": "Restrictions where the SKU cannot be used",
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "Gets the type of restrictions. Possible values include: 'Location', 'Zone'",
+ "enum": [
+ "Location",
+ "Zone"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ResourceSkuRestrictionsType",
+ "modelAsString": true
+ }
+ },
+ "values": {
+ "description": "Gets the value of restrictions. If the restriction type is set to\r\nlocation. This would be different locations where the SKU is restricted.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "restrictionInfo": {
+ "$ref": "#/definitions/ResourceSkuRestrictionInfo",
+ "description": "Gets the information about the restriction where the SKU cannot be used."
+ },
+ "reasonCode": {
+ "description": "Gets the reason for restriction. Possible values include: 'QuotaId', 'NotAvailableForSubscription'",
+ "enum": [
+ "QuotaId",
+ "NotAvailableForSubscription"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ResourceSkuRestrictionsReasonCode",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "ResourceSkuZoneDetails": {
+ "description": "Details of capabilities available to a SKU in specific zones",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Gets the set of zones that the SKU is available in with the\r\nspecified capabilities.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "capabilities": {
+ "description": "Gets a list of capabilities that are available for the SKU in the\r\nspecified list of zones.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceSkuCapabilities"
+ }
+ }
+ }
+ },
+ "ResourceSkuRestrictionInfo": {
+ "description": "Information about the restriction where the SKU cannot be used",
+ "type": "object",
+ "properties": {
+ "locations": {
+ "description": "Gets locations where the SKU is restricted",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "zones": {
+ "description": "Gets list of availability zones where the SKU is restricted.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "ResourceSkuCapabilities": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Gets an invariant to describe the feature.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Gets an invariant if the feature is measured by quantity.",
+ "type": "string"
+ }
+ }
+ },
+ "CloudError": {
+ "description": "An error response from the service.",
+ "properties": {
+ "error": {
+ "description": "An error response from the service.",
+ "$ref": "#/definitions/CloudErrorBody"
+ }
+ },
+ "x-ms-external": true
+ },
+ "CloudErrorBody": {
+ "description": "An error response from the service.",
+ "properties": {
+ "code": {
+ "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically.",
+ "type": "string"
+ },
+ "message": {
+ "description": "A message describing the error, intended to be suitable for display in a user interface.",
+ "type": "string"
+ },
+ "target": {
+ "description": "The target of the particular error. For example, the name of the property in error.",
+ "type": "string"
+ },
+ "details": {
+ "description": "A list of additional details about the error.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudErrorBody"
+ }
+ }
+ },
+ "x-ms-external": true
+ },
+ "AvailableRuntimeVersions": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of all supported runtime versions.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SupportedRuntimeVersion"
+ },
+ "readOnly": true
+ }
+ },
+ "readOnly": true
+ },
+ "SupportedRuntimeVersion": {
+ "description": "Supported deployment runtime version descriptor.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The raw value which could be passed to deployment CRUD operations.",
+ "enum": [
+ "Java_8",
+ "Java_11",
+ "NetCore_31"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SupportedRuntimeValue",
+ "modelAsString": true
+ }
+ },
+ "platform": {
+ "description": "The platform of this runtime version (possible values: \"Java\" or \".NET\").",
+ "enum": [
+ "Java",
+ ".NET Core"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SupportedRuntimePlatform",
+ "modelAsString": true
+ }
+ },
+ "version": {
+ "description": "The detailed version (major.minor) of the platform.",
+ "type": "string"
+ }
+ },
+ "readOnly": true
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "description": "Client Api Version.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "2020-07-01"
+ ]
+ },
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
+ "required": true,
+ "type": "string"
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "description": "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "ServiceNameParameter": {
+ "name": "serviceName",
+ "in": "path",
+ "description": "The name of the Service resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "AppNameParameter": {
+ "name": "appName",
+ "in": "path",
+ "description": "The name of the App resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "DeploymentNameParameter": {
+ "name": "deploymentName",
+ "in": "path",
+ "description": "The name of the Deployment resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "BindingNameParameter": {
+ "name": "bindingName",
+ "in": "path",
+ "description": "The name of the Binding resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "CustomDomainNameParameter": {
+ "name": "domainName",
+ "in": "path",
+ "description": "The name of the custom domain resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "CertificateNameParameter": {
+ "name": "certificateName",
+ "in": "path",
+ "description": "The name of the certificate resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ },
+ "type": "oauth2",
+ "description": "Azure Active Directory OAuth2 Flow"
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_CreateOrUpdate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_CreateOrUpdate.json
new file mode 100644
index 000000000000..00f59981c650
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_CreateOrUpdate.json
@@ -0,0 +1,119 @@
+{
+ "parameters": {
+ "appResource": {
+ "properties": {
+ "public": true,
+ "activeDeploymentName": "mydeployment1",
+ "fqdn": "myapp.mydomain.com",
+ "httpsOnly": false,
+ "temporaryDisk": {
+ "sizeInGB": 2,
+ "mountPath": "mytemporarydisk"
+ },
+ "persistentDisk": {
+ "sizeInGB": 2,
+ "mountPath": "mypersistentdisk"
+ }
+ },
+ "identity": null,
+ "location": "eastus"
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "public": true,
+ "url": "myapp.myservice.azuremicroservices.io",
+ "provisioningState": "Succeeded",
+ "activeDeploymentName": "mydeployment1",
+ "fqdn": "myapp.mydomain.com",
+ "httpsOnly": false,
+ "temporaryDisk": {
+ "sizeInGB": 2,
+ "mountPath": "mytemporarydisk"
+ },
+ "persistentDisk": {
+ "sizeInGB": 2,
+ "usedInGB": 1,
+ "mountPath": "mypersistentdisk"
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps",
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "principalid",
+ "tenantId": "tenantid"
+ },
+ "location": "eastus",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp",
+ "name": "myapp"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "public": true,
+ "url": "myapp.myservice.azuremicroservices.io",
+ "provisioningState": "Creating",
+ "activeDeploymentName": "mydeployment1",
+ "fqdn": "myapp.mydomain.com",
+ "httpsOnly": false,
+ "temporaryDisk": {
+ "sizeInGB": 2,
+ "mountPath": "mytemporarydisk"
+ },
+ "persistentDisk": {
+ "sizeInGB": 2,
+ "usedInGB": 1,
+ "mountPath": "mypersistentdisk"
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps",
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "principalid",
+ "tenantId": "tenantid"
+ },
+ "location": "eastus",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp",
+ "name": "myapp"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "public": true,
+ "url": "myapp.myservice.azuremicroservices.io",
+ "provisioningState": "Updating",
+ "activeDeploymentName": "mydeployment1",
+ "fqdn": "myapp.mydomain.com",
+ "httpsOnly": false,
+ "temporaryDisk": {
+ "sizeInGB": 2,
+ "mountPath": "mytemporarydisk"
+ },
+ "persistentDisk": {
+ "sizeInGB": 2,
+ "usedInGB": 1,
+ "mountPath": "mypersistentdisk"
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps",
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "principalid",
+ "tenantId": "tenantid"
+ },
+ "location": "eastus",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp",
+ "name": "myapp"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_Delete.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_Delete.json
new file mode 100644
index 000000000000..0bfc11e59bf0
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_Get.json
new file mode 100644
index 000000000000..7e1677db0f60
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_Get.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "public": true,
+ "url": "myapp.myservice.azuremicroservices.io",
+ "provisioningState": "Succeeded",
+ "activeDeploymentName": "mydeployment1",
+ "fqdn": "myapp.mydomain.com",
+ "httpsOnly": false,
+ "temporaryDisk": {
+ "sizeInGB": 2,
+ "mountPath": "mytemporarydisk"
+ },
+ "persistentDisk": {
+ "sizeInGB": 2,
+ "usedInGB": 1,
+ "mountPath": "mypersistentdisk"
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps",
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "principalid",
+ "tenantId": "tenantid"
+ },
+ "location": "eastus",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp",
+ "name": "myapp"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_GetResourceUploadUrl.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_GetResourceUploadUrl.json
new file mode 100644
index 000000000000..285d26814c78
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_GetResourceUploadUrl.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "relativePath": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855-20190801-3ed9f4a2-986b-4bbd-b833-a42dccb2f777",
+ "uploadUrl": "https://springcloudstorageaccount.file.core.windows.net/bd172614181f42e2853f6fd90029cda8/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855-20190801-3ed9f4a2-986b-4bbd-b833-a42dccb2f777?sv=2018-03-28&sr=f&sig=SampleSignature&se=2019-08-01T10%3A42%3A21Z&sp=w"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_List.json
new file mode 100644
index 000000000000..68aa39ece302
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_List.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "public": true,
+ "url": "myapp.myservice.azuremicroservices.io",
+ "provisioningState": "Succeeded",
+ "activeDeploymentName": "mydeployment1",
+ "fqdn": "myapp.mydomain.com",
+ "httpsOnly": false,
+ "temporaryDisk": {
+ "sizeInGB": 2,
+ "mountPath": "mytemporarydisk"
+ },
+ "persistentDisk": {
+ "sizeInGB": 2,
+ "usedInGB": 1,
+ "mountPath": "mypersistentdisk"
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps",
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "principalid",
+ "tenantId": "tenantid"
+ },
+ "location": "eastus",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp",
+ "name": "myapp"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_Update.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_Update.json
new file mode 100644
index 000000000000..fd3aeaa6e3da
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_Update.json
@@ -0,0 +1,93 @@
+{
+ "parameters": {
+ "appResource": {
+ "properties": {
+ "public": true,
+ "activeDeploymentName": "mydeployment1",
+ "fqdn": "myapp.mydomain.com",
+ "httpsOnly": false,
+ "temporaryDisk": {
+ "sizeInGB": 2,
+ "mountPath": "mytemporarydisk"
+ },
+ "persistentDisk": {
+ "sizeInGB": 2,
+ "mountPath": "mypersistentdisk"
+ }
+ },
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": null,
+ "tenantId": null
+ },
+ "location": "eastus"
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "public": true,
+ "url": "myapp.myservice.azuremicroservices.io",
+ "provisioningState": "Succeeded",
+ "activeDeploymentName": "mydeployment1",
+ "fqdn": "myapp.mydomain.com",
+ "httpsOnly": false,
+ "temporaryDisk": {
+ "sizeInGB": 2,
+ "mountPath": "mytemporarydisk"
+ },
+ "persistentDisk": {
+ "sizeInGB": 2,
+ "usedInGB": 1,
+ "mountPath": "mypersistentdisk"
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps",
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "principalid",
+ "tenantId": "tenantid"
+ },
+ "location": "eastus",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp",
+ "name": "myapp"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "public": true,
+ "url": "myapp.myservice.azuremicroservices.io",
+ "provisioningState": "Updating",
+ "activeDeploymentName": "mydeployment1",
+ "fqdn": "myapp.mydomain.com",
+ "httpsOnly": false,
+ "temporaryDisk": {
+ "sizeInGB": 2,
+ "mountPath": "mytemporarydisk"
+ },
+ "persistentDisk": {
+ "sizeInGB": 2,
+ "usedInGB": 1,
+ "mountPath": "mypersistentdisk"
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps",
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "principalid",
+ "tenantId": "tenantid"
+ },
+ "location": "eastus",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp",
+ "name": "myapp"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_ValidateDomain.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_ValidateDomain.json
new file mode 100644
index 000000000000..0a7ada238503
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Apps_ValidateDomain.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "validatePayload": {
+ "name": "mydomain.io"
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "isValid": false,
+ "message": "Certificate is invalid, please check if it is a self signed cert or if it contains a suitable dns name"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_CreateOrUpdate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_CreateOrUpdate.json
new file mode 100644
index 000000000000..30bb8b7d997a
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_CreateOrUpdate.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "bindingResource": {
+ "properties": {
+ "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DocumentDB/databaseAccounts/my-cosmosdb-1",
+ "key": "xxxx",
+ "bindingParameters": {
+ "databaseName": "db1",
+ "apiType": "SQL"
+ },
+ "generatedProperties": null,
+ "createdAt": null,
+ "updatedAt": null
+ }
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "bindingName": "mybinding"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resourceName": "my-cosmosdb-1",
+ "resourceType": "Microsoft.DocumentDB",
+ "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DocumentDB/databaseAccounts/my-cosmosdb-1",
+ "bindingParameters": {
+ "databaseName": "db1",
+ "apiType": "SQL"
+ },
+ "generatedProperties": "spring.datasource.url=jdbc:mysql://localhost:3306/test\nspring.datasource.username=root\nspring.datasource.password=1****6",
+ "createdAt": "2019-01-01T12:34:56.000Z",
+ "updatedAt": "2019-01-01T12:34:56.000Z"
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/bindings",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/bindings/mybinding",
+ "name": "mybinding"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "resourceName": "my-cosmosdb-1",
+ "resourceType": "Microsoft.DocumentDB",
+ "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DocumentDB/databaseAccounts/my-cosmosdb-1",
+ "bindingParameters": {
+ "databaseName": "db1",
+ "apiType": "SQL"
+ },
+ "generatedProperties": "spring.datasource.url=jdbc:mysql://localhost:3306/test\nspring.datasource.username=root\nspring.datasource.password=1****6",
+ "createdAt": "2019-01-01T12:34:56.000Z",
+ "updatedAt": "2019-01-01T12:34:56.000Z"
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/bindings",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/bindings/mybinding",
+ "name": "mybinding"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "resourceName": "my-cosmosdb-1",
+ "resourceType": "Microsoft.DocumentDB",
+ "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DocumentDB/databaseAccounts/my-cosmosdb-1",
+ "bindingParameters": {
+ "databaseName": "db1",
+ "apiType": "SQL"
+ },
+ "generatedProperties": "spring.datasource.url=jdbc:mysql://localhost:3306/test\nspring.datasource.username=root\nspring.datasource.password=1****6",
+ "createdAt": "2019-01-01T12:34:56.000Z",
+ "updatedAt": "2019-01-01T12:34:56.000Z"
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/bindings",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/bindings/mybinding",
+ "name": "mybinding"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_Delete.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_Delete.json
new file mode 100644
index 000000000000..e0b92880ff3e
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_Delete.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "bindingName": "mybinding"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_Get.json
new file mode 100644
index 000000000000..b6e130ba0fd5
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_Get.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "bindingName": "mybinding"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resourceName": "my-cosmosdb-1",
+ "resourceType": "Microsoft.DocumentDB",
+ "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DocumentDB/databaseAccounts/my-cosmosdb-1",
+ "bindingParameters": {
+ "databaseName": "db1",
+ "apiType": "SQL"
+ },
+ "generatedProperties": "spring.datasource.url=jdbc:mysql://localhost:3306/test\nspring.datasource.username=root\nspring.datasource.password=1****6",
+ "createdAt": "2019-01-01T12:34:56.000Z",
+ "updatedAt": "2019-01-01T12:34:56.000Z"
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/bindings",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/bindings/mybinding",
+ "name": "mybinding"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_List.json
new file mode 100644
index 000000000000..9208dc0b71ce
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_List.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "resourceName": "my-cosmosdb-1",
+ "resourceType": "Microsoft.DocumentDB",
+ "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DocumentDB/databaseAccounts/my-cosmosdb-1",
+ "bindingParameters": {
+ "databaseName": "db1",
+ "apiType": "SQL"
+ },
+ "generatedProperties": "spring.datasource.url=jdbc:mysql://localhost:3306/test\nspring.datasource.username=root\nspring.datasource.password=1****6",
+ "createdAt": "2019-01-01T12:34:56.000Z",
+ "updatedAt": "2019-01-01T12:34:56.000Z"
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/bindings",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/bindings/mybinding",
+ "name": "mybinding"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_Update.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_Update.json
new file mode 100644
index 000000000000..c212241e6ccb
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Bindings_Update.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "bindingResource": {
+ "properties": {
+ "key": "xxxx",
+ "bindingParameters": {
+ "databaseName": "db1",
+ "apiType": "SQL"
+ },
+ "generatedProperties": null,
+ "createdAt": null,
+ "updatedAt": null
+ }
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "bindingName": "mybinding"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "resourceName": "my-cosmosdb-1",
+ "resourceType": "Microsoft.DocumentDB",
+ "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DocumentDB/databaseAccounts/my-cosmosdb-1",
+ "bindingParameters": {
+ "databaseName": "db1",
+ "apiType": "SQL"
+ },
+ "generatedProperties": "spring.datasource.url=jdbc:mysql://localhost:3306/test\nspring.datasource.username=root\nspring.datasource.password=1****6",
+ "createdAt": "2019-01-01T12:34:56.000Z",
+ "updatedAt": "2019-01-01T12:34:56.000Z"
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/bindings",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/bindings/mybinding",
+ "name": "mybinding"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "resourceName": "my-cosmosdb-1",
+ "resourceType": "Microsoft.DocumentDB",
+ "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DocumentDB/databaseAccounts/my-cosmosdb-1",
+ "bindingParameters": {
+ "databaseName": "db1",
+ "apiType": "SQL"
+ },
+ "generatedProperties": "spring.datasource.url=jdbc:mysql://localhost:3306/test\nspring.datasource.username=root\nspring.datasource.password=1****6",
+ "createdAt": "2019-01-01T12:34:56.000Z",
+ "updatedAt": "2019-01-01T12:34:56.000Z"
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/bindings",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/bindings/mybinding",
+ "name": "mybinding"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Certificates_CreateOrUpdate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Certificates_CreateOrUpdate.json
new file mode 100644
index 000000000000..ec952d2d82f0
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Certificates_CreateOrUpdate.json
@@ -0,0 +1,87 @@
+{
+ "parameters": {
+ "certificateResource": {
+ "properties": {
+ "vaultUri": "https://myvault.vault.azure.net",
+ "keyVaultCertName": "mycert",
+ "certVersion": "08a219d06d874795a96db47e06fbb01e"
+ }
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "certificateName": "mycertificate"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "thumbprint": "934367bf1c97033f877db0f15cb1b586957d3133",
+ "vaultUri": "https://myvault.vault.azure.net",
+ "keyVaultCertName": "mycert",
+ "certVersion": "08a219d06d874795a96db47e06fbb01e",
+ "issuer": "mydomain.com",
+ "issuedDate": "2019-02-20T07:40:42Z",
+ "expirationDate": "2019-02-21T07:40:42Z",
+ "activateDate": "2019-02-22T07:40:42Z",
+ "subjectName": "mysubjectname",
+ "dnsNames": [
+ "mydomain.com",
+ "mydomain.net",
+ "mydomain.io"
+ ]
+ },
+ "type": "Microsoft.AppPlatform/Spring/certificates",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/certificates/mycertificate",
+ "name": "mycertificate"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "thumbprint": "934367bf1c97033f877db0f15cb1b586957d3133",
+ "vaultUri": "https://myvault.vault.azure.net",
+ "keyVaultCertName": "mycert",
+ "certVersion": "08a219d06d874795a96db47e06fbb01e",
+ "issuer": "mydomain.com",
+ "issuedDate": "2019-02-20T07:40:42Z",
+ "expirationDate": "2019-02-21T07:40:42Z",
+ "activateDate": "2019-02-22T07:40:42Z",
+ "subjectName": "mysubjectname",
+ "dnsNames": [
+ "mydomain.com",
+ "mydomain.net",
+ "mydomain.io"
+ ]
+ },
+ "type": "Microsoft.AppPlatform/Spring/certificates",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/certificates/mycertificate",
+ "name": "mycertificate"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "thumbprint": "934367bf1c97033f877db0f15cb1b586957d3133",
+ "vaultUri": "https://myvault.vault.azure.net",
+ "keyVaultCertName": "mycert",
+ "certVersion": "08a219d06d874795a96db47e06fbb01e",
+ "issuer": "mydomain.com",
+ "issuedDate": "2019-02-20T07:40:42Z",
+ "expirationDate": "2019-02-21T07:40:42Z",
+ "activateDate": "2019-02-22T07:40:42Z",
+ "subjectName": "mysubjectname",
+ "dnsNames": [
+ "mydomain.com",
+ "mydomain.net",
+ "mydomain.io"
+ ]
+ },
+ "type": "Microsoft.AppPlatform/Spring/certificates",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/certificates/mycertificate",
+ "name": "mycertificate"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Certificates_Delete.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Certificates_Delete.json
new file mode 100644
index 000000000000..e74094f64531
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Certificates_Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "certificateName": "mycertificate"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Certificates_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Certificates_Get.json
new file mode 100644
index 000000000000..ce7f31491cad
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Certificates_Get.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "certificateName": "mycertificate"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "thumbprint": "934367bf1c97033f877db0f15cb1b586957d3133",
+ "vaultUri": "https://myvault.vault.azure.net",
+ "keyVaultCertName": "mycert",
+ "certVersion": "08a219d06d874795a96db47e06fbb01e",
+ "issuer": "mydomain.com",
+ "issuedDate": "2019-02-20T07:40:42Z",
+ "expirationDate": "2019-02-21T07:40:42Z",
+ "activateDate": "2019-02-22T07:40:42Z",
+ "subjectName": "mysubjectname",
+ "dnsNames": [
+ "mydomain.com",
+ "mydomain.net",
+ "mydomain.io"
+ ]
+ },
+ "type": "Microsoft.AppPlatform/Spring/certificates",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/certificates/mycertificate",
+ "name": "mycertificate"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Certificates_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Certificates_List.json
new file mode 100644
index 000000000000..35219afb6d4c
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Certificates_List.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myService"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "thumbprint": "934367bf1c97033f877db0f15cb1b586957d3133",
+ "vaultUri": "https://myvault.vault.azure.net",
+ "keyVaultCertName": "mycert",
+ "certVersion": "08a219d06d874795a96db47e06fbb01e",
+ "issuer": "mydomain.com",
+ "issuedDate": "2019-02-20T07:40:42Z",
+ "expirationDate": "2019-02-21T07:40:42Z",
+ "activateDate": "2019-02-22T07:40:42Z",
+ "subjectName": "mysubjectname",
+ "dnsNames": [
+ "mydomain.com",
+ "mydomain.net",
+ "mydomain.io"
+ ]
+ },
+ "type": "Microsoft.AppPlatform/Spring/certificates",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/certificates/mycertificate",
+ "name": "mycertificate"
+ }
+ ],
+ "nextLink": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/certificates?$page=2"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/ConfigServers_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/ConfigServers_Get.json
new file mode 100644
index 000000000000..b88fa1b13577
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/ConfigServers_Get.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "configServer": {
+ "gitProperty": {
+ "uri": "https://github.com/fake-user/fake-repository.git",
+ "label": "master",
+ "searchPaths": [
+ "/"
+ ]
+ }
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring/configServers",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/configServers/default",
+ "name": "default"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/ConfigServers_UpdatePatch.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/ConfigServers_UpdatePatch.json
new file mode 100644
index 000000000000..6e47a4170864
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/ConfigServers_UpdatePatch.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "configServerResource": {
+ "properties": {
+ "configServer": {
+ "gitProperty": {
+ "uri": "https://github.com/fake-user/fake-repository.git",
+ "label": "master",
+ "searchPaths": [
+ "/"
+ ]
+ }
+ }
+ }
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "provisioningState": "Updating",
+ "configServer": {
+ "gitProperty": {
+ "uri": "https://github.com/fake-user/fake-repository.git",
+ "label": "master",
+ "searchPaths": [
+ "/"
+ ]
+ }
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring/configServers",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/configServers/default",
+ "name": "default"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "configServer": {
+ "gitProperty": {
+ "uri": "https://github.com/fake-user/fake-repository.git",
+ "label": "master",
+ "searchPaths": [
+ "/"
+ ]
+ }
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring/configServers",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/configServers/default",
+ "name": "default"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/ConfigServers_UpdatePut.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/ConfigServers_UpdatePut.json
new file mode 100644
index 000000000000..6e47a4170864
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/ConfigServers_UpdatePut.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "configServerResource": {
+ "properties": {
+ "configServer": {
+ "gitProperty": {
+ "uri": "https://github.com/fake-user/fake-repository.git",
+ "label": "master",
+ "searchPaths": [
+ "/"
+ ]
+ }
+ }
+ }
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "provisioningState": "Updating",
+ "configServer": {
+ "gitProperty": {
+ "uri": "https://github.com/fake-user/fake-repository.git",
+ "label": "master",
+ "searchPaths": [
+ "/"
+ ]
+ }
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring/configServers",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/configServers/default",
+ "name": "default"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "configServer": {
+ "gitProperty": {
+ "uri": "https://github.com/fake-user/fake-repository.git",
+ "label": "master",
+ "searchPaths": [
+ "/"
+ ]
+ }
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring/configServers",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/configServers/default",
+ "name": "default"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_CreateOrUpdate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_CreateOrUpdate.json
new file mode 100644
index 000000000000..5857185150a6
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_CreateOrUpdate.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "domainResource": {
+ "properties": {
+ "thumbprint": "934367bf1c97033f877db0f15cb1b586957d3133",
+ "certName": "mycert"
+ }
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "domainName": "mydomain.com"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "thumbprint": "934367bf1c97033f877db0f15cb1b586957d3133",
+ "appName": "myapp",
+ "certName": "mycert"
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/domains",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/domains/mydomain.com",
+ "name": "mydomain.com"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "thumbprint": "934367bf1c97033f877db0f15cb1b586957d3133",
+ "appName": "myapp",
+ "certName": "mycert"
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/domains",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/domains/mydomain.com",
+ "name": "mydomain.com"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "thumbprint": "934367bf1c97033f877db0f15cb1b586957d3133",
+ "appName": "myapp",
+ "certName": "mycert"
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/domains",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/domains/mydomain.com",
+ "name": "mydomain.com"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_Delete.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_Delete.json
new file mode 100644
index 000000000000..673bdf1a9b61
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_Delete.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "domainName": "mydomain.com"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_Get.json
new file mode 100644
index 000000000000..3bb445de3742
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_Get.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "domainName": "mydomain.com"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "thumbprint": "934367bf1c97033f877db0f15cb1b586957d3133",
+ "appName": "myapp",
+ "certName": "mycert"
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/domains",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/domains/mydomain.com",
+ "name": "mydomain.com"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_List.json
new file mode 100644
index 000000000000..0bdbfc51f763
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_List.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "thumbprint": "934367bf1c97033f877db0f15cb1b586957d3133",
+ "appName": "myapp",
+ "certName": "mycert"
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/domains",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/domains/mydomain.com",
+ "name": "mydomain.com"
+ }
+ ],
+ "nextLink": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/domains?$page=2"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_Update.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_Update.json
new file mode 100644
index 000000000000..a2b61973f8a2
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/CustomDomains_Update.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "domainResource": {
+ "properties": {
+ "thumbprint": "934367bf1c97033f877db0f15cb1b586957d3133",
+ "certName": "mycert"
+ }
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "domainName": "mydomain.com"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "thumbprint": "934367bf1c97033f877db0f15cb1b586957d3133",
+ "appName": "myapp",
+ "certName": "mycert"
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/domains",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/domains/mydomain.com",
+ "name": "mydomain.com"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "thumbprint": "934367bf1c97033f877db0f15cb1b586957d3133",
+ "appName": "myapp",
+ "certName": "mycert"
+ },
+ "type": "Microsoft.AppPlatform/Spring/apps/domains",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/apps/myapp/domains/mydomain.com",
+ "name": "mydomain.com"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_CreateOrUpdate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_CreateOrUpdate.json
new file mode 100644
index 000000000000..786a5f55af53
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_CreateOrUpdate.json
@@ -0,0 +1,160 @@
+{
+ "parameters": {
+ "deploymentResource": {
+ "properties": {
+ "source": {
+ "type": "Source",
+ "relativePath": "resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc",
+ "version": "1.0",
+ "artifactSelector": "sub-module-1"
+ },
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "jvmOptions": "-Xms1G -Xmx3G",
+ "environmentVariables": {
+ "env": "test"
+ },
+ "runtimeVersion": "Java_8"
+ },
+ "instances": null
+ }
+ },
+ "sku": {
+ "name": "S0",
+ "tier": "Standard",
+ "capacity": 1
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "deploymentName": "mydeployment"
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "properties": {
+ "source": {
+ "type": "Source",
+ "relativePath": "resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc",
+ "version": "1.0",
+ "artifactSelector": "sub-module-1"
+ },
+ "appName": "myapp",
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "jvmOptions": "-Xms1G -Xmx3G",
+ "environmentVariables": {
+ "env": "test"
+ },
+ "runtimeVersion": "Java_8"
+ },
+ "provisioningState": "Creating",
+ "status": "Running",
+ "active": false,
+ "instances": [
+ {
+ "name": "instance1",
+ "status": "Running",
+ "discoveryStatus": "pending",
+ "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": "Source",
+ "relativePath": "resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc",
+ "version": "1.0",
+ "artifactSelector": "sub-module-1"
+ },
+ "appName": "myapp",
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "jvmOptions": "-Xms1G -Xmx3G",
+ "environmentVariables": {
+ "env": "test"
+ },
+ "runtimeVersion": "Java_8"
+ },
+ "provisioningState": "Succeeded",
+ "status": "Running",
+ "active": false,
+ "instances": [
+ {
+ "name": "instance1",
+ "status": "Running",
+ "discoveryStatus": "pending",
+ "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",
+ "relativePath": "resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc",
+ "version": "1.0",
+ "artifactSelector": "sub-module-1"
+ },
+ "appName": "myapp",
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "jvmOptions": "-Xms1G -Xmx3G",
+ "environmentVariables": {
+ "env": "test"
+ },
+ "runtimeVersion": "Java_8"
+ },
+ "provisioningState": "Updating",
+ "status": "Running",
+ "active": false,
+ "instances": [
+ {
+ "name": "instance1",
+ "status": "Running",
+ "discoveryStatus": "pending",
+ "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/stable/2020-07-01/examples/Deployments_Delete.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Delete.json
new file mode 100644
index 000000000000..8bec5172fcf5
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Delete.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "deploymentName": "mydeployment"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Get.json
new file mode 100644
index 000000000000..9a999a403ffc
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Get.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "deploymentName": "mydeployment"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "source": {
+ "type": "Source",
+ "relativePath": "resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc",
+ "version": "1.0",
+ "artifactSelector": "sub-module-1"
+ },
+ "appName": "myapp",
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "jvmOptions": "-Xms1G -Xmx3G",
+ "environmentVariables": {
+ "env": "test"
+ },
+ "runtimeVersion": "Java_8"
+ },
+ "provisioningState": "Succeeded",
+ "status": "Running",
+ "active": false,
+ "instances": [
+ {
+ "name": "instance1",
+ "status": "Running",
+ "discoveryStatus": "pending",
+ "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/stable/2020-07-01/examples/Deployments_GetLogFileUrl.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_GetLogFileUrl.json
new file mode 100644
index 000000000000..13a30ad15e17
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_GetLogFileUrl.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "deploymentName": "mydeployment"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "url": "https://spring.blob.core.windows.net/logs/110ec0c337154d45b1f01daf2196c0bf/b58b0cb4ecdea3c65311b4ca8833fe47b6ae0a7500f87a8eb31e8379d3fe48f1-2019081312-42b7b90c-f108-4c09-b33d-1ea134f57f23?sv=2018-03-28&sr=b&sig=example-signature&se=2019-08-14T09%3A43%3A52Z&sp=r"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_List.json
new file mode 100644
index 000000000000..35ff6dcf1ee7
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_List.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "source": {
+ "type": "Source",
+ "relativePath": "resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc",
+ "version": "1.0",
+ "artifactSelector": "sub-module-1"
+ },
+ "appName": "myapp",
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "jvmOptions": "-Xms1G -Xmx3G",
+ "environmentVariables": {
+ "env": "test"
+ },
+ "runtimeVersion": "Java_8"
+ },
+ "provisioningState": "Succeeded",
+ "status": "Running",
+ "active": false,
+ "instances": [
+ {
+ "name": "instance1",
+ "status": "Running",
+ "discoveryStatus": "pending",
+ "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/stable/2020-07-01/examples/Deployments_ListForCluster.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_ListForCluster.json
new file mode 100644
index 000000000000..35ff6dcf1ee7
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_ListForCluster.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "source": {
+ "type": "Source",
+ "relativePath": "resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc",
+ "version": "1.0",
+ "artifactSelector": "sub-module-1"
+ },
+ "appName": "myapp",
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "jvmOptions": "-Xms1G -Xmx3G",
+ "environmentVariables": {
+ "env": "test"
+ },
+ "runtimeVersion": "Java_8"
+ },
+ "provisioningState": "Succeeded",
+ "status": "Running",
+ "active": false,
+ "instances": [
+ {
+ "name": "instance1",
+ "status": "Running",
+ "discoveryStatus": "pending",
+ "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/stable/2020-07-01/examples/Deployments_Restart.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Restart.json
new file mode 100644
index 000000000000..eec2736b8e66
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Restart.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "deploymentName": "mydeployment"
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.AppPlatform/...pathToOperationResult..."
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Start.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Start.json
new file mode 100644
index 000000000000..eec2736b8e66
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Start.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "deploymentName": "mydeployment"
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.AppPlatform/...pathToOperationResult..."
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Stop.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Stop.json
new file mode 100644
index 000000000000..eec2736b8e66
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Stop.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "deploymentName": "mydeployment"
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.AppPlatform/...pathToOperationResult..."
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Update.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Update.json
new file mode 100644
index 000000000000..18c9f75950da
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Deployments_Update.json
@@ -0,0 +1,105 @@
+{
+ "parameters": {
+ "deploymentResource": {
+ "properties": {
+ "source": {
+ "type": "Source",
+ "relativePath": "resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc",
+ "version": "1.0",
+ "artifactSelector": "sub-module-1"
+ },
+ "instances": null
+ }
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice",
+ "appName": "myapp",
+ "deploymentName": "mydeployment"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "source": {
+ "type": "Source",
+ "relativePath": "resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc",
+ "version": "1.0",
+ "artifactSelector": "sub-module-1"
+ },
+ "appName": "myapp",
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "jvmOptions": "-Xms1G -Xmx3G",
+ "environmentVariables": {
+ "env": "test"
+ },
+ "runtimeVersion": "Java_8"
+ },
+ "provisioningState": "Succeeded",
+ "status": "Running",
+ "active": false,
+ "instances": [
+ {
+ "name": "instance1",
+ "status": "Running",
+ "discoveryStatus": "pending",
+ "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",
+ "relativePath": "resources/a172cedcae47474b615c54d510a5d84a8dea3032e958587430b413538be3f333-2019082605-e3095339-1723-44b7-8b5e-31b1003978bc",
+ "version": "1.0",
+ "artifactSelector": "sub-module-1"
+ },
+ "appName": "myapp",
+ "deploymentSettings": {
+ "cpu": 1,
+ "memoryInGB": 3,
+ "jvmOptions": "-Xms1G -Xmx3G",
+ "environmentVariables": {
+ "env": "test"
+ },
+ "runtimeVersion": "Java_8"
+ },
+ "provisioningState": "Updating",
+ "status": "Running",
+ "active": false,
+ "instances": [
+ {
+ "name": "instance1",
+ "status": "Running",
+ "discoveryStatus": "pending",
+ "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/stable/2020-07-01/examples/MonitoringSettings_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/MonitoringSettings_Get.json
new file mode 100644
index 000000000000..12cec1860a38
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/MonitoringSettings_Get.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "traceEnabled": true,
+ "appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000"
+ },
+ "type": "Microsoft.AppPlatform/Spring/monitoringSettings",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/monitoringSettings/default",
+ "name": "default"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/MonitoringSettings_UpdatePatch.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/MonitoringSettings_UpdatePatch.json
new file mode 100644
index 000000000000..5f431e420527
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/MonitoringSettings_UpdatePatch.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "monitoringSettingResource": {
+ "properties": {
+ "traceEnabled": true,
+ "appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000"
+ }
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "provisioningState": "Updating",
+ "traceEnabled": true,
+ "appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000"
+ },
+ "type": "Microsoft.AppPlatform/Spring/monitoringSettings",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/monitoringSettings/default",
+ "name": "default"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "traceEnabled": true,
+ "appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000"
+ },
+ "type": "Microsoft.AppPlatform/Spring/monitoringSettings",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/monitoringSettings/default",
+ "name": "default"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/MonitoringSettings_UpdatePut.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/MonitoringSettings_UpdatePut.json
new file mode 100644
index 000000000000..5f431e420527
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/MonitoringSettings_UpdatePut.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "monitoringSettingResource": {
+ "properties": {
+ "traceEnabled": true,
+ "appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000"
+ }
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "provisioningState": "Updating",
+ "traceEnabled": true,
+ "appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000"
+ },
+ "type": "Microsoft.AppPlatform/Spring/monitoringSettings",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/monitoringSettings/default",
+ "name": "default"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "traceEnabled": true,
+ "appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000"
+ },
+ "type": "Microsoft.AppPlatform/Spring/monitoringSettings",
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice/monitoringSettings/default",
+ "name": "default"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Operations_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Operations_List.json
new file mode 100644
index 000000000000..0789ea9adfe3
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Operations_List.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01"
+ },
+ "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/stable/2020-07-01/examples/RuntimeVersions_ListRuntimeVersions.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/RuntimeVersions_ListRuntimeVersions.json
new file mode 100644
index 000000000000..1023f932df8c
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/RuntimeVersions_ListRuntimeVersions.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "value": "Java_8",
+ "platform": "Java",
+ "version": "8"
+ },
+ {
+ "value": "Java_11",
+ "platform": "Java",
+ "version": "11"
+ },
+ {
+ "value": "NetCore_31",
+ "platform": ".NET Core",
+ "version": "3.1"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_CheckNameAvailability.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_CheckNameAvailability.json
new file mode 100644
index 000000000000..a82bdc11a5a7
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_CheckNameAvailability.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "location": "eastus",
+ "availabilityParameters": {
+ "type": "Microsoft.AppPlatform/Spring",
+ "name": "myservice"
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": false,
+ "reason": "AlreadyExists",
+ "message": "The name is already used."
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_CreateOrUpdate.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_CreateOrUpdate.json
new file mode 100644
index 000000000000..6837e4ff3174
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_CreateOrUpdate.json
@@ -0,0 +1,102 @@
+{
+ "parameters": {
+ "resource": {
+ "properties": {},
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ },
+ "location": "eastus",
+ "tags": {
+ "key1": "value1"
+ }
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "properties": {
+ "provisioningState": "Creating",
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring",
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ },
+ "location": "eastus",
+ "tags": {
+ "key1": "value1"
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice",
+ "name": "myservice"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring",
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ },
+ "location": "eastus",
+ "tags": {
+ "key1": "value1"
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice",
+ "name": "myservice"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "provisioningState": "Updating",
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring",
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ },
+ "location": "eastus",
+ "tags": {
+ "key1": "value1"
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice",
+ "name": "myservice"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_CreateOrUpdate_VNetInjection.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_CreateOrUpdate_VNetInjection.json
new file mode 100644
index 000000000000..b5e932ff99b3
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_CreateOrUpdate_VNetInjection.json
@@ -0,0 +1,122 @@
+{
+ "parameters": {
+ "resource": {
+ "properties": {
+ "networkProfile": {
+ "serviceRuntimeSubnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/serviceRuntime",
+ "appSubnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/apps",
+ "serviceCidr": "10.8.0.0/16,10.244.0.0/16,10.245.0.1/16",
+ "serviceRuntimeNetworkResourceGroup": "my-service-runtime-network-rg",
+ "appNetworkResourceGroup": "my-app-network-rg"
+ }
+ },
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ },
+ "location": "eastus",
+ "tags": {
+ "key1": "value1"
+ }
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "properties": {
+ "provisioningState": "Creating",
+ "networkProfile": {
+ "serviceRuntimeSubnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/serviceRuntime",
+ "appSubnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/apps",
+ "serviceCidr": "10.8.0.0/16,10.244.0.0/16,10.245.0.1/16",
+ "serviceRuntimeNetworkResourceGroup": "my-service-runtime-network-rg",
+ "appNetworkResourceGroup": "my-app-network-rg",
+ "outboundIPs": {
+ "publicIPs": [
+ "40.64.67.13"
+ ]
+ }
+ },
+ "serviceId": "12345678abcd1234abcd12345678abcd"
+ },
+ "type": "Microsoft.AppPlatform/Spring",
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ },
+ "location": "eastus",
+ "tags": {
+ "key1": "value1"
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice",
+ "name": "myservice"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "networkProfile": {
+ "serviceRuntimeSubnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/serviceRuntime",
+ "appSubnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/apps",
+ "serviceCidr": "10.8.0.0/16,10.244.0.0/16,10.245.0.1/16",
+ "serviceRuntimeNetworkResourceGroup": "my-service-runtime-network-rg",
+ "appNetworkResourceGroup": "my-app-network-rg",
+ "outboundIPs": {
+ "publicIPs": [
+ "40.64.67.13"
+ ]
+ }
+ },
+ "serviceId": "12345678abcd1234abcd12345678abcd"
+ },
+ "type": "Microsoft.AppPlatform/Spring",
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ },
+ "location": "eastus",
+ "tags": {
+ "key1": "value1"
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice",
+ "name": "myservice"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "provisioningState": "Updating",
+ "networkProfile": {
+ "serviceRuntimeSubnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/serviceRuntime",
+ "appSubnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/apps",
+ "serviceCidr": "10.8.0.0/16,10.244.0.0/16,10.245.0.1/16",
+ "serviceRuntimeNetworkResourceGroup": "my-service-runtime-network-rg",
+ "appNetworkResourceGroup": "my-app-network-rg",
+ "outboundIPs": {
+ "publicIPs": [
+ "40.64.67.13"
+ ]
+ }
+ },
+ "serviceId": "12345678abcd1234abcd12345678abcd"
+ },
+ "type": "Microsoft.AppPlatform/Spring",
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ },
+ "location": "eastus",
+ "tags": {
+ "key1": "value1"
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice",
+ "name": "myservice"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_Delete.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_Delete.json
new file mode 100644
index 000000000000..e1bb8539d801
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_Delete.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.AppPlatform/...pathToOperationResult..."
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_DisableTestEndpoint.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_DisableTestEndpoint.json
new file mode 100644
index 000000000000..47002475fca4
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_DisableTestEndpoint.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_EnableTestEndpoint.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_EnableTestEndpoint.json
new file mode 100644
index 000000000000..9836b1d2ae6f
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_EnableTestEndpoint.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "primaryKey": "key1",
+ "secondaryKey": "key2",
+ "primaryTestEndpoint": "key1@TestEndpoint",
+ "secondaryTestEndpoint": "key2@TestEndpoint",
+ "enabled": true
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_Get.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_Get.json
new file mode 100644
index 000000000000..0af48fc29a7b
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_Get.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring",
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ },
+ "location": "eastus",
+ "tags": {
+ "key1": "value1"
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice",
+ "name": "myservice"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_List.json
new file mode 100644
index 000000000000..0e6a9a8d02ed
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_List.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring",
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ },
+ "location": "eastus",
+ "tags": {
+ "key1": "value1"
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice",
+ "name": "myservice"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_ListBySubscription.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_ListBySubscription.json
new file mode 100644
index 000000000000..c8bfadb985b7
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_ListBySubscription.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring",
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ },
+ "location": "eastus",
+ "tags": {
+ "key1": "value1"
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice",
+ "name": "myservice"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_ListTestKeys.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_ListTestKeys.json
new file mode 100644
index 000000000000..9836b1d2ae6f
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_ListTestKeys.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "primaryKey": "key1",
+ "secondaryKey": "key2",
+ "primaryTestEndpoint": "key1@TestEndpoint",
+ "secondaryTestEndpoint": "key2@TestEndpoint",
+ "enabled": true
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_RegenerateTestKey.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_RegenerateTestKey.json
new file mode 100644
index 000000000000..36ce27ed48c3
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_RegenerateTestKey.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "regenerateTestKeyRequest": {
+ "keyType": "Primary"
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "primaryKey": "key1",
+ "secondaryKey": "key2",
+ "primaryTestEndpoint": "key1@TestEndpoint",
+ "secondaryTestEndpoint": "key2@TestEndpoint",
+ "enabled": true
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_Update.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_Update.json
new file mode 100644
index 000000000000..0404e9a95e93
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Services_Update.json
@@ -0,0 +1,75 @@
+{
+ "parameters": {
+ "resource": {
+ "properties": {},
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ },
+ "location": "eastus",
+ "tags": {
+ "key1": "value1"
+ }
+ },
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "serviceName": "myservice"
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "provisioningState": "Updating",
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring",
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ },
+ "location": "eastus",
+ "tags": {
+ "key1": "value1"
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice",
+ "name": "myservice"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "serviceId": "12345678abcd1234abcd12345678abcd",
+ "networkProfile": {
+ "outboundIPs": {
+ "publicIPs": [
+ "20.39.3.173",
+ "40.64.67.13"
+ ]
+ }
+ }
+ },
+ "type": "Microsoft.AppPlatform/Spring",
+ "sku": {
+ "name": "S0",
+ "tier": "Standard"
+ },
+ "location": "eastus",
+ "tags": {
+ "key1": "value1"
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.AppPlatform/Spring/myservice",
+ "name": "myservice"
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Skus_List.json b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Skus_List.json
new file mode 100644
index 000000000000..e5f7d5765289
--- /dev/null
+++ b/specification/appplatform/resource-manager/Microsoft.AppPlatform/stable/2020-07-01/examples/Skus_List.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "resourceType": "Spring",
+ "name": "B0",
+ "tier": "Basic",
+ "capacity": {
+ "minimum": 1,
+ "maximum": 20,
+ "default": 1,
+ "scaleType": "Automatic"
+ },
+ "locations": [
+ "eastus"
+ ],
+ "locationInfo": [
+ {
+ "location": "eastus",
+ "zones": [],
+ "zoneDetails": []
+ }
+ ],
+ "restrictions": []
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/appplatform/resource-manager/readme.azureresourceschema.md b/specification/appplatform/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..7c633bc07810
--- /dev/null
+++ b/specification/appplatform/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,36 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-appplatform-2020-07-01
+ - tag: schema-appplatform-2019-05-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### 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.go.md b/specification/appplatform/resource-manager/readme.go.md
index 2406d387ba5f..3c5820e1c257 100644
--- a/specification/appplatform/resource-manager/readme.go.md
+++ b/specification/appplatform/resource-manager/readme.go.md
@@ -13,9 +13,19 @@ go:
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-2020-07
- tag: package-2019-05-01-preview
```
+### Tag: package-2020-07 and go
+
+These settings apply only when `--tag=package-2020-07 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-07' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-07-01/$(namespace)
+```
+
### Tag: package-2019-05-01-preview and go
These settings apply only when `--tag=package-2019-05-01-preview --go` is specified on the command line.
diff --git a/specification/appplatform/resource-manager/readme.java.md b/specification/appplatform/resource-manager/readme.java.md
index 789e47493698..1f6d7300efe1 100644
--- a/specification/appplatform/resource-manager/readme.java.md
+++ b/specification/appplatform/resource-manager/readme.java.md
@@ -16,9 +16,23 @@ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-appplatform
``` yaml $(java) && $(multiapi)
batch:
+ - tag: package-2020-07
- tag: package-2019-05-01-preview
```
+### Tag: package-2020-07 and java
+
+These settings apply only when `--tag=package-2020-07 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2020-07' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.appplatform.v2020_07_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/appplatform/mgmt-v2020_07_01
+regenerate-manager: true
+generate-interface: true
+```
+
### Tag: package-2019-05-01-preview and java
These settings apply only when `--tag=package-2019-05-01-preview --java` is specified on the command line.
@@ -30,4 +44,4 @@ java:
output-folder: $(azure-libraries-for-java-folder)/sdk/appplatform/mgmt-v2019_05_01_preview
regenerate-manager: true
generate-interface: true
-```
\ No newline at end of file
+```
diff --git a/specification/appplatform/resource-manager/readme.md b/specification/appplatform/resource-manager/readme.md
index 2a1d933b2910..37a91547fa09 100644
--- a/specification/appplatform/resource-manager/readme.md
+++ b/specification/appplatform/resource-manager/readme.md
@@ -4,10 +4,10 @@
This is the AutoRest configuration file for AppPlatform.
-
-
---
+
## Getting Started
+
To build the SDK for AppPlatform, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run:
> `autorest`
@@ -15,18 +15,18 @@ To build the SDK for AppPlatform, simply [Install AutoRest](https://aka.ms/autor
To see additional help and options, run:
> `autorest --help`
+
---
## Configuration
-
-
### Basic Information
+
These are the global settings for the AppPlatform API.
``` yaml
openapi-type: arm
-tag: package-2019-05-01-preview
+tag: package-2020-07
```
### Suppression
@@ -41,8 +41,23 @@ directive:
from: appplatform.json
where: $.definitions.Dimension.properties.toBeExportedForShoebox
reason: The boolean properties 'toBeExportedForShoebox' is defined by Geneva metrics
+ - suppress: R3021
+ from: appplatform.json
+ reason: The resource type name 'Spring' is a trademark so cannot be changed to be camel-case
+ #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-2020-07
+
+These settings apply only when `--tag=package-2020-07` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-07'
+input-file:
+ - Microsoft.AppPlatform/stable/2020-07-01/appplatform.json
+```
### Tag: package-2019-05-01-preview
These settings apply only when `--tag=package-2019-05-01-preview` is specified on the command line.
@@ -53,8 +68,8 @@ input-file:
```
---
-# Code Generation
+# Code Generation
## Swagger to SDK
@@ -64,6 +79,8 @@ This is not used by Autorest itself.
``` yaml $(swagger-to-sdk)
swagger-to-sdk:
- repo: azure-sdk-for-python
+ after_scripts:
+ - python ./scripts/multiapi_init_gen.py azure-mgmt-appplatform
- repo: azure-sdk-for-java
- repo: azure-sdk-for-net
- repo: azure-sdk-for-node
@@ -72,9 +89,11 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
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
See configuration in [readme.go.md](./readme.go.md)
@@ -98,27 +117,7 @@ csharp:
clear-output-folder: true
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.AppPlatform/preview/2019-05-01-preview/appplatform.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/appplatform/resource-manager/readme.python.md b/specification/appplatform/resource-manager/readme.python.md
index 5e8d38718850..ddb776efd495 100644
--- a/specification/appplatform/resource-manager/readme.python.md
+++ b/specification/appplatform/resource-manager/readme.python.md
@@ -10,18 +10,40 @@ python:
azure-arm: true
license-header: MICROSOFT_MIT_NO_VERSION
payload-flattening-threshold: 2
- namespace: azure.mgmt.appplatform
package-name: azure-mgmt-appplatform
- package-version: 0.2.0
clear-output-folder: true
+ no-namespace-folders: true
+```
+
+### Python multi-api
+
+Generate all API versions currently shipped for this package
+
+```yaml $(python) && $(multiapi)
+batch:
+ - tag: package-2020-07
+ - tag: package-2019-05-01-preview
```
-``` yaml $(python) && $(python-mode) == 'update'
+
+### Tag: package-2020-07 and python
+
+These settings apply only when `--tag=package-2020-07 --python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-07' && $(python)
python:
- no-namespace-folders: true
- output-folder: $(python-sdks-folder)/appplatform/azure-mgmt-appplatform/azure/mgmt/appplatform
+ namespace: azure.mgmt.appplatform.v2020_07_01
+ output-folder: $(python-sdks-folder)/appplatform/azure-mgmt-appplatform/azure/mgmt/appplatform/v2020_07_01
```
-``` yaml $(python) && $(python-mode) == 'create'
+
+### Tag: package-2019-05-01-preview and python
+
+These settings apply only when `--tag=package-2019-05-01-preview --python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2019-05-01-preview' && $(python)
python:
- basic-setup-py: true
- output-folder: $(python-sdks-folder)/appplatform/azure-mgmt-appplatform
+ namespace: azure.mgmt.appplatform.v2019_05_01_preview
+ output-folder: $(python-sdks-folder)/appplatform/azure-mgmt-appplatform/azure/mgmt/appplatform/v2019_05_01_preview
```
+
diff --git a/specification/appplatform/resource-manager/readme.ruby.md b/specification/appplatform/resource-manager/readme.ruby.md
index 827034b2477a..7a1b560cd736 100644
--- a/specification/appplatform/resource-manager/readme.ruby.md
+++ b/specification/appplatform/resource-manager/readme.ruby.md
@@ -12,9 +12,20 @@ azure-arm: true
``` yaml $(ruby) && $(multiapi)
batch:
+ - tag: package-2020-07
- tag: package-2019-05-01-preview
```
+### Tag: package-2020-07 and ruby
+
+These settings apply only when `--tag=package-2020-07 --ruby` is specified on the command line.
+Please also specify `--ruby-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-07' && $(ruby)
+namespace: "Azure::AppPlatform::Mgmt::V2020_07_01"
+output-folder: $(ruby-sdks-folder)/management/azure_mgmt_appplatform/lib
+```
+
### Tag: package-2019-05-01-preview and ruby
These settings apply only when `--tag=package-2019-05-01-preview --ruby` is specified on the command line.
diff --git a/specification/attestation/data-plane/readme.go.md b/specification/attestation/data-plane/readme.go.md
new file mode 100644
index 000000000000..a99623b96edf
--- /dev/null
+++ b/specification/attestation/data-plane/readme.go.md
@@ -0,0 +1,26 @@
+## Go
+
+These settings apply only when `--go` is specified on the command line.
+
+``` yaml $(go)
+go:
+ license-header: MICROSOFT_APACHE_NO_VERSION
+ namespace: attestation
+ clear-output-folder: true
+```
+
+### Go multi-api
+
+``` yaml $(go) && $(multiapi)
+batch:
+ - tag: package-2018-09-preview
+```
+
+### Tag: package-2018-09-preview and go
+
+These settings apply only when `--tag=package-2018-09-preview --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2018-09-preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/2018-09-01-preview/$(namespace)
+```
diff --git a/specification/attestation/data-plane/readme.md b/specification/attestation/data-plane/readme.md
index f382f8bb7b01..c0dfa3499891 100644
--- a/specification/attestation/data-plane/readme.md
+++ b/specification/attestation/data-plane/readme.md
@@ -51,6 +51,7 @@ This is not used by Autorest itself.
swagger-to-sdk:
- repo: azure-sdk-for-net
- repo: azure-sdk-for-python
+ - repo: azure-sdk-for-go
```
## Python
@@ -72,7 +73,9 @@ csharp:
clear-output-folder: true
```
+## Go
+See configuration in [readme.go.md](./readme.go.md)
## Multi-API/Profile support for AutoRest v3 generators
diff --git a/specification/attestation/resource-manager/readme.azureresourceschema.md b/specification/attestation/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..990f22190468
--- /dev/null
+++ b/specification/attestation/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-attestation-2018-09-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### 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/preview/2018-09-01-preview/attestation.json
+
+```
diff --git a/specification/attestation/resource-manager/readme.md b/specification/attestation/resource-manager/readme.md
index 44902dfd9d1a..68adc3fb05b6 100644
--- a/specification/attestation/resource-manager/readme.md
+++ b/specification/attestation/resource-manager/readme.md
@@ -51,6 +51,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-net
- repo: azure-sdk-for-python
- repo: azure-sdk-for-go
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js attestation/resource-manager
```
## Python
@@ -80,27 +83,7 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.trenton.md](./readme.trenton.md)
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Attestation/preview/2018-09-01-preview/attestation.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+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 c6733a4380c0..478c98bc5686 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
@@ -539,7 +539,7 @@
},
"conditionVersion": {
"type": "string",
- "description": "Version of the condition. Currently accepted values are '1.0' or '2.0'"
+ "description": "Version of the condition. Currently accepted value is '2.0'"
}
},
"description": "Role assignment properties with scope."
@@ -625,11 +625,11 @@
},
"condition": {
"type": "string",
- "description": "The conditions on the role assignment"
+ "description": "The conditions on the role assignment. This limits the resources it can be assigned to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName] StringEqualsIgnoreCase 'foo_storage_container'"
},
"conditionVersion": {
"type": "string",
- "description": "Version of the condition"
+ "description": "Version of the condition. Currently accepted value is '2.0'"
}
},
"required": [
diff --git a/specification/authorization/resource-manager/readme.azureresourceschema.md b/specification/authorization/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..de63c8f3bf21
--- /dev/null
+++ b/specification/authorization/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,102 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-authorization-2020-04-01-preview
+ - tag: schema-authorization-2018-09-01-preview
+ - tag: schema-authorization-2018-07-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-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-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-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-RoleAssignmentsCalls.json
+ - Microsoft.Authorization/preview/2018-01-01-preview/authorization-RoleDefinitionsCalls.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-RoleDefinitionsCalls.json
+ - Microsoft.Authorization/stable/2015-07-01/authorization-ProviderOperationsCalls.json
+ - Microsoft.Authorization/stable/2015-07-01/authorization-ElevateAccessCalls.json
+ - Microsoft.Authorization/stable/2015-07-01/authorization-RoleAssignmentsCalls.json
+ - 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.md b/specification/authorization/resource-manager/readme.md
index 575b2c656dde..056f804e8de3 100644
--- a/specification/authorization/resource-manager/readme.md
+++ b/specification/authorization/resource-manager/readme.md
@@ -26,7 +26,7 @@ These are the global settings for the Authorization API.
``` yaml
openapi-type: arm
-tag: package-2020-04-preview
+tag: package-2020-04-01-preview-only
```
## Suppression
@@ -69,17 +69,12 @@ directive:
reason: for this case the result of the proposed change would resemble a boolean anyways
```
-### Tag: package-2020-04-preview
+### Tag: package-2020-04-01-preview-only
These settings apply only when `--tag=package-2020-04-preview` is specified on the command line.
-``` yaml $(tag) == 'package-2020-04-preview'
+``` yaml $(tag) == 'package-2020-04-01-preview-only'
input-file:
-- Microsoft.Authorization/preview/2015-06-01/authorization-ClassicAdminCalls.json
-- Microsoft.Authorization/stable/2015-07-01/authorization-ElevateAccessCalls.json
-- Microsoft.Authorization/preview/2018-01-01-preview/authorization-ProviderOperationsCalls.json
-- Microsoft.Authorization/preview/2018-01-01-preview/authorization-RoleDefinitionsCalls.json
-- Microsoft.Authorization/preview/2018-07-01-preview/authorization-DenyAssignmentGetCalls.json
- Microsoft.Authorization/preview/2020-04-01-preview/authorization-RoleAssignmentsCalls.json
```
@@ -232,6 +227,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
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
@@ -242,38 +240,7 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
+## AzureResourceSchema
-This block is updated by an automatic script. Edits may be lost!
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Authorization/preview/2015-06-01/authorization-ClassicAdminCalls.json
- - $(this-folder)/Microsoft.Authorization/stable/2015-07-01/authorization-ElevateAccessCalls.json
- - $(this-folder)/Microsoft.Authorization/preview/2018-01-01-preview/authorization-ProviderOperationsCalls.json
- - $(this-folder)/Microsoft.Authorization/preview/2018-01-01-preview/authorization-RoleDefinitionsCalls.json
- - $(this-folder)/Microsoft.Authorization/preview/2018-07-01-preview/authorization-DenyAssignmentGetCalls.json
- - $(this-folder)/Microsoft.Authorization/preview/2020-04-01-preview/authorization-RoleAssignmentsCalls.json
- - $(this-folder)/Microsoft.Authorization/stable/2015-07-01/authorization-RoleDefinitionsCalls.json
- - $(this-folder)/Microsoft.Authorization/stable/2015-07-01/authorization-ProviderOperationsCalls.json
- - $(this-folder)/Microsoft.Authorization/stable/2015-07-01/authorization-RoleAssignmentsCalls.json
- - $(this-folder)/Microsoft.Authorization/stable/2015-07-01/authorization-ClassicAdminCalls.json
- - $(this-folder)/Microsoft.Authorization/preview/2017-10-01-preview/authorization-RoleAssignmentsCalls.json
- - $(this-folder)/Microsoft.Authorization/preview/2018-01-01-preview/authorization-RoleAssignmentsCalls.json
- - $(this-folder)/Microsoft.Authorization/preview/2018-09-01-preview/authorization-RoleAssignmentsCalls.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
diff --git a/specification/authorization/resource-manager/readme.python.md b/specification/authorization/resource-manager/readme.python.md
index 70e14ea1a327..56c486beb56b 100644
--- a/specification/authorization/resource-manager/readme.python.md
+++ b/specification/authorization/resource-manager/readme.python.md
@@ -21,6 +21,7 @@ Generate all API versions currently shipped for this package
```yaml $(python) && $(multiapi)
batch:
+ - tag: package-2020-04-01-preview-only
- tag: package-2018-09-01-preview-only
- tag: package-2018-07-01-preview-only
- tag: package-2018-01-01-preview-only
@@ -28,6 +29,16 @@ batch:
- tag: package-2015-06-01-preview
```
+### Tag: package-2020-04-01-preview-only and python
+
+These settings apply only when `--tag=package-2020-04-01-preview-only --python` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-04-01-preview-only' && $(python)
+python:
+ namespace: azure.mgmt.authorization.v2020_04_01_preview
+ output-folder: $(python-sdks-folder)/authorization/azure-mgmt-authorization/azure/mgmt/authorization/v2020_04_01_preview
+```
+
### Tag: package-2018-09-01-preview-only and python
These settings apply only when `--tag=package-2018-09-01-preview-only --python` is specified on the command line.
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/automanage.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/automanage.json
new file mode 100644
index 000000000000..3f181fed7963
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/automanage.json
@@ -0,0 +1,1371 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-06-30-preview",
+ "title": "Automanage"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "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.Automanage/accounts/{accountName}": {
+ "put": {
+ "tags": [
+ "Accounts"
+ ],
+ "operationId": "Accounts_CreateOrUpdate",
+ "description": "Creates an Automanage Account",
+ "x-ms-examples": {
+ "Create or update Automanage account": {
+ "$ref": "./examples/createOrUpdateAccount.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "accountName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the Automanage account."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Account"
+ },
+ "description": "Parameters supplied to create or update Automanage account."
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Created. The Automanage account was created successfully.",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ },
+ "200": {
+ "description": "OK. The Automanage account was updated successfully.",
+ "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": false,
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "get": {
+ "tags": [
+ "Accounts"
+ ],
+ "operationId": "Accounts_Get",
+ "description": "Get information about a Automanage account",
+ "x-ms-examples": {
+ "Get an Automanage account": {
+ "$ref": "./examples/getAccount.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "accountName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Automanage account name."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The Automanage account was returned successfully.",
+ "schema": {
+ "$ref": "#/definitions/Account"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "delete": {
+ "tags": [
+ "Accounts"
+ ],
+ "operationId": "Accounts_Delete",
+ "description": "Delete a Automanage account",
+ "x-ms-examples": {
+ "Delete an Automanage account": {
+ "$ref": "./examples/deleteAccount.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "accountName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the Automanage account"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "204": {
+ "description": "OK"
+ },
+ "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": false,
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "patch": {
+ "tags": [
+ "Accounts"
+ ],
+ "operationId": "Accounts_Update",
+ "description": "Updates an Automanage Account",
+ "x-ms-examples": {
+ "Update Automanage account": {
+ "$ref": "./examples/updateAccount.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "accountName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the Automanage account."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AccountUpdate"
+ },
+ "description": "Parameters supplied to update Automanage account."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The Automanage account was updated successfully.",
+ "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": false,
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automanage/accounts": {
+ "get": {
+ "tags": [
+ "Accounts"
+ ],
+ "operationId": "Accounts_ListByResourceGroup",
+ "description": "Retrieve a list of Automanage accounts within a given resource group",
+ "x-ms-examples": {
+ "List Automanage accounts by resource group": {
+ "$ref": "./examples/listAccountsByResourceGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. List of Automanage accounts.",
+ "schema": {
+ "$ref": "#/definitions/AccountList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Automanage/accounts": {
+ "get": {
+ "tags": [
+ "Accounts"
+ ],
+ "operationId": "Accounts_ListBySubscription",
+ "description": "Retrieve a list of Automanage accounts within a subscription",
+ "x-ms-examples": {
+ "List Automanage accounts by subscription": {
+ "$ref": "./examples/listAccountsBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. List of Automanage accounts.",
+ "schema": {
+ "$ref": "#/definitions/AccountList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/providers/Microsoft.Automanage/configurationProfileAssignments/{configurationProfileAssignmentName}": {
+ "put": {
+ "tags": [
+ "ConfigurationProfileAssignments"
+ ],
+ "operationId": "ConfigurationProfileAssignments_CreateOrUpdate",
+ "description": "Creates an association between a VM and Automanage configuration profile",
+ "x-ms-examples": {
+ "Create or update configuration profile assignment": {
+ "$ref": "./examples/createOrUpdateConfigurationProfileAssignment.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "configurationProfileAssignmentName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the configuration profile assignment. Only default is supported."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConfigurationProfileAssignment"
+ },
+ "description": "Parameters supplied to the create or update configuration profile assignment."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/VmNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Created. The Automanage configuration profile assignment for the VM was created successfully.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationProfileAssignment"
+ }
+ },
+ "200": {
+ "description": "OK. The configuration profile assignment for the VM was updated successfully.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationProfileAssignment"
+ }
+ },
+ "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,
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "get": {
+ "tags": [
+ "ConfigurationProfileAssignments"
+ ],
+ "operationId": "ConfigurationProfileAssignments_Get",
+ "description": "Get information about a configuration profile assignment",
+ "x-ms-examples": {
+ "Get a configuration profile assignment": {
+ "$ref": "./examples/getConfigurationProfileAssignment.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "configurationProfileAssignmentName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The configuration profile assignment name."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/VmNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The configuration profile assignment was returned successfully.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationProfileAssignment"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "delete": {
+ "tags": [
+ "ConfigurationProfileAssignments"
+ ],
+ "operationId": "ConfigurationProfileAssignments_Delete",
+ "description": "Delete a configuration profile assignment",
+ "x-ms-examples": {
+ "Delete an configuration profile assignment": {
+ "$ref": "./examples/deleteConfigurationProfileAssignment.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "configurationProfileAssignmentName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the configuration profile assignment"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/VmNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "204": {
+ "description": "OK"
+ },
+ "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": false,
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automanage/configurationProfileAssignments": {
+ "get": {
+ "tags": [
+ "ConfigurationProfileAssignments"
+ ],
+ "operationId": "ConfigurationProfileAssignments_List",
+ "description": "Get list of configuration profile assignments",
+ "x-ms-examples": {
+ "Get a configuration profile assignment": {
+ "$ref": "./examples/listConfigurationProfileAssignments.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": "OK. The list of configuration profile assignments were returned successfully.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationProfileAssignmentList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Automanage/configurationProfileAssignments": {
+ "get": {
+ "tags": [
+ "ConfigurationProfileAssignments"
+ ],
+ "operationId": "ConfigurationProfileAssignments_ListBySubscription",
+ "description": "Get list of configuration profile assignments under a given subscription",
+ "x-ms-examples": {
+ "List configuration profile assignments": {
+ "$ref": "./examples/listConfigurationProfileAssignmentsBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The list of configuration profile assignments were returned successfully.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationProfileAssignmentList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automanage/configurationProfilePreferences/{configurationProfilePreferenceName}": {
+ "put": {
+ "tags": [
+ "ConfigurationProfilePreferences"
+ ],
+ "operationId": "ConfigurationProfilePreferences_CreateOrUpdate",
+ "description": "Creates a configuration profile preference",
+ "x-ms-examples": {
+ "Create or update configuration profile preference": {
+ "$ref": "./examples/createOrUpdateConfigurationProfilePreference.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "configurationProfilePreferenceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the configuration profile preference."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConfigurationProfilePreference"
+ },
+ "description": "Parameters supplied to create or update configuration profile preference."
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Created. The configuration profile preference was created successfully.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationProfilePreference"
+ }
+ },
+ "200": {
+ "description": "OK. The configuration profile preference was updated successfully.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationProfilePreference"
+ }
+ },
+ "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": false,
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "get": {
+ "tags": [
+ "ConfigurationProfilePreferences"
+ ],
+ "operationId": "ConfigurationProfilePreferences_Get",
+ "description": "Get information about a configuration profile preference",
+ "x-ms-examples": {
+ "Get a configuration profile": {
+ "$ref": "./examples/getConfigurationProfilePreference.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "configurationProfilePreferenceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The configuration profile preference name."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The configuration profile preference was returned successfully.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationProfilePreference"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "delete": {
+ "tags": [
+ "ConfigurationProfilePreferences"
+ ],
+ "operationId": "ConfigurationProfilePreferences_Delete",
+ "description": "Delete a configuration profile preference",
+ "x-ms-examples": {
+ "Delete a configuration profile preference": {
+ "$ref": "./examples/deleteConfigurationProfilePreference.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "configurationProfilePreferenceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the configuration profile preference"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "204": {
+ "description": "OK"
+ },
+ "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": false,
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "patch": {
+ "tags": [
+ "ConfigurationProfilePreferences"
+ ],
+ "operationId": "ConfigurationProfilePreferences_Update",
+ "description": "Updates a configuration profile preference",
+ "x-ms-examples": {
+ "Create or update configuration profile preference": {
+ "$ref": "./examples/updateConfigurationProfilePreference.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "configurationProfilePreferenceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the configuration profile preference."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConfigurationProfilePreferenceUpdate"
+ },
+ "description": "Parameters supplied to create or update configuration profile preference."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The configuration profile preference was updated successfully.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationProfilePreference"
+ }
+ },
+ "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": false,
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automanage/configurationProfilePreferences": {
+ "get": {
+ "tags": [
+ "ConfigurationProfilePreferences"
+ ],
+ "operationId": "ConfigurationProfilePreferences_ListByResourceGroup",
+ "description": "Retrieve a list of configuration profile preferences within a given resource group",
+ "x-ms-examples": {
+ "List configuration profile preferences by resource group": {
+ "$ref": "./examples/listConfigurationProfilePreferencesByResourceGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. List of configuration profile preferences.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationProfilePreferenceList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Automanage/configurationProfilePreferences": {
+ "get": {
+ "tags": [
+ "ConfigurationProfilePreferences"
+ ],
+ "operationId": "ConfigurationProfilePreferences_ListBySubscription",
+ "description": "Retrieve a list of configuration profile preferences within a subscription",
+ "x-ms-examples": {
+ "List configuration profile preferences by subscription": {
+ "$ref": "./examples/listConfigurationProfilePreferencesBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. List of configuration profile preferences.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationProfilePreferenceList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/providers/Microsoft.Automanage/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Lists all of the available Automanage REST API operations.",
+ "x-ms-examples": {
+ "Lists all of the available Automanage REST API operations": {
+ "$ref": "./examples/listOperations.json"
+ }
+ },
+ "operationId": "Operations_List",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/OperationList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ }
+ },
+ "definitions": {
+ "Account": {
+ "properties": {
+ "identity": {
+ "$ref": "#/definitions/AccountIdentity",
+ "description": "The identity of the Automanage account."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "description": "Definition of the Automanage account."
+ },
+ "AccountUpdate": {
+ "properties": {
+ "identity": {
+ "$ref": "#/definitions/AccountIdentity",
+ "description": "The identity of the Automanage account."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Definition of the Automanage account."
+ },
+ "AccountIdentity": {
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of Automanage account identity."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant id associated with the Automanage account."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of identity used for the Automanage account. Currently, the only supported type is 'SystemAssigned', which implicitly creates an identity.",
+ "enum": [
+ "SystemAssigned",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceIdentityType",
+ "modelAsString": false
+ }
+ }
+ },
+ "description": "Identity for the Automanage account."
+ },
+ "AccountList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Account"
+ },
+ "description": "Result of the list Account operation."
+ }
+ },
+ "description": "The response of the list Account operation."
+ },
+ "ConfigurationProfileAssignmentList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ConfigurationProfileAssignment"
+ },
+ "description": "Result of the list configuration profile assignment operation."
+ }
+ },
+ "description": "The response of the list configuration profile assignment operation."
+ },
+ "ConfigurationProfileAssignment": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": false,
+ "$ref": "#/definitions/ConfigurationProfileAssignmentProperties",
+ "description": "Properties of the configuration profile assignment."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Configuration profile assignment is an association between a VM and automanage profile configuration."
+ },
+ "ConfigurationProfileAssignmentProperties": {
+ "properties": {
+ "configurationProfile": {
+ "type": "string",
+ "description": "A value indicating configuration profile.",
+ "x-ms-enum": {
+ "name": "configurationProfile",
+ "modelAsString": true
+ },
+ "enum": [
+ "Azure virtual machine best practices – Dev/Test",
+ "Azure virtual machine best practices – Production"
+ ]
+ },
+ "targetId": {
+ "type": "string",
+ "description": "The target VM resource URI"
+ },
+ "accountId": {
+ "type": "string",
+ "description": "The Automanage account ARM Resource URI"
+ },
+ "configurationProfilePreferenceId": {
+ "type": "string",
+ "x-nullable": true,
+ "description": "The configuration profile custom preferences ARM resource URI"
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The state of onboarding, which only appears in the response.",
+ "x-ms-enum": {
+ "name": "provisioningState",
+ "modelAsString": true
+ },
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Created"
+ ]
+ },
+ "compliance": {
+ "$ref": "#/definitions/ConfigurationProfileAssignmentCompliance",
+ "description": "The configuration setting for the configuration profile."
+ }
+ },
+ "description": "Automanage configuration profile assignment properties."
+ },
+ "ConfigurationProfileAssignmentCompliance": {
+ "properties": {
+ "updateStatus": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The state of compliance, which only appears in the response.",
+ "x-nullable": true,
+ "x-ms-enum": {
+ "name": "updateStatus",
+ "modelAsString": true
+ },
+ "enum": [
+ "Succeeded",
+ "Failed",
+ "Created"
+ ]
+ }
+ },
+ "description": "The compliance status for the configuration profile assignment."
+ },
+ "ConfigurationProfilePreference": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": false,
+ "$ref": "#/definitions/ConfigurationProfilePreferenceProperties",
+ "description": "Properties of the configuration profile preference."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "description": "Definition of the configuration profile preference."
+ },
+ "ConfigurationProfilePreferenceUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": false,
+ "$ref": "#/definitions/ConfigurationProfilePreferenceProperties",
+ "description": "Properties of the configuration profile preference."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Definition of the configuration profile preference."
+ },
+ "ConfigurationProfilePreferenceProperties": {
+ "properties": {
+ "vmBackup": {
+ "$ref": "#/definitions/ConfigurationProfilePreferenceVmBackup",
+ "description": "The custom preferences for Azure VM Backup."
+ },
+ "antiMalware": {
+ "$ref": "#/definitions/ConfigurationProfilePreferenceAntiMalware",
+ "description": "The custom preferences for Azure Antimalware."
+ }
+ },
+ "description": "Automanage configuration profile preference properties."
+ },
+ "ConfigurationProfilePreferenceVmBackup": {
+ "properties": {
+ "timeZone": {
+ "type": "string",
+ "description": "TimeZone optional input as string. For example: Pacific Standard Time",
+ "x-nullable": true
+ },
+ "instantRpRetentionRangeInDays": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Instant RP retention policy range in days"
+ },
+ "retentionPolicy": {
+ "type": "string",
+ "description": "Retention policy with the details on backup copy retention ranges.",
+ "x-nullable": true
+ },
+ "schedulePolicy": {
+ "type": "string",
+ "description": "Backup schedule specified as part of backup policy.",
+ "x-nullable": true
+ }
+ },
+ "description": "Automanage configuration profile VM Backup preferences."
+ },
+ "ConfigurationProfilePreferenceAntiMalware": {
+ "properties": {
+ "enableRealTimeProtection": {
+ "type": "string",
+ "description": "Enables or disables Real Time Protection",
+ "x-ms-enum": {
+ "name": "enableRealTimeProtection",
+ "modelAsString": true
+ },
+ "enum": [
+ "True",
+ "False"
+ ],
+ "x-nullable": true
+ },
+ "exclusions": {
+ "type": "object",
+ "description": "Extensions, Paths and Processes that must be excluded from scan",
+ "x-nullable": true
+ },
+ "runScheduledScan": {
+ "type": "string",
+ "description": "Enables or disables a periodic scan for antimalware",
+ "x-ms-enum": {
+ "name": "runScheduledScan",
+ "modelAsString": true
+ },
+ "enum": [
+ "True",
+ "False"
+ ],
+ "x-nullable": true
+ },
+ "scanType": {
+ "type": "string",
+ "description": "Type of scheduled scan",
+ "x-ms-enum": {
+ "name": "scanType",
+ "modelAsString": true
+ },
+ "enum": [
+ "Quick",
+ "Full"
+ ],
+ "x-nullable": true
+ },
+ "scanDay": {
+ "type": "string",
+ "description": "Schedule scan settings day",
+ "x-nullable": true
+ },
+ "scanTimeInMinutes": {
+ "type": "string",
+ "description": "Schedule scan settings time",
+ "x-nullable": true
+ }
+ },
+ "description": "Automanage configuration profile Antimalware preferences."
+ },
+ "ConfigurationProfilePreferenceList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ConfigurationProfilePreference"
+ },
+ "description": "Result of the list ConfigurationProfilePreference operation."
+ }
+ },
+ "description": "The response of the list ConfigurationProfilePreference operation."
+ },
+ "Operation": {
+ "description": "Automanage REST API operation",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: For ex. providers/Microsoft.Automanage/configurationProfileAssignments/write or read",
+ "type": "string"
+ },
+ "isDataAction": {
+ "description": "Indicates whether the operation is a data action",
+ "type": "string"
+ },
+ "display": {
+ "properties": {
+ "provider": {
+ "description": "Service provider: Microsoft.Automanage",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource on which the operation is performed: For ex. ",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Operation type: Read, write, delete, etc.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description about operation.",
+ "type": "string"
+ }
+ },
+ "description": "Provider, Resource, Operation and description values."
+ },
+ "properties": {
+ "properties": {
+ "statusCode": {
+ "description": "Service provider: Microsoft.Automanage",
+ "type": "string"
+ }
+ },
+ "x-ms-client-flatten": true,
+ "description": "Provider, Resource, Operation and description values."
+ }
+ }
+ },
+ "OperationList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of Automanage operations supported by the Automanage resource provider."
+ }
+ },
+ "description": "The response model for the list of Automanage operations"
+ },
+ "UpdateResource": {
+ "description": "Represents an update resource",
+ "type": "object",
+ "properties": {
+ "tags": {
+ "description": "The tags of the resource.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "VmNameParameter": {
+ "name": "vmName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the virtual machine.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/createOrUpdateAccount.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/createOrUpdateAccount.json
new file mode 100644
index 000000000000..5924745ee5a0
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/createOrUpdateAccount.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "resourceGroup",
+ "api-version": "2020-06-30-preview",
+ "accountName": "account",
+ "parameters": {
+ "location": "East US",
+ "tags": {
+ "Organization": "Administration"
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {},
+ "body": {
+ "name": "account",
+ "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Automanage/accounts/account",
+ "type": "Microsoft.Automanage/accounts",
+ "location": "East US",
+ "tags": {
+ "Organization": "Administration"
+ },
+ "identity": {
+ "principalId": "principalId",
+ "tenantId": "tenantId",
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "200": {
+ "headers": {},
+ "body": {
+ "name": "account",
+ "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Automanage/accounts/account",
+ "type": "Microsoft.Automanage/accounts",
+ "location": "East US",
+ "tags": {
+ "Organization": "Administration"
+ },
+ "identity": {
+ "principalId": "principalId",
+ "tenantId": "tenantId",
+ "type": "SystemAssigned"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/createOrUpdateConfigurationProfileAssignment.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/createOrUpdateConfigurationProfileAssignment.json
new file mode 100644
index 000000000000..dd5bc5c6af8e
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/createOrUpdateConfigurationProfileAssignment.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "vmName": "myVMName",
+ "configurationProfileAssignmentName": "default",
+ "api-version": "2020-06-30-preview",
+ "parameters": {
+ "properties": {
+ "configurationProfile": "Azure virtual machine best practices – Production",
+ "accountId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Automanage/accounts/AutomanageAccount",
+ "configurationProfilePreferenceId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfilePreferences/defaultProfilePreference"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm/providers/Microsoft.Automanage/AutomanageAssignments/default",
+ "name": "default",
+ "properties": {
+ "targetId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines",
+ "configurationProfile": "Azure virtual machine best practices – Production",
+ "accountId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Automanage/AutomanageAccounts/AutomanageAccount",
+ "configurationProfilePreferenceId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfilePreferences/defaultProfilePreference",
+ "compliance": {
+ "updateStatus": "Created"
+ },
+ "provisioningState": "Created"
+ }
+ }
+ },
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm/providers/Microsoft.Automanage/AutomanageAssignments/default",
+ "name": "default",
+ "properties": {
+ "targetId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines",
+ "configurationProfile": "Azure virtual machine best practices – Production",
+ "accountId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Automanage/AutomanageAccounts/AutomanageAccount",
+ "configurationProfilePreferenceId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfilePreferences/defaultProfilePreference",
+ "compliance": {
+ "updateStatus": "Succeeded"
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/createOrUpdateConfigurationProfilePreference.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/createOrUpdateConfigurationProfilePreference.json
new file mode 100644
index 000000000000..845e5c65ab72
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/createOrUpdateConfigurationProfilePreference.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "configurationProfilePreferenceName": "defaultProfilePreference",
+ "api-version": "2020-06-30-preview",
+ "parameters": {
+ "location": "East US",
+ "tags": {
+ "Organization": "Administration"
+ },
+ "properties": {
+ "vmBackup": {
+ "timeZone": "Pacific Standard Time"
+ },
+ "antiMalware": {
+ "enableRealTimeProtection": "True"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfilePreferences/defaultProfilePreference",
+ "name": "defaultProfilePreference",
+ "type": "Microsoft.Automanage/configurationProfilePreferences",
+ "location": "East US",
+ "tags": {
+ "Organization": "Administration"
+ },
+ "properties": {
+ "vmBackup": {
+ "timeZone": "Pacific Standard Time"
+ },
+ "antiMalware": {
+ "enableRealTimeProtection": "True"
+ }
+ }
+ }
+ },
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfilePreferences/defaultProfilePreference",
+ "name": "defaultProfilePreference",
+ "type": "Microsoft.Automanage/configurationProfilePreferences",
+ "location": "East US",
+ "tags": {
+ "Organization": "Administration"
+ },
+ "properties": {
+ "vmBackup": {
+ "timeZone": "Pacific Standard Time"
+ },
+ "antiMalware": {
+ "enableRealTimeProtection": "True"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/deleteAccount.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/deleteAccount.json
new file mode 100644
index 000000000000..61e21fb2d14f
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/deleteAccount.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg",
+ "accountName": "automanageAccount",
+ "api-version": "2020-06-30-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/deleteConfigurationProfileAssignment.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/deleteConfigurationProfileAssignment.json
new file mode 100644
index 000000000000..68b206134c71
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/deleteConfigurationProfileAssignment.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "vmName": "myVMName",
+ "configurationProfileAssignmentName": "default",
+ "api-version": "2020-06-30-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/deleteConfigurationProfilePreference.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/deleteConfigurationProfilePreference.json
new file mode 100644
index 000000000000..7dd4fa94ccd8
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/deleteConfigurationProfilePreference.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg",
+ "configurationProfilePreferenceName": "defaultProfilePreference",
+ "api-version": "2020-06-30-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/getAccount.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/getAccount.json
new file mode 100644
index 000000000000..161bf418c5b1
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/getAccount.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg",
+ "accountName": "automanageAccount",
+ "api-version": "2020-06-30-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "name": "automanageAccount",
+ "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Automanage/accounts/automanageAccount",
+ "type": "Microsoft.Automanage/accounts",
+ "location": "East US",
+ "identity": {
+ "principalId": "principalId",
+ "tenantId": "tenantId",
+ "type": "SystemAssigned"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/getConfigurationProfileAssignment.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/getConfigurationProfileAssignment.json
new file mode 100644
index 000000000000..a526f23ecbac
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/getConfigurationProfileAssignment.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "vmName": "myVMName",
+ "configurationProfileAssignmentName": "default",
+ "api-version": "2020-06-30-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm/providers/Microsoft.Automanage/configurationProfileAssignments/default",
+ "name": "default",
+ "type": "Microsoft.Automanage/ConfigurationProfileAssignments",
+ "properties": {
+ "targetId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines",
+ "configurationProfile": "Azure virtual machine best practices – Production",
+ "accountId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Automanage/accounts/automanageAccount",
+ "configurationProfilePreferenceId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfilePreferences/defaultProfilePreference",
+ "compliance": {
+ "updateStatus": "Succeeded"
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/getConfigurationProfilePreference.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/getConfigurationProfilePreference.json
new file mode 100644
index 000000000000..0bc637534924
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/getConfigurationProfilePreference.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "configurationProfilePreferenceName": "defaultProfilePreference",
+ "api-version": "2020-06-30-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfilePreferences/defaultProfilePreference",
+ "name": "defaultProfile",
+ "type": "Microsoft.Automanage/ConfigurationProfilePreferences",
+ "location": "East US",
+ "tags": {
+ "Organization": "Administration"
+ },
+ "properties": {
+ "vmBackup": {
+ "timeZone": "Pacific Standard Time"
+ },
+ "antiMalware": {
+ "enableRealTimeProtection": "True"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listAccountsByResourceGroup.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listAccountsByResourceGroup.json
new file mode 100644
index 000000000000..a566a1b6b69b
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listAccountsByResourceGroup.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "rg",
+ "api-version": "2020-06-30-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "name": "automanageAccount1",
+ "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Automanage/accounts/automanageAccount1",
+ "type": "Microsoft.Automanage/accounts",
+ "location": "East US",
+ "properties": {
+ "identity": {
+ "principalId": "principalId",
+ "tenantId": "tenantId",
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ {
+ "name": "automanageAccount2",
+ "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Automanage/accounts/automanageAccount2",
+ "type": "Microsoft.Automanage/accounts",
+ "location": "East US",
+ "properties": {
+ "identity": {
+ "principalId": "principalId",
+ "tenantId": "tenantId",
+ "type": "SystemAssigned"
+ }
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listAccountsBySubscription.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listAccountsBySubscription.json
new file mode 100644
index 000000000000..80109d475b76
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listAccountsBySubscription.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "api-version": "2020-06-30-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "name": "automanageAccount1",
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Automanage/accounts/automanageAccount1",
+ "type": "Microsoft.Automanage/accounts",
+ "location": "East US",
+ "identity": {
+ "principalId": "principalId",
+ "tenantId": "tenantId",
+ "type": "SystemAssigned"
+ }
+ },
+ {
+ "name": "automanageAccount2",
+ "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Automanage/accounts/automanageAccount2",
+ "type": "Microsoft.Automanage/accounts",
+ "location": "East US",
+ "identity": {
+ "principalId": "principalId",
+ "tenantId": "tenantId",
+ "type": "SystemAssigned"
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listConfigurationProfileAssignments.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listConfigurationProfileAssignments.json
new file mode 100644
index 000000000000..6761b5da71d9
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listConfigurationProfileAssignments.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "vmName": "myVMName",
+ "api-version": "2020-06-30-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "id": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm/providers/Microsoft.Automanage/configurationProfileAssignments/default",
+ "name": "default",
+ "type": "Microsoft.Automanage/ConfigurationProfileAssignments",
+ "properties": {
+ "targetId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm",
+ "configurationProfile": "Azure virtual machine best practices – Production",
+ "accountId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Automanage/accounts/automanageAccount",
+ "configurationProfilePreferenceId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfilePreferences/defaultProfilePreference",
+ "compliance": {
+ "updateStatus": "Succeeded"
+ },
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm2/providers/Microsoft.Automanage/configurationProfileAssignments/default",
+ "name": "default",
+ "type": "Microsoft.Automanage/ConfigurationProfileAssignments",
+ "properties": {
+ "targetId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm2",
+ "configurationProfile": "Azure virtual machine best practices – Production",
+ "accountId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Automanage/accounts/automanageAccount",
+ "configurationProfilePreferenceId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfilePreferences/defaultProfilePreference",
+ "compliance": {
+ "updateStatus": "Succeeded"
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listConfigurationProfileAssignmentsBySubscription.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listConfigurationProfileAssignmentsBySubscription.json
new file mode 100644
index 000000000000..8a696d3e500c
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listConfigurationProfileAssignmentsBySubscription.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "mySubscriptionId",
+ "vmName": "myVMName",
+ "api-version": "2020-06-30-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ [
+ {
+ "id": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm/providers/Microsoft.Automanage/configurationProfileAssignments/default",
+ "name": "default",
+ "properties": {
+ "targetId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm",
+ "configurationProfile": "Azure virtual machine best practices – Production",
+ "accountId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Automanage/accounts/automanageAccount",
+ "configurationProfilePreferenceId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfilePreferences/defaultProfilePreference",
+ "compliance": {
+ "updateStatus": "Succeeded"
+ },
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm2/providers/Microsoft.Automanage/configurationProfileAssignments/default",
+ "name": "default",
+ "properties": {
+ "targetId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myvm2",
+ "configurationProfile": "Azure virtual machine best practices – Production",
+ "accountId": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Automanage/accounts/automanageAccount",
+ "configurationProfilePreferenceId": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfilePreferences/defaultProfilePreference",
+ "compliance": {
+ "updateStatus": "Succeeded"
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ ]
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listConfigurationProfilePreferencesByResourceGroup.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listConfigurationProfilePreferencesByResourceGroup.json
new file mode 100644
index 000000000000..2907215f8756
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listConfigurationProfilePreferencesByResourceGroup.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "api-version": "2020-06-30-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "id": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfilePreferences/defaultProfilePreference1",
+ "name": "defaultProfilePreference1",
+ "type": "Microsoft.Automanage/ConfigurationProfilePreferences",
+ "location": "East US",
+ "tags": {
+ "Organization": "Administration"
+ },
+ "properties": {
+ "vmBackup": {
+ "timeZone": "Pacific Standard Time"
+ },
+ "antiMalware": {
+ "enableRealTimeProtection": "True"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfilePreferences/defaultProfilePreference2",
+ "name": "defaultProfilePreference2",
+ "type": "Microsoft.Automanage/ConfigurationProfilePreferences",
+ "location": "East US",
+ "tags": {
+ "Organization": "Administration"
+ },
+ "properties": {
+ "vmBackup": {
+ "timeZone": "Pacific Standard Time"
+ },
+ "antiMalware": {
+ "enableRealTimeProtection": "True"
+ }
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listConfigurationProfilePreferencesBySubscription.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listConfigurationProfilePreferencesBySubscription.json
new file mode 100644
index 000000000000..2d9d70165376
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listConfigurationProfilePreferencesBySubscription.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "subscriptionId": "mySubscriptionId",
+ "api-version": "2020-06-30-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": [
+ {
+ "id": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfiles/defaultProfile1",
+ "name": "defaultProfile1",
+ "type": "Microsoft.Automanage/configurationProfiles",
+ "location": "East US",
+ "tags": {
+ "Organization": "Administration"
+ },
+ "properties": {
+ "configurationProfileType": "Azure Best Practices - Prod",
+ "preferences": {
+ "vmBackup": {
+ "timeZone": "Pacific Standard Time"
+ },
+ "antiMalware": {
+ "enableRealTimeProtection": "True"
+ }
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfiles/defaultProfile2",
+ "name": "defaultProfile2",
+ "type": "Microsoft.Automanage/configurationProfiles",
+ "location": "East US",
+ "tags": {
+ "Organization": "Administration"
+ },
+ "properties": {
+ "configurationProfileType": "Azure Best Practices - TestDev",
+ "preferences": {
+ "vmBackup": {
+ "timeZone": "Pacific Standard Time"
+ },
+ "antiMalware": {
+ "enableRealTimeProtection": "False"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listOperations.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listOperations.json
new file mode 100644
index 000000000000..8dc4d3b633ca
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/listOperations.json
@@ -0,0 +1,80 @@
+{
+ "parameters": {
+ "api-version": "2020-06-30-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.Automanage/configurationProfileAssignments/write",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Microsoft Automanage",
+ "resource": "Microsoft.Automanage/configurationProfileAssignments",
+ "operation": "Microsoft.Automanage/configurationProfileAssignments/write",
+ "description": "Create new configuration profile assignment."
+ },
+ "properties": null
+ },
+ {
+ "name": "Microsoft.Automanage/configurationProfileAssignments/read",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Microsoft Automanage",
+ "resource": "Microsoft.Automanage/configurationProfileAssignments",
+ "operation": "Microsoft.Automanage/configurationProfileAssignments/read",
+ "description": "Get configuration profile assignment."
+ },
+ "properties": null
+ },
+ {
+ "name": "Microsoft.Automanage/accounts/write",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Microsoft Automanage",
+ "resource": "Microsoft.Automanage/accounts",
+ "operation": "Microsoft.Automanage/accounts/write",
+ "description": "Create new Automanage Account."
+ },
+ "properties": null
+ },
+ {
+ "name": "Microsoft.Automanage/accounts/read",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Microsoft Automanage",
+ "resource": "Microsoft.Automanage/accounts",
+ "operation": "Microsoft.Automanage/accounts/read",
+ "description": "Get Automanage Account."
+ },
+ "properties": null
+ },
+ {
+ "name": "Microsoft.Automanage/configurationProfilePreferences/write",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Microsoft Automanage",
+ "resource": "Microsoft.Automanage/configurationProfilePreferences",
+ "operation": "Microsoft.Automanage/configurationProfilePreferences/write",
+ "description": "Create new Automanage Configuration Profile Preference."
+ },
+ "properties": null
+ },
+ {
+ "name": "Microsoft.Automanage/configurationProfilePreferences/read",
+ "isDataAction": "false",
+ "display": {
+ "provider": "Microsoft Automanage",
+ "resource": "Microsoft.Automanage/configurationProfilePreferences",
+ "operation": "Microsoft.Automanage/configurationProfilePreferences/read",
+ "description": "Get Automanage Configuration Profile Preference."
+ },
+ "properties": null
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/updateAccount.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/updateAccount.json
new file mode 100644
index 000000000000..74a8f9fcc48a
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/updateAccount.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "resourceGroup",
+ "api-version": "2020-06-30-preview",
+ "accountName": "account",
+ "parameters": {
+ "tags": {
+ "Organization": "Administration"
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "name": "account",
+ "id": "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Automanage/accounts/account",
+ "type": "Microsoft.Automanage/accounts",
+ "location": "East US",
+ "tags": {
+ "Organization": "Administration"
+ },
+ "identity": {
+ "principalId": "principalId",
+ "tenantId": "tenantId",
+ "type": "SystemAssigned"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/updateConfigurationProfilePreference.json b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/updateConfigurationProfilePreference.json
new file mode 100644
index 000000000000..cfd4c01306c7
--- /dev/null
+++ b/specification/automanage/resource-manager/Microsoft.Automanage/preview/2020-06-30-preview/examples/updateConfigurationProfilePreference.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "configurationProfilePreferenceName": "defaultProfilePreference",
+ "api-version": "2020-06-30-preview",
+ "parameters": {
+ "tags": {
+ "Organization": "Administration"
+ },
+ "properties": {
+ "vmBackup": {
+ "timeZone": "Pacific Standard Time"
+ },
+ "antiMalware": {
+ "enableRealTimeProtection": "True"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/subscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.Automanage/configurationProfilePreferences/defaultProfilePreference",
+ "name": "defaultProfilePreference",
+ "type": "Microsoft.Automanage/configurationProfilePreferences",
+ "location": "East US",
+ "tags": {
+ "Organization": "Administration"
+ },
+ "properties": {
+ "vmBackup": {
+ "timeZone": "Pacific Standard Time"
+ },
+ "antiMalware": {
+ "enableRealTimeProtection": "True"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/automanage/resource-manager/readme.az.md b/specification/automanage/resource-manager/readme.az.md
new file mode 100644
index 000000000000..6b796af97d11
--- /dev/null
+++ b/specification/automanage/resource-manager/readme.az.md
@@ -0,0 +1,12 @@
+## AZ
+
+These settings apply only when `--az` is specified on the command line.
+
+``` yaml $(az)
+az:
+ extensions: automanage
+ namespace: azure.mgmt.automanage
+ package-name: azure-mgmt-automanage
+az-output-folder: $(azure-cli-extension-folder)/src/automanage
+python-sdk-output-folder: "$(az-output-folder)/azext_automanage/vendored_sdks/automanage"
+```
\ No newline at end of file
diff --git a/specification/automanage/resource-manager/readme.azureresourceschema.md b/specification/automanage/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..4a51ecd85b66
--- /dev/null
+++ b/specification/automanage/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-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.cli.md b/specification/automanage/resource-manager/readme.cli.md
new file mode 100644
index 000000000000..e17b8f756ff1
--- /dev/null
+++ b/specification/automanage/resource-manager/readme.cli.md
@@ -0,0 +1,24 @@
+## CLI
+
+These settings don't need to apply `--cli` on the command line.
+
+``` yaml
+cli:
+ cli-name: automanage
+ package-name: azure-mgmt-automanage
+ namespace: azure.mgmt.automanage
+ test-scenario:
+ - name: Create or update an Automanage account
+ - name: Create or update configuration profile assignment
+ - name: Create or update configuration profile preference
+ - name: Delete an Automanage account
+ - name: Delete a configuration profile assignment
+ - name: Delete a configuration profile preference
+ - name: Get an Automanage account
+ - name: Get a configuration profile assignment
+ - name: Get a configuration profile preference
+ - name: Lists Automanage account
+ - name: Lists configuration profile assignment
+ - name: Lists configuration profile preference
+ - name: Operations
+```
\ No newline at end of file
diff --git a/specification/automanage/resource-manager/readme.go.md b/specification/automanage/resource-manager/readme.go.md
new file mode 100644
index 000000000000..16cdc4f4805e
--- /dev/null
+++ b/specification/automanage/resource-manager/readme.go.md
@@ -0,0 +1,26 @@
+## Go
+
+These settings apply only when `--go` is specified on the command line.
+
+``` yaml $(go)
+go:
+ license-header: MICROSOFT_APACHE_NO_VERSION
+ namespace: automanage
+ clear-output-folder: true
+```
+
+### Go multi-api
+
+``` yaml $(go) && $(multiapi)
+batch:
+ - tag: package-2020-06-30-preview
+```
+
+### Tag: package-2020-06-30-preview and go
+
+These settings apply only when `--tag=package-2020-06-30-preview --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-06-30-preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-06-30-preview/$(namespace)
+```
\ No newline at end of file
diff --git a/specification/automanage/resource-manager/readme.md b/specification/automanage/resource-manager/readme.md
new file mode 100644
index 000000000000..a99434672cf5
--- /dev/null
+++ b/specification/automanage/resource-manager/readme.md
@@ -0,0 +1,86 @@
+# Automanage
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for Automanage.
+
+---
+
+## Getting Started
+
+To build the SDK for Automanage, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run:
+
+> `autorest`
+
+To see additional help and options, run:
+
+> `autorest --help`
+
+---
+
+### Basic Information
+
+These are the global settings for the Automanage API.
+
+``` yaml
+title: AutomanageClient
+description: Automanage Client
+openapi-type: arm
+tag: package-2020-06-30-preview
+```
+
+### Tag: package-2020-06-30-preview
+
+These settings apply only when `--tag=package-2020-06-30-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-06-30-preview'
+input-file:
+- Microsoft.Automanage/preview/2020-06-30-preview/automanage.json
+```
+
+## Suppression
+
+``` yaml
+directive:
+ - suppress: UniqueResourcePaths
+ from: automanage.json
+ where: $.paths
+ reason: 'Microsoft.Automanage is a proxy resource provider under Microsoft. Please refer PR https://github.com/Azure/azure-rest-api-specs-pr/pull/1283'
+```
+
+---
+
+# Code Generation
+
+## Swagger to SDK
+
+This section describes what SDK should be generated by the automatic system.
+This is not used by Autorest itself.
+
+``` yaml $(swagger-to-sdk)
+swagger-to-sdk:
+ - repo: azure-sdk-for-net
+ - repo: azure-sdk-for-python
+ - repo: azure-sdk-for-python-track2
+ - repo: azure-sdk-for-go
+ - repo: azure-sdk-for-js
+ - repo: azure-sdk-for-node
+ - repo: azure-sdk-for-ruby
+ after_scripts:
+ - bundle install && rake arm:regen_all_profiles['azure_mgmt_automanage']
+```
+
+## C#
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+``` yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ namespace: Microsoft.Azure.Management.Automanage
+ output-folder: $(csharp-sdks-folder)/automanage/Microsoft.Azure.Management.Automanage/src/Generated
+ clear-output-folder: true
+```
+
diff --git a/specification/automanage/resource-manager/readme.python.md b/specification/automanage/resource-manager/readme.python.md
new file mode 100644
index 000000000000..caf9a094f45f
--- /dev/null
+++ b/specification/automanage/resource-manager/readme.python.md
@@ -0,0 +1,40 @@
+## Python
+
+These settings apply only when `--python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
+
+``` yaml $(python) && !$(track2)
+python-mode: create
+python:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 2
+ namespace: azure.mgmt.automanage
+ package-name: azure-mgmt-automanage
+ package-version: 0.1.0
+ clear-output-folder: true
+```
+
+```yaml $(python) && $(track2)
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+package-name: azure-mgmt-automanage
+package-version: 0.1.0-preview
+clear-output-folder: true
+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
+```
+
+``` 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/automanage/resource-manager/readme.typescript.md b/specification/automanage/resource-manager/readme.typescript.md
new file mode 100644
index 000000000000..d856dfb1f954
--- /dev/null
+++ b/specification/automanage/resource-manager/readme.typescript.md
@@ -0,0 +1,13 @@
+## TypeScript
+
+These settings apply only when `--typescript` is specified on the command line.
+Please also specify `--typescript-sdks-folder=`.
+
+``` yaml $(typescript)
+typescript:
+ azure-arm: true
+ package-name: "@azure/arm-automanage"
+ output-folder: "$(typescript-sdks-folder)/sdk/automanage/arm-automanage"
+ clear-output-folder: true
+ generate-metadata: true
+```
diff --git a/specification/automation/resource-manager/readme.azureresourceschema.md b/specification/automation/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..b70f177b4995
--- /dev/null
+++ b/specification/automation/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,101 @@
+## 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-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
+
+```
+
+### 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/webhook.json
+ - Microsoft.Automation/stable/2015-10-31/watcher.json
+
+```
diff --git a/specification/automation/resource-manager/readme.md b/specification/automation/resource-manager/readme.md
index e3416d6946aa..673bab83d496 100644
--- a/specification/automation/resource-manager/readme.md
+++ b/specification/automation/resource-manager/readme.md
@@ -238,6 +238,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
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
```
@@ -299,60 +302,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/account.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/certificate.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/connection.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/connectionType.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/credential.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/dscCompilationJob.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/dscConfiguration.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/dscNode.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/dscNodeConfiguration.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/hybridRunbookWorkerGroup.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/job.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/jobSchedule.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/linkedWorkspace.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/module.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/runbook.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/schedule.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/variable.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/webhook.json
- - $(this-folder)/Microsoft.Automation/preview/2017-05-15-preview/softwareUpdateConfiguration.json
- - $(this-folder)/Microsoft.Automation/preview/2017-05-15-preview/softwareUpdateConfigurationRun.json
- - $(this-folder)/Microsoft.Automation/preview/2017-05-15-preview/softwareUpdateConfigurationMachineRun.json
- - $(this-folder)/Microsoft.Automation/preview/2017-05-15-preview/sourceControl.json
- - $(this-folder)/Microsoft.Automation/preview/2017-05-15-preview/sourceControlSyncJob.json
- - $(this-folder)/Microsoft.Automation/preview/2017-05-15-preview/sourceControlSyncJobStreams.json
- - $(this-folder)/Microsoft.Automation/preview/2017-05-15-preview/job.json
- - $(this-folder)/Microsoft.Automation/stable/2015-10-31/watcher.json
- - $(this-folder)/Microsoft.Automation/stable/2018-01-15/dscNode.json
- - $(this-folder)/Microsoft.Automation/stable/2018-01-15/dscCompilationJob.json
- - $(this-folder)/Microsoft.Automation/stable/2018-01-15/dscNodeConfiguration.json
- - $(this-folder)/Microsoft.Automation/stable/2018-01-15/dscNodeCounts.json
- - $(this-folder)/Microsoft.Automation/stable/2018-06-30/runbook.json
- - $(this-folder)/Microsoft.Automation/stable/2018-06-30/python2package.json
- - $(this-folder)/Microsoft.Automation/preview/2020-01-13-preview/privateEndpointConnection.json
- - $(this-folder)/Microsoft.Automation/preview/2020-01-13-preview/privateLinkResources.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/Activation.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/Activation.json
index 40fcb50e2a3f..9508e24e10c3 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/Activation.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/Activation.json
@@ -10,7 +10,7 @@
"https"
],
"paths": {
- "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}/providers/Microsoft.AzureBridge.Admin/activations": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureBridge.Admin/activations": {
"get": {
"x-ms-examples": {
"Return product name.": {
@@ -27,7 +27,7 @@
"$ref": "AzureBridge.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "AzureBridge.json#/parameters/ResourceGroupParameter"
+ "$ref": "AzureBridge.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "AzureBridge.json#/parameters/ApiVersionParameter"
@@ -39,6 +39,12 @@
"schema": {
"$ref": "#/definitions/ActivationResourcesPage"
}
+ },
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedErrorInfo"
+ }
}
},
"produces": [
@@ -52,7 +58,7 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}/providers/Microsoft.AzureBridge.Admin/activations/{activationName}": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureBridge.Admin/activations/{activationName}": {
"get": {
"x-ms-examples": {
"Return activation name.": {
@@ -69,7 +75,7 @@
"$ref": "AzureBridge.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "AzureBridge.json#/parameters/ResourceGroupParameter"
+ "$ref": "AzureBridge.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "AzureBridge.json#/parameters/ActivationNameParameter"
@@ -85,8 +91,11 @@
"$ref": "#/definitions/ActivationResource"
}
},
- "404": {
- "description": "Not Found"
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedErrorInfo"
+ }
}
},
"produces": [
@@ -112,7 +121,7 @@
"$ref": "AzureBridge.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "AzureBridge.json#/parameters/ResourceGroupParameter"
+ "$ref": "AzureBridge.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "AzureBridge.json#/parameters/ActivationNameParameter"
@@ -130,6 +139,12 @@
"schema": {
"$ref": "#/definitions/ActivationResource"
}
+ },
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedErrorInfo"
+ }
}
},
"produces": [
@@ -155,7 +170,7 @@
"$ref": "AzureBridge.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "AzureBridge.json#/parameters/ResourceGroupParameter"
+ "$ref": "AzureBridge.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "AzureBridge.json#/parameters/ActivationNameParameter"
@@ -170,6 +185,15 @@
"schema": {
"$ref": "#/definitions/ActivationResource"
}
+ },
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "#/definitions/ExtendedErrorInfo"
+ }
}
},
"produces": [
@@ -243,6 +267,40 @@
"description": "URI to the next page."
}
}
+ },
+ "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/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 7006ed80e3eb..fda858d423a4 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
@@ -33,6 +33,12 @@
"schema": {
"$ref": "#/definitions/OperationList"
}
+ },
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "Activation.json#/definitions/ExtendedErrorInfo"
+ }
}
},
"produces": [
@@ -50,17 +56,14 @@
"type": "object",
"properties": {
"id": {
- "readOnly": true,
"description": "URI of the resource.",
"type": "string"
},
"name": {
- "readOnly": true,
"description": "Name of the resource.",
"type": "string"
},
"type": {
- "readOnly": true,
"description": "Type of resource.",
"type": "string"
},
@@ -361,8 +364,7 @@
},
"galleryPackageBlobSasUri": {
"description": "The URI to the .azpkg file that provides information required for showing product in the gallery.",
- "type": "string",
- "readOnly": true
+ "type": "string"
},
"productDetailsProperties": {
"description": "Specifies additional properties describing the product.",
@@ -401,8 +403,7 @@
},
"isSystemExtension": {
"description": "Specifies if product is a Virtual Machine Extension.",
- "type": "boolean",
- "readOnly": true
+ "type": "boolean"
},
"sourceBlob": {
"description": "Specifies a download location where content can be downloaded from.",
@@ -412,13 +413,11 @@
},
"supportMultipleExtensions": {
"description": "Indicates if specified product supports multiple extensions.",
- "type": "boolean",
- "readOnly": true
+ "type": "boolean"
},
"version": {
"description": "Specifies product version.",
- "type": "string",
- "readOnly": true
+ "type": "string"
},
"vmOsType": {
"description": "Specifies operating system used by the product.",
@@ -427,8 +426,7 @@
},
"vmScaleSetEnabled": {
"description": "Indicates if virtual machine Scale Set is enabled in the specified product.",
- "type": "boolean",
- "readOnly": true
+ "type": "boolean"
}
}
},
@@ -438,8 +436,7 @@
"properties": {
"version": {
"description": "Specifies product version.",
- "type": "string",
- "readOnly": true
+ "type": "string"
},
"osDiskImage": {
"description": "OS disk image used by product.",
@@ -475,8 +472,7 @@
"properties": {
"uri": {
"description": "The URI.",
- "type": "string",
- "readOnly": true
+ "type": "string"
}
}
},
@@ -559,9 +555,9 @@
"type": "string",
"x-ms-parameter-location": "method"
},
- "ResourceGroupParameter": {
+ "ResourceGroupNameParameter": {
"description": "The resource group the resource is located under.",
- "name": "resourceGroup",
+ "name": "resourceGroupName",
"in": "path",
"type": "string",
"required": true,
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/DownloadedProduct.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/DownloadedProduct.json
index 443b8e82072e..dd432ffef5b8 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/DownloadedProduct.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/DownloadedProduct.json
@@ -10,7 +10,7 @@
"https"
],
"paths": {
- "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}/providers/Microsoft.AzureBridge.Admin/activations/{activationName}/downloadedProducts": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureBridge.Admin/activations/{activationName}/downloadedProducts": {
"get": {
"x-ms-examples": {
"Get a list of downloaded products.": {
@@ -27,7 +27,7 @@
"$ref": "AzureBridge.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "AzureBridge.json#/parameters/ResourceGroupParameter"
+ "$ref": "AzureBridge.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "AzureBridge.json#/parameters/ActivationNameParameter"
@@ -42,6 +42,12 @@
"schema": {
"$ref": "#/definitions/DownloadedProductResourcesPage"
}
+ },
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "Activation.json#/definitions/ExtendedErrorInfo"
+ }
}
},
"produces": [
@@ -55,7 +61,7 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}/providers/Microsoft.AzureBridge.Admin/activations/{activationName}/downloadedProducts/{productName}": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureBridge.Admin/activations/{activationName}/downloadedProducts/{productName}": {
"get": {
"x-ms-examples": {
"Gets the specified downloaded product.": {
@@ -72,7 +78,7 @@
"$ref": "AzureBridge.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "AzureBridge.json#/parameters/ResourceGroupParameter"
+ "$ref": "AzureBridge.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "AzureBridge.json#/parameters/ActivationNameParameter"
@@ -91,8 +97,11 @@
"$ref": "AzureBridge.json#/definitions/DownloadedProductResource"
}
},
- "404": {
- "description": "Not Found"
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "Activation.json#/definitions/ExtendedErrorInfo"
+ }
}
},
"produces": [
@@ -118,7 +127,7 @@
"$ref": "AzureBridge.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "AzureBridge.json#/parameters/ResourceGroupParameter"
+ "$ref": "AzureBridge.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "AzureBridge.json#/parameters/ActivationNameParameter"
@@ -143,8 +152,14 @@
"$ref": "AzureBridge.json#/definitions/DownloadedProductResource"
}
},
- "404": {
- "description": "Not Found"
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "Activation.json#/definitions/ExtendedErrorInfo"
+ }
}
},
"x-ms-long-running-operation": true,
@@ -171,7 +186,7 @@
"$ref": "AzureBridge.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "AzureBridge.json#/parameters/ResourceGroupParameter"
+ "$ref": "AzureBridge.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "AzureBridge.json#/parameters/ActivationNameParameter"
@@ -198,6 +213,12 @@
"schema": {
"$ref": "AzureBridge.json#/definitions/DownloadedProductResource"
}
+ },
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "Activation.json#/definitions/ExtendedErrorInfo"
+ }
}
},
"x-ms-long-running-operation": true,
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/Product.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/Product.json
index d3f9266f56b7..46b143618c60 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/Product.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/Product.json
@@ -10,7 +10,7 @@
"https"
],
"paths": {
- "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}/providers/Microsoft.AzureBridge.Admin/activations/{activationName}/products": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureBridge.Admin/activations/{activationName}/products": {
"get": {
"x-ms-examples": {
"Return product name.": {
@@ -27,7 +27,7 @@
"$ref": "AzureBridge.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "AzureBridge.json#/parameters/ResourceGroupParameter"
+ "$ref": "AzureBridge.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "AzureBridge.json#/parameters/ActivationNameParameter"
@@ -42,6 +42,12 @@
"schema": {
"$ref": "#/definitions/ProductResourcesPage"
}
+ },
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "Activation.json#/definitions/ExtendedErrorInfo"
+ }
}
},
"produces": [
@@ -55,7 +61,7 @@
}
}
},
- "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}/providers/Microsoft.AzureBridge.Admin/activations/{activationName}/products/{productName}": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureBridge.Admin/activations/{activationName}/products/{productName}": {
"get": {
"x-ms-examples": {
"Return product name.": {
@@ -72,7 +78,7 @@
"$ref": "AzureBridge.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "AzureBridge.json#/parameters/ResourceGroupParameter"
+ "$ref": "AzureBridge.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "AzureBridge.json#/parameters/ActivationNameParameter"
@@ -91,8 +97,11 @@
"$ref": "#/definitions/ProductResource"
}
},
- "404": {
- "description": "Not Found"
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "Activation.json#/definitions/ExtendedErrorInfo"
+ }
}
},
"produces": [
@@ -103,7 +112,7 @@
]
}
},
- "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}/providers/Microsoft.AzureBridge.Admin/activations/{activationName}/products/{productName}/download": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureBridge.Admin/activations/{activationName}/products/{productName}/download": {
"post": {
"x-ms-examples": {
"Return product name.": {
@@ -120,7 +129,7 @@
"$ref": "AzureBridge.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "AzureBridge.json#/parameters/ResourceGroupParameter"
+ "$ref": "AzureBridge.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "AzureBridge.json#/parameters/ActivationNameParameter"
@@ -145,8 +154,11 @@
"$ref": "AzureBridge.json#/definitions/DownloadedProductResource"
}
},
- "404": {
- "description": "Not Found"
+ "default": {
+ "description": "Default Response.",
+ "schema": {
+ "$ref": "Activation.json#/definitions/ExtendedErrorInfo"
+ }
}
},
"x-ms-long-running-operation": true,
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/Create.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/Create.json
index 6548cbf55c22..fd4f8bbb1f2d 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/Create.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/Create.json
@@ -3,8 +3,10 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"location": "local",
"api-version": "2015-06-01-preview",
- "resourceGroup": "azurestack",
- "activation": "default",
+ "resourceGroupName": "azurestack",
+ "activation": {
+ "displayName": "default"
+ },
"activationName": "default"
},
"responses": {
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/Delete.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/Delete.json
index 8f2e3a03d53a..94bb60730558 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/Delete.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/Delete.json
@@ -3,7 +3,7 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"location": "local",
"api-version": "2015-06-01-preview",
- "resourceGroup": "azurestack",
+ "resourceGroupName": "azurestack",
"activationName": "default"
},
"responses": {
@@ -12,6 +12,7 @@
"id": "/subscriptions/b6a34e73-810f-4564-881a-8434c6c2e5c8/resourceGroups/azurestack-activation/providers/Microsoft.AzureBridge.Admin/activations/default",
"name": "default"
}
- }
+ },
+ "204": {}
}
}
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/Get.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/Get.json
index 3594658e9e70..99793c4e0364 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/Get.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/Get.json
@@ -3,7 +3,7 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"location": "local",
"api-version": "2015-06-01-preview",
- "resourceGroup": "azurestack",
+ "resourceGroupName": "azurestack",
"activationName": "default"
},
"responses": {
@@ -22,7 +22,6 @@
"provisioningState": "Succeeded"
}
}
- },
- "404": {}
+ }
}
}
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/List.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/List.json
index 143ec75e4ac8..2d7382dc81e6 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/List.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Activation/List.json
@@ -3,7 +3,7 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"location": "local",
"api-version": "2015-06-01-preview",
- "resourceGroup": "azurestack"
+ "resourceGroupName": "azurestack"
},
"responses": {
"200": {
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/Delete.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/Delete.json
index c7533bec0320..dc2f421dfeda 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/Delete.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/Delete.json
@@ -3,7 +3,7 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"location": "local",
"api-version": "2015-06-01-preview",
- "resourceGroup": "azurestack",
+ "resourceGroupName": "azurestack",
"activationName": "default",
"productName": "Canonical.UbuntuServer1710-ARM.1.0.6"
},
@@ -14,6 +14,6 @@
"202": {
"body": {}
},
- "404": {}
+ "204": {}
}
}
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/Get.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/Get.json
index 34858fe08def..3ece1e75221e 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/Get.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/Get.json
@@ -3,7 +3,7 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"location": "local",
"api-version": "2015-06-01-preview",
- "resourceGroup": "azurestack",
+ "resourceGroupName": "azurestack",
"activationName": "default",
"productName": "Canonical.UbuntuServer1710-ARM.1.0.6"
},
@@ -57,7 +57,6 @@
}
}
}
- },
- "404": {}
+ }
}
}
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/List.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/List.json
index 1dd20c4d85ae..ad8ce850e1a2 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/List.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/List.json
@@ -3,7 +3,7 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"location": "local",
"api-version": "2015-06-01-preview",
- "resourceGroup": "azurestack",
+ "resourceGroupName": "azurestack",
"activationName": "default"
},
"responses": {
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/Put.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/Put.json
index 9b50491c0898..64863fc9b9d6 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/Put.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/DownloadedProduct/Put.json
@@ -3,7 +3,7 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"location": "local",
"api-version": "2015-06-01-preview",
- "resourceGroup": "azurestack",
+ "resourceGroupName": "azurestack",
"activationName": "default",
"productName": "Canonical.UbuntuServer1710-ARM.1.0.6",
"downloadedProduct": {
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Product/Get.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Product/Get.json
index bdbf6a51dbdb..2ded67835365 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Product/Get.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Product/Get.json
@@ -2,7 +2,7 @@
"parameters": {
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"location": "local",
- "resourceGroup": "azurestack",
+ "resourceGroupName": "azurestack",
"activationName": "default",
"productName": "Canonical.UbuntuServer1710-ARM.1.0.6",
"api-version": "2015-06-01-preview"
@@ -57,7 +57,6 @@
}
}
}
- },
- "404": {}
+ }
}
}
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Product/List.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Product/List.json
index d5c05976c5d5..1cfadeb5e0f3 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Product/List.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Product/List.json
@@ -3,7 +3,7 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"location": "local",
"api-version": "2015-06-01-preview",
- "resourceGroup": "azurestack",
+ "resourceGroupName": "azurestack",
"activationName": "default"
},
"responses": {
diff --git a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Product/download.json b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Product/download.json
index b2140e732112..91f899e839e7 100644
--- a/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Product/download.json
+++ b/specification/azsadmin/resource-manager/azurebridge/Microsoft.AzureBridge.Admin/preview/2016-01-01/examples/Product/download.json
@@ -3,7 +3,7 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"location": "local",
"api-version": "2015-06-01-preview",
- "resourceGroup": "azurestack",
+ "resourceGroupName": "azurestack",
"activationName": "default",
"productName": "Canonical.UbuntuServer1710-ARM.1.0.6"
},
@@ -107,7 +107,6 @@
}
}
}
- },
- "404": {}
+ }
}
}
diff --git a/specification/azsadmin/resource-manager/azurebridge/readme.azsautogen.md b/specification/azsadmin/resource-manager/azurebridge/readme.azsautogen.md
new file mode 100644
index 000000000000..fab4d9021c9d
--- /dev/null
+++ b/specification/azsadmin/resource-manager/azurebridge/readme.azsautogen.md
@@ -0,0 +1,11 @@
+# AutoRest v3 generators
+
+> see https://aka.ms/autorest
+
+``` yaml
+input-file:
+ - Microsoft.AzureBridge.Admin/preview/2016-01-01/AzureBridge.json
+ - Microsoft.AzureBridge.Admin/preview/2016-01-01/DownloadedProduct.json
+ - Microsoft.AzureBridge.Admin/preview/2016-01-01/Product.json
+ - Microsoft.AzureBridge.Admin/preview/2016-01-01/Activation.json
+```
\ No newline at end of file
diff --git a/specification/azsadmin/resource-manager/azurebridge/readme.md b/specification/azsadmin/resource-manager/azurebridge/readme.md
index 81167054852a..09e4e09eecc6 100644
--- a/specification/azsadmin/resource-manager/azurebridge/readme.md
+++ b/specification/azsadmin/resource-manager/azurebridge/readme.md
@@ -39,6 +39,26 @@ input-file:
- Microsoft.AzureBridge.Admin/preview/2016-01-01/Activation.json
```
+## Suppression
+``` yaml
+directive:
+ - suppress: RequiredPropertiesMissingInResourceModel
+ from: Activation.json
+ where: $.definitions.ActivationResource
+ - suppress: RequiredPropertiesMissingInResourceModel
+ from: AzureBridge.json
+ where: $.definitions.DownloadedProductResource
+ - suppress: RequiredPropertiesMissingInResourceModel
+ from: Product.json
+ where: $.definitions.ProductResource
+ - suppress: PathResourceProviderNamePascalCase
+ from: Activation.json
+ - suppress: PathResourceProviderNamePascalCase
+ from: DownloadedProduct.json
+ - suppress: PathResourceProviderNamePascalCase
+ from: Product.json
+```
+
---
# Code Generation
@@ -54,30 +74,14 @@ csharp:
clear-output-folder: true
```
-## Multi-API/Profile support for AutoRest v3 generators
+# AutoRest v3 generators
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../../profiles/readme.md
+> see https://aka.ms/autorest
-# all the input files across all versions
+``` yaml
input-file:
- - $(this-folder)/Microsoft.AzureBridge.Admin/preview/2016-01-01/AzureBridge.json
- - $(this-folder)/Microsoft.AzureBridge.Admin/preview/2016-01-01/DownloadedProduct.json
- - $(this-folder)/Microsoft.AzureBridge.Admin/preview/2016-01-01/Product.json
- - $(this-folder)/Microsoft.AzureBridge.Admin/preview/2016-01-01/Activation.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
+ - Microsoft.AzureBridge.Admin/preview/2016-01-01/AzureBridge.json
+ - Microsoft.AzureBridge.Admin/preview/2016-01-01/DownloadedProduct.json
+ - Microsoft.AzureBridge.Admin/preview/2016-01-01/Product.json
+ - Microsoft.AzureBridge.Admin/preview/2016-01-01/Activation.json
```
-
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2016-05-01/Common.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2016-05-01/Common.json
new file mode 100644
index 000000000000..395b55e41a6c
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2016-05-01/Common.json
@@ -0,0 +1,35 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2016-05-01",
+ "title": "FabricAdminClient",
+ "description": "The common parameters for Fabric Management specs."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "paths": {},
+ "parameters": {
+ "TopParameter": {
+ "description": "OData top parameter.",
+ "name": "$top",
+ "in": "query",
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "SkipParameter": {
+ "description": "OData skip parameter.",
+ "name": "$skip",
+ "in": "query",
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2016-05-01/FileShare.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2016-05-01/FileShare.json
index 7726d7c276c8..4860d6ab336d 100644
--- a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2016-05-01/FileShare.json
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2016-05-01/FileShare.json
@@ -88,6 +88,12 @@
},
{
"$ref": "Fabric.json#/parameters/FilterParameter"
+ },
+ {
+ "$ref": "Common.json#/parameters/TopParameter"
+ },
+ {
+ "$ref": "Common.json#/parameters/SkipParameter"
}
],
"responses": {
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2018-10-01/StorageSubSystem.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2018-10-01/StorageSubSystem.json
index 5cbd44d07ee9..909c95d7085c 100644
--- a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2018-10-01/StorageSubSystem.json
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2018-10-01/StorageSubSystem.json
@@ -91,6 +91,12 @@
},
{
"$ref": "../2016-05-01/Fabric.json#/parameters/FilterParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Common.json#/parameters/TopParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Common.json#/parameters/SkipParameter"
}
],
"responses": {
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2019-05-01/Drive.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2019-05-01/Drive.json
index a49309035b87..c668fc776cfa 100644
--- a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2019-05-01/Drive.json
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2019-05-01/Drive.json
@@ -97,6 +97,12 @@
},
{
"$ref": "../2016-05-01/Fabric.json#/parameters/FilterParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Common.json#/parameters/TopParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Common.json#/parameters/SkipParameter"
}
],
"responses": {
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2019-05-01/NasCluster.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2019-05-01/NasCluster.json
index e93aa4081d80..6c401faf4622 100644
--- a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2019-05-01/NasCluster.json
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2019-05-01/NasCluster.json
@@ -85,6 +85,12 @@
},
{
"$ref": "../2016-05-01/Fabric.json#/parameters/FilterParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Common.json#/parameters/TopParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Common.json#/parameters/SkipParameter"
}
],
"responses": {
diff --git a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2019-05-01/Volume.json b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2019-05-01/Volume.json
index 316cfe034ae4..05be0b86dfbf 100644
--- a/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2019-05-01/Volume.json
+++ b/specification/azsadmin/resource-manager/fabric/Microsoft.Fabric.Admin/preview/2019-05-01/Volume.json
@@ -97,6 +97,12 @@
},
{
"$ref": "../2016-05-01/Fabric.json#/parameters/FilterParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Common.json#/parameters/TopParameter"
+ },
+ {
+ "$ref": "../2016-05-01/Common.json#/parameters/SkipParameter"
}
],
"responses": {
diff --git a/specification/azsadmin/resource-manager/fabric/readme.azsautogen.md b/specification/azsadmin/resource-manager/fabric/readme.azsautogen.md
new file mode 100644
index 000000000000..351a32ded328
--- /dev/null
+++ b/specification/azsadmin/resource-manager/fabric/readme.azsautogen.md
@@ -0,0 +1,72 @@
+# Fabric Admin
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for Fabric Admin.
+
+---
+## Getting Started
+To build the SDK for Fabric Admin, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run:
+
+> `autorest`
+
+To see additional help and options, run:
+
+> `autorest --help`
+---
+
+## Configuration
+
+### Basic Information
+These are the global settings for the Fabric API.
+
+``` yaml
+title: FabricAdminClient
+description: Fabric Admin Client
+openapi-type: arm
+tag: package-2019-05-01
+```
+
+``` yaml
+input-file:
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/ApplicationOperationResults.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/ComputeOperationResults.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/Fabric.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/EdgeGateway.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/EdgeGatewayPool.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/FabricLocation.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/FileShare.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/InfraRole.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/InfraRoleInstance.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/IpPool.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/LogicalNetwork.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/LogicalSubnet.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/MacAddressPool.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/NetworkOperationResults.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/ScaleUnit.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/ScaleUnitNode.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/SlbMuxInstance.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2016-05-01/StorageOperationResults.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2018-10-01/StorageSubSystem.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2019-05-01/Drive.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2019-05-01/Volume.json
+ - $(this-folder)/Microsoft.Fabric.Admin/preview/2019-05-01/NasCluster.json"
+```
+
+---
+# Code Generation
+
+## C#
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+``` yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ namespace: Microsoft.AzureStack.Management.Fabric.Admin
+ payload-flattening-threshold: 1
+ output-folder: $(csharp-sdks-folder)/Generated
+ clear-output-folder: true
+```
diff --git a/specification/azsadmin/resource-manager/fabric/readme.md b/specification/azsadmin/resource-manager/fabric/readme.md
index 66c605b587f4..742e9b9ab447 100644
--- a/specification/azsadmin/resource-manager/fabric/readme.md
+++ b/specification/azsadmin/resource-manager/fabric/readme.md
@@ -197,4 +197,3 @@ uncomment the `exclude-file` section below and add the file paths.
#exclude-file:
# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
```
-
diff --git a/specification/azsadmin/resource-manager/user-subscriptions/Microsoft.Subscriptions/preview/2015-11-01/Subscriptions.json b/specification/azsadmin/resource-manager/user-subscriptions/Microsoft.Subscriptions/preview/2015-11-01/Subscriptions.json
index e47cd5146f23..85b0fd60d43d 100644
--- a/specification/azsadmin/resource-manager/user-subscriptions/Microsoft.Subscriptions/preview/2015-11-01/Subscriptions.json
+++ b/specification/azsadmin/resource-manager/user-subscriptions/Microsoft.Subscriptions/preview/2015-11-01/Subscriptions.json
@@ -91,7 +91,7 @@
"$ref": "#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "#/parameters/NewSubscriptionParameter"
+ "$ref": "#/parameters/SubscriptionDefinitionParameter"
},
{
"$ref": "#/parameters/ApiVersionParameter"
@@ -263,9 +263,9 @@
"description": "Id of the subscription.",
"x-ms-parameter-location": "method"
},
- "NewSubscriptionParameter": {
+ "SubscriptionDefinitionParameter": {
"description": "Subscription parameter.",
- "name": "newSubscription",
+ "name": "subscriptionDefinition",
"in": "body",
"schema": {
"$ref": "#/definitions/Subscription"
diff --git a/specification/azsadmin/resource-manager/user-subscriptions/Microsoft.Subscriptions/preview/2015-11-01/examples/Subscriptions/Create.json b/specification/azsadmin/resource-manager/user-subscriptions/Microsoft.Subscriptions/preview/2015-11-01/examples/Subscriptions/Create.json
index 47b02ee55c42..3851dcb6eb2f 100644
--- a/specification/azsadmin/resource-manager/user-subscriptions/Microsoft.Subscriptions/preview/2015-11-01/examples/Subscriptions/Create.json
+++ b/specification/azsadmin/resource-manager/user-subscriptions/Microsoft.Subscriptions/preview/2015-11-01/examples/Subscriptions/Create.json
@@ -3,15 +3,13 @@
"subscriptionId": "20ff7fc3-e762-44dd-bd96-b71116dcdc23",
"location": "local",
"api-version": "2015-11-01",
- "newSubscription": {
- "properties": {
- "displayName": "Test User-user1@contoso.com",
- "id": "",
- "offerId": "/delegatedProviders/default/offers/TestOffer-0892f99c-8d1c-48d1-a2b3-128a931afc09",
- "state": "Enabled",
- "subscriptionId": "a7aeb2dd-1b1d-458c-a3dc-09070c2ece5e",
- "tenantId": ""
- }
+ "subscriptionDefinition": {
+ "displayName": "Test User-user1@contoso.com",
+ "id": "",
+ "offerId": "/delegatedProviders/default/offers/TestOffer-0892f99c-8d1c-48d1-a2b3-128a931afc09",
+ "state": "Enabled",
+ "subscriptionId": "a7aeb2dd-1b1d-458c-a3dc-09070c2ece5e",
+ "tenantId": ""
}
},
"responses": {
diff --git a/specification/azsadmin/resource-manager/user-subscriptions/readme.md b/specification/azsadmin/resource-manager/user-subscriptions/readme.md
index 9c3540a14d15..7eff63e9c33d 100644
--- a/specification/azsadmin/resource-manager/user-subscriptions/readme.md
+++ b/specification/azsadmin/resource-manager/user-subscriptions/readme.md
@@ -82,33 +82,13 @@ csharp:
clear-output-folder: true
```
-## Python
-
-These settings apply only when `--python` is specified on the command line.
-
-``` yaml $(python)
-python:
- # override the default output folder
- output-folder: $(output-folder)/python
- license-header: MICROSOFT_MIT_NO_VERSION
- payload-flattening-threshold: 2
-```
-
-### Tag: package-2015-11-01 and python
-
-These settings apply only when `--tag=package-2015-11-01 --python` is specified on the command line.
-
-``` yaml $(tag) == 'package-2015-11-01' && $(python)
-namespace: azure.mgmt.subscriptions.v2015_06_01_preview
-```
-
-## 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.
This block is updated by an automatic script. Edits may be lost!
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
+``` yaml
# include the azure profile definitions from the standard location
require: $(this-folder)/../../../../profiles/readme.md
@@ -127,3 +107,22 @@ uncomment the `exclude-file` section below and add the file paths.
# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
```
+## Python
+
+These settings apply only when `--python` is specified on the command line.
+
+``` yaml $(python)
+python:
+ # override the default output folder
+ output-folder: $(output-folder)/python
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 2
+```
+
+### Tag: package-2015-11-01 and python
+
+These settings apply only when `--tag=package-2015-11-01 --python` is specified on the command line.
+
+``` yaml $(tag) == 'package-2015-11-01' && $(python)
+namespace: azure.mgmt.subscriptions.v2015_06_01_preview
+```
diff --git a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2020-06-14/examples/KustoDatabasesCreateOrUpdate.json b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2020-06-14/examples/KustoDatabasesCreateOrUpdate.json
index f25f772e9597..76b9c8e81e96 100644
--- a/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2020-06-14/examples/KustoDatabasesCreateOrUpdate.json
+++ b/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2020-06-14/examples/KustoDatabasesCreateOrUpdate.json
@@ -7,6 +7,7 @@
"api-version": "2020-06-14",
"parameters": {
"location": "westus",
+ "kind": "ReadWrite",
"properties": {
"softDeletePeriod": "P1D"
}
diff --git a/specification/azure-kusto/resource-manager/readme.azureresourceschema.md b/specification/azure-kusto/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..96c34a3fb116
--- /dev/null
+++ b/specification/azure-kusto/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,96 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - 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-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.md b/specification/azure-kusto/resource-manager/readme.md
index afb317f7b06b..043249c10db0 100644
--- a/specification/azure-kusto/resource-manager/readme.md
+++ b/specification/azure-kusto/resource-manager/readme.md
@@ -173,6 +173,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- 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#
@@ -193,36 +196,9 @@ csharp:
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Kusto/stable/2020-06-14/kusto.json
- - $(this-folder)/Microsoft.Kusto/stable/2020-02-15/kusto.json
- - $(this-folder)/Microsoft.Kusto/stable/2019-11-09/kusto.json
- - $(this-folder)/Microsoft.Kusto/stable/2019-09-07/kusto.json
- - $(this-folder)/Microsoft.Kusto/stable/2019-05-15/kusto.json
- - $(this-folder)/Microsoft.Kusto/stable/2019-01-21/kusto.json
- - $(this-folder)/Microsoft.Kusto/preview/2018-09-07-preview/kusto.json
- - $(this-folder)/Microsoft.Kusto/preview/2017-09-07-privatepreview/kusto.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+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
new file mode 100644
index 000000000000..b6bab336b329
--- /dev/null
+++ b/specification/azureactivedirectory/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,49 @@
+## 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 a280ce576d65..b84ecea4a6f7 100644
--- a/specification/azureactivedirectory/resource-manager/readme.md
+++ b/specification/azureactivedirectory/resource-manager/readme.md
@@ -95,6 +95,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
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
@@ -117,29 +120,7 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
See configuration in [readme.csharp.md](./readme.csharp.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Aadiam/preview/2020-07-01-preview/azureADMetrics.json
- - $(this-folder)/Microsoft.Aadiam/preview/2020-03-01-preview/privateLinkForAzureAD.json
- - $(this-folder)/Microsoft.Aadiam/preview/2020-03-01-preview/privateLinkResources.json
- - $(this-folder)/Microsoft.Aadiam/stable/2017-04-01/azureactivedirectory.json
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-```
-
-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/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/azuredata.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/azuredata.json
index 7f52976db6c8..c8f01b22aae2 100644
--- a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/azuredata.json
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/azuredata.json
@@ -1647,7 +1647,7 @@
}
},
"x-ms-examples": {
- "Updates a dataController tags.": {
+ "Get a data controller.": {
"$ref": "./examples/GetDataController.json"
}
}
@@ -1674,6 +1674,15 @@
},
{
"$ref": "#/parameters/apiVersion"
+ },
+ {
+ "name": "dataControllerResource",
+ "description": "The update data controller resource",
+ "required": true,
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/DataControllerUpdate"
+ }
}
],
"responses": {
@@ -2197,39 +2206,22 @@
"description": "The data controller's properties",
"x-ms-client-flatten": true
}
- }
+ },
+ "required": [
+ "properties"
+ ]
},
- "AzureResource": {
- "type": "object",
+ "DataControllerUpdate": {
"properties": {
- "etag": {
- "type": "string"
- },
- "id": {
- "type": "string"
- },
- "kind": {
- "type": "string"
- },
- "location": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "sku": {
- "$ref": "#/definitions/ResourceSku"
- },
"tags": {
+ "type": "object",
"additionalProperties": {
"type": "string"
},
- "type": "object"
- },
- "type": {
- "type": "string"
+ "description": "Resource tags"
}
- }
+ },
+ "description": "Used for updating a data controller resource."
},
"SystemData": {
"description": "Read only system data",
@@ -2304,23 +2296,11 @@
"properties": {
"onPremiseProperty": {
"$ref": "#/definitions/OnPremiseProperty"
- },
- "requestType": {
- "$ref": "#/definitions/RequestType"
- },
- "uploadRequest": {
- "$ref": "#/definitions/UsageUploadRequest"
- },
- "uploadResponse": {
- "$ref": "#/definitions/UsageUploadResponse"
- },
- "handshakeRequest": {
- "$ref": "#/definitions/HandshakeRequest"
- },
- "handshakeResponse": {
- "$ref": "#/definitions/HandshakeResponse"
}
- }
+ },
+ "required": [
+ "onPremiseProperty"
+ ]
},
"OnPremiseProperty": {
"description": "Properties from the on premise data controller",
@@ -2339,130 +2319,11 @@
"type": "string",
"description": "Unique thumbprint returned to customer to verify the certificate being uploaded"
}
- }
- },
- "RequestType": {
- "type": "string",
- "enum": [
- "Unknown",
- "Handshake",
- "UsageUpload"
- ],
- "x-ms-enum": {
- "name": "RequestType",
- "modelAsString": true
- }
- },
- "UsageUploadRequest": {
- "type": "object",
- "properties": {
- "exportType": {
- "type": "string"
- },
- "dataTimestamp": {
- "type": "string",
- "format": "date-time"
- },
- "data": {
- "items": {
- "$ref": "#/definitions/UsageRecord"
- },
- "type": "array"
- },
- "signature": {
- "type": "string"
- }
- }
- },
- "UsageRecord": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "format": "uuid"
- },
- "eventSeq": {
- "type": "integer",
- "format": "int64"
- },
- "eventId": {
- "type": "string",
- "format": "uuid"
- },
- "namespace": {
- "type": "string"
- },
- "type": {
- "type": "string"
- },
- "subscriptionId": {
- "type": "string",
- "format": "uuid"
- },
- "resourceGroup": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "location": {
- "type": "string"
- },
- "startTime": {
- "type": "string",
- "format": "date-time"
- },
- "endTime": {
- "type": "string",
- "format": "date-time"
- },
- "quantity": {
- "type": "number",
- "format": "double"
- },
- "tags": {
- "type": "string"
- }
- }
- },
- "UsageUploadResponse": {
- "type": "object",
- "properties": {
- "usageUploadStatus": {
- "$ref": "#/definitions/UsageUploadStatus"
- },
- "usageWaterMark": {
- "type": "integer",
- "format": "int64"
- }
- }
- },
- "UsageUploadStatus": {
- "type": "string",
- "enum": [
- "Unknown",
- "Failed",
- "PartialSuccess",
- "Completed"
- ],
- "x-ms-enum": {
- "name": "UsageUploadStatus",
- "modelAsString": true
- }
- },
- "HandshakeRequest": {
- "type": "object"
- },
- "HandshakeResponse": {
- "type": "object",
- "properties": {
- "usageUploadUrl": {
- "type": "string"
- },
- "usageResultUrl": {
- "type": "string"
- }
- }
+ },
+ "required": [
+ "id",
+ "publicSigningKey"
+ ]
},
"PostgresInstanceProperties": {
"description": "Postgres Instance properties.",
@@ -2534,6 +2395,26 @@
"dataControllerId": {
"type": "string",
"description": "null"
+ },
+ "instanceEndpoint": {
+ "type": "string",
+ "description": "The on premise instance endpoint"
+ },
+ "admin": {
+ "type": "string",
+ "description": "The instance admin user"
+ },
+ "startTime": {
+ "type": "string",
+ "description": "The instance start time"
+ },
+ "endTime": {
+ "type": "string",
+ "description": "The instance end time"
+ },
+ "vCore": {
+ "type": "string",
+ "description": "The instance vCore"
}
}
},
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/CreateOrUpdateSqlManagedInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/CreateOrUpdateSqlManagedInstance.json
index e3036e60f973..9c207564ec59 100644
--- a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/CreateOrUpdateSqlManagedInstance.json
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/CreateOrUpdateSqlManagedInstance.json
@@ -9,13 +9,23 @@
"tags": {
"mytag": "myval"
},
- "properties": {}
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ }
}
},
"responses": {
"200": {
"body": {
- "properties": {},
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
@@ -35,7 +45,12 @@
},
"201": {
"body": {
- "properties": {},
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/GetDataController.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/GetDataController.json
index dc230e0b589a..8a13eb3d5b6e 100644
--- a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/GetDataController.json
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/GetDataController.json
@@ -8,7 +8,13 @@
"responses": {
"200": {
"body": {
- "properties": {},
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate they uploaded"
+ }
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/GetSqlManagedInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/GetSqlManagedInstance.json
index 8b080cc3a76d..af96057ccab0 100644
--- a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/GetSqlManagedInstance.json
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/GetSqlManagedInstance.json
@@ -8,7 +8,12 @@
"responses": {
"200": {
"body": {
- "properties": {},
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListByResourceGroupDataController.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListByResourceGroupDataController.json
index 126d66b7cc34..797b1fb81a31 100644
--- a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListByResourceGroupDataController.json
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListByResourceGroupDataController.json
@@ -9,7 +9,13 @@
"body": {
"value": [
{
- "properties": {},
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate they uploaded"
+ }
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
@@ -27,7 +33,13 @@
"type": "Microsoft.AzureData/dataControllers"
},
{
- "properties": {},
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate they uploaded"
+ }
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListByResourceGroupSqlManagedInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListByResourceGroupSqlManagedInstance.json
index d3274ac46b43..bb31e438e35a 100644
--- a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListByResourceGroupSqlManagedInstance.json
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListByResourceGroupSqlManagedInstance.json
@@ -9,7 +9,12 @@
"body": {
"value": [
{
- "properties": {},
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
@@ -27,7 +32,12 @@
"type": "Microsoft.AzureData/sqlManagedInstances"
},
{
- "properties": {},
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListSubscriptionDataController.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListSubscriptionDataController.json
index 18d086a66724..a81869dfea05 100644
--- a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListSubscriptionDataController.json
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListSubscriptionDataController.json
@@ -8,7 +8,13 @@
"body": {
"value": [
{
- "properties": {},
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate they uploaded"
+ }
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
@@ -26,7 +32,13 @@
"type": "Microsoft.AzureData/dataControllers"
},
{
- "properties": {},
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate they uploaded"
+ }
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListSubscriptionSqlManagedInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListSubscriptionSqlManagedInstance.json
index abec693b66fa..65f4485aebd5 100644
--- a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListSubscriptionSqlManagedInstance.json
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/ListSubscriptionSqlManagedInstance.json
@@ -8,7 +8,12 @@
"body": {
"value": [
{
- "properties": {},
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
@@ -26,7 +31,12 @@
"type": "Microsoft.AzureData/sqlManagedInstances"
},
{
- "properties": {},
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/UpdateDataController.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/UpdateDataController.json
index 314c7481a45b..c6dc5166499a 100644
--- a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/UpdateDataController.json
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/UpdateDataController.json
@@ -4,7 +4,7 @@
"resourceGroupName": "testrg",
"dataControllerName": "testdataController1",
"api-version": "2019-07-24",
- "parameters": {
+ "dataControllerResource": {
"tags": {
"mytag": "myval"
}
@@ -13,7 +13,13 @@
"responses": {
"200": {
"body": {
- "properties": {},
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate they uploaded"
+ }
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/UpdateSqlManagedInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/UpdateSqlManagedInstance.json
index 7698531e5e5a..11144061214c 100644
--- a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/UpdateSqlManagedInstance.json
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2019-07-24-preview/examples/UpdateSqlManagedInstance.json
@@ -13,7 +13,12 @@
"responses": {
"200": {
"body": {
- "properties": {},
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
"location": "northeurope",
"systemData": {
"createdBy": "user1",
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/azuredata.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/azuredata.json
new file mode 100644
index 000000000000..ab1d98d88c50
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/azuredata.json
@@ -0,0 +1,1890 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-09-08-preview",
+ "title": "AzureDataManagementClient",
+ "description": "The AzureData management API provides a RESTful set of web APIs to manage Azure Data Resources."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AzureData/sqlManagedInstances": {
+ "get": {
+ "tags": [
+ "SqlManagedInstances"
+ ],
+ "operationId": "SqlManagedInstances_List",
+ "summary": "List sqlManagedInstance resources in the subscription",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SqlManagedInstanceListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was given to parameter.\n\n * 400 InvalidCrossSubscriptionVmMove - Invalid cross subscription move of resource.\n\n * 404 ResourceNotFound - The requested resource was not found.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Gets all SQL Instance in a subscription.": {
+ "$ref": "./examples/ListSubscriptionSqlManagedInstance.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureData/sqlManagedInstances": {
+ "get": {
+ "tags": [
+ "SqlManagedInstances"
+ ],
+ "operationId": "SqlManagedInstances_ListByResourceGroup",
+ "description": "Gets all sqlManagedInstances in a resource group.",
+ "summary": "List sqlManagedInstance resources in the resource group",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SqlManagedInstanceListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Gets all SQL Instance in a resource group.": {
+ "$ref": "./examples/ListByResourceGroupSqlManagedInstance.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureData/sqlManagedInstances/{sqlManagedInstanceName}": {
+ "get": {
+ "tags": [
+ "SqlManagedInstances"
+ ],
+ "operationId": "SqlManagedInstances_Get",
+ "description": "Retrieves a SQL Managed Instance resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "sqlManagedInstanceName",
+ "description": "Name of SQL Managed Instance",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SqlManagedInstance"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Updates a SQL Instance tags.": {
+ "$ref": "./examples/GetSqlManagedInstance.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "SqlManagedInstances"
+ ],
+ "operationId": "SqlManagedInstances_Create",
+ "description": "Creates or replaces a SQL Managed Instance resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "sqlManagedInstanceName",
+ "description": "The name of SQL Managed Instances",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "name": "sqlManagedInstance",
+ "in": "body",
+ "description": "The SQL Managed Instance to be created or updated.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SqlManagedInstance"
+ }
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SqlManagedInstance"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/SqlManagedInstance"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update a SQL Managed Instance": {
+ "$ref": "./examples/CreateOrUpdateSqlManagedInstance.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "SqlManagedInstances"
+ ],
+ "operationId": "SqlManagedInstances_Delete",
+ "description": "Deletes a SQL Managed Instance resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "sqlManagedInstanceName",
+ "description": "The name of Sql Managed Instances",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the SQL Managed Instance."
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "204": {
+ "description": "The specified SQL Managed Instance does not exist."
+ }
+ },
+ "x-ms-examples": {
+ "Delete a SQL Instance.": {
+ "$ref": "./examples/DeleteSqlManagedInstance.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "SqlManagedInstances"
+ ],
+ "operationId": "SqlManagedInstances_Update",
+ "description": "Updates a SQL Managed Instance resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "sqlManagedInstanceName",
+ "description": "Name of sqlManagedInstance",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The SQL Managed Instance.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SqlManagedInstanceUpdate"
+ }
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SqlManagedInstance"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Updates a sql Instance tags.": {
+ "$ref": "./examples/UpdateSqlManagedInstance.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AzureData/sqlServerInstances": {
+ "get": {
+ "tags": [
+ "SqlServerInstances"
+ ],
+ "operationId": "SqlServerInstances_List",
+ "summary": "List sqlServerInstance resources in the subscription",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SqlServerInstanceListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 InvalidParameterValue - An invalid value was given to parameter.\n\n * 400 InvalidCrossSubscriptionVmMove - Invalid cross subscription move of resource.\n\n * 404 ResourceNotFound - The requested resource was not found.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Gets all SQL Server Instance in a subscription.": {
+ "$ref": "./examples/ListSubscriptionSqlServerInstance.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureData/sqlServerInstances": {
+ "get": {
+ "tags": [
+ "SqlServerInstances"
+ ],
+ "operationId": "SqlServerInstances_ListByResourceGroup",
+ "description": "Gets all sqlServerInstances in a resource group.",
+ "summary": "List sqlServerInstance resources in the resource group",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SqlServerInstanceListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Gets all SQL Server Instance in a resource group.": {
+ "$ref": "./examples/ListByResourceGroupSqlServerInstance.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureData/sqlServerInstances/{sqlServerInstanceName}": {
+ "get": {
+ "tags": [
+ "SqlServerInstances"
+ ],
+ "operationId": "SqlServerInstances_Get",
+ "description": "Retrieves a SQL Server Instance resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "sqlServerInstanceName",
+ "description": "Name of SQL Server Instance",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SqlServerInstance"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Updates a SQL Server Instance tags.": {
+ "$ref": "./examples/GetSqlServerInstance.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "SqlServerInstances"
+ ],
+ "operationId": "SqlServerInstances_Create",
+ "description": "Creates or replaces a SQL Server Instance resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "sqlServerInstanceName",
+ "description": "The name of SQL Server Instance",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "name": "sqlServerInstance",
+ "in": "body",
+ "description": "The SQL Server Instance to be created or updated.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SqlServerInstance"
+ }
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SqlServerInstance"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/SqlServerInstance"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Updates a SQL Server Instance tags.": {
+ "$ref": "./examples/CreateOrUpdateSqlServerInstance.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "SqlServerInstances"
+ ],
+ "operationId": "SqlServerInstances_Delete",
+ "description": "Deletes a SQL Server Instance resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "sqlServerInstanceName",
+ "description": "The name of SQL Server Instance",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the SQL Server Instance."
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "204": {
+ "description": "The specified SQL Server Instance does not exist."
+ }
+ },
+ "x-ms-examples": {
+ "Delete a SQL Server Instance.": {
+ "$ref": "./examples/DeleteSqlServerInstance.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "SqlServerInstances"
+ ],
+ "operationId": "SqlServerInstances_Update",
+ "description": "Updates a SQL Server Instance resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "sqlServerInstanceName",
+ "description": "Name of sqlServerInstance",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The SQL Server Instance.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SqlServerInstanceUpdate"
+ }
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SqlServerInstance"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Updates a SQL Server Instance tags.": {
+ "$ref": "./examples/UpdateSqlServerInstance.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AzureData/postgresInstances": {
+ "get": {
+ "tags": [
+ "PostgresInstances"
+ ],
+ "operationId": "PostgresInstances_List",
+ "summary": "List postgres Instance resources in the subscription",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PostgresInstanceListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Gets all Postgres Instance in a subscription.": {
+ "$ref": "./examples/ListSubscriptionPostgresInstance.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureData/postgresInstances": {
+ "get": {
+ "tags": [
+ "PostgresInstances"
+ ],
+ "operationId": "PostgresInstances_ListByResourceGroup",
+ "description": "Get a postgres Instances list by Resource group name.",
+ "summary": "List postgres Instance resources in the resource group",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PostgresInstanceListResult"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Gets all postgres Instances in a resource group.": {
+ "$ref": "./examples/ListByResourceGroupPostgresInstance.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureData/postgresInstances/{postgresInstanceName}": {
+ "get": {
+ "tags": [
+ "PostgresInstances"
+ ],
+ "operationId": "PostgresInstances_Get",
+ "description": "Retrieves a postgres Instance resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "postgresInstanceName",
+ "description": "Name of Postgres Instance",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PostgresInstance"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Gets a postgres Instances.": {
+ "$ref": "./examples/GetPostgresInstance.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PostgresInstances"
+ ],
+ "operationId": "PostgresInstances_Create",
+ "description": "Creates or replaces a postgres Instance resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "postgresInstanceName",
+ "description": "Name of PostgresInstance",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ },
+ {
+ "name": "resource",
+ "description": "The postgres instance",
+ "required": true,
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/PostgresInstance"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PostgresInstance"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/PostgresInstance"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update a Postgres Instance.": {
+ "$ref": "./examples/CreateOrUpdatePostgresInstance.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "PostgresInstances"
+ ],
+ "operationId": "PostgresInstances_Delete",
+ "description": "Deletes a postgres Instance resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "postgresInstanceName",
+ "description": "Name of Postgres Instance",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the Postgres Instance."
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "204": {
+ "description": "The specified Postgres Instance does not exist."
+ }
+ },
+ "x-ms-examples": {
+ "Deletes a PostgresInstances.": {
+ "$ref": "./examples/DeletePostgresInstance.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "PostgresInstances"
+ ],
+ "operationId": "PostgresInstances_Update",
+ "description": "Updates a postgres Instance resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "postgresInstanceName",
+ "description": "Name of Postgres Instance",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The Postgres Instance.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PostgresInstanceUpdate"
+ }
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PostgresInstance"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Updates a postgres Instances tags.": {
+ "$ref": "./examples/UpdatePostgresInstance.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.AzureData/dataControllers": {
+ "get": {
+ "tags": [
+ "DataControllers"
+ ],
+ "operationId": "DataControllers_ListInSubscription",
+ "summary": "List dataController resources in the subscription",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PageOfDataControllerResource"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Gets all dataControllers in a subscription.": {
+ "$ref": "./examples/ListSubscriptionDataController.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureData/dataControllers": {
+ "get": {
+ "tags": [
+ "DataControllers"
+ ],
+ "operationId": "DataControllers_ListInGroup",
+ "summary": "List dataController resources in the resource group",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PageOfDataControllerResource"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Gets all dataControllers in a resource group.": {
+ "$ref": "./examples/ListByResourceGroupDataController.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureData/dataControllers/{dataControllerName}": {
+ "put": {
+ "tags": [
+ "DataControllers"
+ ],
+ "operationId": "DataControllers_PutDataController",
+ "description": "Creates or replaces a dataController resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "dataControllerResource",
+ "description": "desc",
+ "required": true,
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/DataControllerResource"
+ }
+ },
+ {
+ "name": "dataControllerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DataControllerResource"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/DataControllerResource"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or update a Data Controller.": {
+ "$ref": "./examples/CreateOrUpdateDataController.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DataControllers"
+ ],
+ "operationId": "DataControllers_DeleteDataController",
+ "description": "Deletes a dataController resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "dataControllerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the DataController."
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "204": {
+ "description": "The specified DataController does not exist."
+ }
+ },
+ "x-ms-examples": {
+ "Delete a dataController.": {
+ "$ref": "./examples/DeleteDataController.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "DataControllers"
+ ],
+ "operationId": "DataControllers_GetDataController",
+ "description": "Retrieves a dataController resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "dataControllerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DataControllerResource"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a data controller.": {
+ "$ref": "./examples/GetDataController.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "DataControllers"
+ ],
+ "operationId": "DataControllers_PatchDataController",
+ "description": "Updates a dataController resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "name": "dataControllerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "$ref": "#/parameters/apiVersion"
+ },
+ {
+ "name": "dataControllerResource",
+ "description": "The update data controller resource",
+ "required": true,
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/DataControllerUpdate"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DataControllerResource"
+ }
+ },
+ "default": {
+ "description": "*** Error Responses: ***",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Updates a dataController tags.": {
+ "$ref": "./examples/UpdateDataController.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "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"
+ ],
+ "x-ms-enum": {
+ "name": "SkuTier",
+ "modelAsString": false
+ },
+ "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"
+ ]
+ },
+ "Identity": {
+ "description": "Identity for the resource.",
+ "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 identity type.",
+ "enum": [
+ "SystemAssigned"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceIdentityType",
+ "modelAsString": false
+ }
+ }
+ }
+ },
+ "Plan": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "A user defined name of the 3rd Party Artifact that is being procured."
+ },
+ "publisher": {
+ "type": "string",
+ "description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic"
+ },
+ "product": {
+ "type": "string",
+ "description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. "
+ },
+ "promotionCode": {
+ "type": "string",
+ "description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact."
+ },
+ "version": {
+ "type": "string",
+ "description": "The version of the desired product/artifact."
+ }
+ },
+ "description": "Plan for the resource.",
+ "required": [
+ "name",
+ "publisher",
+ "product"
+ ]
+ },
+ "Resource": {
+ "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. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "TrackedResource": {
+ "description": "The resource model definition for a ARM tracked top level resource",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "x-ms-mutability": [
+ "read",
+ "create",
+ "update"
+ ],
+ "description": "Resource tags."
+ },
+ "location": {
+ "type": "string",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ],
+ "description": "The geo-location where the resource lives"
+ },
+ "systemData": {
+ "$ref": "#/definitions/SystemData",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "location"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ]
+ },
+ "ProxyResource": {
+ "description": "The resource model definition for a ARM proxy resource. It will have everything other than required location and tags",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ]
+ },
+ "PageOfDataControllerResource": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "items": {
+ "$ref": "#/definitions/DataControllerResource"
+ },
+ "type": "array"
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "Link to retrieve next page of results."
+ }
+ }
+ },
+ "DataControllerResource": {
+ "description": "Data controller resource",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/TrackedResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/DataControllerProperties",
+ "description": "The data controller's properties",
+ "x-ms-client-flatten": true
+ }
+ },
+ "required": [
+ "properties"
+ ]
+ },
+ "DataControllerUpdate": {
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "description": "Used for updating a data controller resource."
+ },
+ "SystemData": {
+ "description": "Read only system data",
+ "type": "object",
+ "properties": {
+ "createdBy": {
+ "type": "string",
+ "description": "An identifier for the identity that created the resource"
+ },
+ "createdByType": {
+ "$ref": "#/definitions/IdentityType",
+ "description": "The type of identity that created the resource"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The timestamp of resource creation (UTC)"
+ },
+ "lastModifiedBy": {
+ "type": "string",
+ "description": "An identifier for the identity that last modified the resource"
+ },
+ "lastModifiedByType": {
+ "$ref": "#/definitions/IdentityType",
+ "description": "The type of identity that last modified the resource"
+ },
+ "lastModifiedAt": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The timestamp of resource last modification (UTC)"
+ }
+ }
+ },
+ "IdentityType": {
+ "description": "The type of identity that creates/modifies resources",
+ "type": "string",
+ "enum": [
+ "user",
+ "application",
+ "managedIdentity",
+ "key"
+ ],
+ "x-ms-enum": {
+ "name": "IdentityType",
+ "modelAsString": true
+ }
+ },
+ "ResourceSku": {
+ "type": "object",
+ "properties": {
+ "capacity": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "family": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "size": {
+ "type": "string"
+ },
+ "tier": {
+ "type": "string"
+ }
+ }
+ },
+ "DataControllerProperties": {
+ "description": "The data controller properties.",
+ "type": "object",
+ "properties": {
+ "onPremiseProperty": {
+ "$ref": "#/definitions/OnPremiseProperty"
+ },
+ "k8sRaw": {
+ "type": "object",
+ "description": "The raw kubernetes information"
+ },
+ "lastUploadedDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Last uploaded date from on premise cluster. Defaults to current date time"
+ }
+ },
+ "required": [
+ "onPremiseProperty"
+ ]
+ },
+ "OnPremiseProperty": {
+ "description": "Properties from the on premise data controller",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "format": "uuid",
+ "description": "A globally unique ID identifying the associated on premise cluster"
+ },
+ "publicSigningKey": {
+ "type": "string",
+ "description": "Certificate that contains the on premise cluster public key used to verify signing"
+ },
+ "signingCertificateThumbprint": {
+ "type": "string",
+ "description": "Unique thumbprint returned to customer to verify the certificate being uploaded"
+ }
+ },
+ "required": [
+ "id",
+ "publicSigningKey"
+ ]
+ },
+ "PostgresInstanceProperties": {
+ "description": "Postgres Instance properties.",
+ "type": "object",
+ "properties": {
+ "dataControllerId": {
+ "type": "string",
+ "description": "The data controller id"
+ },
+ "admin": {
+ "type": "string",
+ "description": "The instance admin"
+ },
+ "k8sRaw": {
+ "type": "object",
+ "description": "The raw kubernetes information"
+ },
+ "lastUploadedDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Last uploaded date from on premise cluster. Defaults to current date time"
+ }
+ }
+ },
+ "PostgresInstance": {
+ "description": "A Postgres Instance.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/TrackedResource",
+ "description": "null"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PostgresInstanceProperties",
+ "x-ms-client-flatten": true,
+ "description": "null"
+ }
+ }
+ },
+ "PostgresInstanceUpdate": {
+ "description": "An update to a Postgres Instance.",
+ "type": "object",
+ "properties": {
+ "tags": {
+ "description": "Resource tags.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "properties": {
+ "$ref": "#/definitions/PostgresInstanceProperties"
+ }
+ }
+ },
+ "PostgresInstanceListResult": {
+ "description": "A list of PostgresInstance.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PostgresInstance"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "SqlManagedInstanceProperties": {
+ "description": "Properties of sqlManagedInstance.",
+ "type": "object",
+ "properties": {
+ "dataControllerId": {
+ "type": "string",
+ "description": "null"
+ },
+ "instanceEndpoint": {
+ "type": "string",
+ "description": "The on premise instance endpoint"
+ },
+ "admin": {
+ "type": "string",
+ "description": "The instance admin user"
+ },
+ "startTime": {
+ "type": "string",
+ "description": "The instance start time"
+ },
+ "endTime": {
+ "type": "string",
+ "description": "The instance end time"
+ },
+ "vCore": {
+ "type": "string",
+ "description": "The instance vCore"
+ },
+ "k8sRaw": {
+ "type": "object",
+ "description": "The raw kubernetes information"
+ },
+ "lastUploadedDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Last uploaded date from on premise cluster. Defaults to current date time"
+ }
+ }
+ },
+ "SqlManagedInstance": {
+ "description": "A SqlManagedInstance.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/TrackedResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/SqlManagedInstanceProperties",
+ "description": "null",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "SqlManagedInstanceUpdate": {
+ "description": "An update to a SQL Managed Instance.",
+ "type": "object",
+ "properties": {
+ "tags": {
+ "description": "Resource tags.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "SqlManagedInstanceListResult": {
+ "description": "A list of SqlManagedInstance.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SqlManagedInstance"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "SqlServerInstanceProperties": {
+ "description": "Properties of SqlServerInstance.",
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "description": "SQL Server version."
+ },
+ "edition": {
+ "type": "string",
+ "description": "SQL Server edition."
+ },
+ "containerResourceId": {
+ "type": "string",
+ "description": "ARM Resource id of the container resource (Azure Arc for Servers)"
+ },
+ "createTime": {
+ "type": "string",
+ "description": "The time when the resource was created.",
+ "readOnly": true
+ },
+ "updateTime": {
+ "type": "string",
+ "description": "The time when the resource was last updated.",
+ "readOnly": true
+ },
+ "vCore": {
+ "type": "string",
+ "description": "The number of logical processors used by the SQL Server instance."
+ },
+ "status": {
+ "type": "string",
+ "description": "The cloud connectivity status."
+ }
+ },
+ "required": [
+ "version",
+ "edition",
+ "containerResourceId",
+ "vCore",
+ "status"
+ ]
+ },
+ "SqlServerInstance": {
+ "description": "A SqlServerInstance.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/TrackedResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/SqlServerInstanceProperties",
+ "description": "null",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "SqlServerInstanceUpdate": {
+ "description": "An update to a SQL Server Instance.",
+ "type": "object",
+ "properties": {
+ "tags": {
+ "description": "Resource tags.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "SqlServerInstanceListResult": {
+ "description": "A list of SqlServerInstance.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SqlServerInstance"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/CloudErrorBody",
+ "description": "null"
+ }
+ },
+ "description": "An error response from the Azure Data service."
+ },
+ "CloudErrorBody": {
+ "x-ms-external": true,
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "A message describing the error, intended to be suitable for display in a user interface."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the particular error. For example, the name of the property in error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudErrorBody"
+ },
+ "description": "A list of additional details about the error."
+ }
+ },
+ "description": "An error response from the Batch service."
+ },
+ "ODataError": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "A language-independent error name."
+ },
+ "message": {
+ "type": "string",
+ "description": "The error message."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the error (for example, the name of the property in error)."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ODataError"
+ },
+ "description": "The error details."
+ }
+ },
+ "type": "object",
+ "description": "Information about an error."
+ }
+ },
+ "parameters": {
+ "subscriptionId": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Azure subscription"
+ },
+ "resourceGroupName": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Azure resource group",
+ "x-ms-parameter-location": "method"
+ },
+ "location": {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Azure region to use for the request",
+ "x-ms-parameter-location": "method"
+ },
+ "apiVersion": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "The API version to use for the request"
+ },
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "Subscription ID that identifies an Azure subscription.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "client"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "description": "API version to use for the request.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "client"
+ },
+ "ResourceGroupParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "description": "Name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "PostgresInstanceNameParameter": {
+ "in": "path",
+ "name": "postgresInstanceName",
+ "description": "The name of the resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "SqlManagedInstanceNameParameter": {
+ "in": "path",
+ "name": "sqlManagedInstanceName",
+ "description": "The name of the resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "SqlServerInstanceNameParameter": {
+ "in": "path",
+ "name": "sqlServerInstanceName",
+ "description": "The name of the resource.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/CreateOrUpdateDataController.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/CreateOrUpdateDataController.json
new file mode 100644
index 000000000000..7e6f05d3d656
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/CreateOrUpdateDataController.json
@@ -0,0 +1,74 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "dataControllerName": "testdataController",
+ "api-version": "2019-09-08-preview",
+ "dataControllerResource": {
+ "location": "northeurope",
+ "tags": {
+ "mytag": "myval"
+ },
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate being uploaded"
+ }
+ },
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "location": "northeurope",
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/dataControllers/testdataController",
+ "name": "testdataController",
+ "type": "Microsoft.AzureData/dataControllers"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate being uploaded"
+ }
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/dataControllers/testdataController",
+ "name": "testdataController",
+ "type": "Microsoft.AzureData/dataControllers"
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/CreateOrUpdatePostgresInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/CreateOrUpdatePostgresInstance.json
new file mode 100644
index 000000000000..814c5952a8a0
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/CreateOrUpdatePostgresInstance.json
@@ -0,0 +1,133 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "postgresInstanceName": "testpostgresInstance",
+ "api-version": "2019-09-08-preview",
+ "location": "northeurope",
+ "tags": {
+ "mytag": "myval"
+ },
+ "resource": {
+ "location": "eastus",
+ "properties": {
+ "dataControllerId": "dataControllerId",
+ "admin": "admin",
+ "k8sRaw": {
+ "apiVersion": "apiVersion",
+ "kind": "postgresql-12",
+ "metadata": {
+ "creationTimestamp": "2020-08-25T14:55:10Z",
+ "generation": 1,
+ "name": "pg1",
+ "namespace": "test",
+ "resourceVersion": "527780",
+ "selfLink": "/apis/arcdata.microsoft.com/v1alpha1/namespaces/test/postgresql-12s/pg1",
+ "uid": "1111aaaa-ffff-ffff-ffff-99999aaaaaaa"
+ },
+ "spec": {
+ "backups": {
+ "deltaMinutes": 3,
+ "fullMinutes": 10,
+ "tiers": [
+ {
+ "retention": {
+ "maximums": [
+ "6",
+ "512MB"
+ ],
+ "minimums": [
+ "3"
+ ]
+ },
+ "storage": {
+ "volumeSize": "1Gi"
+ }
+ }
+ ]
+ },
+ "engine": {
+ "extensions": [
+ {
+ "name": "citus"
+ }
+ ]
+ },
+ "scale": {
+ "shards": 3
+ },
+ "scheduling": {
+ "default": {
+ "resources": {
+ "requests": {
+ "memory": "256Mi"
+ }
+ }
+ }
+ },
+ "service": {
+ "type": "NodePort"
+ },
+ "storage": {
+ "data": {
+ "className": "local-storage",
+ "size": "5Gi"
+ },
+ "logs": {
+ "className": "local-storage",
+ "size": "5Gi"
+ }
+ }
+ },
+ "status": {
+ "externalEndpoint": null,
+ "readyPods": "4/4",
+ "state": "Ready"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {},
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/PostgresInstance/testpostgresInstance",
+ "name": "testpostgresInstance",
+ "type": "Microsoft.AzureData/PostgresInstance"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {},
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/PostgresInstance/testpostgresInstance",
+ "name": "testsqlregistration",
+ "type": "Microsoft.AzureData/PostgresInstance"
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/CreateOrUpdateSqlManagedInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/CreateOrUpdateSqlManagedInstance.json
new file mode 100644
index 000000000000..ada9ad6f92d1
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/CreateOrUpdateSqlManagedInstance.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "sqlManagedInstanceName": "testsqlManagedInstance",
+ "api-version": "2019-09-08-preview",
+ "sqlManagedInstance": {
+ "location": "northeurope",
+ "tags": {
+ "mytag": "myval"
+ },
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/sqlManagedInstances/testsqlManagedInstance",
+ "name": "testsqlManagedInstance",
+ "type": "Microsoft.AzureData/sqlManagedInstances"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/sqlManagedInstances/testsqlManagedInstance",
+ "name": "testsqlManagedInstance",
+ "type": "Microsoft.AzureData/sqlManagedInstances"
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/CreateOrUpdateSqlServerInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/CreateOrUpdateSqlServerInstance.json
new file mode 100644
index 000000000000..d518665361be
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/CreateOrUpdateSqlServerInstance.json
@@ -0,0 +1,79 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "sqlServerInstanceName": "testsqlServerInstance",
+ "api-version": "2019-09-08-preview",
+ "sqlServerInstance": {
+ "location": "northeurope",
+ "tags": {
+ "mytag": "myval"
+ },
+ "properties": {
+ "version": "SQL Server 2017",
+ "edition": "Developer",
+ "containerResourceId": "Arc Machine Name",
+ "vCore": "4",
+ "status": "Connected"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "version": "SQL Server 2017",
+ "edition": "Developer",
+ "containerResourceId": "Arc Machine Name",
+ "createTime": "01/01/2020 01:01:01",
+ "updateTime": "01/01/2020 01:01:01",
+ "vCore": "4",
+ "status": "Connected"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/SqlServerInstances/testsqlServerInstance",
+ "name": "testsqlServerInstance",
+ "type": "Microsoft.AzureData/SqlServerInstances"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "version": "SQL Server 2017",
+ "edition": "Developer",
+ "containerResourceId": "Arc Machine Name",
+ "createTime": "01/01/2020 01:01:01",
+ "updateTime": "01/01/2020 01:01:01",
+ "vCore": "4",
+ "status": "Connected"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/SqlServerInstances/testsqlServerInstance",
+ "name": "testsqlServerInstance",
+ "type": "Microsoft.AzureData/SqlServerInstances"
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/DeleteDataController.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/DeleteDataController.json
new file mode 100644
index 000000000000..ab58c52a18e2
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/DeleteDataController.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "dataControllerName": "testdataController",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/DeletePostgresInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/DeletePostgresInstance.json
new file mode 100644
index 000000000000..9281c59efd2b
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/DeletePostgresInstance.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "postgresInstanceName": "testpostgresInstance",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/DeleteSqlManagedInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/DeleteSqlManagedInstance.json
new file mode 100644
index 000000000000..f07d23d4e1b0
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/DeleteSqlManagedInstance.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "sqlManagedInstanceName": "testsqlManagedInstance",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/DeleteSqlServerInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/DeleteSqlServerInstance.json
new file mode 100644
index 000000000000..1574521ae769
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/DeleteSqlServerInstance.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "sqlServerInstanceName": "testsqlServerInstance",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/GetDataController.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/GetDataController.json
new file mode 100644
index 000000000000..9f532d270068
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/GetDataController.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "dataControllerName": "testdataController",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate they uploaded"
+ }
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/dataControllers/testdataController",
+ "name": "testdataController",
+ "type": "Microsoft.AzureData/dataControllers"
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/GetPostgresInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/GetPostgresInstance.json
new file mode 100644
index 000000000000..2a13138b39da
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/GetPostgresInstance.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "postgresInstanceName": "testpostgresInstances",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {},
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/PostgresInstances/testpostgresInstances",
+ "name": "testpostgresInstances",
+ "type": "Microsoft.AzureData/PostgresInstances"
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/GetSqlManagedInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/GetSqlManagedInstance.json
new file mode 100644
index 000000000000..c580ac6dd1d3
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/GetSqlManagedInstance.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "sqlManagedInstanceName": "testsqlManagedInstance",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/sqlManagedInstances/testsqlManagedInstance",
+ "name": "testsqlManagedInstance",
+ "type": "Microsoft.AzureData/sqlManagedInstance"
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/GetSqlServerInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/GetSqlServerInstance.json
new file mode 100644
index 000000000000..053724bea5db
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/GetSqlServerInstance.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "sqlServerInstanceName": "testsqlServerInstance",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "version": "SQL Server 2017",
+ "edition": "Developer",
+ "containerResourceId": "Arc Machine Name",
+ "createTime": "01/01/2020 01:01:01",
+ "updateTime": "01/01/2020 01:01:01",
+ "vCore": "4",
+ "status": "Connected"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/SqlServerInstances/testsqlServerInstance",
+ "name": "testsqlServerInstance",
+ "type": "Microsoft.AzureData/SqlServerInstances"
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListByResourceGroupDataController.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListByResourceGroupDataController.json
new file mode 100644
index 000000000000..5328e05743ba
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListByResourceGroupDataController.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate they uploaded"
+ }
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/dataControllers/testdataController1",
+ "name": "testdataController1",
+ "type": "Microsoft.AzureData/dataControllers"
+ },
+ {
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate they uploaded"
+ }
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/dataControllers/testdataController2",
+ "name": "testdataController2",
+ "type": "Microsoft.AzureData/dataControllers"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListByResourceGroupPostgresInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListByResourceGroupPostgresInstance.json
new file mode 100644
index 000000000000..765965efa0b1
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListByResourceGroupPostgresInstance.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {},
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/PostgresInstances/testpostgresInstances1",
+ "name": "testpostgresInstances1",
+ "type": "Microsoft.AzureData/PostgresInstances"
+ },
+ {
+ "properties": {},
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/PostgresInstances/testpostgresInstances2",
+ "name": "testpostgresInstances2",
+ "type": "Microsoft.AzureData/PostgresInstances"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListByResourceGroupSqlManagedInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListByResourceGroupSqlManagedInstance.json
new file mode 100644
index 000000000000..24ec32460103
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListByResourceGroupSqlManagedInstance.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/sqlManagedInstances/sqlManagedInstance1",
+ "name": "sqlManagedInstances1",
+ "type": "Microsoft.AzureData/sqlManagedInstances"
+ },
+ {
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/sqlManagedInstances/sqlManagedInstance2",
+ "name": "sqlManagedInstances2",
+ "type": "Microsoft.AzureData/sqlManagedInstances"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListByResourceGroupSqlServerInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListByResourceGroupSqlServerInstance.json
new file mode 100644
index 000000000000..fe367c20dab3
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListByResourceGroupSqlServerInstance.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "version": "SQL Server 2017",
+ "edition": "Developer",
+ "containerResourceId": "Arc Machine Name",
+ "createTime": "01/01/2020 01:01:01",
+ "updateTime": "01/01/2020 01:01:01",
+ "vCore": "4",
+ "status": "Connected"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/SqlServerInstances/sqlServerInstance1",
+ "name": "sqlServerInstance1",
+ "type": "Microsoft.AzureData/SqlServerInstances"
+ },
+ {
+ "properties": {
+ "version": "SQL Server 2017",
+ "edition": "Developer",
+ "containerResourceId": "Arc Machine Name",
+ "createTime": "01/01/2020 01:01:01",
+ "updateTime": "01/01/2020 01:01:01",
+ "vCore": "4",
+ "status": "Connected"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/SqlServerInstances/sqlServerInstance2",
+ "name": "sqlServerInstance2",
+ "type": "Microsoft.AzureData/SqlServerInstances"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListSubscriptionDataController.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListSubscriptionDataController.json
new file mode 100644
index 000000000000..c5d30225fcf7
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListSubscriptionDataController.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate they uploaded"
+ }
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/dataControllers/testdataController1",
+ "name": "testdataController1",
+ "type": "Microsoft.AzureData/dataControllers"
+ },
+ {
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate they uploaded"
+ }
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/dataControllers/testdataController2",
+ "name": "testdataController2",
+ "type": "Microsoft.AzureData/dataControllers"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListSubscriptionPostgresInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListSubscriptionPostgresInstance.json
new file mode 100644
index 000000000000..cf0d38b56205
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListSubscriptionPostgresInstance.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {},
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/PostgresInstances/testpostgresInstances1",
+ "name": "testpostgresInstances1",
+ "type": "Microsoft.AzureData/PostgresInstances"
+ },
+ {
+ "properties": {},
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/PostgresInstances/testpostgresInstances2",
+ "name": "testpostgresInstances2",
+ "type": "Microsoft.AzureData/PostgresInstances"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListSubscriptionSqlManagedInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListSubscriptionSqlManagedInstance.json
new file mode 100644
index 000000000000..3efaf7439792
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListSubscriptionSqlManagedInstance.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/SqlManagedInstances/sqlManagedInstance1",
+ "name": "sqlManagedInstances1",
+ "type": "Microsoft.AzureData/sqlManagedInstances"
+ },
+ {
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/SqlManagedInstances/sqlManagedInstance2",
+ "name": "sqlManagedInstances2",
+ "type": "Microsoft.AzureData/sqlManagedInstances"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListSubscriptionSqlServerInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListSubscriptionSqlServerInstance.json
new file mode 100644
index 000000000000..60074dcbba5b
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/ListSubscriptionSqlServerInstance.json
@@ -0,0 +1,66 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "api-version": "2019-09-08-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "version": "SQL Server 2017",
+ "edition": "Developer",
+ "containerResourceId": "Arc Machine Name",
+ "createTime": "01/01/2020 01:01:01",
+ "updateTime": "01/01/2020 01:01:01",
+ "vCore": "4",
+ "status": "Connected"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/SqlServerInstances/sqlServerInstance1",
+ "name": "sqlServerInstance1",
+ "type": "Microsoft.AzureData/SqlServerInstances"
+ },
+ {
+ "properties": {
+ "version": "SQL Server 2017",
+ "edition": "Developer",
+ "containerResourceId": "Arc Machine Name",
+ "createTime": "01/01/2020 01:01:01",
+ "updateTime": "01/01/2020 01:01:01",
+ "vCore": "4",
+ "status": "Connected"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/SqlServerInstances/sqlServerInstance2",
+ "name": "sqlServerInstance2",
+ "type": "Microsoft.AzureData/SqlServerInstances"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/UpdateDataController.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/UpdateDataController.json
new file mode 100644
index 000000000000..f7f27e678d4a
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/UpdateDataController.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "dataControllerName": "testdataController1",
+ "api-version": "2019-09-08-preview",
+ "dataControllerResource": {
+ "tags": {
+ "mytag": "myval"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "onPremiseProperty": {
+ "id": "12345678-1234-1234-ab12-1a2b3c4d5e6f",
+ "publicSigningKey": "publicOnPremSigningKey",
+ "signingCertificateThumbprint": "Unique thumbprint returned to customer to verify the certificate they uploaded"
+ }
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/dataControllers/testdataController1",
+ "name": "testdataController1",
+ "type": "Microsoft.AzureData/dataControllers"
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/UpdatePostgresInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/UpdatePostgresInstance.json
new file mode 100644
index 000000000000..f8164922b7d2
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/UpdatePostgresInstance.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "postgresInstanceName": "testpostgresInstance",
+ "api-version": "2019-09-08-preview",
+ "parameters": {
+ "tags": {
+ "mytag": "myval"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {},
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "tags": {
+ "mytag": "myval"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/PostgresInstance/testpostgresInstance",
+ "name": "testpostgresInstance",
+ "type": "Microsoft.AzureData/PostgresInstance"
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/UpdateSqlManagedInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/UpdateSqlManagedInstance.json
new file mode 100644
index 000000000000..37b42b02040e
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/UpdateSqlManagedInstance.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "sqlManagedInstanceName": "testsqlManagedInstance",
+ "api-version": "2019-09-08-preview",
+ "parameters": {
+ "tags": {
+ "mytag": "myval"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "instanceEndpoint": "The on premise instance endpoint",
+ "admin": "Admin user",
+ "startTime": "Instance start time",
+ "endTime": "Instance end time"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/sqlManagedInstances/testsqlManagedInstance",
+ "name": "testsqlManagedInstance",
+ "type": "Microsoft.AzureData/sqlManagedInstances"
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/UpdateSqlServerInstance.json b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/UpdateSqlServerInstance.json
new file mode 100644
index 000000000000..5545f368b407
--- /dev/null
+++ b/specification/azuredata/resource-manager/Microsoft.AzureData/preview/2020-09-08-preview/examples/UpdateSqlServerInstance.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "testrg",
+ "sqlServerInstanceName": "testsqlServerInstance",
+ "api-version": "2019-09-08-preview",
+ "parameters": {
+ "tags": {
+ "mytag": "myval"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "version": "SQL Server 2017",
+ "edition": "Developer",
+ "containerResourceId": "Arc Machine Name",
+ "createTime": "01/01/2020 01:01:01",
+ "updateTime": "01/01/2020 01:01:01",
+ "vCore": "4",
+ "status": "Connected"
+ },
+ "location": "northeurope",
+ "systemData": {
+ "createdBy": "user1",
+ "createdByType": "user",
+ "createdAt": "2020-01-01T17:18:19.1234567Z",
+ "lastModifiedBy": "user2",
+ "lastModifiedByType": "user",
+ "lastModifiedAt": "2020-01-02T17:18:19.1234567Z"
+ },
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.AzureData/SqlServerInstances/testsqlServerInstance",
+ "name": "testsqlServerInstance",
+ "type": "Microsoft.AzureData/SqlServerInstances"
+ }
+ }
+ }
+}
diff --git a/specification/azuredata/resource-manager/readme.azureresourceschema.md b/specification/azuredata/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..25ab4f9115e8
--- /dev/null
+++ b/specification/azuredata/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,36 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-azuredata-2020-09-08-preview
+ - tag: schema-azuredata-2019-07-24-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-azuredata-2020-09-08-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-azuredata-2020-09-08-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.AzureData/preview/2020-09-08-preview/azuredata.json
+
+```
+
+### 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 4ecacc7c3f4c..c862cca522de 100644
--- a/specification/azuredata/resource-manager/readme.md
+++ b/specification/azuredata/resource-manager/readme.md
@@ -29,6 +29,14 @@ openapi-type: arm
tag: package-preview-2019-07
```
+### Tag: package-preview-2020-09-08
+
+These settings apply only when `--tag=package-preview-2020-09-08` is specified on the command line.
+
+```yaml $(tag) == 'package-preview-2020-09-08'
+input-file:
+ - Microsoft.AzureData/preview/2020-09-08-preview/azuredata.json
+```
### Tag: package-preview-2019-07
@@ -66,6 +74,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
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
@@ -88,26 +99,7 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
See configuration in [readme.csharp.md](./readme.csharp.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.AzureData/preview/2019-07-24-preview/azuredata.json
-
-```
+## AzureResourceSchema
-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.
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
\ No newline at end of file
diff --git a/specification/azurestack/resource-manager/readme.azureresourceschema.md b/specification/azurestack/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..1216d57dd7c8
--- /dev/null
+++ b/specification/azurestack/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,27 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-azurestack-2017-06-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### 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
+
+```
diff --git a/specification/azurestack/resource-manager/readme.md b/specification/azurestack/resource-manager/readme.md
index d31ec1ce03e3..34aec4212656 100644
--- a/specification/azurestack/resource-manager/readme.md
+++ b/specification/azurestack/resource-manager/readme.md
@@ -75,6 +75,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- 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#
@@ -136,30 +139,7 @@ generate-interface: true
See configuration in [readme.python.md](./readme.python.md)
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.AzureStack/stable/2017-06-01/AzureStack.json
- - $(this-folder)/Microsoft.AzureStack/stable/2017-06-01/Product.json
- - $(this-folder)/Microsoft.AzureStack/stable/2017-06-01/Registration.json
- - $(this-folder)/Microsoft.AzureStack/stable/2017-06-01/CustomerSubscription.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/azurestackhci.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/azurestackhci.json
index cd58d7b6a8cf..f68062eb0abc 100644
--- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/azurestackhci.json
+++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/azurestackhci.json
@@ -50,7 +50,7 @@
"200": {
"description": "OK",
"schema": {
- "$ref": "#/definitions/OperationList"
+ "$ref": "#/definitions/AvailableOperations"
}
},
"default": {
@@ -387,10 +387,10 @@
"description": "Status of the cluster agent.",
"type": "string",
"enum": [
- "NeverConnected",
+ "NotYetRegistered",
"ConnectedRecently",
"NotConnectedRecently",
- "Expired",
+ "Disconnected",
"Error"
],
"x-ms-enum": {
@@ -425,6 +425,24 @@
"description": "Type of billing applied to the resource.",
"type": "string",
"readOnly": true
+ },
+ "registrationTimestamp": {
+ "description": "First cluster sync timestamp.",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "lastSyncTimestamp": {
+ "description": "Most recent cluster sync timestamp.",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "lastBillingTimestamp": {
+ "description": "Most recent billing meter timestamp.",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
}
}
},
@@ -527,60 +545,76 @@
}
}
},
- "OperationList": {
- "description": "List of available operations.",
+ "AvailableOperations": {
+ "description": "Available operations of the service",
"type": "object",
"properties": {
"value": {
- "description": "List of operations.",
+ "description": "Collection of available operation details",
+ "uniqueItems": false,
"type": "array",
"items": {
- "$ref": "#/definitions/Operation"
+ "$ref": "#/definitions/OperationDetail"
}
},
"nextLink": {
- "description": "Link to the next set of results.",
- "type": "string",
- "readOnly": true
+ "description": "URL client should use to fetch the next page (per server side paging).\r\nIt's null for now, added for future use.",
+ "type": "string"
}
}
},
- "Operation": {
- "description": "Operation details.",
+ "OperationDetail": {
+ "description": "Operation detail payload",
"type": "object",
"properties": {
"name": {
- "description": "Name of the operation.",
- "type": "string",
- "readOnly": true
+ "description": "Name of the operation",
+ "type": "string"
+ },
+ "isDataAction": {
+ "description": "Indicates whether the operation is a data action",
+ "type": "boolean"
},
"display": {
"$ref": "#/definitions/OperationDisplay",
- "description": "Operation properties."
+ "description": "Display of the operation"
+ },
+ "origin": {
+ "description": "Origin of the operation",
+ "type": "string"
+ },
+ "properties": {
+ "$ref": "#/definitions/OperationProperties",
+ "description": "Properties of the operation"
}
}
},
"OperationDisplay": {
- "description": "Operation properties.",
+ "description": "Operation display payload",
"type": "object",
"properties": {
"provider": {
- "description": "Resource provider name.",
+ "description": "Resource provider of the operation",
"type": "string"
},
"resource": {
- "description": "Resource type name.",
+ "description": "Resource of the operation",
"type": "string"
},
"operation": {
- "description": "Operation name.",
+ "description": "Localized friendly name for the operation",
"type": "string"
},
"description": {
- "description": "Operation description.",
+ "description": "Localized friendly description for the operation",
"type": "string"
}
}
+ },
+ "OperationProperties": {
+ "description": "Operation properties.",
+ "type": "object",
+ "properties": {}
}
},
"parameters": {
diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/CreateCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/CreateCluster.json
index 18082930cca6..3c3f911432ac 100644
--- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/CreateCluster.json
+++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/CreateCluster.json
@@ -22,7 +22,7 @@
"tags": {},
"properties": {
"provisioningState": "Succeeded",
- "status": "NeverConnected",
+ "status": "NotYetRegistered",
"cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0",
"aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc",
"aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94",
diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/GetCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/GetCluster.json
index bb9598cbed0c..6e67c668fa20 100644
--- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/GetCluster.json
+++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/GetCluster.json
@@ -15,7 +15,7 @@
"tags": {},
"properties": {
"provisioningState": "Succeeded",
- "status": "NeverConnected",
+ "status": "ConnectedRecently",
"cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0",
"aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc",
"aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94",
@@ -61,7 +61,10 @@
"lastUpdated": "2020-03-11T19:24:42.1946017Z"
},
"trialDaysRemaining": 30,
- "billingModel": "Trial"
+ "billingModel": "Trial",
+ "registrationTimestamp": "2020-03-11T20:44:32.5625121Z",
+ "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z",
+ "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z"
}
}
}
diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/ListClusters.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/ListClusters.json
index b3caac11f578..8d9243f940fc 100644
--- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/ListClusters.json
+++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/ListClusters.json
@@ -15,7 +15,7 @@
"tags": {},
"properties": {
"provisioningState": "Succeeded",
- "status": "NeverConnected",
+ "status": "NotYetRegistered",
"cloudId": "91c2b355-4826-4e96-9164-e3f26dcf1cdd",
"aadClientId": "515da1c2-379e-49b4-9975-09e3e40c86be",
"aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94",
@@ -78,7 +78,10 @@
"lastUpdated": "2020-03-11T19:24:42.1946017Z"
},
"trialDaysRemaining": 30,
- "billingModel": "Trial"
+ "billingModel": "Trial",
+ "registrationTimestamp": "2020-03-11T20:44:32.5625121Z",
+ "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z",
+ "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z"
}
}
]
diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/ListClustersByResourceGroup.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/ListClustersByResourceGroup.json
index 887c644cc669..07d9c1e094d5 100644
--- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/ListClustersByResourceGroup.json
+++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/ListClustersByResourceGroup.json
@@ -16,7 +16,7 @@
"tags": {},
"properties": {
"provisioningState": "Succeeded",
- "status": "NeverConnected",
+ "status": "NotYetRegistered",
"cloudId": "91c2b355-4826-4e96-9164-e3f26dcf1cdd",
"aadClientId": "515da1c2-379e-49b4-9975-09e3e40c86be",
"aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94",
@@ -79,7 +79,10 @@
"lastUpdated": "2020-03-11T19:24:42.1946017Z"
},
"trialDaysRemaining": 30,
- "billingModel": "Trial"
+ "billingModel": "Trial",
+ "registrationTimestamp": "2020-03-11T20:44:32.5625121Z",
+ "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z",
+ "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z"
}
}
]
diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/UpdateCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/UpdateCluster.json
index e7175b8e4413..b3937caf37bd 100644
--- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/UpdateCluster.json
+++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/preview/2020-03-01-preview/examples/UpdateCluster.json
@@ -70,7 +70,10 @@
"lastUpdated": "2020-03-11T19:24:42.1946017Z"
},
"trialDaysRemaining": 30,
- "billingModel": "Trial"
+ "billingModel": "Trial",
+ "registrationTimestamp": "2020-03-11T20:44:32.5625121Z",
+ "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z",
+ "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z"
}
}
}
diff --git a/specification/azurestackhci/resource-manager/readme.azureresourceschema.md b/specification/azurestackhci/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..2525a859d162
--- /dev/null
+++ b/specification/azurestackhci/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-azurestackhci-2020-03-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### 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 d30f27d90903..fcd244ab9316 100644
--- a/specification/azurestackhci/resource-manager/readme.md
+++ b/specification/azurestackhci/resource-manager/readme.md
@@ -67,6 +67,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
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
@@ -89,27 +92,7 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
See configuration in [readme.csharp.md](./readme.csharp.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.AzureStackHCI/preview/2020-03-01-preview/azurestackhci.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/baremetalinfrastructure.json b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/baremetalinfrastructure.json
new file mode 100644
index 000000000000..7e70ac58553f
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/baremetalinfrastructure.json
@@ -0,0 +1,835 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-08-06-preview",
+ "title": "bareMetalInfrastructureClient",
+ "description": "The BareMetalInfrastructure Management client"
+ },
+ "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.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}/start": {
+ "post": {
+ "description": "The operation to start an AzureBareMetal instance",
+ "operationId": "AzureBareMetalInstances_Start",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Start an AzureBareMetal instance": {
+ "$ref": "./examples/AzureBareMetalInstances_Start.json"
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AzureBareMetalInstanceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}/restart": {
+ "post": {
+ "description": "The operation to restart an AzureBareMetal instance",
+ "operationId": "AzureBareMetalInstances_Restart",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Restart an AzureBareMetal instance": {
+ "$ref": "./examples/AzureBareMetalInstances_Restart.json"
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AzureBareMetalInstanceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}/shutdown": {
+ "post": {
+ "description": "The operation to shutdown an AzureBareMetal instance",
+ "operationId": "AzureBareMetalInstances_Shutdown",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Shutdown an AzureBareMetal instance": {
+ "$ref": "./examples/AzureBareMetalInstances_Shutdown.json"
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AzureBareMetalInstanceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances": {
+ "get": {
+ "tags": [
+ "BareMetalInfrastructure"
+ ],
+ "operationId": "AzureBareMetalInstances_ListBySubscription",
+ "summary": "Gets a list of Azure BareMetal instances in the specified subscription.",
+ "description": "Gets a list of AzureBareMetal instances in the specified subscription. The operations returns various properties of each Azure BareMetal instance.",
+ "x-ms-examples": {
+ "List all AzureBareMetal instances in a subscription": {
+ "$ref": "./examples/AzureBareMetalInstances_ListBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AzureBareMetalInstancesListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances": {
+ "get": {
+ "operationId": "AzureBareMetalInstances_List",
+ "description": "Gets a list of AzureBareMetal instances in the specified subscription and resource group",
+ "x-ms-examples": {
+ "List all AzureBareMetal instances in a resource group": {
+ "$ref": "./examples/AzureBareMetalInstances_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AzureBareMetalInstancesListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/providers/Microsoft.BareMetalInfrastructure/operations": {
+ "get": {
+ "tags": [
+ "AzureBareMetal"
+ ],
+ "operationId": "Operations_List",
+ "x-ms-examples": {
+ "List all management operations supported by the AzureBareMetal RP": {
+ "$ref": "./examples/AzureBareMetalOperations_List.json"
+ }
+ },
+ "description": "Gets a list of AzureBareMetal management operations.",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/OperationList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}": {
+ "get": {
+ "tags": [
+ "BareMetalInfrastructure"
+ ],
+ "operationId": "AzureBareMetalInstances_Get",
+ "summary": "Gets an Azure BareMetal instance.",
+ "description": "Gets an Azure BareMetal instance for the specified subscription, resource group, and instance name.",
+ "x-ms-examples": {
+ "Get an AzureBareMetal instance": {
+ "$ref": "./examples/AzureBareMetalInstances_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AzureBareMetalInstanceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AzureBareMetalInstance"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "BareMetalInfrastructure"
+ ],
+ "operationId": "AzureBareMetalInstances_Delete",
+ "x-ms-long-running-operation": true,
+ "summary": "Deletes a Azure BareMetal instance.",
+ "description": "Deletes a Azure BareMetal instance with the specified subscription, resource group, and instance name.",
+ "x-ms-examples": {
+ "Delete an AzureBareMetal instance": {
+ "$ref": "./examples/AzureBareMetalInstances_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AzureBareMetalInstanceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Deleted AzureBareMetalInstance"
+ },
+ "202": {
+ "description": "Deleting AzureBareMetalInstance"
+ },
+ "204": {
+ "description": "No AzureBareMetalInstance to delete"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "BareMetalInfrastructure"
+ ],
+ "operationId": "AzureBareMetalInstances_Update",
+ "summary": "Patches the Tags field of a Azure BareMetal instance.",
+ "description": "Patches the Tags field of a Azure BareMetal instance for the specified subscription, resource group, and instance name.",
+ "x-ms-examples": {
+ "Update Tags field of an AzureBareMetal instance": {
+ "$ref": "./examples/AzureBareMetalInstances_PatchTags.json"
+ },
+ "Delete Tags field of an AzureBareMetal instance": {
+ "$ref": "./examples/AzureBareMetalInstances_PatchTags_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AzureBareMetalInstanceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/TagsParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AzureBareMetalInstance"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AzureBareMetalInstancesListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AzureBareMetalInstance"
+ },
+ "description": "The list of Azure BareMetal instances."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of AzureBareMetal instances."
+ }
+ },
+ "description": "The response from the List AzureBareMetal Instances operation."
+ },
+ "AzureBareMetalInstance": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AzureBareMetalInstanceProperties",
+ "description": "AzureBareMetal instance properties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "description": "AzureBareMetal instance info on Azure (ARM properties and AzureBareMetal properties)"
+ },
+ "AzureBareMetalInstanceProperties": {
+ "properties": {
+ "hardwareProfile": {
+ "$ref": "#/definitions/HardwareProfile",
+ "description": "Specifies the hardware settings for the AzureBareMetal instance."
+ },
+ "storageProfile": {
+ "$ref": "#/definitions/StorageProfile",
+ "description": "Specifies the storage settings for the AzureBareMetal instance disks."
+ },
+ "osProfile": {
+ "$ref": "#/definitions/OSProfile",
+ "description": "Specifies the operating system settings for the AzureBareMetal instance."
+ },
+ "networkProfile": {
+ "$ref": "#/definitions/NetworkProfile",
+ "description": "Specifies the network settings for the AzureBareMetal instance."
+ },
+ "azureBareMetalInstanceId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the AzureBareMetal instance unique ID."
+ },
+ "powerState": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "starting",
+ "started",
+ "stopping",
+ "stopped",
+ "restarting",
+ "unknown"
+ ],
+ "x-ms-enum": {
+ "name": "AzureBareMetalInstancePowerStateEnum",
+ "modelAsString": true
+ },
+ "description": "Resource power state"
+ },
+ "proximityPlacementGroup": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource proximity placement group"
+ },
+ "hwRevision": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Hardware revision of an AzureBareMetal instance"
+ },
+ "partnerNodeId": {
+ "type": "string",
+ "description": "ARM ID of another AzureBareMetalInstance that will share a network with this AzureBareMetalInstance"
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "Accepted",
+ "Creating",
+ "Updating",
+ "Failed",
+ "Succeeded",
+ "Deleting",
+ "Migrating"
+ ],
+ "x-ms-enum": {
+ "name": "AzureBareMetalProvisioningStatesEnum",
+ "modelAsString": true
+ },
+ "description": "State of provisioning of the AzureBareMetalInstance"
+ }
+ },
+ "description": "Describes the properties of an AzureBareMetal instance."
+ },
+ "HardwareProfile": {
+ "properties": {
+ "hardwareType": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "Cisco_UCS",
+ "HPE"
+ ],
+ "x-ms-enum": {
+ "name": "AzureBareMetalHardwareTypeNamesEnum",
+ "modelAsString": true
+ },
+ "description": "Name of the hardware type (vendor and/or their product name)"
+ },
+ "azureBareMetalInstanceSize": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "S72m",
+ "S144m",
+ "S72",
+ "S144",
+ "S192",
+ "S192m",
+ "S192xm",
+ "S96",
+ "S112",
+ "S224",
+ "S224m",
+ "S224om",
+ "S224oo",
+ "S224oom",
+ "S224ooo",
+ "S384",
+ "S384m",
+ "S384xm",
+ "S384xxm",
+ "S448",
+ "S448m",
+ "S448om",
+ "S448oo",
+ "S448oom",
+ "S448ooo",
+ "S576m",
+ "S576xm",
+ "S672",
+ "S672m",
+ "S672om",
+ "S672oo",
+ "S672oom",
+ "S672ooo",
+ "S768",
+ "S768m",
+ "S768xm",
+ "S896",
+ "S896m",
+ "S896om",
+ "S896oo",
+ "S896oom",
+ "S896ooo",
+ "S960m"
+ ],
+ "x-ms-enum": {
+ "name": "azureBareMetalInstanceSizeNamesEnum",
+ "modelAsString": true
+ },
+ "description": "Specifies the AzureBareMetal instance SKU."
+ }
+ },
+ "description": "Specifies the hardware settings for the AzureBareMetal instance."
+ },
+ "Disk": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The disk name."
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Specifies the size of an empty data disk in gigabytes."
+ },
+ "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": "Specifies the disk information fo the AzureBareMetal instance"
+ },
+ "StorageProfile": {
+ "properties": {
+ "nfsIpAddress": {
+ "readOnly": true,
+ "type": "string",
+ "description": "IP Address to connect to storage."
+ },
+ "osDisks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Disk"
+ },
+ "description": "Specifies information about the operating system disk used by baremetal instance."
+ }
+ },
+ "description": "Specifies the storage settings for the AzureBareMetal instance disks."
+ },
+ "OSProfile": {
+ "properties": {
+ "computerName": {
+ "type": "string",
+ "description": "Specifies the host OS name of the AzureBareMetal instance."
+ },
+ "osType": {
+ "readOnly": true,
+ "type": "string",
+ "description": "This property allows you to specify the type of the OS."
+ },
+ "version": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies version of operating system."
+ },
+ "sshPublicKey": {
+ "type": "string",
+ "description": "Specifies the SSH public key used to access the operating system."
+ }
+ },
+ "description": "Specifies the operating system settings for the AzureBareMetal instance."
+ },
+ "NetworkProfile": {
+ "properties": {
+ "networkInterfaces": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IpAddress"
+ },
+ "description": "Specifies the network interfaces for the AzureBareMetal instance."
+ },
+ "circuitId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the circuit id for connecting to express route."
+ }
+ },
+ "description": "Specifies the network settings for the AzureBareMetal instance disks."
+ },
+ "IpAddress": {
+ "properties": {
+ "ipAddress": {
+ "type": "string",
+ "description": "Specifies the IP address of the network interface."
+ }
+ },
+ "description": "Specifies the IP address of the network interface."
+ },
+ "OperationList": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of AzureBareMetal operations"
+ }
+ },
+ "description": "List of AzureBareMetal operations"
+ },
+ "Operation": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the operation being performed on this particular object. This name should match the action name that appears in RBAC / the event service."
+ },
+ "display": {
+ "$ref": "#/definitions/Display",
+ "description": "Displayed AzureBareMetal operation information"
+ },
+ "isDataAction": {
+ "description": "indicates whether an operation is a data action or not.",
+ "type": "boolean"
+ }
+ },
+ "description": "AzureBareMetal operation information"
+ },
+ "Result": {
+ "description": "Sample result definition",
+ "properties": {
+ "sampleProperty": {
+ "type": "string",
+ "description": "Sample property of type string"
+ }
+ }
+ },
+ "Display": {
+ "type": "object",
+ "properties": {
+ "provider": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The localized friendly form of the resource provider name. This form is also expected to include the publisher/company responsible. Use Title Casing. Begin with \"Microsoft\" for 1st party services."
+ },
+ "resource": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The localized friendly form of the resource type related to this action/operation. This form should match the public documentation for the resource provider. Use Title Casing. For examples, refer to the “name” section."
+ },
+ "operation": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The localized friendly name for the operation as shown to the user. This name should be concise (to fit in drop downs), but clear (self-documenting). Use Title Casing and include the entity/resource to which it applies."
+ },
+ "description": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The localized friendly description for the operation as shown to the user. This description should be thorough, yet concise. It will be used in tool-tips and detailed views."
+ },
+ "origin": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The intended executor of the operation; governs the display of the operation in the RBAC UX and the audit logs UX. Default value is 'user,system'"
+ }
+ },
+ "description": "Detailed BareMetal operation information"
+ },
+ "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
+ }
+ }
+ },
+ "Tags": {
+ "type": "object",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Tags field of the AzureBareMetal instance."
+ }
+ },
+ "description": "Tags field of the AzureBareMetal instance."
+ }
+ },
+ "parameters": {
+ "AzureBareMetalInstanceNameParameter": {
+ "name": "azureBareMetalInstanceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the Azure BareMetal on Azure instance.",
+ "x-ms-parameter-location": "method"
+ },
+ "TagsParameter": {
+ "name": "tagsParameter",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Tags"
+ },
+ "description": "Request body that only contains the new Tags field",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Delete.json b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Delete.json
new file mode 100644
index 000000000000..f4506a990d9a
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Delete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "azureBareMetalInstanceName": "myAzureBareMetalInstance"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Get.json b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Get.json
new file mode 100644
index 000000000000..0429abd084e6
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Get.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "azureBareMetalInstanceName": "myAzureBareMetalInstance"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/57d3422f-467a-448e-b798-ebf490849542/resourceGroups/rg10128/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/myAzureBareMetalInstance",
+ "location": "westus2",
+ "name": "myAzureBareMetalInstance",
+ "tags": {
+ "key": "value"
+ },
+ "type": "Microsoft.BareMetalInfrastructure/bareMetalInstances",
+ "properties": {
+ "azureBareMetalInstanceId": "d83c3dfc-db7b-4103-9de7-fddfe6f2812a",
+ "powerState": "restarting",
+ "hwRevision": "Rev 4.2",
+ "hardwareProfile": {
+ "hardwareType": "Cisco_UCS",
+ "azureBareMetalInstanceSize": "S72"
+ },
+ "networkProfile": {
+ "networkInterfaces": [
+ {
+ "ipAddress": "123.123.123.123"
+ }
+ ],
+ "circuitId": "/subscriptions/57d3422f-467a-448e-b798-ebf490849542/resourceGroups/rg10128/providers/Microsoft.Network/expressRouteCircuits/myAzureBareMetalInstance"
+ },
+ "storageProfile": {
+ "nfsIpAddress": "123.123.119.123"
+ },
+ "osProfile": {
+ "computerName": "myComputerName",
+ "osType": "SLES 12 SP2",
+ "version": "12 SP2"
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_List.json b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_List.json
new file mode 100644
index 000000000000..9c82f4fd729f
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_List.json
@@ -0,0 +1,90 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.BareMetalInfrastructure/azureBareMetalInstances/myABMInstance1",
+ "name": "myABMInstance1",
+ "type": "Microsoft.BareMetalInfrastructure/azureBareMetalInstances",
+ "location": "westus",
+ "tags": {
+ "key": "value"
+ },
+ "properties": {
+ "azureBareMetalInstanceId": "00000000-0000-0000-0000-000000000000",
+ "powerState": "started",
+ "proximityPlacementGroup": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myplacementgroup",
+ "hwRevision": "Rev 3",
+ "hardwareProfile": {
+ "hardwareType": "Cisco_UCS",
+ "azureBareMetalInstanceSize": "S72"
+ },
+ "networkProfile": {
+ "networkInterfaces": [
+ {
+ "ipAddress": "100.100.100.100"
+ }
+ ],
+ "circuitId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/expressRouteCircuit"
+ },
+ "storageProfile": {
+ "nfsIpAddress": "200.200.200.200"
+ },
+ "osProfile": {
+ "computerName": "myComputerName1",
+ "osType": "SUSE",
+ "version": "12 SP1",
+ "sshPublicKey": "AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYsc8/tRtx+RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER+A0w/fX8ALuk78ktP31K69LcQgxIsl7rNzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaXfgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN+ffE7iiayQf/2XR+8j4N4bW30DiPtOQLGUrH1y5X/rpNZNlWW2+jGIxqZtgWg7lTy3mXy5x836Sj/6L"
+ },
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.BareMetalInfrastructure/azureBareMetalInstances/myABMInstance2",
+ "name": "myABMInstance2",
+ "type": "Microsoft.BareMetalInfrastructure/azureBareMetalInstances",
+ "location": "westus",
+ "tags": {
+ "key": "value"
+ },
+ "properties": {
+ "azureBareMetalInstanceId": "00000000-0000-0000-0000-000000000000",
+ "powerState": "started",
+ "proximityPlacementGroup": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myplacementgroup",
+ "hwRevision": "Rev 3",
+ "hardwareProfile": {
+ "hardwareType": "HPE",
+ "azureBareMetalInstanceSize": "S384"
+ },
+ "networkProfile": {
+ "networkInterfaces": [
+ {
+ "ipAddress": "100.100.100.101"
+ }
+ ],
+ "circuitId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/expressRouteCircuit"
+ },
+ "storageProfile": {
+ "nfsIpAddress": "200.200.200.201"
+ },
+ "osProfile": {
+ "computerName": "myComputerName2",
+ "osType": "SUSE",
+ "version": "12 SP1",
+ "sshPublicKey": "AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYsc8/tRtx+RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER+A0w/fX8ALuk78ktP31K69LcQgxIsl7rNzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaXfgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN+ffE7iiayQf/2XR+8j4N4bW30DiPtOQLGUrH1y5X/rpNZNlWW2+jGIxqZtgWg7lTy3mXy5x836Sj/6L"
+ },
+ "partnerNodeId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.BareMetalInfrastructure/azureBareMetalInstances/myABMInstance1",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_ListBySubscription.json b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_ListBySubscription.json
new file mode 100644
index 000000000000..412a064ac5ad
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_ListBySubscription.json
@@ -0,0 +1,84 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/57d3422f-467a-448e-b798-ebf490849542/resourceGroups/rg10128/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/myAzureBareMetalInstance",
+ "location": "westus2",
+ "name": "myAzureBareMetalInstance1",
+ "tags": {
+ "key": "value"
+ },
+ "type": "Microsoft.BareMetalInfrastructure/bareMetalInstances",
+ "properties": {
+ "azureBareMetalInstanceId": "d83c3dfc-db7b-4103-9de7-fddfe6f2812a",
+ "powerState": "restarting",
+ "hwRevision": "Rev 4.2",
+ "hardwareProfile": {
+ "hardwareType": "Cisco_UCS",
+ "azureBareMetalInstanceSize": "S72"
+ },
+ "networkProfile": {
+ "networkInterfaces": [
+ {
+ "ipAddress": "123.123.123.123"
+ }
+ ],
+ "circuitId": "/subscriptions/57d3422f-467a-448e-b798-ebf490849542/resourceGroups/rg10128/providers/Microsoft.Network/expressRouteCircuits/myAzureBareMetalInstance"
+ },
+ "storageProfile": {
+ "nfsIpAddress": "123.123.119.123"
+ },
+ "osProfile": {
+ "computerName": "myComputerName",
+ "osType": "SLES 12 SP2",
+ "version": "12 SP2"
+ },
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg10128/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/myAzureBareMetalInstance",
+ "location": "westus2",
+ "name": "myAzureBareMetalInstance2",
+ "tags": {
+ "key": "value"
+ },
+ "type": "Microsoft.BareMetalInfrastructure/bareMetalInstances",
+ "properties": {
+ "azureBareMetalInstanceId": "d83c3dfc-db7b-4103-9de7-fddfe6f2812a",
+ "powerState": "restarting",
+ "hwRevision": "Rev 4.2",
+ "hardwareProfile": {
+ "hardwareType": "Cisco_UCS",
+ "azureBareMetalInstanceSize": "S72"
+ },
+ "networkProfile": {
+ "networkInterfaces": [
+ {
+ "ipAddress": "123.123.123.123"
+ }
+ ],
+ "circuitId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg10128/providers/Microsoft.Network/expressRouteCircuits/myAzureBareMetalInstance"
+ },
+ "storageProfile": {
+ "nfsIpAddress": "123.123.119.123"
+ },
+ "osProfile": {
+ "computerName": "myComputerName2",
+ "osType": "SLES 12 SP2",
+ "version": "12 SP2"
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_PatchTags.json b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_PatchTags.json
new file mode 100644
index 000000000000..5f0080e409f2
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_PatchTags.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "api-version": "2017-11-03-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "azureBareMetalInstanceName": "myABMInstance",
+ "tagsParameter": {
+ "tags": {
+ "testkey": "testvalue"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/myABMInstance",
+ "name": "myABMInstance",
+ "type": "Microsoft.BareMetalInfrastructure/bareMetalInstances",
+ "location": "westus",
+ "tags": {
+ "testkey": "testvalue"
+ },
+ "properties": {
+ "azureBareMetalInstanceId": "00000000-0000-0000-0000-000000000000",
+ "powerState": "started",
+ "proximityPlacementGroup": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myplacementgroup",
+ "hwRevision": "Rev 3",
+ "hardwareProfile": {
+ "hardwareType": "Cisco_UCS",
+ "azureBareMetalInstanceSize": "S72"
+ },
+ "networkProfile": {
+ "networkInterfaces": [
+ {
+ "ipAddress": "100.100.100.100"
+ }
+ ],
+ "circuitId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/expressRouteCircuit"
+ },
+ "storageProfile": {
+ "nfsIpAddress": "200.200.200.200"
+ },
+ "osProfile": {
+ "computerName": "myComputerName",
+ "osType": "SUSE",
+ "version": "12 SP1",
+ "sshPublicKey": "AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYsc8/tRtx+RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER+A0w/fX8ALuk78ktP31K69LcQgxIsl7rNzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaXfgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN+ffE7iiayQf/2XR+8j4N4bW30DiPtOQLGUrH1y5X/rpNZNlWW2+jGIxqZtgWg7lTy3mXy5x836Sj/6L"
+ },
+ "partnerNodeId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/myABMInstance2",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_PatchTags_Delete.json b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_PatchTags_Delete.json
new file mode 100644
index 000000000000..badfe29783ac
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_PatchTags_Delete.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "api-version": "2017-11-03-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "azureBareMetalInstanceName": "myABMInstance",
+ "tagsParameter": {
+ "tags": {}
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/myABMInstance",
+ "name": "myABMInstance",
+ "type": "Microsoft.BareMetalInfrastructure/bareMetalInstances",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "azureBareMetalInstanceId": "00000000-0000-0000-0000-000000000000",
+ "powerState": "started",
+ "proximityPlacementGroup": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myplacementgroup",
+ "hwRevision": "Rev 3",
+ "hardwareProfile": {
+ "hardwareType": "Cisco_UCS",
+ "azureBareMetalInstanceSize": "S72"
+ },
+ "networkProfile": {
+ "networkInterfaces": [
+ {
+ "ipAddress": "100.100.100.100"
+ }
+ ],
+ "circuitId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/expressRouteCircuit"
+ },
+ "storageProfile": {
+ "nfsIpAddress": "200.200.200.200"
+ },
+ "osProfile": {
+ "computerName": "myComputerName",
+ "osType": "SUSE",
+ "version": "12 SP1",
+ "sshPublicKey": "AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYsc8/tRtx+RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER+A0w/fX8ALuk78ktP31K69LcQgxIsl7rNzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaXfgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN+ffE7iiayQf/2XR+8j4N4bW30DiPtOQLGUrH1y5X/rpNZNlWW2+jGIxqZtgWg7lTy3mXy5x836Sj/6L"
+ },
+ "partnerNodeId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/myABMInstance2",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Restart.json b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Restart.json
new file mode 100644
index 000000000000..071580b9d6ea
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Restart.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "azureBareMetalInstanceName": "myABMInstance"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Shutdown.json b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Shutdown.json
new file mode 100644
index 000000000000..071580b9d6ea
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Shutdown.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "azureBareMetalInstanceName": "myABMInstance"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Start.json b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Start.json
new file mode 100644
index 000000000000..071580b9d6ea
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalInstances_Start.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "azureBareMetalInstanceName": "myABMInstance"
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalOperations_List.json b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalOperations_List.json
new file mode 100644
index 000000000000..1821117de8f1
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/examples/AzureBareMetalOperations_List.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "api-version": "2020-08-06-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "AzureBareMetalOp1",
+ "display": {
+ "provider": "AzureBareMetalOp1ProviderName",
+ "resource": "AzureBareMetalOp1ResourceName",
+ "operation": "AzureBareMetalOp1OperationName",
+ "description": "AzureBareMetalOp1Description",
+ "origin": "AzureBareMetalOp1Origin"
+ },
+ "isDataAction": false
+ },
+ {
+ "name": "AzureBareMetalOp2",
+ "display": {
+ "provider": "AzureBareMetalOp2ProviderName",
+ "resource": "AzureBareMetalOp2ResourceName",
+ "operation": "AzureBareMetalOp2OperationName",
+ "description": "AzureBareMetalOp2Description",
+ "origin": "AzureBareMetalOp2Origin"
+ },
+ "isDataAction": true
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/baremetalinfrastructure/resource-manager/readme.azureresourceschema.md b/specification/baremetalinfrastructure/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..0228f0a806a3
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-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/baremetalinfrastructure/resource-manager/readme.csharp.md b/specification/baremetalinfrastructure/resource-manager/readme.csharp.md
new file mode 100644
index 000000000000..8399c777f44f
--- /dev/null
+++ b/specification/baremetalinfrastructure/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.BareMetalInfrastructure
+ output-folder: $(csharp-sdks-folder)/baremetalinfrastructure/management/Microsoft.BareMetalInfrastructure/GeneratedProtocol
+```
diff --git a/specification/baremetalinfrastructure/resource-manager/readme.go.md b/specification/baremetalinfrastructure/resource-manager/readme.go.md
new file mode 100644
index 000000000000..1677cc7854ec
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/readme.go.md
@@ -0,0 +1,19 @@
+## Go
+
+These settings apply only when `--go` is specified on the command line.
+
+```yaml $(go)
+go:
+ license-header: MICROSOFT_APACHE_NO_VERSION
+ clear-output-folder: true
+```
+
+### Tag: package-2020-08-06-preview and go
+
+These settings apply only when `--tag=package-2020-08-06-preview --go` is specified on the command line.
+Please also specify `--go-sdks-folder=`.
+
+```yaml $(tag) == 'package-2020-08-06-preview' && $(go)
+namespace: baremetalinfrastructure
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-08-06-preview/$(namespace)
+```
diff --git a/specification/baremetalinfrastructure/resource-manager/readme.md b/specification/baremetalinfrastructure/resource-manager/readme.md
new file mode 100644
index 000000000000..a56160acb966
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/readme.md
@@ -0,0 +1,80 @@
+# BareMetalInfrastructure
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for BareMetalInfrastructure.
+
+## 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 BareMetalInfrastructure API.
+
+```yaml
+openapi-type: arm
+tag: package-2020-08-06-preview
+```
+
+### Tag: package-2020-08-06-preview
+
+These settings apply only when `--tag=package-2020-08-06-preview` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-08-06-preview'
+input-file:
+ - Microsoft.BareMetalInfrastructure/preview/2020-08-06-preview/baremetalinfrastructure.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
+ - repo: azure-sdk-for-python-track2
+ - repo: azure-sdk-for-java
+ - repo: azure-sdk-for-go
+ - repo: azure-sdk-for-js
+ - repo: azure-sdk-for-ruby
+ after_scripts:
+ - bundle install && rake arm:regen_all_profiles['azure_mgmt_baremetalinfrastructure']
+```
+
+## Go
+
+See configuration in [readme.go.md](./readme.go.md)
+
+## Python
+
+See configuration in [readme.python.md](./readme.python.md)
+
+## Ruby
+
+See configuration in [readme.ruby.md](./readme.ruby.md)
+
+## TypeScript
+
+See configuration in [readme.typescript.md](./readme.typescript.md)
+
+## CSharp
+
+See configuration in [readme.csharp.md](./readme.csharp.md)
diff --git a/specification/baremetalinfrastructure/resource-manager/readme.python.md b/specification/baremetalinfrastructure/resource-manager/readme.python.md
new file mode 100644
index 000000000000..3048a78804d7
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/readme.python.md
@@ -0,0 +1,43 @@
+## Python
+
+These settings apply only when `--python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+Use --python-mode=update if you already have a setup.py and just want to update the code itself.
+
+```yaml !$(track2)
+python-mode: create
+python:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 2
+ namespace: azure.mgmt.baremetalinfrastructure
+ package-name: azure-mgmt-baremetalinfrastructure
+ package-version: 0.1.0
+ clear-output-folder: true
+```
+
+These settings apply only when `--track2` is specified on the command line.
+
+``` yaml $(track2)
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+package-name: azure-mgmt-baremetalinfrastructure
+no-namespace-folders: true
+package-version: 0.1.0
+```
+
+``` yaml $(python-mode) == 'update'
+python:
+ no-namespace-folders: true
+ output-folder: $(python-sdks-folder)/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure
+```
+
+``` yaml $(python-mode) == 'create'
+python:
+ basic-setup-py: true
+ output-folder: $(python-sdks-folder)/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure
+basic-setup-py: true
+output-folder: $(python-sdks-folder)/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure
+```
\ No newline at end of file
diff --git a/specification/baremetalinfrastructure/resource-manager/readme.ruby.md b/specification/baremetalinfrastructure/resource-manager/readme.ruby.md
new file mode 100644
index 000000000000..1c290102b63f
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/readme.ruby.md
@@ -0,0 +1,19 @@
+## Ruby
+
+These settings apply only when `--ruby` is specified on the command line.
+
+```yaml
+package-name: azure_mgmt_baremetalinfrastructure
+package-version: 2020-08-06-preview
+azure-arm: true
+```
+
+### Tag: package-2020-08-06-preview and ruby
+
+These settings apply only when `--tag=package-2020-08-06-preview --ruby` is specified on the command line.
+Please also specify `--ruby-sdks-folder=`.
+
+```yaml $(tag) == 'package-2020-08-06-preview' && $(ruby)
+namespace: Microsoft.BareMetalInfrastructure
+output-folder: $(ruby-sdks-folder)/baremetalinfrastructure
+```
diff --git a/specification/baremetalinfrastructure/resource-manager/readme.typescript.md b/specification/baremetalinfrastructure/resource-manager/readme.typescript.md
new file mode 100644
index 000000000000..8fbf13c9da70
--- /dev/null
+++ b/specification/baremetalinfrastructure/resource-manager/readme.typescript.md
@@ -0,0 +1,13 @@
+## TypeScript
+
+These settings apply only when `--typescript` is specified on the command line.
+Please also specify `--typescript-sdks-folder=`.
+
+```yaml $(typescript)
+typescript:
+ azure-arm: true
+ package-name: "baremetalinfrastructure"
+ output-folder: "$(typescript-sdks-folder)/packages/baremetalinfrastructure"
+ payload-flattening-threshold: 1
+ generate-metadata: true
+```
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-03-01.11.0/BatchService.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-03-01.11.0/BatchService.json
index 4cb90f36b1e5..166919d73a79 100644
--- a/specification/batch/data-plane/Microsoft.Batch/stable/2020-03-01.11.0/BatchService.json
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-03-01.11.0/BatchService.json
@@ -574,7 +574,7 @@
"Accounts"
],
"operationId": "Account_ListPoolNodeCounts",
- "description": "Gets the number of Compute Nodes in each state, grouped by Pool.",
+ "description": "Gets the number of Compute Nodes in each state, grouped by Pool. Note that the numbers returned may not always be up to date. If you need exact node counts, use a list query.",
"x-ms-examples": {
"NodeCountsPayload": {
"$ref": "./examples/AccountListPoolNodeCounts.json"
@@ -5875,7 +5875,7 @@
}
},
"summary": "Gets the Task counts for the specified Job.",
- "description": "Task counts provide a count of the Tasks by active, running or completed Task state, and a count of Tasks which succeeded or failed. Tasks in the preparing state are counted as running.",
+ "description": "Task counts provide a count of the Tasks by active, running or completed Task state, and a count of Tasks which succeeded or failed. Tasks in the preparing state are counted as running. Note that the numbers returned may not always be up to date. If you need exact task counts, use a list query.",
"x-ms-request-id": "request-id",
"parameters": [
{
@@ -15822,7 +15822,8 @@
"destination",
"uploadOptions"
],
- "title": "A specification for uploading files from an Azure Batch Compute Node to another location after the Batch service has finished executing the Task process."
+ "title": "A specification for uploading files from an Azure Batch Compute Node to another location after the Batch service has finished executing the Task process.",
+ "description": "On every file uploads, Batch service writes two log files to the compute node, 'fileuploadout.txt' and 'fileuploaderr.txt'. These log files are used to learn more about a specific failure."
},
"OutputFileDestination": {
"properties": {
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
new file mode 100644
index 000000000000..2e43550bd55e
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/BatchService.json
@@ -0,0 +1,16718 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "BatchService",
+ "version": "2020-09-01.12.0",
+ "description": "A client for issuing REST requests to the Azure Batch service.",
+ "x-ms-code-generation-settings": {
+ "name": "BatchServiceClient"
+ }
+ },
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{batchUrl}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/batchUrl"
+ }
+ ]
+ },
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json; odata=minimalmetadata"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ },
+ {
+ "api_key": []
+ }
+ ],
+ "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"
+ }
+ },
+ "api_key": {
+ "type": "apiKey",
+ "name": "Authorization",
+ "in": "header"
+ }
+ },
+ "paths": {
+ "/applications": {
+ "get": {
+ "tags": [
+ "Applications"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "odata.nextLink"
+ },
+ "operationId": "Application_List",
+ "x-ms-examples": {
+ "List applications": {
+ "$ref": "./examples/ApplicationList.json"
+ }
+ },
+ "summary": "Lists all of the applications available in the specified Account.",
+ "description": "This operation returns only Applications and versions that are available for use on Compute Nodes; that is, that can be used in an Package reference. For administrator information about applications and versions that are not yet available to Compute Nodes, use the Azure portal or the Azure Resource Manager API.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "maxresults",
+ "x-ms-client-name": "maxResults",
+ "default": 1000,
+ "minimum": 1,
+ "maximum": 1000,
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response. A maximum of 1000 applications can be returned.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the list of applications.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationListResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/applications/{applicationId}": {
+ "get": {
+ "tags": [
+ "Applications"
+ ],
+ "operationId": "Application_Get",
+ "x-ms-examples": {
+ "Get applications": {
+ "$ref": "./examples/ApplicationGet.json"
+ }
+ },
+ "summary": "Gets information about the specified Application.",
+ "description": "This operation returns only Applications and versions that are available for use on Compute Nodes; that is, that can be used in an Package reference. For administrator information about Applications and versions that are not yet available to Compute Nodes, use the Azure portal or the Azure Resource Manager API.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Application."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the application.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationSummary"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/poolusagemetrics": {
+ "get": {
+ "tags": [
+ "Pools"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "odata.nextLink"
+ },
+ "operationId": "Pool_ListUsageMetrics",
+ "x-ms-examples": {
+ "Pool list usage metrics": {
+ "$ref": "./examples/PoolListUsageMetrics.json"
+ }
+ },
+ "summary": "Lists the usage metrics, aggregated by Pool across individual time intervals, for the specified Account.",
+ "description": "If you do not specify a $filter clause including a poolId, the response includes all Pools that existed in the Account in the time range of the returned aggregation intervals. If you do not specify a $filter clause including a startTime or endTime these filters default to the start and end times of the last aggregation interval currently available; that is, only the last aggregation interval is returned.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "starttime",
+ "x-ms-client-name": "startTime",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time",
+ "description": "The earliest time from which to include metrics. This must be at least two and a half hours before the current time. If not specified this defaults to the start time of the last aggregation interval currently available.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "endtime",
+ "x-ms-client-name": "endTime",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time",
+ "description": "The latest time from which to include metrics. This must be at least two hours before the current time. If not specified this defaults to the end time of the last aggregation interval currently available.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-account-usage-metrics.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "maxresults",
+ "x-ms-client-name": "maxResults",
+ "default": 1000,
+ "minimum": 1,
+ "maximum": 1000,
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response. A maximum of 1000 results will be returned.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the list of Pool usage details.",
+ "schema": {
+ "$ref": "#/definitions/PoolListUsageMetricsResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/supportedimages": {
+ "get": {
+ "tags": [
+ "Accounts"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "odata.nextLink"
+ },
+ "operationId": "Account_ListSupportedImages",
+ "x-ms-examples": {
+ "Account list node agent skus": {
+ "$ref": "./examples/AccountListSupportedImages.json"
+ }
+ },
+ "summary": "Lists all Virtual Machine Images supported by the Azure Batch service.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-support-images.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "maxresults",
+ "x-ms-client-name": "maxResults",
+ "default": 1000,
+ "minimum": 1,
+ "maximum": 1000,
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response. A maximum of 1000 results will be returned.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the list of supported Virtual Machine Images.",
+ "schema": {
+ "$ref": "#/definitions/AccountListSupportedImagesResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/nodecounts": {
+ "get": {
+ "x-ms-pageable": {
+ "nextLinkName": "odata.nextLink"
+ },
+ "tags": [
+ "Accounts"
+ ],
+ "operationId": "Account_ListPoolNodeCounts",
+ "description": "Gets the number of Compute Nodes in each state, grouped by Pool. Note that the numbers returned may not always be up to date. If you need exact node counts, use a list query.",
+ "x-ms-examples": {
+ "NodeCountsPayload": {
+ "$ref": "./examples/AccountListPoolNodeCounts.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "maxresults",
+ "x-ms-client-name": "maxResults",
+ "default": 10,
+ "minimum": 1,
+ "maximum": 10,
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ }
+ },
+ "description": "The response contains the number of Compute Nodes in each Compute Node state, grouped by Pool.",
+ "schema": {
+ "$ref": "#/definitions/PoolNodeCountsListResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/lifetimepoolstats": {
+ "get": {
+ "tags": [
+ "Pools"
+ ],
+ "operationId": "Pool_GetAllLifetimeStatistics",
+ "x-ms-examples": {
+ "Pool get lifetime statistics": {
+ "$ref": "./examples/PoolGetLifetimeStatistics.json"
+ }
+ },
+ "summary": "Gets lifetime summary statistics for all of the Pools in the specified Account.",
+ "description": "Statistics are aggregated across all Pools that have ever existed in the Account, from Account creation to the last update time of the statistics. The statistics may not be immediately available. The Batch service performs periodic roll-up of statistics. The typical delay is about 30 minutes.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the Pool statistics for the lifetime of the Batch Account.",
+ "schema": {
+ "$ref": "#/definitions/PoolStatistics"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/lifetimejobstats": {
+ "get": {
+ "tags": [
+ "Jobs"
+ ],
+ "operationId": "Job_GetAllLifetimeStatistics",
+ "x-ms-examples": {
+ "Job get lifetime statistics": {
+ "$ref": "./examples/JobGetLifetimeStatistics.json"
+ }
+ },
+ "summary": "Gets lifetime summary statistics for all of the Jobs in the specified Account.",
+ "description": "Statistics are aggregated across all Jobs that have ever existed in the Account, from Account creation to the last update time of the statistics. The statistics may not be immediately available. The Batch service performs periodic roll-up of statistics. The typical delay is about 30 minutes.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the Job statistics for the lifetime of the Batch Account.",
+ "schema": {
+ "$ref": "#/definitions/JobStatistics"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/certificates": {
+ "post": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "Certificate_Add",
+ "x-ms-examples": {
+ "Certificate add": {
+ "$ref": "./examples/CertificateAdd.json"
+ }
+ },
+ "summary": "Adds a Certificate to the specified Account.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "certificate",
+ "in": "body",
+ "description": "The Certificate to be added.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateAddParameter"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Certificates"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "odata.nextLink"
+ },
+ "operationId": "Certificate_List",
+ "x-ms-examples": {
+ "Certificate list": {
+ "$ref": "./examples/CertificateList.json"
+ }
+ },
+ "summary": "Lists all of the Certificates that have been added to the specified Account.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-certificates.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "maxresults",
+ "x-ms-client-name": "maxResults",
+ "default": 1000,
+ "minimum": 1,
+ "maximum": 1000,
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response. A maximum of 1000 Certificates can be returned.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the list of Certificates.",
+ "schema": {
+ "$ref": "#/definitions/CertificateListResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})/canceldelete": {
+ "post": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "Certificate_CancelDeletion",
+ "x-ms-examples": {
+ "Certificate cancel delete": {
+ "$ref": "./examples/CertificateCancelDelete.json"
+ }
+ },
+ "summary": "Cancels a failed deletion of a Certificate from the specified Account.",
+ "description": "If you try to delete a Certificate that is being used by a Pool or Compute Node, the status of the Certificate changes to deleteFailed. If you decide that you want to continue using the Certificate, you can use this operation to set the status of the Certificate back to active. If you intend to delete the Certificate, you do not need to run this operation after the deletion failed. You must make sure that the Certificate is not being used by any resources, and then you can try again to delete the Certificate.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "thumbprintAlgorithm",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The algorithm used to derive the thumbprint parameter. This must be sha1."
+ },
+ {
+ "name": "thumbprint",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The thumbprint of the Certificate being deleted."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})": {
+ "delete": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "Certificate_Delete",
+ "x-ms-examples": {
+ "Certificate delete": {
+ "$ref": "./examples/CertificateDelete.json"
+ }
+ },
+ "summary": "Deletes a Certificate from the specified Account.",
+ "description": "You cannot delete a Certificate if a resource (Pool or Compute Node) is using it. Before you can delete a Certificate, you must therefore make sure that the Certificate is not associated with any existing Pools, the Certificate is not installed on any Nodes (even if you remove a Certificate from a Pool, it is not removed from existing Compute Nodes in that Pool until they restart), and no running Tasks depend on the Certificate. If you try to delete a Certificate that is in use, the deletion fails. The Certificate status changes to deleteFailed. You can use Cancel Delete Certificate to set the status back to active if you decide that you want to continue using the Certificate.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "thumbprintAlgorithm",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The algorithm used to derive the thumbprint parameter. This must be sha1."
+ },
+ {
+ "name": "thumbprint",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The thumbprint of the Certificate to be deleted."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Certificates"
+ ],
+ "operationId": "Certificate_Get",
+ "x-ms-examples": {
+ "Certificate get": {
+ "$ref": "./examples/CertificateGet.json"
+ }
+ },
+ "description": "Gets information about the specified Certificate.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "thumbprintAlgorithm",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The algorithm used to derive the thumbprint parameter. This must be sha1."
+ },
+ {
+ "name": "thumbprint",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The thumbprint of the Certificate to get."
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the Certificate.",
+ "schema": {
+ "$ref": "#/definitions/Certificate"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs/{jobId}/tasks/{taskId}/files/{filePath}": {
+ "delete": {
+ "tags": [
+ "Files"
+ ],
+ "operationId": "File_DeleteFromTask",
+ "x-ms-examples": {
+ "File delete from task": {
+ "$ref": "./examples/FileDeleteFromTask.json"
+ }
+ },
+ "summary": "Deletes the specified Task file from the Compute Node where the Task ran.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job that contains the Task."
+ },
+ {
+ "name": "taskId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Task whose file you want to delete."
+ },
+ {
+ "name": "filePath",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The path to the Task file or directory that you want to delete."
+ },
+ {
+ "name": "recursive",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether to delete children of a directory. If the filePath parameter represents a directory instead of a file, you can set recursive to true to delete the directory and all of the files and subdirectories in it. If recursive is false then the directory must be empty or deletion will fail."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Files"
+ ],
+ "operationId": "File_GetFromTask",
+ "x-ms-examples": {
+ "Get File From Task": {
+ "$ref": "./examples/FileGetFromTask.json"
+ }
+ },
+ "description": "Returns the content of the specified Task file.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job that contains the Task."
+ },
+ {
+ "name": "taskId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Task whose file you want to retrieve."
+ },
+ {
+ "name": "filePath",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The path to the Task file that you want to get the content of."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-range",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "The byte range to be retrieved. The default is to retrieve the entire file. The format is bytes=startRange-endRange.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "produces": [
+ "application/json",
+ "application/octet-stream"
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "ocp-creation-time": {
+ "description": "The file creation time.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "ocp-batch-file-isdirectory": {
+ "description": "Whether the object represents a directory.",
+ "type": "boolean"
+ },
+ "ocp-batch-file-url": {
+ "description": "The URL of the file.",
+ "type": "string"
+ },
+ "ocp-batch-file-mode": {
+ "description": "The file mode attribute in octal format.",
+ "type": "string"
+ },
+ "Content-Type": {
+ "description": "The content type of the file.",
+ "type": "string"
+ },
+ "Content-Length": {
+ "description": "The length of the file.",
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "description": "A response containing the file content.",
+ "schema": {
+ "type": "object",
+ "format": "file"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "head": {
+ "tags": [
+ "Files"
+ ],
+ "operationId": "File_GetPropertiesFromTask",
+ "x-ms-examples": {
+ "File get properties from task": {
+ "$ref": "./examples/FileGetPropertiesFromTask.json"
+ }
+ },
+ "description": "Gets the properties of the specified Task file.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job that contains the Task."
+ },
+ {
+ "name": "taskId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Task whose file you want to get the properties of."
+ },
+ {
+ "name": "filePath",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The path to the Task file that you want to get the properties of."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "ocp-creation-time": {
+ "description": "The file creation time.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "ocp-batch-file-isdirectory": {
+ "description": "Whether the object represents a directory.",
+ "type": "boolean"
+ },
+ "ocp-batch-file-url": {
+ "description": "The URL of the file.",
+ "type": "string"
+ },
+ "ocp-batch-file-mode": {
+ "description": "The file mode attribute in octal format.",
+ "type": "string"
+ },
+ "Content-Type": {
+ "description": "The content type of the file.",
+ "type": "string"
+ },
+ "Content-Length": {
+ "description": "The length of the file.",
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "description": "A response containing the file properties."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/nodes/{nodeId}/files/{filePath}": {
+ "delete": {
+ "tags": [
+ "Files"
+ ],
+ "operationId": "File_DeleteFromComputeNode",
+ "x-ms-examples": {
+ "File delete from node": {
+ "$ref": "./examples/FileDeleteFromNode.json"
+ }
+ },
+ "summary": "Deletes the specified file from the Compute Node.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Compute Node from which you want to delete the file."
+ },
+ {
+ "name": "filePath",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The path to the file or directory that you want to delete."
+ },
+ {
+ "name": "recursive",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether to delete children of a directory. If the filePath parameter represents a directory instead of a file, you can set recursive to true to delete the directory and all of the files and subdirectories in it. If recursive is false then the directory must be empty or deletion will fail."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Files"
+ ],
+ "operationId": "File_GetFromComputeNode",
+ "x-ms-examples": {
+ "Get File From Compute Node": {
+ "$ref": "./examples/FileGetFromNode.json"
+ }
+ },
+ "description": "Returns the content of the specified Compute Node file.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Compute Node that contains the file."
+ },
+ {
+ "name": "filePath",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The path to the Compute Node file that you want to get the content of."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-range",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "The byte range to be retrieved. The default is to retrieve the entire file. The format is bytes=startRange-endRange.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "produces": [
+ "application/json",
+ "application/octet-stream"
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "ocp-creation-time": {
+ "description": "The file creation time.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "ocp-batch-file-isdirectory": {
+ "description": "Whether the object represents a directory.",
+ "type": "boolean"
+ },
+ "ocp-batch-file-url": {
+ "description": "The URL of the file.",
+ "type": "string"
+ },
+ "ocp-batch-file-mode": {
+ "description": "The file mode attribute in octal format.",
+ "type": "string"
+ },
+ "Content-Type": {
+ "description": "The content type of the file.",
+ "type": "string"
+ },
+ "Content-Length": {
+ "description": "The length of the file.",
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "description": "The file content.",
+ "schema": {
+ "type": "object",
+ "format": "file"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "head": {
+ "tags": [
+ "Files"
+ ],
+ "operationId": "File_GetPropertiesFromComputeNode",
+ "x-ms-examples": {
+ "File get properties from node": {
+ "$ref": "./examples/FileGetPropertiesFromNode.json"
+ }
+ },
+ "description": "Gets the properties of the specified Compute Node file.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Compute Node that contains the file."
+ },
+ {
+ "name": "filePath",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The path to the Compute Node file that you want to get the properties of."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "ocp-creation-time": {
+ "description": "The file creation time.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "ocp-batch-file-isdirectory": {
+ "description": "Whether the object represents a directory.",
+ "type": "boolean"
+ },
+ "ocp-batch-file-url": {
+ "description": "The URL of the file.",
+ "type": "string"
+ },
+ "ocp-batch-file-mode": {
+ "description": "The file mode attribute in octal format.",
+ "type": "string"
+ },
+ "Content-Type": {
+ "description": "The content type of the file.",
+ "type": "string"
+ },
+ "Content-Length": {
+ "description": "The length of the file.",
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "description": "A response containing the file properties."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs/{jobId}/tasks/{taskId}/files": {
+ "get": {
+ "tags": [
+ "Files"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "odata.nextLink"
+ },
+ "operationId": "File_ListFromTask",
+ "x-ms-examples": {
+ "File list from task": {
+ "$ref": "./examples/FileListFromTask.json"
+ }
+ },
+ "summary": "Lists the files in a Task's directory on its Compute Node.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job that contains the Task."
+ },
+ {
+ "name": "taskId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Task whose files you want to list."
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-task-files.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "recursive",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether to list children of the Task directory. This parameter can be used in combination with the filter parameter to list specific type of files."
+ },
+ {
+ "name": "maxresults",
+ "x-ms-client-name": "maxResults",
+ "default": 1000,
+ "minimum": 1,
+ "maximum": 1000,
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response. A maximum of 1000 files can be returned.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the list of files.",
+ "schema": {
+ "$ref": "#/definitions/NodeFileListResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/nodes/{nodeId}/files": {
+ "get": {
+ "tags": [
+ "Files"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "odata.nextLink"
+ },
+ "operationId": "File_ListFromComputeNode",
+ "x-ms-examples": {
+ "File list from node": {
+ "$ref": "./examples/FileListFromNode.json"
+ }
+ },
+ "summary": "Lists all of the files in Task directories on the specified Compute Node.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Compute Node whose files you want to list."
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-compute-node-files.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "recursive",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether to list children of a directory."
+ },
+ {
+ "name": "maxresults",
+ "x-ms-client-name": "maxResults",
+ "default": 1000,
+ "minimum": 1,
+ "maximum": 1000,
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response. A maximum of 1000 files can be returned.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the list of files.",
+ "schema": {
+ "$ref": "#/definitions/NodeFileListResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobschedules/{jobScheduleId}": {
+ "head": {
+ "tags": [
+ "JobSchedules"
+ ],
+ "operationId": "JobSchedule_Exists",
+ "x-ms-examples": {
+ "Check Job Schedule Exists": {
+ "$ref": "./examples/JobScheduleExists.json"
+ }
+ },
+ "summary": "Checks the specified Job Schedule exists.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobScheduleId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job Schedule which you want to check."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing headers related to the Job Schedule, if it exists."
+ },
+ "404": {
+ "description": "The Job Schedule does not exist."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "JobSchedules"
+ ],
+ "operationId": "JobSchedule_Delete",
+ "x-ms-examples": {
+ "JobSchedule delete": {
+ "$ref": "./examples/JobScheduleDelete.json"
+ }
+ },
+ "summary": "Deletes a Job Schedule from the specified Account.",
+ "description": "When you delete a Job Schedule, this also deletes all Jobs and Tasks under that schedule. When Tasks are deleted, all the files in their working directories on the Compute Nodes are also deleted (the retention period is ignored). The Job Schedule statistics are no longer accessible once the Job Schedule is deleted, though they are still counted towards Account lifetime statistics.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobScheduleId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job Schedule to delete."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "JobSchedules"
+ ],
+ "operationId": "JobSchedule_Get",
+ "x-ms-examples": {
+ "JobSchedule get": {
+ "$ref": "./examples/JobScheduleGet.json"
+ }
+ },
+ "description": "Gets information about the specified Job Schedule.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobScheduleId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job Schedule to get."
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $expand clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the Job Schedule.",
+ "schema": {
+ "$ref": "#/definitions/CloudJobSchedule"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "JobSchedules"
+ ],
+ "operationId": "JobSchedule_Patch",
+ "x-ms-examples": {
+ "JobSchedule patch": {
+ "$ref": "./examples/JobSchedulePatch.json"
+ }
+ },
+ "summary": "Updates the properties of the specified Job Schedule.",
+ "description": "This replaces only the Job Schedule properties specified in the request. For example, if the schedule property is not specified with this request, then the Batch service will keep the existing schedule. Changes to a Job Schedule only impact Jobs created by the schedule after the update has taken place; currently running Jobs are unaffected.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobScheduleId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job Schedule to update."
+ },
+ {
+ "name": "jobSchedulePatchParameter",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/JobSchedulePatchParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "JobSchedules"
+ ],
+ "operationId": "JobSchedule_Update",
+ "x-ms-examples": {
+ "JobSchedule update": {
+ "$ref": "./examples/JobScheduleUpdate.json"
+ }
+ },
+ "summary": "Updates the properties of the specified Job Schedule.",
+ "description": "This fully replaces all the updatable properties of the Job Schedule. For example, if the schedule property is not specified with this request, then the Batch service will remove the existing schedule. Changes to a Job Schedule only impact Jobs created by the schedule after the update has taken place; currently running Jobs are unaffected.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobScheduleId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job Schedule to update."
+ },
+ {
+ "name": "jobScheduleUpdateParameter",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/JobScheduleUpdateParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobschedules/{jobScheduleId}/disable": {
+ "post": {
+ "tags": [
+ "JobSchedules"
+ ],
+ "operationId": "JobSchedule_Disable",
+ "x-ms-examples": {
+ "JobSchedule disable": {
+ "$ref": "./examples/JobScheduleDisable.json"
+ }
+ },
+ "summary": "Disables a Job Schedule.",
+ "description": "No new Jobs will be created until the Job Schedule is enabled again.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobScheduleId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job Schedule to disable."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobschedules/{jobScheduleId}/enable": {
+ "post": {
+ "tags": [
+ "JobSchedules"
+ ],
+ "operationId": "JobSchedule_Enable",
+ "x-ms-examples": {
+ "JobSchedule enable": {
+ "$ref": "./examples/JobScheduleEnable.json"
+ }
+ },
+ "summary": "Enables a Job Schedule.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobScheduleId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job Schedule to enable."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobschedules/{jobScheduleId}/terminate": {
+ "post": {
+ "tags": [
+ "JobSchedules"
+ ],
+ "operationId": "JobSchedule_Terminate",
+ "x-ms-examples": {
+ "JobSchedule terminate": {
+ "$ref": "./examples/JobScheduleTerminate.json"
+ }
+ },
+ "summary": "Terminates a Job Schedule.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobScheduleId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job Schedule to terminates."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobschedules": {
+ "post": {
+ "tags": [
+ "JobSchedules"
+ ],
+ "operationId": "JobSchedule_Add",
+ "x-ms-examples": {
+ "Add a basic JobSchedule": {
+ "$ref": "./examples/JobScheduleAdd_Basic.json"
+ },
+ "Add a complex JobScheduleAdd": {
+ "$ref": "./examples/JobScheduleAdd_Complex.json"
+ }
+ },
+ "summary": "Adds a Job Schedule to the specified Account.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "cloudJobSchedule",
+ "in": "body",
+ "description": "The Job Schedule to be added.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/JobScheduleAddParameter"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "JobSchedules"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "odata.nextLink"
+ },
+ "operationId": "JobSchedule_List",
+ "x-ms-examples": {
+ "JobSchedule list": {
+ "$ref": "./examples/JobScheduleList.json"
+ }
+ },
+ "summary": "Lists all of the Job Schedules in the specified Account.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-schedules.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $expand clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "maxresults",
+ "x-ms-client-name": "maxResults",
+ "default": 1000,
+ "minimum": 1,
+ "maximum": 1000,
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response. A maximum of 1000 Job Schedules can be returned.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the list of Job Schedules.",
+ "schema": {
+ "$ref": "#/definitions/CloudJobScheduleListResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs/{jobId}": {
+ "delete": {
+ "tags": [
+ "Jobs"
+ ],
+ "operationId": "Job_Delete",
+ "x-ms-examples": {
+ "Delete Job": {
+ "$ref": "./examples/JobDelete.json"
+ }
+ },
+ "summary": "Deletes a Job.",
+ "description": "Deleting a Job also deletes all Tasks that are part of that Job, and all Job statistics. This also overrides the retention period for Task data; that is, if the Job contains Tasks which are still retained on Compute Nodes, the Batch services deletes those Tasks' working directories and all their contents. When a Delete Job request is received, the Batch service sets the Job to the deleting state. All update operations on a Job that is in deleting state will fail with status code 409 (Conflict), with additional information indicating that the Job is being deleted.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job to delete."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Jobs"
+ ],
+ "operationId": "Job_Get",
+ "x-ms-examples": {
+ "Job get": {
+ "$ref": "./examples/JobGet.json"
+ }
+ },
+ "summary": "Gets information about the specified Job.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job."
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $expand clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the Job.",
+ "schema": {
+ "$ref": "#/definitions/CloudJob"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Jobs"
+ ],
+ "operationId": "Job_Patch",
+ "x-ms-examples": {
+ "Job patch": {
+ "$ref": "./examples/JobPatch.json"
+ }
+ },
+ "summary": "Updates the properties of the specified Job.",
+ "description": "This replaces only the Job properties specified in the request. For example, if the Job has constraints, and a request does not specify the constraints element, then the Job keeps the existing constraints.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job whose properties you want to update."
+ },
+ {
+ "name": "jobPatchParameter",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/JobPatchParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Jobs"
+ ],
+ "operationId": "Job_Update",
+ "x-ms-examples": {
+ "Job update": {
+ "$ref": "./examples/JobUpdate.json"
+ }
+ },
+ "summary": "Updates the properties of the specified Job.",
+ "description": "This fully replaces all the updatable properties of the Job. For example, if the Job has constraints associated with it and if constraints is not specified with this request, then the Batch service will remove the existing constraints.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job whose properties you want to update."
+ },
+ {
+ "name": "jobUpdateParameter",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/JobUpdateParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs/{jobId}/disable": {
+ "post": {
+ "tags": [
+ "Jobs"
+ ],
+ "operationId": "Job_Disable",
+ "x-ms-examples": {
+ "Job disable": {
+ "$ref": "./examples/JobDisable.json"
+ }
+ },
+ "summary": "Disables the specified Job, preventing new Tasks from running.",
+ "description": "The Batch Service immediately moves the Job to the disabling state. Batch then uses the disableTasks parameter to determine what to do with the currently running Tasks of the Job. The Job remains in the disabling state until the disable operation is completed and all Tasks have been dealt with according to the disableTasks option; the Job then moves to the disabled state. No new Tasks are started under the Job until it moves back to active state. If you try to disable a Job that is in any state other than active, disabling, or disabled, the request fails with status code 409.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job to disable."
+ },
+ {
+ "name": "jobDisableParameter",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/JobDisableParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs/{jobId}/enable": {
+ "post": {
+ "tags": [
+ "Jobs"
+ ],
+ "operationId": "Job_Enable",
+ "x-ms-examples": {
+ "Job enable": {
+ "$ref": "./examples/JobEnable.json"
+ }
+ },
+ "summary": "Enables the specified Job, allowing new Tasks to run.",
+ "description": "When you call this API, the Batch service sets a disabled Job to the enabling state. After the this operation is completed, the Job moves to the active state, and scheduling of new Tasks under the Job resumes. The Batch service does not allow a Task to remain in the active state for more than 180 days. Therefore, if you enable a Job containing active Tasks which were added more than 180 days ago, those Tasks will not run.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job to enable."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs/{jobId}/terminate": {
+ "post": {
+ "tags": [
+ "Jobs"
+ ],
+ "operationId": "Job_Terminate",
+ "x-ms-examples": {
+ "Job terminate": {
+ "$ref": "./examples/JobTerminate.json"
+ }
+ },
+ "summary": "Terminates the specified Job, marking it as completed.",
+ "description": "When a Terminate Job request is received, the Batch service sets the Job to the terminating state. The Batch service then terminates any running Tasks associated with the Job and runs any required Job release Tasks. Then the Job moves into the completed state. If there are any Tasks in the Job in the active state, they will remain in the active state. Once a Job is terminated, new Tasks cannot be added and any remaining active Tasks will not be scheduled.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job to terminate."
+ },
+ {
+ "name": "jobTerminateParameter",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/JobTerminateParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs": {
+ "post": {
+ "tags": [
+ "Jobs"
+ ],
+ "operationId": "Job_Add",
+ "x-ms-examples": {
+ "Add a basic job": {
+ "$ref": "./examples/JobAdd_Basic.json"
+ },
+ "Add a complex job": {
+ "$ref": "./examples/JobAdd_Complex.json"
+ }
+ },
+ "summary": "Adds a Job to the specified Account.",
+ "description": "The Batch service supports two ways to control the work done as part of a Job. In the first approach, the user specifies a Job Manager Task. The Batch service launches this Task when it is ready to start the Job. The Job Manager Task controls all other Tasks that run under this Job, by using the Task APIs. In the second approach, the user directly controls the execution of Tasks under an active Job, by using the Task APIs. Also note: when naming Jobs, avoid including sensitive information such as user names or secret project names. This information may appear in telemetry logs accessible to Microsoft Support engineers.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "job",
+ "in": "body",
+ "description": "The Job to be added.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/JobAddParameter"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Jobs"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "odata.nextLink"
+ },
+ "operationId": "Job_List",
+ "x-ms-examples": {
+ "Job list": {
+ "$ref": "./examples/JobList.json"
+ }
+ },
+ "summary": "Lists all of the Jobs in the specified Account.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $expand clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "maxresults",
+ "x-ms-client-name": "maxResults",
+ "default": 1000,
+ "minimum": 1,
+ "maximum": 1000,
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response. A maximum of 1000 Jobs can be returned.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the list of Jobs.",
+ "schema": {
+ "$ref": "#/definitions/CloudJobListResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobschedules/{jobScheduleId}/jobs": {
+ "get": {
+ "tags": [
+ "Jobs"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "odata.nextLink"
+ },
+ "x-ms-examples": {
+ "List Job Under Job Schedule": {
+ "$ref": "./examples/JobListFromJobSchedule.json"
+ }
+ },
+ "operationId": "Job_ListFromJobSchedule",
+ "summary": "Lists the Jobs that have been created under the specified Job Schedule.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobScheduleId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job Schedule from which you want to get a list of Jobs."
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs-in-a-job-schedule.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $expand clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "maxresults",
+ "x-ms-client-name": "maxResults",
+ "default": 1000,
+ "minimum": 1,
+ "maximum": 1000,
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response. A maximum of 1000 Jobs can be returned.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the list of Jobs.",
+ "schema": {
+ "$ref": "#/definitions/CloudJobListResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs/{jobId}/jobpreparationandreleasetaskstatus": {
+ "get": {
+ "tags": [
+ "Jobs"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "odata.nextLink"
+ },
+ "operationId": "Job_ListPreparationAndReleaseTaskStatus",
+ "x-ms-examples": {
+ "Job list preparation and release task status": {
+ "$ref": "./examples/JobListPreparationAndReleaseTaskStatus.json"
+ }
+ },
+ "summary": "Lists the execution status of the Job Preparation and Job Release Task for the specified Job across the Compute Nodes where the Job has run.",
+ "description": "This API returns the Job Preparation and Job Release Task status on all Compute Nodes that have run the Job Preparation or Job Release Task. This includes Compute Nodes which have since been removed from the Pool. If this API is invoked on a Job which has no Job Preparation or Job Release Task, the Batch service returns HTTP status code 409 (Conflict) with an error code of JobPreparationTaskNotSpecified.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job."
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-preparation-and-release-status.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "maxresults",
+ "x-ms-client-name": "maxResults",
+ "default": 1000,
+ "minimum": 1,
+ "maximum": 1000,
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response. A maximum of 1000 Tasks can be returned.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing a list of Job Preparation and Job Release Task statuses.",
+ "schema": {
+ "$ref": "#/definitions/CloudJobListPreparationAndReleaseTaskStatusResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service. If this API is invoked on a Job which has no Job Preparation or Job Release Task, the Batch service returns HTTP status code 409.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs/{jobId}/taskcounts": {
+ "get": {
+ "tags": [
+ "Jobs"
+ ],
+ "operationId": "Job_GetTaskCounts",
+ "x-ms-examples": {
+ "Job get task counts": {
+ "$ref": "./examples/JobGetTaskCounts.json"
+ }
+ },
+ "summary": "Gets the Task counts for the specified Job.",
+ "description": "Task counts provide a count of the Tasks by active, running or completed Task state, and a count of Tasks which succeeded or failed. Tasks in the preparing state are counted as running. Note that the numbers returned may not always be up to date. If you need exact task counts, use a list query.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ }
+ },
+ "description": "A response containing the Task counts for the specified Job.",
+ "schema": {
+ "$ref": "#/definitions/TaskCountsResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools": {
+ "post": {
+ "tags": [
+ "Pools"
+ ],
+ "operationId": "Pool_Add",
+ "x-ms-examples": {
+ "Add a CloudServiceConfiguration pool": {
+ "$ref": "./examples/PoolAdd_CloudServiceConfiguration.json"
+ },
+ "Add a VirtualMachineConfiguration pool": {
+ "$ref": "./examples/PoolAdd_VirtualMachineConfiguration.json"
+ },
+ "Add a VirtualMachineConfiguration pool with containers": {
+ "$ref": "./examples/PoolAdd_VirtualMachineConfigurationWithContainers.json"
+ },
+ "Add a pool with mount drive specified": {
+ "$ref": "./examples/PoolAdd_MountConfiguration.json"
+ }
+ },
+ "summary": "Adds a Pool to the specified Account.",
+ "description": "When naming Pools, avoid including sensitive information such as user names or secret project names. This information may appear in telemetry logs accessible to Microsoft Support engineers.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "pool",
+ "in": "body",
+ "description": "The Pool to be added.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PoolAddParameter"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Pools"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "odata.nextLink"
+ },
+ "operationId": "Pool_List",
+ "x-ms-examples": {
+ "Pool list": {
+ "$ref": "./examples/PoolList_Basic.json"
+ }
+ },
+ "summary": "Lists all of the Pools in the specified Account.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-pools.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $expand clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "maxresults",
+ "x-ms-client-name": "maxResults",
+ "default": 1000,
+ "minimum": 1,
+ "maximum": 1000,
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response. A maximum of 1000 Pools can be returned.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the list of Pools.",
+ "schema": {
+ "$ref": "#/definitions/CloudPoolListResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}": {
+ "delete": {
+ "tags": [
+ "Pools"
+ ],
+ "operationId": "Pool_Delete",
+ "x-ms-examples": {
+ "Pool delete": {
+ "$ref": "./examples/PoolDelete.json"
+ }
+ },
+ "summary": "Deletes a Pool from the specified Account.",
+ "description": "When you request that a Pool be deleted, the following actions occur: the Pool state is set to deleting; any ongoing resize operation on the Pool are stopped; the Batch service starts resizing the Pool to zero Compute Nodes; any Tasks running on existing Compute Nodes are terminated and requeued (as if a resize Pool operation had been requested with the default requeue option); finally, the Pool is removed from the system. Because running Tasks are requeued, the user can rerun these Tasks by updating their Job to target a different Pool. The Tasks can then run on the new Pool. If you want to override the requeue behavior, then you should call resize Pool explicitly to shrink the Pool to zero size before deleting the Pool. If you call an Update, Patch or Delete API on a Pool in the deleting state, it will fail with HTTP status code 409 with error code PoolBeingDeleted.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool to delete."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "head": {
+ "tags": [
+ "Pools"
+ ],
+ "operationId": "Pool_Exists",
+ "x-ms-examples": {
+ "Check Pool Exists": {
+ "$ref": "./examples/PoolExists.json"
+ }
+ },
+ "description": "Gets basic properties of a Pool.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool to get."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing headers related to the Pool, if it exists."
+ },
+ "404": {
+ "description": "The Pool does not exist."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Pools"
+ ],
+ "operationId": "Pool_Get",
+ "x-ms-examples": {
+ "Pool get": {
+ "$ref": "./examples/PoolGet_Basic.json"
+ }
+ },
+ "description": "Gets information about the specified Pool.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool to get."
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $expand clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the Pool.",
+ "schema": {
+ "$ref": "#/definitions/CloudPool"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Pools"
+ ],
+ "operationId": "Pool_Patch",
+ "x-ms-examples": {
+ "Patch the Pool": {
+ "$ref": "./examples/PoolPatch.json"
+ }
+ },
+ "summary": "Updates the properties of the specified Pool.",
+ "description": "This only replaces the Pool properties specified in the request. For example, if the Pool has a StartTask associated with it, and a request does not specify a StartTask element, then the Pool keeps the existing StartTask.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool to update."
+ },
+ {
+ "name": "poolPatchParameter",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PoolPatchParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/disableautoscale": {
+ "post": {
+ "tags": [
+ "Pools"
+ ],
+ "operationId": "Pool_DisableAutoScale",
+ "x-ms-examples": {
+ "Disable pool autoscale": {
+ "$ref": "./examples/PoolDisableAutoScale.json"
+ }
+ },
+ "summary": "Disables automatic scaling for a Pool.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool on which to disable automatic scaling."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/enableautoscale": {
+ "post": {
+ "tags": [
+ "Pools"
+ ],
+ "operationId": "Pool_EnableAutoScale",
+ "x-ms-examples": {
+ "Pool enable autoscale": {
+ "$ref": "./examples/PoolEnableAutoscale.json"
+ }
+ },
+ "summary": "Enables automatic scaling for a Pool.",
+ "description": "You cannot enable automatic scaling on a Pool if a resize operation is in progress on the Pool. If automatic scaling of the Pool is currently disabled, you must specify a valid autoscale formula as part of the request. If automatic scaling of the Pool is already enabled, you may specify a new autoscale formula and/or a new evaluation interval. You cannot call this API for the same Pool more than once every 30 seconds.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool on which to enable automatic scaling."
+ },
+ {
+ "name": "poolEnableAutoScaleParameter",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PoolEnableAutoScaleParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/evaluateautoscale": {
+ "post": {
+ "tags": [
+ "Pools"
+ ],
+ "operationId": "Pool_EvaluateAutoScale",
+ "x-ms-examples": {
+ "Pool evaluate autoscale": {
+ "$ref": "./examples/PoolEvaluateAutoscale.json"
+ }
+ },
+ "summary": "Gets the result of evaluating an automatic scaling formula on the Pool.",
+ "description": "This API is primarily for validating an autoscale formula, as it simply returns the result without applying the formula to the Pool. The Pool must have auto scaling enabled in order to evaluate a formula.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool on which to evaluate the automatic scaling formula."
+ },
+ {
+ "name": "poolEvaluateAutoScaleParameter",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PoolEvaluateAutoScaleParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "A response containing the results of the autoscale evaluation.",
+ "schema": {
+ "$ref": "#/definitions/AutoScaleRun"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/resize": {
+ "post": {
+ "tags": [
+ "Pools"
+ ],
+ "operationId": "Pool_Resize",
+ "x-ms-examples": {
+ "Pool resize": {
+ "$ref": "./examples/PoolResize.json"
+ }
+ },
+ "summary": "Changes the number of Compute Nodes that are assigned to a Pool.",
+ "description": "You can only resize a Pool when its allocation state is steady. If the Pool is already resizing, the request fails with status code 409. When you resize a Pool, the Pool's allocation state changes from steady to resizing. You cannot resize Pools which are configured for automatic scaling. If you try to do this, the Batch service returns an error 409. If you resize a Pool downwards, the Batch service chooses which Compute Nodes to remove. To remove specific Compute Nodes, use the Pool remove Compute Nodes API instead.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool to resize."
+ },
+ {
+ "name": "poolResizeParameter",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PoolResizeParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/stopresize": {
+ "post": {
+ "tags": [
+ "Pools"
+ ],
+ "operationId": "Pool_StopResize",
+ "x-ms-examples": {
+ "Pool stop resize": {
+ "$ref": "./examples/PoolStopResize.json"
+ }
+ },
+ "summary": "Stops an ongoing resize operation on the Pool.",
+ "description": "This does not restore the Pool to its previous state before the resize operation: it only stops any further changes being made, and the Pool maintains its current state. After stopping, the Pool stabilizes at the number of Compute Nodes it was at when the stop operation was done. During the stop operation, the Pool allocation state changes first to stopping and then to steady. A resize operation need not be an explicit resize Pool request; this API can also be used to halt the initial sizing of the Pool when it is created.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool whose resizing you want to stop."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service. If you call this API on a Pool which is not in the resizing state, the request fails with HTTP status code 409.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/updateproperties": {
+ "post": {
+ "tags": [
+ "Pools"
+ ],
+ "operationId": "Pool_UpdateProperties",
+ "x-ms-examples": {
+ "Pool update": {
+ "$ref": "./examples/PoolUpdate.json"
+ }
+ },
+ "summary": "Updates the properties of the specified Pool.",
+ "description": "This fully replaces all the updatable properties of the Pool. For example, if the Pool has a StartTask associated with it and if StartTask is not specified with this request, then the Batch service will remove the existing StartTask.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool to update."
+ },
+ {
+ "name": "poolUpdatePropertiesParameter",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PoolUpdatePropertiesParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/removenodes": {
+ "post": {
+ "tags": [
+ "ComputeNodes"
+ ],
+ "operationId": "Pool_RemoveNodes",
+ "x-ms-examples": {
+ "Pool remove nodes": {
+ "$ref": "./examples/PoolRemoveNodes.json"
+ }
+ },
+ "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.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool from which you want to remove Compute Nodes."
+ },
+ {
+ "name": "nodeRemoveParameter",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NodeRemoveParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs/{jobId}/tasks": {
+ "post": {
+ "tags": [
+ "Tasks"
+ ],
+ "operationId": "Task_Add",
+ "x-ms-examples": {
+ "Add a basic task": {
+ "$ref": "./examples/TaskAdd_Basic.json"
+ },
+ "Add a task with exit conditions": {
+ "$ref": "./examples/TaskAdd_ExitConditions.json"
+ },
+ "Add a task with container settings": {
+ "$ref": "./examples/TaskAdd_ContainerSettings.json"
+ },
+ "Add a task with extra slot requirement": {
+ "$ref": "./examples/TaskAdd_RequiredSlots.json"
+ }
+ },
+ "summary": "Adds a Task to the specified Job.",
+ "description": "The maximum lifetime of a Task from addition to completion is 180 days. If a Task has not completed within 180 days of being added it will be terminated by the Batch service and left in whatever state it was in at that time.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job to which the Task is to be added."
+ },
+ {
+ "name": "task",
+ "in": "body",
+ "description": "The Task to be added.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TaskAddParameter"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Tasks"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "odata.nextLink"
+ },
+ "operationId": "Task_List",
+ "x-ms-examples": {
+ "Task list": {
+ "$ref": "./examples/TaskList.json"
+ }
+ },
+ "summary": "Lists all of the Tasks that are associated with the specified Job.",
+ "description": "For multi-instance Tasks, information such as affinityId, executionInfo and nodeInfo refer to the primary Task. Use the list subtasks API to retrieve information about subtasks.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job."
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-tasks.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $expand clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "maxresults",
+ "x-ms-client-name": "maxResults",
+ "default": 1000,
+ "minimum": 1,
+ "maximum": 1000,
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response. A maximum of 1000 Tasks can be returned.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the list of Tasks.",
+ "schema": {
+ "$ref": "#/definitions/CloudTaskListResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs/{jobId}/addtaskcollection": {
+ "post": {
+ "tags": [
+ "Tasks"
+ ],
+ "operationId": "Task_AddCollection",
+ "x-ms-examples": {
+ "Add a basic collection of tasks": {
+ "$ref": "./examples/TaskAddCollection_Basic.json"
+ },
+ "Add a complex collection of tasks": {
+ "$ref": "./examples/TaskAddCollection_Complex.json"
+ }
+ },
+ "summary": "Adds a collection of Tasks to the specified Job.",
+ "description": "Note that each Task must have a unique ID. The Batch service may not return the results for each Task in the same order the Tasks were submitted in this request. If the server times out or the connection is closed during the request, the request may have been partially or fully processed, or not at all. In such cases, the user should re-issue the request. Note that it is up to the user to correctly handle failures when re-issuing a request. For example, you should use the same Task IDs during a retry so that if the prior operation succeeded, the retry will not create extra Tasks unexpectedly. If the response contains any Tasks which failed to add, a client can retry the request. In a retry, it is most efficient to resubmit only Tasks that failed to add, and to omit Tasks that were successfully added on the first attempt. The maximum lifetime of a Task from addition to completion is 180 days. If a Task has not completed within 180 days of being added it will be terminated by the Batch service and left in whatever state it was in at that time.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job to which the Task collection is to be added."
+ },
+ {
+ "name": "taskCollection",
+ "in": "body",
+ "description": "The Tasks to be added.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TaskAddCollectionParameter"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "#/definitions/TaskAddCollectionResult"
+ },
+ "description": "A response containing the results of the add Task collection operation."
+ },
+ "default": {
+ "description": "Unexpected error",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs/{jobId}/tasks/{taskId}": {
+ "delete": {
+ "tags": [
+ "Tasks"
+ ],
+ "operationId": "Task_Delete",
+ "x-ms-examples": {
+ "Task delete": {
+ "$ref": "./examples/TaskDelete.json"
+ }
+ },
+ "summary": "Deletes a Task from the specified Job.",
+ "description": "When a Task is deleted, all of the files in its directory on the Compute Node where it ran are also deleted (regardless of the retention time). For multi-instance Tasks, the delete Task operation applies synchronously to the primary task; subtasks and their files are then deleted asynchronously in the background.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job from which to delete the Task."
+ },
+ {
+ "name": "taskId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Task to delete."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Tasks"
+ ],
+ "operationId": "Task_Get",
+ "x-ms-examples": {
+ "Task get": {
+ "$ref": "./examples/TaskGet.json"
+ }
+ },
+ "summary": "Gets information about the specified Task.",
+ "description": "For multi-instance Tasks, information such as affinityId, executionInfo and nodeInfo refer to the primary Task. Use the list subtasks API to retrieve information about subtasks.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job that contains the Task."
+ },
+ {
+ "name": "taskId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Task to get information about."
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $expand clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "A response containing the Task.",
+ "schema": {
+ "$ref": "#/definitions/CloudTask"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Tasks"
+ ],
+ "operationId": "Task_Update",
+ "x-ms-examples": {
+ "Task update": {
+ "$ref": "./examples/TaskUpdate.json"
+ }
+ },
+ "description": "Updates the properties of the specified Task.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job containing the Task."
+ },
+ {
+ "name": "taskId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Task to update."
+ },
+ {
+ "name": "taskUpdateParameter",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TaskUpdateParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs/{jobId}/tasks/{taskId}/subtasksinfo": {
+ "get": {
+ "tags": [
+ "Tasks"
+ ],
+ "operationId": "Task_ListSubtasks",
+ "x-ms-examples": {
+ "Task list subtasks": {
+ "$ref": "./examples/TaskListSubtasks.json"
+ }
+ },
+ "summary": "Lists all of the subtasks that are associated with the specified multi-instance Task.",
+ "description": "If the Task is not a multi-instance Task then this returns an empty collection.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job."
+ },
+ {
+ "name": "taskId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Task."
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the list of subtasks.",
+ "schema": {
+ "$ref": "#/definitions/CloudTaskListSubtasksResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs/{jobId}/tasks/{taskId}/terminate": {
+ "post": {
+ "tags": [
+ "Tasks"
+ ],
+ "operationId": "Task_Terminate",
+ "x-ms-examples": {
+ "Task terminate": {
+ "$ref": "./examples/TaskTerminate.json"
+ }
+ },
+ "summary": "Terminates the specified Task.",
+ "description": "When the Task has been terminated, it moves to the completed state. For multi-instance Tasks, the terminate Task operation applies synchronously to the primary task; subtasks are then terminated asynchronously in the background.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job containing the Task."
+ },
+ {
+ "name": "taskId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Task to terminate."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/jobs/{jobId}/tasks/{taskId}/reactivate": {
+ "post": {
+ "tags": [
+ "Tasks"
+ ],
+ "operationId": "Task_Reactivate",
+ "x-ms-examples": {
+ "Task reactivate": {
+ "$ref": "./examples/TaskReactivate.json"
+ }
+ },
+ "summary": "Reactivates a Task, allowing it to run again even if its retry count has been exhausted.",
+ "description": "Reactivation makes a Task eligible to be retried again up to its maximum retry count. The Task's state is changed to active. As the Task is no longer in the completed state, any previous exit code or failure information is no longer available after reactivation. Each time a Task is reactivated, its retry count is reset to 0. Reactivation will fail for Tasks that are not completed or that previously completed successfully (with an exit code of 0). Additionally, it will fail if the Job has completed (or is terminating or deleting).",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "jobId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Job containing the Task."
+ },
+ {
+ "name": "taskId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Task to reactivate."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Modified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "If-Unmodified-Since",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/nodes/{nodeId}/users": {
+ "post": {
+ "tags": [
+ "ComputeNodes"
+ ],
+ "operationId": "ComputeNode_AddUser",
+ "x-ms-examples": {
+ "Node add user": {
+ "$ref": "./examples/NodeAddUser.json"
+ }
+ },
+ "summary": "Adds a user Account to the specified Compute Node.",
+ "description": "You can add a user Account to a Compute Node only when it is in the idle or running state.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the machine on which you want to create a user Account."
+ },
+ {
+ "name": "user",
+ "in": "body",
+ "description": "The user Account to be created.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ComputeNodeUser"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/nodes/{nodeId}/users/{userName}": {
+ "delete": {
+ "tags": [
+ "ComputeNodes"
+ ],
+ "operationId": "ComputeNode_DeleteUser",
+ "x-ms-examples": {
+ "Node delete user": {
+ "$ref": "./examples/NodeDeleteUser.json"
+ }
+ },
+ "summary": "Deletes a user Account from the specified Compute Node.",
+ "description": "You can delete a user Account to a Compute Node only when it is in the idle or running state.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the machine on which you want to delete a user Account."
+ },
+ {
+ "name": "userName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the user Account to delete."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ComputeNodes"
+ ],
+ "operationId": "ComputeNode_UpdateUser",
+ "x-ms-examples": {
+ "Node update user": {
+ "$ref": "./examples/NodeUpdateUser.json"
+ }
+ },
+ "summary": "Updates the password and expiration time of a user Account on the specified Compute Node.",
+ "description": "This operation replaces of all the updatable properties of the Account. For example, if the expiryTime element is not specified, the current value is replaced with the default value, not left unmodified. You can update a user Account on a Compute Node only when it is in the idle or running state.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the machine on which you want to update a user Account."
+ },
+ {
+ "name": "userName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the user Account to update."
+ },
+ {
+ "name": "nodeUpdateUserParameter",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/NodeUpdateUserParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/nodes/{nodeId}": {
+ "get": {
+ "tags": [
+ "ComputeNodes"
+ ],
+ "operationId": "ComputeNode_Get",
+ "x-ms-examples": {
+ "Node get": {
+ "$ref": "./examples/NodeGet_Basic.json"
+ }
+ },
+ "summary": "Gets information about the specified Compute Node.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Compute Node that you want to get information about."
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the Compute Node.",
+ "schema": {
+ "$ref": "#/definitions/ComputeNode"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/nodes/{nodeId}/reboot": {
+ "post": {
+ "tags": [
+ "ComputeNodes"
+ ],
+ "operationId": "ComputeNode_Reboot",
+ "x-ms-examples": {
+ "Node reboot": {
+ "$ref": "./examples/NodeReboot.json"
+ }
+ },
+ "summary": "Restarts the specified Compute Node.",
+ "description": "You can restart a Compute Node only if it is in an idle or running state.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Compute Node that you want to restart."
+ },
+ {
+ "name": "nodeRebootParameter",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/NodeRebootParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/nodes/{nodeId}/reimage": {
+ "post": {
+ "tags": [
+ "ComputeNodes"
+ ],
+ "operationId": "ComputeNode_Reimage",
+ "x-ms-examples": {
+ "Node reimage": {
+ "$ref": "./examples/NodeReimage.json"
+ }
+ },
+ "summary": "Reinstalls the operating system on the specified Compute Node.",
+ "description": "You can reinstall the operating system on a Compute Node only if it is in an idle or running state. This API can be invoked only on Pools created with the cloud service configuration property.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Compute Node that you want to restart."
+ },
+ {
+ "name": "nodeReimageParameter",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/NodeReimageParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/nodes/{nodeId}/disablescheduling": {
+ "post": {
+ "tags": [
+ "ComputeNodes"
+ ],
+ "operationId": "ComputeNode_DisableScheduling",
+ "x-ms-examples": {
+ "Node disable scheduling": {
+ "$ref": "./examples/NodeDisableScheduling.json"
+ }
+ },
+ "summary": "Disables Task scheduling on the specified Compute Node.",
+ "description": "You can disable Task scheduling on a Compute Node only if its current scheduling state is enabled.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Compute Node on which you want to disable Task scheduling."
+ },
+ {
+ "name": "nodeDisableSchedulingParameter",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/NodeDisableSchedulingParameter"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/nodes/{nodeId}/enablescheduling": {
+ "post": {
+ "tags": [
+ "ComputeNodes"
+ ],
+ "operationId": "ComputeNode_EnableScheduling",
+ "x-ms-examples": {
+ "Node enable scheduling": {
+ "$ref": "./examples/NodeEnableScheduling.json"
+ }
+ },
+ "summary": "Enables Task scheduling on the specified Compute Node.",
+ "description": "You can enable Task scheduling on a Compute Node only if its current scheduling state is disabled",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Compute Node on which you want to enable Task scheduling."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "DataServiceId": {
+ "description": "The OData ID of the resource to which the request applied.",
+ "type": "string"
+ }
+ },
+ "description": "The request to the Batch service was successful."
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/nodes/{nodeId}/remoteloginsettings": {
+ "get": {
+ "tags": [
+ "ComputeNodes"
+ ],
+ "operationId": "ComputeNode_GetRemoteLoginSettings",
+ "x-ms-examples": {
+ "Node get remote login settings": {
+ "$ref": "./examples/NodeGetRemoteLoginSettings.json"
+ }
+ },
+ "summary": "Gets the settings required for remote login to a Compute Node.",
+ "description": "Before you can remotely login to a Compute Node using the remote login settings, you must create a user Account on the Compute Node. This API can be invoked only on Pools created with the virtual machine configuration property. For Pools created with a cloud service configuration, see the GetRemoteDesktop API.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Compute Node for which to obtain the remote login settings."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the login settings.",
+ "schema": {
+ "$ref": "#/definitions/ComputeNodeGetRemoteLoginSettingsResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/nodes/{nodeId}/rdp": {
+ "get": {
+ "tags": [
+ "ComputeNodes"
+ ],
+ "operationId": "ComputeNode_GetRemoteDesktop",
+ "x-ms-examples": {
+ "Get RDP file of the compute node": {
+ "$ref": "./examples/NodeGetRemoteDesktop.json"
+ }
+ },
+ "summary": "Gets the Remote Desktop Protocol file for the specified Compute Node.",
+ "description": "Before you can access a Compute Node by using the RDP file, you must create a user Account on the Compute Node. This API can only be invoked on Pools created with a cloud service configuration. For Pools created with a virtual machine configuration, see the GetRemoteLoginSettings API.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Compute Node for which you want to get the Remote Desktop Protocol file."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "produces": [
+ "application/json",
+ "application/octet-stream"
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the RDP information.",
+ "schema": {
+ "type": "object",
+ "format": "file"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/nodes/{nodeId}/uploadbatchservicelogs": {
+ "post": {
+ "tags": [
+ "ComputeNodes"
+ ],
+ "operationId": "ComputeNode_UploadBatchServiceLogs",
+ "summary": "Upload Azure Batch service log files from the specified Compute Node to Azure Blob Storage.",
+ "description": "This is for gathering Azure Batch service log files in an automated fashion from Compute Nodes if you are experiencing an error and wish to escalate to Azure support. The Azure Batch service log files should be shared with Azure support to aid in debugging issues with the Batch service.",
+ "x-ms-examples": {
+ "Upload BatchService Logs": {
+ "$ref": "./examples/NodeUploadBatchServiceLogs.json"
+ }
+ },
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool that contains the Compute Node."
+ },
+ {
+ "name": "nodeId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Compute Node from which you want to upload the Azure Batch service log files."
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "uploadBatchServiceLogsConfiguration",
+ "in": "body",
+ "description": "The Azure Batch service log files upload configuration.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/UploadBatchServiceLogsConfiguration"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ }
+ },
+ "description": "The request to the Batch service was successful.",
+ "schema": {
+ "$ref": "#/definitions/UploadBatchServiceLogsResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ },
+ "/pools/{poolId}/nodes": {
+ "get": {
+ "tags": [
+ "ComputeNodes"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "odata.nextLink"
+ },
+ "operationId": "ComputeNode_List",
+ "x-ms-examples": {
+ "Node list": {
+ "$ref": "./examples/NodeList.json"
+ }
+ },
+ "summary": "Lists the Compute Nodes in the specified Pool.",
+ "x-ms-request-id": "request-id",
+ "parameters": [
+ {
+ "name": "poolId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The ID of the Pool from which you want to list Compute Nodes."
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-nodes-in-a-pool.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "An OData $select clause.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "maxresults",
+ "x-ms-client-name": "maxResults",
+ "default": 1000,
+ "minimum": 1,
+ "maximum": 1000,
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response. A maximum of 1000 Compute Nodes can be returned.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "timeout",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 30,
+ "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "client-request-id",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "uuid",
+ "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ },
+ "x-ms-client-request-id": true
+ },
+ {
+ "name": "return-client-request-id",
+ "default": false,
+ "in": "header",
+ "required": false,
+ "type": "boolean",
+ "description": "Whether the server should return the client-request-id in the response.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "name": "ocp-date",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
+ "x-ms-parameter-grouping": {
+ "postfix": "Options"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "headers": {
+ "client-request-id": {
+ "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "request-id": {
+ "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in.",
+ "type": "string",
+ "format": "uuid"
+ },
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
+ "type": "string"
+ },
+ "Last-Modified": {
+ "description": "The time at which the resource was last modified.",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ },
+ "description": "A response containing the list of Compute Nodes.",
+ "schema": {
+ "$ref": "#/definitions/ComputeNodeListResult"
+ }
+ },
+ "default": {
+ "description": "The error from the Batch service.",
+ "schema": {
+ "$ref": "#/definitions/BatchError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "PoolUsageMetrics": {
+ "properties": {
+ "poolId": {
+ "type": "string",
+ "title": "The ID of the Pool whose metrics are aggregated in this entry."
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The start time of the aggregation interval covered by this entry."
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The end time of the aggregation interval covered by this entry."
+ },
+ "vmSize": {
+ "type": "string",
+ "title": "The size of virtual machines in the Pool. All VMs in a Pool are the same size.",
+ "description": "For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes)."
+ },
+ "totalCoreHours": {
+ "type": "number",
+ "format": "double",
+ "title": "The total core hours used in the Pool during this aggregation interval."
+ }
+ },
+ "required": [
+ "poolId",
+ "startTime",
+ "endTime",
+ "vmSize",
+ "totalCoreHours"
+ ],
+ "title": "Usage metrics for a Pool across an aggregation interval."
+ },
+ "PoolListUsageMetricsResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PoolUsageMetrics"
+ },
+ "title": "The Pool usage metrics data."
+ },
+ "odata.nextLink": {
+ "type": "string",
+ "title": "The URL to get the next set of results."
+ }
+ },
+ "title": "The result of a listing the usage metrics for an Account."
+ },
+ "ImageInformation": {
+ "properties": {
+ "nodeAgentSKUId": {
+ "type": "string",
+ "title": "The ID of the Compute Node agent SKU which the Image supports."
+ },
+ "imageReference": {
+ "$ref": "#/definitions/ImageReference",
+ "title": "The reference to the Azure Virtual Machine's Marketplace Image."
+ },
+ "osType": {
+ "type": "string",
+ "title": "The type of operating system (e.g. Windows or Linux) of the Image.",
+ "enum": [
+ "linux",
+ "windows"
+ ],
+ "x-ms-enum": {
+ "name": "OSType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "linux",
+ "description": "The Linux operating system."
+ },
+ {
+ "value": "windows",
+ "description": "The Windows operating system."
+ }
+ ]
+ }
+ },
+ "capabilities": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "The capabilities or features which the Image supports.",
+ "description": "Not every capability of the Image is listed. Capabilities in this list are considered of special interest and are generally related to integration with other features in the Azure Batch service."
+ },
+ "batchSupportEndOfLife": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time when the Azure Batch service will stop accepting create Pool requests for the Image."
+ },
+ "verificationType": {
+ "type": "string",
+ "title": "Whether the Azure Batch service actively verifies that the Image is compatible with the associated Compute Node agent SKU.",
+ "enum": [
+ "verified",
+ "unverified"
+ ],
+ "x-ms-enum": {
+ "name": "VerificationType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "verified",
+ "description": "The Image is guaranteed to be compatible with the associated Compute Node agent SKU and all Batch features have been confirmed to work as expected."
+ },
+ {
+ "value": "unverified",
+ "description": "The associated Compute Node agent SKU should have binary compatibility with the Image, but specific functionality has not been verified."
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "imageReference",
+ "verificationType",
+ "osType",
+ "nodeAgentSKUId"
+ ],
+ "title": "A reference to the Azure Virtual Machines Marketplace Image and additional information about the Image."
+ },
+ "AuthenticationTokenSettings": {
+ "properties": {
+ "access": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "x-nullable": false,
+ "enum": [
+ "job"
+ ],
+ "x-ms-enum": {
+ "name": "AccessScope",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "job",
+ "description": "Grants access to perform all operations on the Job containing the Task."
+ }
+ ]
+ }
+ },
+ "title": "The Batch resources to which the token grants access.",
+ "description": "The authentication token grants access to a limited set of Batch service operations. Currently the only supported value for the access property is 'job', which grants access to all operations related to the Job which contains the Task."
+ }
+ },
+ "title": "The settings for an authentication token that the Task can use to perform Batch service operations."
+ },
+ "AccountListSupportedImagesResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageInformation"
+ },
+ "title": "The list of supported Virtual Machine Images."
+ },
+ "odata.nextLink": {
+ "type": "string",
+ "title": "The URL to get the next set of results."
+ }
+ },
+ "title": "The result of listing the supported Virtual Machine Images."
+ },
+ "UsageStatistics": {
+ "properties": {
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The start time of the time range covered by the statistics."
+ },
+ "lastUpdateTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime."
+ },
+ "dedicatedCoreTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The aggregated wall-clock time of the dedicated Compute Node cores being part of the Pool."
+ }
+ },
+ "required": [
+ "startTime",
+ "lastUpdateTime",
+ "dedicatedCoreTime"
+ ],
+ "title": "Statistics related to Pool usage information."
+ },
+ "ResourceStatistics": {
+ "properties": {
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The start time of the time range covered by the statistics."
+ },
+ "lastUpdateTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime."
+ },
+ "avgCPUPercentage": {
+ "type": "number",
+ "format": "double",
+ "title": "The average CPU usage across all Compute Nodes in the Pool (percentage per node)."
+ },
+ "avgMemoryGiB": {
+ "type": "number",
+ "format": "double",
+ "title": "The average memory usage in GiB across all Compute Nodes in the Pool."
+ },
+ "peakMemoryGiB": {
+ "type": "number",
+ "format": "double",
+ "title": "The peak memory usage in GiB across all Compute Nodes in the Pool."
+ },
+ "avgDiskGiB": {
+ "type": "number",
+ "format": "double",
+ "title": "The average used disk space in GiB across all Compute Nodes in the Pool."
+ },
+ "peakDiskGiB": {
+ "type": "number",
+ "format": "double",
+ "title": "The peak used disk space in GiB across all Compute Nodes in the Pool."
+ },
+ "diskReadIOps": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The total number of disk read operations across all Compute Nodes in the Pool."
+ },
+ "diskWriteIOps": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The total number of disk write operations across all Compute Nodes in the Pool."
+ },
+ "diskReadGiB": {
+ "type": "number",
+ "format": "double",
+ "title": "The total amount of data in GiB of disk reads across all Compute Nodes in the Pool."
+ },
+ "diskWriteGiB": {
+ "type": "number",
+ "format": "double",
+ "title": "The total amount of data in GiB of disk writes across all Compute Nodes in the Pool."
+ },
+ "networkReadGiB": {
+ "type": "number",
+ "format": "double",
+ "title": "The total amount of data in GiB of network reads across all Compute Nodes in the Pool."
+ },
+ "networkWriteGiB": {
+ "type": "number",
+ "format": "double",
+ "title": "The total amount of data in GiB of network writes across all Compute Nodes in the Pool."
+ }
+ },
+ "required": [
+ "startTime",
+ "lastUpdateTime",
+ "avgCPUPercentage",
+ "avgMemoryGiB",
+ "peakMemoryGiB",
+ "avgDiskGiB",
+ "peakDiskGiB",
+ "diskReadIOps",
+ "diskWriteIOps",
+ "diskReadGiB",
+ "diskWriteGiB",
+ "networkReadGiB",
+ "networkWriteGiB"
+ ],
+ "title": "Statistics related to resource consumption by Compute Nodes in a Pool."
+ },
+ "PoolStatistics": {
+ "properties": {
+ "url": {
+ "type": "string",
+ "title": "The URL for the statistics."
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The start time of the time range covered by the statistics."
+ },
+ "lastUpdateTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime."
+ },
+ "usageStats": {
+ "$ref": "#/definitions/UsageStatistics",
+ "title": "Statistics related to Pool usage, such as the amount of core-time used."
+ },
+ "resourceStats": {
+ "$ref": "#/definitions/ResourceStatistics",
+ "title": "Statistics related to resource consumption by Compute Nodes in the Pool."
+ }
+ },
+ "required": [
+ "url",
+ "startTime",
+ "lastUpdateTime"
+ ],
+ "title": "Contains utilization and resource usage statistics for the lifetime of a Pool."
+ },
+ "JobStatistics": {
+ "properties": {
+ "url": {
+ "type": "string",
+ "title": "The URL of the statistics."
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The start time of the time range covered by the statistics."
+ },
+ "lastUpdateTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime."
+ },
+ "userCPUTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The total user mode CPU time (summed across all cores and all Compute Nodes) consumed by all Tasks in the Job."
+ },
+ "kernelCPUTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The total kernel mode CPU time (summed across all cores and all Compute Nodes) consumed by all Tasks in the Job."
+ },
+ "wallClockTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The total wall clock time of all Tasks in the Job.",
+ "description": " The wall clock time is the elapsed time from when the Task started running on a Compute Node to when it finished (or to the last time the statistics were updated, if the Task had not finished by then). If a Task was retried, this includes the wall clock time of all the Task retries."
+ },
+ "readIOps": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The total number of disk read operations made by all Tasks in the Job."
+ },
+ "writeIOps": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The total number of disk write operations made by all Tasks in the Job."
+ },
+ "readIOGiB": {
+ "type": "number",
+ "format": "double",
+ "title": "The total amount of data in GiB read from disk by all Tasks in the Job."
+ },
+ "writeIOGiB": {
+ "type": "number",
+ "format": "double",
+ "title": "The total amount of data in GiB written to disk by all Tasks in the Job."
+ },
+ "numSucceededTasks": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The total number of Tasks successfully completed in the Job during the given time range.",
+ "description": "A Task completes successfully if it returns exit code 0."
+ },
+ "numFailedTasks": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The total number of Tasks in the Job that failed during the given time range.",
+ "description": "A Task fails if it exhausts its maximum retry count without returning exit code 0."
+ },
+ "numTaskRetries": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The total number of retries on all the Tasks in the Job during the given time range."
+ },
+ "waitTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The total wait time of all Tasks in the Job.",
+ "description": "The wait time for a Task is defined as the elapsed time between the creation of the Task and the start of Task execution. (If the Task is retried due to failures, the wait time is the time to the most recent Task execution.) This value is only reported in the Account lifetime statistics; it is not included in the Job statistics."
+ }
+ },
+ "required": [
+ "url",
+ "startTime",
+ "lastUpdateTime",
+ "userCPUTime",
+ "kernelCPUTime",
+ "wallClockTime",
+ "readIOps",
+ "writeIOps",
+ "readIOGiB",
+ "writeIOGiB",
+ "numSucceededTasks",
+ "numFailedTasks",
+ "numTaskRetries",
+ "waitTime"
+ ],
+ "title": "Resource usage statistics for a Job."
+ },
+ "NameValuePair": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "The name in the name-value pair."
+ },
+ "value": {
+ "type": "string",
+ "title": "The value in the name-value pair."
+ }
+ },
+ "title": "Represents a name-value pair."
+ },
+ "DeleteCertificateError": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "title": "An identifier for the Certificate deletion error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "title": "A message describing the Certificate deletion error, intended to be suitable for display in a user interface."
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NameValuePair"
+ },
+ "title": "A list of additional error details related to the Certificate deletion error.",
+ "description": "This list includes details such as the active Pools and Compute Nodes referencing this Certificate. However, if a large number of resources reference the Certificate, the list contains only about the first hundred."
+ }
+ },
+ "title": "An error encountered by the Batch service when deleting a Certificate."
+ },
+ "Certificate": {
+ "properties": {
+ "thumbprint": {
+ "type": "string",
+ "title": "The X.509 thumbprint of the Certificate. This is a sequence of up to 40 hex digits."
+ },
+ "thumbprintAlgorithm": {
+ "type": "string",
+ "title": "The algorithm used to derive the thumbprint."
+ },
+ "url": {
+ "type": "string",
+ "title": "The URL of the Certificate."
+ },
+ "state": {
+ "title": "The current state of the Certificate.",
+ "$ref": "#/definitions/CertificateState"
+ },
+ "stateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Certificate entered its current state."
+ },
+ "previousState": {
+ "title": "The previous state of the Certificate.",
+ "description": "This property is not set if the Certificate is in its initial active state.",
+ "$ref": "#/definitions/CertificateState"
+ },
+ "previousStateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Certificate entered its previous state.",
+ "description": "This property is not set if the Certificate is in its initial Active state."
+ },
+ "publicData": {
+ "type": "string",
+ "title": "The public part of the Certificate as a base-64 encoded .cer file."
+ },
+ "deleteCertificateError": {
+ "$ref": "#/definitions/DeleteCertificateError",
+ "title": "The error that occurred on the last attempt to delete this Certificate.",
+ "description": "This property is set only if the Certificate is in the DeleteFailed state."
+ }
+ },
+ "description": "A Certificate that can be installed on Compute Nodes and can be used to authenticate operations on the machine."
+ },
+ "ApplicationPackageReference": {
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "title": "The ID of the application to deploy."
+ },
+ "version": {
+ "type": "string",
+ "title": "The version of the application to deploy. If omitted, the default version is deployed.",
+ "description": "If this is omitted on a Pool, and no default version is specified for this application, the request fails with the error code InvalidApplicationPackageReferences and HTTP status code 409. If this is omitted on a Task, and no default version is specified for this application, the Task fails with a pre-processing error."
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "title": "A reference to an Package to be deployed to Compute Nodes."
+ },
+ "ApplicationSummary": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "A string that uniquely identifies the application within the Account."
+ },
+ "displayName": {
+ "type": "string",
+ "title": "The display name for the application."
+ },
+ "versions": {
+ "type": "array",
+ "title": "The list of available versions of the application.",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "id",
+ "displayName",
+ "versions"
+ ],
+ "title": "Contains information about an application in an Azure Batch Account."
+ },
+ "CertificateAddParameter": {
+ "properties": {
+ "thumbprint": {
+ "type": "string",
+ "title": "The X.509 thumbprint of the Certificate. This is a sequence of up to 40 hex digits (it may include spaces but these are removed)."
+ },
+ "thumbprintAlgorithm": {
+ "type": "string",
+ "title": "The algorithm used to derive the thumbprint. This must be sha1."
+ },
+ "data": {
+ "type": "string",
+ "title": "The base64-encoded contents of the Certificate. The maximum size is 10KB."
+ },
+ "certificateFormat": {
+ "type": "string",
+ "title": "The format of the Certificate data.",
+ "enum": [
+ "pfx",
+ "cer"
+ ],
+ "x-ms-enum": {
+ "name": "CertificateFormat",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "pfx",
+ "description": "The Certificate is a PFX (PKCS#12) formatted Certificate or Certificate chain."
+ },
+ {
+ "value": "cer",
+ "description": "The Certificate is a base64-encoded X.509 Certificate."
+ }
+ ]
+ }
+ },
+ "password": {
+ "type": "string",
+ "title": "The password to access the Certificate's private key.",
+ "description": "This must be omitted if the Certificate format is cer."
+ }
+ },
+ "required": [
+ "thumbprint",
+ "thumbprintAlgorithm",
+ "data"
+ ],
+ "title": "A Certificate that can be installed on Compute Nodes and can be used to authenticate operations on the machine."
+ },
+ "CertificateListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Certificate"
+ },
+ "title": "The list of Certificates."
+ },
+ "odata.nextLink": {
+ "type": "string",
+ "title": "The URL to get the next set of results."
+ }
+ },
+ "title": "The result of listing the Certificates in the Account."
+ },
+ "FileProperties": {
+ "properties": {
+ "creationTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The file creation time.",
+ "description": "The creation time is not returned for files on Linux Compute Nodes."
+ },
+ "lastModified": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the file was last modified."
+ },
+ "contentLength": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The length of the file."
+ },
+ "contentType": {
+ "type": "string",
+ "title": "The content type of the file."
+ },
+ "fileMode": {
+ "type": "string",
+ "title": "The file mode attribute in octal format.",
+ "description": "The file mode is returned only for files on Linux Compute Nodes."
+ }
+ },
+ "required": [
+ "lastModified",
+ "contentLength"
+ ],
+ "title": "The properties of a file on a Compute Node."
+ },
+ "NodeFile": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "The file path."
+ },
+ "url": {
+ "type": "string",
+ "title": "The URL of the file."
+ },
+ "isDirectory": {
+ "type": "boolean",
+ "title": "Whether the object represents a directory."
+ },
+ "properties": {
+ "$ref": "#/definitions/FileProperties",
+ "title": "The file properties."
+ }
+ },
+ "title": "Information about a file or directory on a Compute Node."
+ },
+ "NodeFileListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NodeFile"
+ },
+ "title": "The list of files."
+ },
+ "odata.nextLink": {
+ "type": "string",
+ "title": "The URL to get the next set of results."
+ }
+ },
+ "title": "The result of listing the files on a Compute Node, or the files associated with a Task on a Compute Node."
+ },
+ "Schedule": {
+ "properties": {
+ "doNotRunUntil": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The earliest time at which any Job may be created under this Job Schedule.",
+ "description": "If you do not specify a doNotRunUntil time, the schedule becomes ready to create Jobs immediately."
+ },
+ "doNotRunAfter": {
+ "type": "string",
+ "format": "date-time",
+ "title": "A time after which no Job will be created under this Job Schedule. The schedule will move to the completed state as soon as this deadline is past and there is no active Job under this Job Schedule.",
+ "description": "If you do not specify a doNotRunAfter time, and you are creating a recurring Job Schedule, the Job Schedule will remain active until you explicitly terminate it."
+ },
+ "startWindow": {
+ "type": "string",
+ "format": "duration",
+ "title": "The time interval, starting from the time at which the schedule indicates a Job should be created, within which a Job must be created.",
+ "description": "If a Job is not created within the startWindow interval, then the 'opportunity' is lost; no Job will be created until the next recurrence of the schedule. If the schedule is recurring, and the startWindow is longer than the recurrence interval, then this is equivalent to an infinite startWindow, because the Job that is 'due' in one recurrenceInterval is not carried forward into the next recurrence interval. The default is infinite. The minimum value is 1 minute. If you specify a lower value, the Batch service rejects the schedule with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)."
+ },
+ "recurrenceInterval": {
+ "type": "string",
+ "format": "duration",
+ "title": "The time interval between the start times of two successive Jobs under the Job Schedule. A Job Schedule can have at most one active Job under it at any given time.",
+ "description": "Because a Job Schedule can have at most one active Job under it at any given time, if it is time to create a new Job under a Job Schedule, but the previous Job is still running, the Batch service will not create the new Job until the previous Job finishes. If the previous Job does not finish within the startWindow period of the new recurrenceInterval, then no new Job will be scheduled for that interval. For recurring Jobs, you should normally specify a jobManagerTask in the jobSpecification. If you do not use jobManagerTask, you will need an external process to monitor when Jobs are created, add Tasks to the Jobs and terminate the Jobs ready for the next recurrence. The default is that the schedule does not recur: one Job is created, within the startWindow after the doNotRunUntil time, and the schedule is complete as soon as that Job finishes. The minimum value is 1 minute. If you specify a lower value, the Batch service rejects the schedule with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)."
+ }
+ },
+ "title": "The schedule according to which Jobs will be created"
+ },
+ "JobConstraints": {
+ "properties": {
+ "maxWallClockTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The maximum elapsed time that the Job may run, measured from the time the Job is created.",
+ "description": "If the Job does not complete within the time limit, the Batch service terminates it and any Tasks that are still running. In this case, the termination reason will be MaxWallClockTimeExpiry. If this property is not specified, there is no time limit on how long the Job may run."
+ },
+ "maxTaskRetryCount": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The maximum number of times each Task may be retried. The Batch service retries a Task if its exit code is nonzero.",
+ "description": "Note that this value specifically controls the number of retries. The Batch service will try each Task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries a Task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry Tasks. If the maximum retry count is -1, the Batch service retries Tasks without limit. The default value is 0 (no retries)."
+ }
+ },
+ "title": "The execution constraints for a Job."
+ },
+ "JobNetworkConfiguration": {
+ "properties": {
+ "subnetId": {
+ "type": "string",
+ "title": "The ARM resource identifier of the virtual network subnet which Compute Nodes running Tasks from the Job will join for the duration of the Task. This will only work with a VirtualMachineConfiguration Pool.",
+ "description": "The virtual network must be in the same region and subscription as the Azure Batch Account. The specified subnet should have enough free IP addresses to accommodate the number of Compute Nodes which will run Tasks from the Job. This can be up to the number of Compute Nodes in the Pool. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet so that Azure Batch service can schedule Tasks on the Nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the Nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the Compute Nodes to unusable. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication from the Azure Batch service. For Pools created with a Virtual Machine configuration, enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for Windows. Port 443 is also required to be open for outbound connections for communications to Azure Storage. For more details see: https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration",
+ "externalDocs": {
+ "url": "https://azure.microsoft.com/en-us/documentation/articles/role-based-access-built-in-roles/#classic-virtual-machine-contributor",
+ "description": "Setting up RBAC for Azure Batch VNETs"
+ }
+ }
+ },
+ "required": [
+ "subnetId"
+ ],
+ "title": "The network configuration for the Job."
+ },
+ "TaskContainerSettings": {
+ "properties": {
+ "containerRunOptions": {
+ "type": "string",
+ "title": "Additional options to the container create command.",
+ "description": "These additional options are supplied as arguments to the \"docker create\" command, in addition to those controlled by the Batch Service."
+ },
+ "imageName": {
+ "type": "string",
+ "title": "The Image to use to create the container in which the Task will run.",
+ "description": "This is the full Image reference, as would be specified to \"docker pull\". If no tag is provided as part of the Image name, the tag \":latest\" is used as a default."
+ },
+ "registry": {
+ "$ref": "#/definitions/ContainerRegistry",
+ "title": "The private registry which contains the container Image.",
+ "description": "This setting can be omitted if was already provided at Pool creation."
+ },
+ "workingDirectory": {
+ "type": "string",
+ "title": "The location of the container Task working directory.",
+ "description": "The default is 'taskWorkingDirectory'.",
+ "enum": [
+ "taskWorkingDirectory",
+ "containerImageDefault"
+ ],
+ "x-ms-enum": {
+ "name": "ContainerWorkingDirectory",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "taskWorkingDirectory",
+ "description": "Use the standard Batch service Task working directory, which will contain the Task Resource Files populated by Batch."
+ },
+ {
+ "value": "containerImageDefault",
+ "description": "Use the working directory defined in the container Image. Beware that this directory will not contain the Resource Files downloaded by Batch."
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "imageName"
+ ],
+ "title": "The container settings for a Task."
+ },
+ "ResourceFile": {
+ "properties": {
+ "autoStorageContainerName": {
+ "type": "string",
+ "title": "The storage container name in the auto storage Account.",
+ "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified."
+ },
+ "storageContainerUrl": {
+ "type": "string",
+ "title": "The URL of the blob container within Azure Blob Storage.",
+ "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. This URL must be readable and listable using anonymous access; that is, the Batch service does not present any credentials when downloading blobs from the container. There are two ways to get such a URL for a container in Azure storage: include a Shared Access Signature (SAS) granting read and list permissions on the container, or set the ACL for the container to allow public access."
+ },
+ "httpUrl": {
+ "type": "string",
+ "title": "The URL of the file to download.",
+ "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. If the URL points to Azure Blob Storage, it must be readable using anonymous access; that is, the Batch service does not present any credentials when downloading the blob. There are two ways to get such a URL for a blob in Azure storage: include a Shared Access Signature (SAS) granting read permissions on the blob, or set the ACL for the blob or its container to allow public access."
+ },
+ "blobPrefix": {
+ "type": "string",
+ "title": "The blob prefix to use when downloading blobs from an Azure Storage container. Only the blobs whose names begin with the specified prefix will be downloaded.",
+ "description": "The property is valid only when autoStorageContainerName or storageContainerUrl is used. This prefix can be a partial filename or a subdirectory. If a prefix is not specified, all the files in the container will be downloaded."
+ },
+ "filePath": {
+ "type": "string",
+ "title": "The location on the Compute Node to which to download the file(s), relative to the Task's working directory.",
+ "description": "If the httpUrl property is specified, the filePath is required and describes the path which the file will be downloaded to, including the filename. Otherwise, if the autoStorageContainerName or storageContainerUrl property is specified, filePath is optional and is the directory to download the files to. In the case where filePath is used as a directory, any directory structure already associated with the input data will be retained in full and appended to the specified filePath directory. The specified relative path cannot break out of the Task's working directory (for example by using '..')."
+ },
+ "fileMode": {
+ "type": "string",
+ "title": "The file permission mode attribute in octal format.",
+ "description": "This property applies only to files being downloaded to Linux Compute Nodes. It will be ignored if it is specified for a resourceFile which will be downloaded to a Windows Compute Node. If this property is not specified for a Linux Compute Node, then a default value of 0770 is applied to the file."
+ }
+ },
+ "title": "A single file or multiple files to be downloaded to a Compute Node."
+ },
+ "EnvironmentSetting": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "The name of the environment variable."
+ },
+ "value": {
+ "type": "string",
+ "title": "The value of the environment variable."
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "title": "An environment variable to be set on a Task process."
+ },
+ "ExitConditions": {
+ "properties": {
+ "exitCodes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExitCodeMapping"
+ },
+ "title": "A list of individual Task exit codes and how the Batch service should respond to them."
+ },
+ "exitCodeRanges": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExitCodeRangeMapping"
+ },
+ "title": "A list of Task exit code ranges and how the Batch service should respond to them."
+ },
+ "preProcessingError": {
+ "$ref": "#/definitions/ExitOptions",
+ "title": "How the Batch service should respond if the Task fails to start due to an error."
+ },
+ "fileUploadError": {
+ "$ref": "#/definitions/ExitOptions",
+ "title": "How the Batch service should respond if a file upload error occurs.",
+ "description": "If the Task exited with an exit code that was specified via exitCodes or exitCodeRanges, and then encountered a file upload error, then the action specified by the exit code takes precedence."
+ },
+ "default": {
+ "$ref": "#/definitions/ExitOptions",
+ "title": "How the Batch service should respond if the Task fails with an exit condition not covered by any of the other properties.",
+ "description": "This value is used if the Task exits with any nonzero exit code not listed in the exitCodes or exitCodeRanges collection, with a pre-processing error if the preProcessingError property is not present, or with a file upload error if the fileUploadError property is not present. If you want non-default behavior on exit code 0, you must list it explicitly using the exitCodes or exitCodeRanges collection."
+ }
+ },
+ "title": "Specifies how the Batch service should respond when the Task completes."
+ },
+ "ExitCodeMapping": {
+ "properties": {
+ "code": {
+ "type": "integer",
+ "format": "int32",
+ "title": "A process exit code."
+ },
+ "exitOptions": {
+ "$ref": "#/definitions/ExitOptions",
+ "title": "How the Batch service should respond if the Task exits with this exit code."
+ }
+ },
+ "title": "How the Batch service should respond if a Task exits with a particular exit code.",
+ "required": [
+ "code",
+ "exitOptions"
+ ]
+ },
+ "ExitCodeRangeMapping": {
+ "properties": {
+ "start": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The first exit code in the range."
+ },
+ "end": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The last exit code in the range."
+ },
+ "exitOptions": {
+ "$ref": "#/definitions/ExitOptions",
+ "title": "How the Batch service should respond if the Task exits with an exit code in the range start to end (inclusive)."
+ }
+ },
+ "title": "A range of exit codes and how the Batch service should respond to exit codes within that range.",
+ "required": [
+ "start",
+ "end",
+ "exitOptions"
+ ]
+ },
+ "ExitOptions": {
+ "properties": {
+ "jobAction": {
+ "type": "string",
+ "title": "An action to take on the Job containing the Task, if the Task completes with the given exit condition and the Job's onTaskFailed property is 'performExitOptionsJobAction'.",
+ "description": "The default is none for exit code 0 and terminate for all other exit conditions. If the Job's onTaskFailed property is noaction, then specifying this property returns an error and the add Task request fails with an invalid property value error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
+ "enum": [
+ "none",
+ "disable",
+ "terminate"
+ ],
+ "x-ms-enum": {
+ "name": "JobAction",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "none",
+ "description": "Take no action."
+ },
+ {
+ "value": "disable",
+ "description": "Disable the Job. This is equivalent to calling the disable Job API, with a disableTasks value of requeue."
+ },
+ {
+ "value": "terminate",
+ "description": "Terminate the Job. The terminateReason in the Job's executionInfo is set to \"TaskFailed\"."
+ }
+ ]
+ }
+ },
+ "dependencyAction": {
+ "type": "string",
+ "title": "An action that the Batch service performs on Tasks that depend on this Task.",
+ "description": "Possible values are 'satisfy' (allowing dependent tasks to progress) and 'block' (dependent tasks continue to wait). Batch does not yet support cancellation of dependent tasks.",
+ "enum": [
+ "satisfy",
+ "block"
+ ],
+ "x-ms-enum": {
+ "name": "DependencyAction",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "satisfy",
+ "description": "Satisfy tasks waiting on this task; once all dependencies are satisfied, the task will be scheduled to run."
+ },
+ {
+ "value": "block",
+ "description": "Blocks tasks waiting on this task, preventing them from being scheduled."
+ }
+ ]
+ }
+ }
+ },
+ "title": "Specifies how the Batch service responds to a particular exit condition."
+ },
+ "AutoUserSpecification": {
+ "properties": {
+ "scope": {
+ "type": "string",
+ "title": "The scope for the auto user",
+ "description": "The default value is pool. If the pool is running Windows a value of Task should be specified if stricter isolation between tasks is required. For example, if the task mutates the registry in a way which could impact other tasks, or if certificates have been specified on the pool which should not be accessible by normal tasks but should be accessible by StartTasks.",
+ "enum": [
+ "task",
+ "pool"
+ ],
+ "x-ms-enum": {
+ "name": "AutoUserScope",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "task",
+ "description": "Specifies that the service should create a new user for the Task."
+ },
+ {
+ "value": "pool",
+ "description": "Specifies that the Task runs as the common auto user Account which is created on every Compute Node in a Pool."
+ }
+ ]
+ }
+ },
+ "elevationLevel": {
+ "title": "The elevation level of the auto user.",
+ "description": "The default value is nonAdmin.",
+ "$ref": "#/definitions/ElevationLevel"
+ }
+ },
+ "title": "Specifies the parameters for the auto user that runs a Task on the Batch service."
+ },
+ "UserIdentity": {
+ "properties": {
+ "username": {
+ "type": "string",
+ "x-ms-client-name": "userName",
+ "title": "The name of the user identity under which the Task is run.",
+ "description": "The userName and autoUser properties are mutually exclusive; you must specify one but not both."
+ },
+ "autoUser": {
+ "$ref": "#/definitions/AutoUserSpecification",
+ "title": "The auto user under which the Task is run.",
+ "description": "The userName and autoUser properties are mutually exclusive; you must specify one but not both."
+ }
+ },
+ "title": "The definition of the user identity under which the Task is run.",
+ "description": "Specify either the userName or autoUser property, but not both."
+ },
+ "LinuxUserConfiguration": {
+ "properties": {
+ "uid": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The user ID of the user Account.",
+ "description": "The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the uid."
+ },
+ "gid": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The group ID for the user Account.",
+ "description": "The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the gid."
+ },
+ "sshPrivateKey": {
+ "type": "string",
+ "title": "The SSH private key for the user Account.",
+ "description": "The private key must not be password protected. The private key is used to automatically configure asymmetric-key based authentication for SSH between Compute Nodes in a Linux Pool when the Pool's enableInterNodeCommunication property is true (it is ignored if enableInterNodeCommunication is false). It does this by placing the key pair into the user's .ssh directory. If not specified, password-less SSH is not configured between Compute Nodes (no modification of the user's .ssh directory is done)."
+ }
+ },
+ "title": "Properties used to create a user Account on a Linux Compute Node."
+ },
+ "WindowsUserConfiguration": {
+ "properties": {
+ "loginMode": {
+ "type": "string",
+ "title": "The login mode for the user",
+ "description": "The default value for VirtualMachineConfiguration Pools is 'batch' and for CloudServiceConfiguration Pools is 'interactive'.",
+ "enum": [
+ "batch",
+ "interactive"
+ ],
+ "x-ms-enum": {
+ "name": "LoginMode",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "batch",
+ "description": "The LOGON32_LOGON_BATCH Win32 login mode. The batch login mode is recommended for long running parallel processes."
+ },
+ {
+ "value": "interactive",
+ "description": "The LOGON32_LOGON_INTERACTIVE Win32 login mode. UAC is enabled on Windows VirtualMachineConfiguration Pools. If this option is used with an elevated user identity in a Windows VirtualMachineConfiguration Pool, the user session will not be elevated unless the application executed by the Task command line is configured to always require administrative privilege or to always require maximum privilege."
+ }
+ ]
+ }
+ }
+ },
+ "title": "Properties used to create a user Account on a Windows Compute Node."
+ },
+ "UserAccount": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "The name of the user Account."
+ },
+ "password": {
+ "type": "string",
+ "title": "The password for the user Account."
+ },
+ "elevationLevel": {
+ "title": "The elevation level of the user Account.",
+ "description": "The default value is nonAdmin.",
+ "$ref": "#/definitions/ElevationLevel"
+ },
+ "linuxUserConfiguration": {
+ "title": "The Linux-specific user configuration for the user Account.",
+ "description": "This property is ignored if specified on a Windows Pool. If not specified, the user is created with the default options.",
+ "$ref": "#/definitions/LinuxUserConfiguration"
+ },
+ "windowsUserConfiguration": {
+ "title": "The Windows-specific user configuration for the user Account.",
+ "description": "This property can only be specified if the user is on a Windows Pool. If not specified and on a Windows Pool, the user is created with the default options.",
+ "$ref": "#/definitions/WindowsUserConfiguration"
+ }
+ },
+ "required": [
+ "name",
+ "password"
+ ],
+ "title": "Properties used to create a user used to execute Tasks on an Azure Batch Compute Node."
+ },
+ "TaskConstraints": {
+ "properties": {
+ "maxWallClockTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The maximum elapsed time that the Task may run, measured from the time the Task starts. If the Task does not complete within the time limit, the Batch service terminates it.",
+ "description": "If this is not specified, there is no time limit on how long the Task may run."
+ },
+ "retentionTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The minimum time to retain the Task directory on the Compute Node where it ran, from the time it completes execution. After this time, the Batch service may delete the Task directory and all its contents.",
+ "description": "The default is 7 days, i.e. the Task directory will be retained for 7 days unless the Compute Node is removed or the Job is deleted."
+ },
+ "maxTaskRetryCount": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The maximum number of times the Task may be retried. The Batch service retries a Task if its exit code is nonzero.",
+ "description": "Note that this value specifically controls the number of retries for the Task executable due to a nonzero exit code. The Batch service will try the Task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries the Task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry the Task after the first attempt. If the maximum retry count is -1, the Batch service retries the Task without limit."
+ }
+ },
+ "title": "Execution constraints to apply to a Task."
+ },
+ "JobManagerTask": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "A string that uniquely identifies the Job Manager Task within the Job.",
+ "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores and cannot contain more than 64 characters."
+ },
+ "displayName": {
+ "type": "string",
+ "title": "The display name of the Job Manager Task.",
+ "description": "It need not be unique and can contain any Unicode characters up to a maximum length of 1024."
+ },
+ "commandLine": {
+ "type": "string",
+ "title": "The command line of the Job Manager Task.",
+ "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables)."
+ },
+ "containerSettings": {
+ "$ref": "#/definitions/TaskContainerSettings",
+ "title": "The settings for the container under which the Job Manager Task runs.",
+ "description": "If the Pool that will run this Task has containerConfiguration set, this must be set as well. If the Pool that will run this Task doesn't have containerConfiguration set, this must not be set. When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all Task environment variables are mapped into the container, and the Task command line is executed in the container. Files produced in the container outside of AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning that Batch file APIs will not be able to access those files."
+ },
+ "resourceFiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceFile"
+ },
+ "title": "A list of files that the Batch service will download to the Compute Node before running the command line.",
+ "description": "Files listed under this element are located in the Task's working directory. There is a maximum size for the list of resource files. When the max size is exceeded, the request will fail and the response error code will be RequestEntityTooLarge. If this occurs, the collection of ResourceFiles must be reduced in size. This can be achieved using .zip files, Application Packages, or Docker Containers."
+ },
+ "outputFiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OutputFile"
+ },
+ "title": "A list of files that the Batch service will upload from the Compute Node after running the command line.",
+ "description": "For multi-instance Tasks, the files will only be uploaded from the Compute Node on which the primary Task is executed."
+ },
+ "environmentSettings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnvironmentSetting"
+ },
+ "title": "A list of environment variable settings for the Job Manager Task."
+ },
+ "constraints": {
+ "$ref": "#/definitions/TaskConstraints",
+ "title": "Constraints that apply to the Job Manager Task."
+ },
+ "requiredSlots": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of scheduling slots that the Task requires to run.",
+ "description": "The default is 1. A Task can only be scheduled to run on a compute node if the node has enough free scheduling slots available. For multi-instance Tasks, this must be 1."
+ },
+ "killJobOnCompletion": {
+ "type": "boolean",
+ "title": "Whether completion of the Job Manager Task signifies completion of the entire Job.",
+ "description": "If true, when the Job Manager Task completes, the Batch service marks the Job as complete. If any Tasks are still running at this time (other than Job Release), those Tasks are terminated. If false, the completion of the Job Manager Task does not affect the Job status. In this case, you should either use the onAllTasksComplete attribute to terminate the Job, or have a client or user terminate the Job explicitly. An example of this is if the Job Manager creates a set of Tasks but then takes no further role in their execution. The default value is true. If you are using the onAllTasksComplete and onTaskFailure attributes to control Job lifetime, and using the Job Manager Task only to create the Tasks for the Job (not to monitor progress), then it is important to set killJobOnCompletion to false."
+ },
+ "userIdentity": {
+ "$ref": "#/definitions/UserIdentity",
+ "title": "The user identity under which the Job Manager Task runs.",
+ "description": "If omitted, the Task runs as a non-administrative user unique to the Task."
+ },
+ "runExclusive": {
+ "type": "boolean",
+ "title": "Whether the Job Manager Task requires exclusive use of the Compute Node where it runs.",
+ "description": "If true, no other Tasks will run on the same Node for as long as the Job Manager is running. If false, other Tasks can run simultaneously with the Job Manager on a Compute Node. The Job Manager Task counts normally against the Compute Node's concurrent Task limit, so this is only relevant if the Compute Node allows multiple concurrent Tasks. The default value is true."
+ },
+ "applicationPackageReferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationPackageReference"
+ },
+ "title": "A list of Application Packages that the Batch service will deploy to the Compute Node before running the command line.",
+ "description": "Application Packages are downloaded and deployed to a shared directory, not the Task working directory. Therefore, if a referenced Application Package is already on the Compute Node, and is up to date, then it is not re-downloaded; the existing copy on the Compute Node is used. If a referenced Application Package cannot be installed, for example because the package has been deleted or because download failed, the Task fails."
+ },
+ "authenticationTokenSettings": {
+ "title": "The settings for an authentication token that the Task can use to perform Batch service operations.",
+ "description": "If this property is set, the Batch service provides the Task with an authentication token which can be used to authenticate Batch service operations without requiring an Account access key. The token is provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations that the Task can carry out using the token depend on the settings. For example, a Task can request Job permissions in order to add other Tasks to the Job, or check the status of the Job or of other Tasks under the Job.",
+ "$ref": "#/definitions/AuthenticationTokenSettings"
+ },
+ "allowLowPriorityNode": {
+ "type": "boolean",
+ "title": "Whether the Job Manager Task may run on a low-priority Compute Node.",
+ "description": "The default value is true."
+ }
+ },
+ "required": [
+ "id",
+ "commandLine"
+ ],
+ "title": "Specifies details of a Job Manager Task.",
+ "description": "The Job Manager Task is automatically started when the Job is created. The Batch service tries to schedule the Job Manager Task before any other Tasks in the Job. When shrinking a Pool, the Batch service tries to preserve Nodes where Job Manager Tasks are running for as long as possible (that is, Compute Nodes running 'normal' Tasks are removed before Compute Nodes running Job Manager Tasks). When a Job Manager Task fails and needs to be restarted, the system tries to schedule it at the highest priority. If there are no idle Compute Nodes available, the system may terminate one of the running Tasks in the Pool and return it to the queue in order to make room for the Job Manager Task to restart. Note that a Job Manager Task in one Job does not have priority over Tasks in other Jobs. Across Jobs, only Job level priorities are observed. For example, if a Job Manager in a priority 0 Job needs to be restarted, it will not displace Tasks of a priority 1 Job. Batch will retry Tasks when a recovery operation is triggered on a Node. Examples of recovery operations include (but are not limited to) when an unhealthy Node is rebooted or a Compute Node disappeared due to host failure. Retries due to recovery operations are independent of and are not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, an internal retry due to a recovery operation may occur. Because of this, all Tasks should be idempotent. This means Tasks need to tolerate being interrupted and restarted without causing any corruption or duplicate data. The best practice for long running Tasks is to use some form of checkpointing."
+ },
+ "JobPreparationTask": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "A string that uniquely identifies the Job Preparation Task within the Job.",
+ "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores and cannot contain more than 64 characters. If you do not specify this property, the Batch service assigns a default value of 'jobpreparation'. No other Task in the Job can have the same ID as the Job Preparation Task. If you try to submit a Task with the same id, the Batch service rejects the request with error code TaskIdSameAsJobPreparationTask; if you are calling the REST API directly, the HTTP status code is 409 (Conflict)."
+ },
+ "commandLine": {
+ "type": "string",
+ "title": "The command line of the Job Preparation Task.",
+ "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables)."
+ },
+ "containerSettings": {
+ "$ref": "#/definitions/TaskContainerSettings",
+ "title": "The settings for the container under which the Job Preparation Task runs.",
+ "description": "When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all Task environment variables are mapped into the container, and the Task command line is executed in the container. Files produced in the container outside of AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning that Batch file APIs will not be able to access those files."
+ },
+ "resourceFiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceFile"
+ },
+ "title": "A list of files that the Batch service will download to the Compute Node before running the command line.",
+ "description": "Files listed under this element are located in the Task's working directory. There is a maximum size for the list of resource files. When the max size is exceeded, the request will fail and the response error code will be RequestEntityTooLarge. If this occurs, the collection of ResourceFiles must be reduced in size. This can be achieved using .zip files, Application Packages, or Docker Containers."
+ },
+ "environmentSettings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnvironmentSetting"
+ },
+ "title": "A list of environment variable settings for the Job Preparation Task."
+ },
+ "constraints": {
+ "$ref": "#/definitions/TaskConstraints",
+ "title": "Constraints that apply to the Job Preparation Task."
+ },
+ "waitForSuccess": {
+ "type": "boolean",
+ "title": "Whether the Batch service should wait for the Job Preparation Task to complete successfully before scheduling any other Tasks of the Job on the Compute Node. A Job Preparation Task has completed successfully if it exits with exit code 0.",
+ "description": "If true and the Job Preparation Task fails on a Node, the Batch service retries the Job Preparation Task up to its maximum retry count (as specified in the constraints element). If the Task has still not completed successfully after all retries, then the Batch service will not schedule Tasks of the Job to the Node. The Node remains active and eligible to run Tasks of other Jobs. If false, the Batch service will not wait for the Job Preparation Task to complete. In this case, other Tasks of the Job can start executing on the Compute Node while the Job Preparation Task is still running; and even if the Job Preparation Task fails, new Tasks will continue to be scheduled on the Compute Node. The default value is true."
+ },
+ "userIdentity": {
+ "$ref": "#/definitions/UserIdentity",
+ "title": "The user identity under which the Job Preparation Task runs.",
+ "description": "If omitted, the Task runs as a non-administrative user unique to the Task on Windows Compute Nodes, or a non-administrative user unique to the Pool on Linux Compute Nodes."
+ },
+ "rerunOnNodeRebootAfterSuccess": {
+ "type": "boolean",
+ "title": "Whether the Batch service should rerun the Job Preparation Task after a Compute Node reboots.",
+ "description": "The Job Preparation Task is always rerun if a Compute Node is reimaged, or if the Job Preparation Task did not complete (e.g. because the reboot occurred while the Task was running). Therefore, you should always write a Job Preparation Task to be idempotent and to behave correctly if run multiple times. The default value is true."
+ }
+ },
+ "required": [
+ "commandLine"
+ ],
+ "title": "A Job Preparation Task to run before any Tasks of the Job on any given Compute Node.",
+ "description": "You can use Job Preparation to prepare a Node to run Tasks for the Job. Activities commonly performed in Job Preparation include: Downloading common resource files used by all the Tasks in the Job. The Job Preparation Task can download these common resource files to the shared location on the Node. (AZ_BATCH_NODE_ROOT_DIR\\shared), or starting a local service on the Node so that all Tasks of that Job can communicate with it. If the Job Preparation Task fails (that is, exhausts its retry count before exiting with exit code 0), Batch will not run Tasks of this Job on the Node. The Compute Node remains ineligible to run Tasks of this Job until it is reimaged. The Compute Node remains active and can be used for other Jobs. The Job Preparation Task can run multiple times on the same Node. Therefore, you should write the Job Preparation Task to handle re-execution. If the Node is rebooted, the Job Preparation Task is run again on the Compute Node before scheduling any other Task of the Job, if rerunOnNodeRebootAfterSuccess is true or if the Job Preparation Task did not previously complete. If the Node is reimaged, the Job Preparation Task is run again before scheduling any Task of the Job. Batch will retry Tasks when a recovery operation is triggered on a Node. Examples of recovery operations include (but are not limited to) when an unhealthy Node is rebooted or a Compute Node disappeared due to host failure. Retries due to recovery operations are independent of and are not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, an internal retry due to a recovery operation may occur. Because of this, all Tasks should be idempotent. This means Tasks need to tolerate being interrupted and restarted without causing any corruption or duplicate data. The best practice for long running Tasks is to use some form of checkpointing."
+ },
+ "JobReleaseTask": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "A string that uniquely identifies the Job Release Task within the Job.",
+ "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores and cannot contain more than 64 characters. If you do not specify this property, the Batch service assigns a default value of 'jobrelease'. No other Task in the Job can have the same ID as the Job Release Task. If you try to submit a Task with the same id, the Batch service rejects the request with error code TaskIdSameAsJobReleaseTask; if you are calling the REST API directly, the HTTP status code is 409 (Conflict)."
+ },
+ "commandLine": {
+ "type": "string",
+ "title": "The command line of the Job Release Task.",
+ "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables)."
+ },
+ "containerSettings": {
+ "$ref": "#/definitions/TaskContainerSettings",
+ "title": "The settings for the container under which the Job Release Task runs.",
+ "description": "When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all Task environment variables are mapped into the container, and the Task command line is executed in the container. Files produced in the container outside of AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning that Batch file APIs will not be able to access those files."
+ },
+ "resourceFiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceFile"
+ },
+ "title": "A list of files that the Batch service will download to the Compute Node before running the command line. There is a maximum size for the list of resource files. When the max size is exceeded, the request will fail and the response error code will be RequestEntityTooLarge. If this occurs, the collection of ResourceFiles must be reduced in size. This can be achieved using .zip files, Application Packages, or Docker Containers.",
+ "description": "Files listed under this element are located in the Task's working directory."
+ },
+ "environmentSettings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnvironmentSetting"
+ },
+ "title": "A list of environment variable settings for the Job Release Task."
+ },
+ "maxWallClockTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The maximum elapsed time that the Job Release Task may run on a given Compute Node, measured from the time the Task starts. If the Task does not complete within the time limit, the Batch service terminates it. The default value is 15 minutes. You may not specify a timeout longer than 15 minutes. If you do, the Batch service rejects it with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)."
+ },
+ "retentionTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The minimum time to retain the Task directory for the Job Release Task on the Compute Node. After this time, the Batch service may delete the Task directory and all its contents.",
+ "description": "The default is 7 days, i.e. the Task directory will be retained for 7 days unless the Compute Node is removed or the Job is deleted."
+ },
+ "userIdentity": {
+ "$ref": "#/definitions/UserIdentity",
+ "title": "The user identity under which the Job Release Task runs.",
+ "description": "If omitted, the Task runs as a non-administrative user unique to the Task."
+ }
+ },
+ "required": [
+ "commandLine"
+ ],
+ "title": "A Job Release Task to run on Job completion on any Compute Node where the Job has run.",
+ "description": "The Job Release Task runs when the Job ends, because of one of the following: The user calls the Terminate Job API, or the Delete Job API while the Job is still active, the Job's maximum wall clock time constraint is reached, and the Job is still active, or the Job's Job Manager Task completed, and the Job is configured to terminate when the Job Manager completes. The Job Release Task runs on each Node where Tasks of the Job have run and the Job Preparation Task ran and completed. If you reimage a Node after it has run the Job Preparation Task, and the Job ends without any further Tasks of the Job running on that Node (and hence the Job Preparation Task does not re-run), then the Job Release Task does not run on that Compute Node. If a Node reboots while the Job Release Task is still running, the Job Release Task runs again when the Compute Node starts up. The Job is not marked as complete until all Job Release Tasks have completed. The Job Release Task runs in the background. It does not occupy a scheduling slot; that is, it does not count towards the taskSlotsPerNode limit specified on the Pool."
+ },
+ "TaskSchedulingPolicy": {
+ "properties": {
+ "nodeFillType": {
+ "type": "string",
+ "title": "How Tasks are distributed across Compute Nodes in a Pool.",
+ "description": "If not specified, the default is spread.",
+ "enum": [
+ "spread",
+ "pack"
+ ],
+ "x-ms-enum": {
+ "name": "ComputeNodeFillType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "spread",
+ "description": "Tasks should be assigned evenly across all Compute Nodes in the Pool."
+ },
+ {
+ "value": "pack",
+ "description": "As many Tasks as possible (taskSlotsPerNode) should be assigned to each Compute Node in the Pool before any Tasks are assigned to the next Compute Node in the Pool."
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "nodeFillType"
+ ],
+ "title": "Specifies how Tasks should be distributed across Compute Nodes."
+ },
+ "StartTask": {
+ "properties": {
+ "commandLine": {
+ "type": "string",
+ "title": "The command line of the StartTask.",
+ "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables)."
+ },
+ "containerSettings": {
+ "$ref": "#/definitions/TaskContainerSettings",
+ "title": "The settings for the container under which the StartTask runs.",
+ "description": "When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all Task environment variables are mapped into the container, and the Task command line is executed in the container. Files produced in the container outside of AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning that Batch file APIs will not be able to access those files."
+ },
+ "resourceFiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceFile"
+ },
+ "title": "A list of files that the Batch service will download to the Compute Node before running the command line. There is a maximum size for the list of resource files. When the max size is exceeded, the request will fail and the response error code will be RequestEntityTooLarge. If this occurs, the collection of ResourceFiles must be reduced in size. This can be achieved using .zip files, Application Packages, or Docker Containers.",
+ "description": "Files listed under this element are located in the Task's working directory."
+ },
+ "environmentSettings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnvironmentSetting"
+ },
+ "title": "A list of environment variable settings for the StartTask."
+ },
+ "userIdentity": {
+ "$ref": "#/definitions/UserIdentity",
+ "title": "The user identity under which the StartTask runs.",
+ "description": "If omitted, the Task runs as a non-administrative user unique to the Task."
+ },
+ "maxTaskRetryCount": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The maximum number of times the Task may be retried.",
+ "description": "The Batch service retries a Task if its exit code is nonzero. Note that this value specifically controls the number of retries. The Batch service will try the Task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries the Task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry the Task. If the maximum retry count is -1, the Batch service retries the Task without limit."
+ },
+ "waitForSuccess": {
+ "type": "boolean",
+ "title": "Whether the Batch service should wait for the StartTask to complete successfully (that is, to exit with exit code 0) before scheduling any Tasks on the Compute Node.",
+ "description": "If true and the StartTask fails on a Node, the Batch service retries the StartTask up to its maximum retry count (maxTaskRetryCount). If the Task has still not completed successfully after all retries, then the Batch service marks the Node unusable, and will not schedule Tasks to it. This condition can be detected via the Compute Node state and failure info details. If false, the Batch service will not wait for the StartTask to complete. In this case, other Tasks can start executing on the Compute Node while the StartTask is still running; and even if the StartTask fails, new Tasks will continue to be scheduled on the Compute Node. The default is true."
+ }
+ },
+ "required": [
+ "commandLine"
+ ],
+ "title": "A Task which is run when a Node joins a Pool in the Azure Batch service, or when the Compute Node is rebooted or reimaged.",
+ "description": "Batch will retry Tasks when a recovery operation is triggered on a Node. Examples of recovery operations include (but are not limited to) when an unhealthy Node is rebooted or a Compute Node disappeared due to host failure. Retries due to recovery operations are independent of and are not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, an internal retry due to a recovery operation may occur. Because of this, all Tasks should be idempotent. This means Tasks need to tolerate being interrupted and restarted without causing any corruption or duplicate data. The best practice for long running Tasks is to use some form of checkpointing. In some cases the StartTask may be re-run even though the Compute Node was not rebooted. Special care should be taken to avoid StartTasks which create breakaway process or install/launch services from the StartTask working directory, as this will block Batch from being able to re-run the StartTask."
+ },
+ "CertificateReference": {
+ "properties": {
+ "thumbprint": {
+ "type": "string",
+ "title": "The thumbprint of the Certificate."
+ },
+ "thumbprintAlgorithm": {
+ "type": "string",
+ "title": "The algorithm with which the thumbprint is associated. This must be sha1."
+ },
+ "storeLocation": {
+ "type": "string",
+ "title": "The location of the Certificate store on the Compute Node into which to install the Certificate.",
+ "description": "The default value is currentuser. This property is applicable only for Pools configured with Windows Compute Nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows Image reference). For Linux Compute Nodes, the Certificates are stored in a directory inside the Task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this location. For Certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and Certificates are placed in that directory.",
+ "enum": [
+ "currentuser",
+ "localmachine"
+ ],
+ "x-ms-enum": {
+ "name": "CertificateStoreLocation",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "currentuser",
+ "description": "Certificates should be installed to the CurrentUser Certificate store.",
+ "name": "currentUser"
+ },
+ {
+ "value": "localmachine",
+ "description": "Certificates should be installed to the LocalMachine Certificate store.",
+ "name": "localMachine"
+ }
+ ]
+ }
+ },
+ "storeName": {
+ "type": "string",
+ "title": "The name of the Certificate store on the Compute Node into which to install the Certificate.",
+ "description": "This property is applicable only for Pools configured with Windows Compute Nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows Image reference). Common store names include: My, Root, CA, Trust, Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but any custom store name can also be used. The default value is My."
+ },
+ "visibility": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "x-nullable": false,
+ "enum": [
+ "starttask",
+ "task",
+ "remoteuser"
+ ],
+ "x-ms-enum": {
+ "name": "CertificateVisibility",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "starttask",
+ "description": "The Certificate should be visible to the user account under which the StartTask is run. Note that if AutoUser Scope is Pool for both the StartTask and a Task, this certificate will be visible to the Task as well.",
+ "name": "startTask"
+ },
+ {
+ "value": "task",
+ "description": "The Certificate should be visible to the user accounts under which Job Tasks are run."
+ },
+ {
+ "value": "remoteuser",
+ "description": "The Certificate should be visible to the user accounts under which users remotely access the Compute Node.",
+ "name": "remoteUser"
+ }
+ ]
+ }
+ },
+ "title": "Which user Accounts on the Compute Node should have access to the private data of the Certificate.",
+ "description": "You can specify more than one visibility in this collection. The default is all Accounts."
+ }
+ },
+ "required": [
+ "thumbprint",
+ "thumbprintAlgorithm"
+ ],
+ "title": "A reference to a Certificate to be installed on Compute Nodes in a Pool."
+ },
+ "MetadataItem": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "The name of the metadata item."
+ },
+ "value": {
+ "type": "string",
+ "title": "The value of the metadata item."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "title": "A name-value pair associated with a Batch service resource.",
+ "description": "The Batch service does not assign any meaning to this metadata; it is solely for the use of user code."
+ },
+ "PoolSpecification": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "title": "The display name for the Pool.",
+ "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024."
+ },
+ "vmSize": {
+ "type": "string",
+ "title": "The size of the virtual machines in the Pool. All virtual machines in a Pool are the same size.",
+ "description": "For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes)."
+ },
+ "cloudServiceConfiguration": {
+ "$ref": "#/definitions/CloudServiceConfiguration",
+ "title": "The cloud service configuration for the Pool.",
+ "description": "This property must be specified if the Pool needs to be created with Azure PaaS VMs. This property and virtualMachineConfiguration are mutually exclusive and one of the properties must be specified. If neither is specified then the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request). This property cannot be specified if the Batch Account was created with its poolAllocationMode property set to 'UserSubscription'."
+ },
+ "virtualMachineConfiguration": {
+ "$ref": "#/definitions/VirtualMachineConfiguration",
+ "title": "The virtual machine configuration for the Pool.",
+ "description": "This property must be specified if the Pool needs to be created with Azure IaaS VMs. This property and cloudServiceConfiguration are mutually exclusive and one of the properties must be specified. If neither is specified then the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)."
+ },
+ "taskSlotsPerNode": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of task slots that can be used to run concurrent tasks on a single compute node in the pool.",
+ "description": "The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256."
+ },
+ "taskSchedulingPolicy": {
+ "$ref": "#/definitions/TaskSchedulingPolicy",
+ "title": "How Tasks are distributed across Compute Nodes in a Pool.",
+ "description": "If not specified, the default is spread."
+ },
+ "resizeTimeout": {
+ "type": "string",
+ "format": "duration",
+ "title": "The timeout for allocation of Compute Nodes to the Pool.",
+ "description": "This timeout applies only to manual scaling; it has no effect when enableAutoScale is set to true. The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service rejects the request with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)."
+ },
+ "targetDedicatedNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The desired number of dedicated Compute Nodes in the Pool.",
+ "description": "This property must not be specified if enableAutoScale is set to true. If enableAutoScale is set to false, then you must set either targetDedicatedNodes, targetLowPriorityNodes, or both."
+ },
+ "targetLowPriorityNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The desired number of low-priority Compute Nodes in the Pool.",
+ "description": "This property must not be specified if enableAutoScale is set to true. If enableAutoScale is set to false, then you must set either targetDedicatedNodes, targetLowPriorityNodes, or both."
+ },
+ "enableAutoScale": {
+ "type": "boolean",
+ "title": "Whether the Pool size should automatically adjust over time.",
+ "description": "If false, at least one of targetDedicateNodes and targetLowPriorityNodes must be specified. If true, the autoScaleFormula element is required. The Pool automatically resizes according to the formula. The default value is false."
+ },
+ "autoScaleFormula": {
+ "type": "string",
+ "title": "The formula for the desired number of Compute Nodes in the Pool.",
+ "description": "This property must not be specified if enableAutoScale is set to false. It is required if enableAutoScale is set to true. The formula is checked for validity before the Pool is created. If the formula is not valid, the Batch service rejects the request with detailed error information."
+ },
+ "autoScaleEvaluationInterval": {
+ "type": "string",
+ "format": "duration",
+ "title": "The time interval at which to automatically adjust the Pool size according to the autoscale formula.",
+ "description": "The default value is 15 minutes. The minimum and maximum value are 5 minutes and 168 hours respectively. If you specify a value less than 5 minutes or greater than 168 hours, the Batch service rejects the request with an invalid property value error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)."
+ },
+ "enableInterNodeCommunication": {
+ "type": "boolean",
+ "title": "Whether the Pool permits direct communication between Compute Nodes.",
+ "description": "Enabling inter-node communication limits the maximum size of the Pool due to deployment restrictions on the Compute Nodes of the Pool. This may result in the Pool not reaching its desired size. The default value is false."
+ },
+ "networkConfiguration": {
+ "$ref": "#/definitions/NetworkConfiguration",
+ "title": "The network configuration for the Pool."
+ },
+ "startTask": {
+ "$ref": "#/definitions/StartTask",
+ "title": "A Task to run on each Compute Node as it joins the Pool. The Task runs when the Compute Node is added to the Pool or when the Compute Node is restarted."
+ },
+ "certificateReferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateReference"
+ },
+ "title": "A list of Certificates to be installed on each Compute Node in the Pool.",
+ "description": "For Windows Nodes, the Batch service installs the Certificates to the specified Certificate store and location. For Linux Compute Nodes, the Certificates are stored in a directory inside the Task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this location. For Certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and Certificates are placed in that directory."
+ },
+ "applicationPackageReferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationPackageReference"
+ },
+ "title": "The list of Packages to be installed on each Compute Node in the Pool.",
+ "description": "Changes to Package references affect all new Nodes joining the Pool, but do not affect Compute Nodes that are already in the Pool until they are rebooted or reimaged. There is a maximum of 10 Package references on any given Pool."
+ },
+ "applicationLicenses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "The list of application licenses the Batch service will make available on each Compute Node in the Pool.",
+ "description": "The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, Pool creation will fail. The permitted licenses available on the Pool are 'maya', 'vray', '3dsmax', 'arnold'. An additional charge applies for each application license added to the Pool."
+ },
+ "userAccounts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UserAccount"
+ },
+ "title": "The list of user Accounts to be created on each Compute Node in the Pool."
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with the Pool as metadata.",
+ "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code."
+ },
+ "mountConfiguration": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MountConfiguration"
+ },
+ "title": "A list of file systems to mount on each node in the pool.",
+ "description": "This supports Azure Files, NFS, CIFS/SMB, and Blobfuse."
+ }
+ },
+ "required": [
+ "vmSize"
+ ],
+ "title": "Specification for creating a new Pool."
+ },
+ "AutoPoolSpecification": {
+ "properties": {
+ "autoPoolIdPrefix": {
+ "type": "string",
+ "title": "A prefix to be added to the unique identifier when a Pool is automatically created.",
+ "description": "The Batch service assigns each auto Pool a unique identifier on creation. To distinguish between Pools created for different purposes, you can specify this element to add a prefix to the ID that is assigned. The prefix can be up to 20 characters long."
+ },
+ "poolLifetimeOption": {
+ "type": "string",
+ "title": "The minimum lifetime of created auto Pools, and how multiple Jobs on a schedule are assigned to Pools.",
+ "enum": [
+ "jobschedule",
+ "job"
+ ],
+ "x-ms-enum": {
+ "name": "PoolLifetimeOption",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "jobschedule",
+ "description": "The Pool exists for the lifetime of the Job Schedule. The Batch Service creates the Pool when it creates the first Job on the schedule. You may apply this option only to Job Schedules, not to Jobs.",
+ "name": "jobSchedule"
+ },
+ {
+ "value": "job",
+ "description": "The Pool exists for the lifetime of the Job to which it is dedicated. The Batch service creates the Pool when it creates the Job. If the 'job' option is applied to a Job Schedule, the Batch service creates a new auto Pool for every Job created on the schedule."
+ }
+ ]
+ }
+ },
+ "keepAlive": {
+ "type": "boolean",
+ "title": "Whether to keep an auto Pool alive after its lifetime expires.",
+ "description": "If false, the Batch service deletes the Pool once its lifetime (as determined by the poolLifetimeOption setting) expires; that is, when the Job or Job Schedule completes. If true, the Batch service does not delete the Pool automatically. It is up to the user to delete auto Pools created with this option."
+ },
+ "pool": {
+ "$ref": "#/definitions/PoolSpecification",
+ "title": "The Pool specification for the auto Pool."
+ }
+ },
+ "required": [
+ "poolLifetimeOption"
+ ],
+ "title": "Specifies characteristics for a temporary 'auto pool'. The Batch service will create this auto Pool when the Job is submitted."
+ },
+ "PoolInformation": {
+ "properties": {
+ "poolId": {
+ "type": "string",
+ "title": "The ID of an existing Pool. All the Tasks of the Job will run on the specified Pool.",
+ "description": "You must ensure that the Pool referenced by this property exists. If the Pool does not exist at the time the Batch service tries to schedule a Job, no Tasks for the Job will run until you create a Pool with that id. Note that the Batch service will not reject the Job request; it will simply not run Tasks until the Pool exists. You must specify either the Pool ID or the auto Pool specification, but not both."
+ },
+ "autoPoolSpecification": {
+ "$ref": "#/definitions/AutoPoolSpecification",
+ "title": "Characteristics for a temporary 'auto pool'. The Batch service will create this auto Pool when the Job is submitted.",
+ "description": "If auto Pool creation fails, the Batch service moves the Job to a completed state, and the Pool creation error is set in the Job's scheduling error property. The Batch service manages the lifetime (both creation and, unless keepAlive is specified, deletion) of the auto Pool. Any user actions that affect the lifetime of the auto Pool while the Job is active will result in unexpected behavior. You must specify either the Pool ID or the auto Pool specification, but not both."
+ }
+ },
+ "title": "Specifies how a Job should be assigned to a Pool."
+ },
+ "JobSpecification": {
+ "properties": {
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The priority of Jobs created under this schedule.",
+ "description": "Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. The default value is 0. This priority is used as the default for all Jobs under the Job Schedule. You can update a Job's priority after it has been created using by using the update Job API."
+ },
+ "displayName": {
+ "type": "string",
+ "title": "The display name for Jobs created under this schedule.",
+ "description": "The name need not be unique and can contain any Unicode characters up to a maximum length of 1024."
+ },
+ "usesTaskDependencies": {
+ "type": "boolean",
+ "title": "Whether Tasks in the Job can define dependencies on each other. The default is false."
+ },
+ "onAllTasksComplete": {
+ "title": "The action the Batch service should take when all Tasks in a Job created under this schedule are in the completed state.",
+ "description": "Note that if a Job contains no Tasks, then all Tasks are considered complete. This option is therefore most commonly used with a Job Manager task; if you want to use automatic Job termination without a Job Manager, you should initially set onAllTasksComplete to noaction and update the Job properties to set onAllTasksComplete to terminatejob once you have finished adding Tasks. The default is noaction.",
+ "$ref": "#/definitions/OnAllTasksComplete"
+ },
+ "onTaskFailure": {
+ "title": "The action the Batch service should take when any Task fails in a Job created under this schedule. A Task is considered to have failed if it have failed if has a failureInfo. A failureInfo is set if the Task completes with a non-zero exit code after exhausting its retry count, or if there was an error starting the Task, for example due to a resource file download error.",
+ "description": "The default is noaction.",
+ "$ref": "#/definitions/OnTaskFailure"
+ },
+ "networkConfiguration": {
+ "$ref": "#/definitions/JobNetworkConfiguration",
+ "title": "The network configuration for the Job."
+ },
+ "constraints": {
+ "$ref": "#/definitions/JobConstraints",
+ "title": "The execution constraints for Jobs created under this schedule."
+ },
+ "jobManagerTask": {
+ "$ref": "#/definitions/JobManagerTask",
+ "title": "The details of a Job Manager Task to be launched when a Job is started under this schedule.",
+ "description": "If the Job does not specify a Job Manager Task, the user must explicitly add Tasks to the Job using the Task API. If the Job does specify a Job Manager Task, the Batch service creates the Job Manager Task when the Job is created, and will try to schedule the Job Manager Task before scheduling other Tasks in the Job."
+ },
+ "jobPreparationTask": {
+ "$ref": "#/definitions/JobPreparationTask",
+ "title": "The Job Preparation Task for Jobs created under this schedule.",
+ "description": "If a Job has a Job Preparation Task, the Batch service will run the Job Preparation Task on a Node before starting any Tasks of that Job on that Compute Node."
+ },
+ "jobReleaseTask": {
+ "$ref": "#/definitions/JobReleaseTask",
+ "title": "The Job Release Task for Jobs created under this schedule.",
+ "description": "The primary purpose of the Job Release Task is to undo changes to Nodes made by the Job Preparation Task. Example activities include deleting local files, or shutting down services that were started as part of Job preparation. A Job Release Task cannot be specified without also specifying a Job Preparation Task for the Job. The Batch service runs the Job Release Task on the Compute Nodes that have run the Job Preparation Task."
+ },
+ "commonEnvironmentSettings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnvironmentSetting"
+ },
+ "title": "A list of common environment variable settings. These environment variables are set for all Tasks in Jobs created under this schedule (including the Job Manager, Job Preparation and Job Release Tasks).",
+ "description": "Individual Tasks can override an environment setting specified here by specifying the same setting name with a different value."
+ },
+ "poolInfo": {
+ "$ref": "#/definitions/PoolInformation",
+ "title": "The Pool on which the Batch service runs the Tasks of Jobs created under this schedule."
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with each Job created under this schedule as metadata.",
+ "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code."
+ }
+ },
+ "required": [
+ "poolInfo"
+ ],
+ "title": "Specifies details of the Jobs to be created on a schedule."
+ },
+ "RecentJob": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "The ID of the Job."
+ },
+ "url": {
+ "type": "string",
+ "title": "The URL of the Job."
+ }
+ },
+ "title": "Information about the most recent Job to run under the Job Schedule."
+ },
+ "JobScheduleExecutionInformation": {
+ "properties": {
+ "nextRunTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The next time at which a Job will be created under this schedule.",
+ "description": "This property is meaningful only if the schedule is in the active state when the time comes around. For example, if the schedule is disabled, no Job will be created at nextRunTime unless the Job is enabled before then."
+ },
+ "recentJob": {
+ "$ref": "#/definitions/RecentJob",
+ "title": "Information about the most recent Job under the Job Schedule.",
+ "description": "This property is present only if the at least one Job has run under the schedule."
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the schedule ended.",
+ "description": "This property is set only if the Job Schedule is in the completed state."
+ }
+ },
+ "title": "Contains information about Jobs that have been and will be run under a Job Schedule."
+ },
+ "JobScheduleStatistics": {
+ "properties": {
+ "url": {
+ "type": "string",
+ "title": "The URL of the statistics."
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The start time of the time range covered by the statistics."
+ },
+ "lastUpdateTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime."
+ },
+ "userCPUTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The total user mode CPU time (summed across all cores and all Compute Nodes) consumed by all Tasks in all Jobs created under the schedule."
+ },
+ "kernelCPUTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The total kernel mode CPU time (summed across all cores and all Compute Nodes) consumed by all Tasks in all Jobs created under the schedule."
+ },
+ "wallClockTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The total wall clock time of all the Tasks in all the Jobs created under the schedule.",
+ "description": "The wall clock time is the elapsed time from when the Task started running on a Compute Node to when it finished (or to the last time the statistics were updated, if the Task had not finished by then). If a Task was retried, this includes the wall clock time of all the Task retries."
+ },
+ "readIOps": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The total number of disk read operations made by all Tasks in all Jobs created under the schedule."
+ },
+ "writeIOps": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The total number of disk write operations made by all Tasks in all Jobs created under the schedule."
+ },
+ "readIOGiB": {
+ "type": "number",
+ "format": "double",
+ "title": "The total gibibytes read from disk by all Tasks in all Jobs created under the schedule."
+ },
+ "writeIOGiB": {
+ "type": "number",
+ "format": "double",
+ "title": "The total gibibytes written to disk by all Tasks in all Jobs created under the schedule."
+ },
+ "numSucceededTasks": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The total number of Tasks successfully completed during the given time range in Jobs created under the schedule. A Task completes successfully if it returns exit code 0."
+ },
+ "numFailedTasks": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The total number of Tasks that failed during the given time range in Jobs created under the schedule. A Task fails if it exhausts its maximum retry count without returning exit code 0."
+ },
+ "numTaskRetries": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The total number of retries during the given time range on all Tasks in all Jobs created under the schedule."
+ },
+ "waitTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The total wait time of all Tasks in all Jobs created under the schedule. The wait time for a Task is defined as the elapsed time between the creation of the Task and the start of Task execution. (If the Task is retried due to failures, the wait time is the time to the most recent Task execution.)",
+ "description": "This value is only reported in the Account lifetime statistics; it is not included in the Job statistics."
+ }
+ },
+ "required": [
+ "url",
+ "startTime",
+ "lastUpdateTime",
+ "userCPUTime",
+ "kernelCPUTime",
+ "wallClockTime",
+ "readIOps",
+ "writeIOps",
+ "readIOGiB",
+ "writeIOGiB",
+ "numSucceededTasks",
+ "numFailedTasks",
+ "numTaskRetries",
+ "waitTime"
+ ],
+ "title": "Resource usage statistics for a Job Schedule."
+ },
+ "CloudJobSchedule": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "A string that uniquely identifies the schedule within the Account."
+ },
+ "displayName": {
+ "type": "string",
+ "title": "The display name for the schedule."
+ },
+ "url": {
+ "type": "string",
+ "title": "The URL of the Job Schedule."
+ },
+ "eTag": {
+ "type": "string",
+ "title": "The ETag of the Job Schedule.",
+ "description": "This is an opaque string. You can use it to detect whether the Job Schedule has changed between requests. In particular, you can be pass the ETag with an Update Job Schedule request to specify that your changes should take effect only if nobody else has modified the schedule in the meantime."
+ },
+ "lastModified": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The last modified time of the Job Schedule.",
+ "description": "This is the last time at which the schedule level data, such as the Job specification or recurrence information, changed. It does not factor in job-level changes such as new Jobs being created or Jobs changing state."
+ },
+ "creationTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The creation time of the Job Schedule."
+ },
+ "state": {
+ "title": "The current state of the Job Schedule.",
+ "$ref": "#/definitions/JobScheduleState"
+ },
+ "stateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Job Schedule entered the current state."
+ },
+ "previousState": {
+ "title": "The previous state of the Job Schedule.",
+ "description": "This property is not present if the Job Schedule is in its initial active state.",
+ "$ref": "#/definitions/JobScheduleState"
+ },
+ "previousStateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Job Schedule entered its previous state.",
+ "description": "This property is not present if the Job Schedule is in its initial active state."
+ },
+ "schedule": {
+ "$ref": "#/definitions/Schedule",
+ "title": "The schedule according to which Jobs will be created."
+ },
+ "jobSpecification": {
+ "$ref": "#/definitions/JobSpecification",
+ "title": "The details of the Jobs to be created on this schedule."
+ },
+ "executionInfo": {
+ "$ref": "#/definitions/JobScheduleExecutionInformation",
+ "title": "Information about Jobs that have been and will be run under this schedule."
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with the schedule as metadata.",
+ "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code."
+ },
+ "stats": {
+ "$ref": "#/definitions/JobScheduleStatistics",
+ "title": "The lifetime resource usage statistics for the Job Schedule. The statistics may not be immediately available. The Batch service performs periodic roll-up of statistics. The typical delay is about 30 minutes."
+ }
+ },
+ "title": "A Job Schedule that allows recurring Jobs by specifying when to run Jobs and a specification used to create each Job."
+ },
+ "JobScheduleAddParameter": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "A string that uniquely identifies the schedule within the Account.",
+ "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an Account that differ only by case)."
+ },
+ "displayName": {
+ "type": "string",
+ "title": "The display name for the schedule.",
+ "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024."
+ },
+ "schedule": {
+ "$ref": "#/definitions/Schedule",
+ "title": "The schedule according to which Jobs will be created."
+ },
+ "jobSpecification": {
+ "$ref": "#/definitions/JobSpecification",
+ "title": "The details of the Jobs to be created on this schedule."
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with the schedule as metadata.",
+ "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code."
+ }
+ },
+ "required": [
+ "id",
+ "schedule",
+ "jobSpecification"
+ ],
+ "title": "A Job Schedule that allows recurring Jobs by specifying when to run Jobs and a specification used to create each Job."
+ },
+ "CloudJobScheduleListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudJobSchedule"
+ },
+ "title": "The list of Job Schedules."
+ },
+ "odata.nextLink": {
+ "type": "string",
+ "title": "The URL to get the next set of results."
+ }
+ },
+ "title": "The result of listing the Job Schedules in an Account."
+ },
+ "JobSchedulingError": {
+ "properties": {
+ "category": {
+ "title": "The category of the Job scheduling error.",
+ "$ref": "#/definitions/ErrorCategory"
+ },
+ "code": {
+ "type": "string",
+ "title": "An identifier for the Job scheduling error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "title": "A message describing the Job scheduling error, intended to be suitable for display in a user interface."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NameValuePair"
+ },
+ "title": "A list of additional error details related to the scheduling error."
+ }
+ },
+ "required": [
+ "category"
+ ],
+ "title": "An error encountered by the Batch service when scheduling a Job."
+ },
+ "JobExecutionInformation": {
+ "properties": {
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The start time of the Job.",
+ "description": "This is the time at which the Job was created."
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The completion time of the Job.",
+ "description": "This property is set only if the Job is in the completed state."
+ },
+ "poolId": {
+ "type": "string",
+ "title": "The ID of the Pool to which this Job is assigned.",
+ "description": "This element contains the actual Pool where the Job is assigned. When you get Job details from the service, they also contain a poolInfo element, which contains the Pool configuration data from when the Job was added or updated. That poolInfo element may also contain a poolId element. If it does, the two IDs are the same. If it does not, it means the Job ran on an auto Pool, and this property contains the ID of that auto Pool."
+ },
+ "schedulingError": {
+ "$ref": "#/definitions/JobSchedulingError",
+ "title": "Details of any error encountered by the service in starting the Job.",
+ "description": "This property is not set if there was no error starting the Job."
+ },
+ "terminateReason": {
+ "type": "string",
+ "title": "A string describing the reason the Job ended.",
+ "description": "This property is set only if the Job is in the completed state. If the Batch service terminates the Job, it sets the reason as follows: JMComplete - the Job Manager Task completed, and killJobOnCompletion was set to true. MaxWallClockTimeExpiry - the Job reached its maxWallClockTime constraint. TerminateJobSchedule - the Job ran as part of a schedule, and the schedule terminated. AllTasksComplete - the Job's onAllTasksComplete attribute is set to terminatejob, and all Tasks in the Job are complete. TaskFailed - the Job's onTaskFailure attribute is set to performExitOptionsJobAction, and a Task in the Job failed with an exit condition that specified a jobAction of terminatejob. Any other string is a user-defined reason specified in a call to the 'Terminate a Job' operation."
+ }
+ },
+ "required": [
+ "startTime"
+ ],
+ "title": "Contains information about the execution of a Job in the Azure Batch service."
+ },
+ "CloudJob": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "A string that uniquely identifies the Job within the Account.",
+ "description": "The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an Account that differ only by case)."
+ },
+ "displayName": {
+ "type": "string",
+ "title": "The display name for the Job."
+ },
+ "usesTaskDependencies": {
+ "type": "boolean",
+ "title": "Whether Tasks in the Job can define dependencies on each other. The default is false."
+ },
+ "url": {
+ "type": "string",
+ "title": "The URL of the Job."
+ },
+ "eTag": {
+ "type": "string",
+ "title": "The ETag of the Job.",
+ "description": "This is an opaque string. You can use it to detect whether the Job has changed between requests. In particular, you can be pass the ETag when updating a Job to specify that your changes should take effect only if nobody else has modified the Job in the meantime."
+ },
+ "lastModified": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The last modified time of the Job.",
+ "description": "This is the last time at which the Job level data, such as the Job state or priority, changed. It does not factor in task-level changes such as adding new Tasks or Tasks changing state."
+ },
+ "creationTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The creation time of the Job."
+ },
+ "state": {
+ "title": "The current state of the Job.",
+ "$ref": "#/definitions/JobState"
+ },
+ "stateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Job entered its current state."
+ },
+ "previousState": {
+ "title": "The previous state of the Job.",
+ "description": "This property is not set if the Job is in its initial Active state.",
+ "$ref": "#/definitions/JobState"
+ },
+ "previousStateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Job entered its previous state.",
+ "description": "This property is not set if the Job is in its initial Active state."
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The priority of the Job.",
+ "description": "Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. The default value is 0."
+ },
+ "constraints": {
+ "$ref": "#/definitions/JobConstraints",
+ "title": "The execution constraints for the Job."
+ },
+ "jobManagerTask": {
+ "$ref": "#/definitions/JobManagerTask",
+ "title": "Details of a Job Manager Task to be launched when the Job is started."
+ },
+ "jobPreparationTask": {
+ "$ref": "#/definitions/JobPreparationTask",
+ "title": "The Job Preparation Task.",
+ "description": "The Job Preparation Task is a special Task run on each Compute Node before any other Task of the Job."
+ },
+ "jobReleaseTask": {
+ "$ref": "#/definitions/JobReleaseTask",
+ "title": "The Job Release Task.",
+ "description": "The Job Release Task is a special Task run at the end of the Job on each Compute Node that has run any other Task of the Job."
+ },
+ "commonEnvironmentSettings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnvironmentSetting"
+ },
+ "title": "The list of common environment variable settings. These environment variables are set for all Tasks in the Job (including the Job Manager, Job Preparation and Job Release Tasks).",
+ "description": "Individual Tasks can override an environment setting specified here by specifying the same setting name with a different value."
+ },
+ "poolInfo": {
+ "$ref": "#/definitions/PoolInformation",
+ "title": "The Pool settings associated with the Job."
+ },
+ "onAllTasksComplete": {
+ "title": "The action the Batch service should take when all Tasks in the Job are in the completed state.",
+ "description": "The default is noaction.",
+ "$ref": "#/definitions/OnAllTasksComplete"
+ },
+ "onTaskFailure": {
+ "title": "The action the Batch service should take when any Task in the Job fails.",
+ "description": "A Task is considered to have failed if has a failureInfo. A failureInfo is set if the Task completes with a non-zero exit code after exhausting its retry count, or if there was an error starting the Task, for example due to a resource file download error. The default is noaction.",
+ "$ref": "#/definitions/OnTaskFailure"
+ },
+ "networkConfiguration": {
+ "$ref": "#/definitions/JobNetworkConfiguration",
+ "title": "The network configuration for the Job."
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with the Job as metadata.",
+ "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code."
+ },
+ "executionInfo": {
+ "$ref": "#/definitions/JobExecutionInformation",
+ "title": "The execution information for the Job."
+ },
+ "stats": {
+ "$ref": "#/definitions/JobStatistics",
+ "title": "Resource usage statistics for the entire lifetime of the Job.",
+ "description": "This property is populated only if the CloudJob was retrieved with an expand clause including the 'stats' attribute; otherwise it is null. The statistics may not be immediately available. The Batch service performs periodic roll-up of statistics. The typical delay is about 30 minutes."
+ }
+ },
+ "title": "An Azure Batch Job."
+ },
+ "JobAddParameter": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "A string that uniquely identifies the Job within the Account.",
+ "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an Account that differ only by case)."
+ },
+ "displayName": {
+ "type": "string",
+ "title": "The display name for the Job.",
+ "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024."
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The priority of the Job.",
+ "description": "Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. The default value is 0."
+ },
+ "constraints": {
+ "$ref": "#/definitions/JobConstraints",
+ "description": "The execution constraints for the Job."
+ },
+ "jobManagerTask": {
+ "$ref": "#/definitions/JobManagerTask",
+ "title": "Details of a Job Manager Task to be launched when the Job is started.",
+ "description": "If the Job does not specify a Job Manager Task, the user must explicitly add Tasks to the Job. If the Job does specify a Job Manager Task, the Batch service creates the Job Manager Task when the Job is created, and will try to schedule the Job Manager Task before scheduling other Tasks in the Job. The Job Manager Task's typical purpose is to control and/or monitor Job execution, for example by deciding what additional Tasks to run, determining when the work is complete, etc. (However, a Job Manager Task is not restricted to these activities - it is a fully-fledged Task in the system and perform whatever actions are required for the Job.) For example, a Job Manager Task might download a file specified as a parameter, analyze the contents of that file and submit additional Tasks based on those contents."
+ },
+ "jobPreparationTask": {
+ "$ref": "#/definitions/JobPreparationTask",
+ "title": "The Job Preparation Task.",
+ "description": "If a Job has a Job Preparation Task, the Batch service will run the Job Preparation Task on a Node before starting any Tasks of that Job on that Compute Node."
+ },
+ "jobReleaseTask": {
+ "$ref": "#/definitions/JobReleaseTask",
+ "title": "The Job Release Task.",
+ "description": "A Job Release Task cannot be specified without also specifying a Job Preparation Task for the Job. The Batch service runs the Job Release Task on the Nodes that have run the Job Preparation Task. The primary purpose of the Job Release Task is to undo changes to Compute Nodes made by the Job Preparation Task. Example activities include deleting local files, or shutting down services that were started as part of Job preparation."
+ },
+ "commonEnvironmentSettings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnvironmentSetting"
+ },
+ "title": "The list of common environment variable settings. These environment variables are set for all Tasks in the Job (including the Job Manager, Job Preparation and Job Release Tasks).",
+ "description": "Individual Tasks can override an environment setting specified here by specifying the same setting name with a different value."
+ },
+ "poolInfo": {
+ "$ref": "#/definitions/PoolInformation",
+ "title": "The Pool on which the Batch service runs the Job's Tasks."
+ },
+ "onAllTasksComplete": {
+ "title": "The action the Batch service should take when all Tasks in the Job are in the completed state.",
+ "description": "Note that if a Job contains no Tasks, then all Tasks are considered complete. This option is therefore most commonly used with a Job Manager task; if you want to use automatic Job termination without a Job Manager, you should initially set onAllTasksComplete to noaction and update the Job properties to set onAllTasksComplete to terminatejob once you have finished adding Tasks. The default is noaction.",
+ "$ref": "#/definitions/OnAllTasksComplete"
+ },
+ "onTaskFailure": {
+ "title": "The action the Batch service should take when any Task in the Job fails.",
+ "description": "A Task is considered to have failed if has a failureInfo. A failureInfo is set if the Task completes with a non-zero exit code after exhausting its retry count, or if there was an error starting the Task, for example due to a resource file download error. The default is noaction.",
+ "$ref": "#/definitions/OnTaskFailure"
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with the Job as metadata.",
+ "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code."
+ },
+ "usesTaskDependencies": {
+ "type": "boolean",
+ "title": "Whether Tasks in the Job can define dependencies on each other. The default is false."
+ },
+ "networkConfiguration": {
+ "$ref": "#/definitions/JobNetworkConfiguration",
+ "title": "The network configuration for the Job."
+ }
+ },
+ "required": [
+ "id",
+ "poolInfo"
+ ],
+ "title": "An Azure Batch Job to add."
+ },
+ "CloudJobListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudJob"
+ },
+ "title": "The list of Jobs."
+ },
+ "odata.nextLink": {
+ "type": "string",
+ "title": "The URL to get the next set of results."
+ }
+ },
+ "title": "The result of listing the Jobs in an Account."
+ },
+ "TaskContainerExecutionInformation": {
+ "properties": {
+ "containerId": {
+ "type": "string",
+ "title": "The ID of the container."
+ },
+ "state": {
+ "type": "string",
+ "title": "The state of the container.",
+ "description": "This is the state of the container according to the Docker service. It is equivalent to the status field returned by \"docker inspect\"."
+ },
+ "error": {
+ "type": "string",
+ "title": "Detailed error information about the container.",
+ "description": "This is the detailed error string from the Docker service, if available. It is equivalent to the error field returned by \"docker inspect\"."
+ }
+ },
+ "title": "Contains information about the container which a Task is executing."
+ },
+ "TaskFailureInformation": {
+ "properties": {
+ "category": {
+ "title": "The category of the Task error.",
+ "$ref": "#/definitions/ErrorCategory"
+ },
+ "code": {
+ "type": "string",
+ "title": "An identifier for the Task error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "title": "A message describing the Task error, intended to be suitable for display in a user interface."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NameValuePair"
+ },
+ "title": "A list of additional details related to the error."
+ }
+ },
+ "required": [
+ "category"
+ ],
+ "title": "Information about a Task failure."
+ },
+ "JobPreparationTaskExecutionInformation": {
+ "properties": {
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Task started running.",
+ "description": "If the Task has been restarted or retried, this is the most recent time at which the Task started running."
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Job Preparation Task completed.",
+ "description": "This property is set only if the Task is in the Completed state."
+ },
+ "state": {
+ "type": "string",
+ "title": "The current state of the Job Preparation Task on the Compute Node.",
+ "enum": [
+ "running",
+ "completed"
+ ],
+ "x-ms-enum": {
+ "name": "JobPreparationTaskState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "running",
+ "description": "The Task is currently running (including retrying)."
+ },
+ {
+ "value": "completed",
+ "description": "The Task has exited with exit code 0, or the Task has exhausted its retry limit, or the Batch service was unable to start the Task due to Task preparation errors (such as resource file download failures)."
+ }
+ ]
+ }
+ },
+ "taskRootDirectory": {
+ "type": "string",
+ "title": "The root directory of the Job Preparation Task on the Compute Node. You can use this path to retrieve files created by the Task, such as log files."
+ },
+ "taskRootDirectoryUrl": {
+ "type": "string",
+ "title": "The URL to the root directory of the Job Preparation Task on the Compute Node."
+ },
+ "exitCode": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The exit code of the program specified on the Task command line.",
+ "description": "This parameter is returned only if the Task is in the completed state. The exit code for a process reflects the specific convention implemented by the application developer for that process. If you use the exit code value to make decisions in your code, be sure that you know the exit code convention used by the application process. Note that the exit code may also be generated by the Compute Node operating system, such as when a process is forcibly terminated."
+ },
+ "containerInfo": {
+ "$ref": "#/definitions/TaskContainerExecutionInformation",
+ "title": "Information about the container under which the Task is executing.",
+ "description": "This property is set only if the Task runs in a container context."
+ },
+ "failureInfo": {
+ "$ref": "#/definitions/TaskFailureInformation",
+ "title": "Information describing the Task failure, if any.",
+ "description": "This property is set only if the Task is in the completed state and encountered a failure."
+ },
+ "retryCount": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of times the Task has been retried by the Batch service. Task application failures (non-zero exit code) are retried, pre-processing errors (the Task could not be run) and file upload errors are not retried. The Batch service will retry the Task up to the limit specified by the constraints.",
+ "description": "Task application failures (non-zero exit code) are retried, pre-processing errors (the Task could not be run) and file upload errors are not retried. The Batch service will retry the Task up to the limit specified by the constraints."
+ },
+ "lastRetryTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The most recent time at which a retry of the Job Preparation Task started running.",
+ "description": "This property is set only if the Task was retried (i.e. retryCount is nonzero). If present, this is typically the same as startTime, but may be different if the Task has been restarted for reasons other than retry; for example, if the Compute Node was rebooted during a retry, then the startTime is updated but the lastRetryTime is not."
+ },
+ "result": {
+ "$ref": "#/definitions/TaskExecutionResult",
+ "title": "The result of the Task execution.",
+ "description": "If the value is 'failed', then the details of the failure can be found in the failureInfo property."
+ }
+ },
+ "required": [
+ "startTime",
+ "retryCount",
+ "state"
+ ],
+ "title": "Contains information about the execution of a Job Preparation Task on a Compute Node."
+ },
+ "JobReleaseTaskExecutionInformation": {
+ "properties": {
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Task started running.",
+ "description": "If the Task has been restarted or retried, this is the most recent time at which the Task started running."
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Job Release Task completed.",
+ "description": "This property is set only if the Task is in the Completed state."
+ },
+ "state": {
+ "type": "string",
+ "title": "The current state of the Job Release Task on the Compute Node.",
+ "enum": [
+ "running",
+ "completed"
+ ],
+ "x-ms-enum": {
+ "name": "JobReleaseTaskState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "running",
+ "description": "The Task is currently running (including retrying)."
+ },
+ {
+ "value": "completed",
+ "description": "The Task has exited with exit code 0, or the Task has exhausted its retry limit, or the Batch service was unable to start the Task due to Task preparation errors (such as resource file download failures)."
+ }
+ ]
+ }
+ },
+ "taskRootDirectory": {
+ "type": "string",
+ "title": "The root directory of the Job Release Task on the Compute Node. You can use this path to retrieve files created by the Task, such as log files."
+ },
+ "taskRootDirectoryUrl": {
+ "type": "string",
+ "title": "The URL to the root directory of the Job Release Task on the Compute Node."
+ },
+ "exitCode": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The exit code of the program specified on the Task command line.",
+ "description": "This parameter is returned only if the Task is in the completed state. The exit code for a process reflects the specific convention implemented by the application developer for that process. If you use the exit code value to make decisions in your code, be sure that you know the exit code convention used by the application process. Note that the exit code may also be generated by the Compute Node operating system, such as when a process is forcibly terminated."
+ },
+ "containerInfo": {
+ "$ref": "#/definitions/TaskContainerExecutionInformation",
+ "title": "Information about the container under which the Task is executing.",
+ "description": "This property is set only if the Task runs in a container context."
+ },
+ "failureInfo": {
+ "$ref": "#/definitions/TaskFailureInformation",
+ "title": "Information describing the Task failure, if any.",
+ "description": "This property is set only if the Task is in the completed state and encountered a failure."
+ },
+ "result": {
+ "$ref": "#/definitions/TaskExecutionResult",
+ "title": "The result of the Task execution.",
+ "description": "If the value is 'failed', then the details of the failure can be found in the failureInfo property."
+ }
+ },
+ "required": [
+ "startTime",
+ "state"
+ ],
+ "title": "Contains information about the execution of a Job Release Task on a Compute Node."
+ },
+ "JobPreparationAndReleaseTaskExecutionInformation": {
+ "properties": {
+ "poolId": {
+ "type": "string",
+ "title": "The ID of the Pool containing the Compute Node to which this entry refers."
+ },
+ "nodeId": {
+ "type": "string",
+ "title": "The ID of the Compute Node to which this entry refers."
+ },
+ "nodeUrl": {
+ "type": "string",
+ "title": "The URL of the Compute Node to which this entry refers."
+ },
+ "jobPreparationTaskExecutionInfo": {
+ "$ref": "#/definitions/JobPreparationTaskExecutionInformation",
+ "title": "Information about the execution status of the Job Preparation Task on this Compute Node."
+ },
+ "jobReleaseTaskExecutionInfo": {
+ "$ref": "#/definitions/JobReleaseTaskExecutionInformation",
+ "title": "Information about the execution status of the Job Release Task on this Compute Node.",
+ "description": "This property is set only if the Job Release Task has run on the Compute Node."
+ }
+ },
+ "title": "The status of the Job Preparation and Job Release Tasks on a Compute Node."
+ },
+ "CloudJobListPreparationAndReleaseTaskStatusResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/JobPreparationAndReleaseTaskExecutionInformation"
+ },
+ "title": "A list of Job Preparation and Job Release Task execution information."
+ },
+ "odata.nextLink": {
+ "type": "string",
+ "title": "The URL to get the next set of results."
+ }
+ },
+ "title": "The result of listing the status of the Job Preparation and Job Release Tasks for a Job."
+ },
+ "TaskCountsResult": {
+ "properties": {
+ "taskCounts": {
+ "$ref": "#/definitions/TaskCounts",
+ "title": "The number of Tasks per state."
+ },
+ "taskSlotCounts": {
+ "$ref": "#/definitions/TaskSlotCounts",
+ "title": "The number of TaskSlots required by Tasks per state."
+ }
+ },
+ "required": [
+ "taskCounts",
+ "taskSlotCounts"
+ ],
+ "title": "The Task and TaskSlot counts for a Job."
+ },
+ "TaskCounts": {
+ "properties": {
+ "active": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Tasks in the active state."
+ },
+ "running": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Tasks in the running or preparing state."
+ },
+ "completed": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Tasks in the completed state."
+ },
+ "succeeded": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Tasks which succeeded. A Task succeeds if its result (found in the executionInfo property) is 'success'."
+ },
+ "failed": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Tasks which failed. A Task fails if its result (found in the executionInfo property) is 'failure'."
+ }
+ },
+ "required": [
+ "active",
+ "running",
+ "completed",
+ "succeeded",
+ "failed"
+ ],
+ "title": "The Task counts for a Job."
+ },
+ "TaskSlotCounts": {
+ "properties": {
+ "active": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of TaskSlots for active Tasks."
+ },
+ "running": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of TaskSlots for running Tasks."
+ },
+ "completed": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of TaskSlots for completed Tasks."
+ },
+ "succeeded": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of TaskSlots for succeeded Tasks."
+ },
+ "failed": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of TaskSlots for failed Tasks."
+ }
+ },
+ "required": [
+ "active",
+ "running",
+ "completed",
+ "succeeded",
+ "failed"
+ ],
+ "title": "The TaskSlot counts for a Job."
+ },
+ "AutoScaleRunError": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "title": "An identifier for the autoscale error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "title": "A message describing the autoscale error, intended to be suitable for display in a user interface."
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NameValuePair"
+ },
+ "title": "A list of additional error details related to the autoscale error."
+ }
+ },
+ "title": "An error that occurred when executing or evaluating a Pool autoscale formula."
+ },
+ "AutoScaleRun": {
+ "properties": {
+ "timestamp": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the autoscale formula was last evaluated."
+ },
+ "results": {
+ "type": "string",
+ "title": "The final values of all variables used in the evaluation of the autoscale formula.",
+ "description": "Each variable value is returned in the form $variable=value, and variables are separated by semicolons."
+ },
+ "error": {
+ "$ref": "#/definitions/AutoScaleRunError",
+ "title": "Details of the error encountered evaluating the autoscale formula on the Pool, if the evaluation was unsuccessful."
+ }
+ },
+ "required": [
+ "timestamp"
+ ],
+ "title": "The results and errors from an execution of a Pool autoscale formula."
+ },
+ "ResizeError": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "title": "An identifier for the Pool resize error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "title": "A message describing the Pool resize error, intended to be suitable for display in a user interface."
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NameValuePair"
+ },
+ "title": "A list of additional error details related to the Pool resize error."
+ }
+ },
+ "title": "An error that occurred when resizing a Pool."
+ },
+ "CloudServiceConfiguration": {
+ "properties": {
+ "osFamily": {
+ "type": "string",
+ "title": "The Azure Guest OS family to be installed on the virtual machines in the Pool.",
+ "description": "Possible values are:\n2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1.\n3 - OS Family 3, equivalent to Windows Server 2012.\n4 - OS Family 4, equivalent to Windows Server 2012 R2.\n5 - OS Family 5, equivalent to Windows Server 2016.\n6 - OS Family 6, equivalent to Windows Server 2019. For more information, see Azure Guest OS Releases (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases)."
+ },
+ "osVersion": {
+ "type": "string",
+ "title": "The Azure Guest OS version to be installed on the virtual machines in the Pool.",
+ "description": "The default value is * which specifies the latest operating system version for the specified OS family."
+ }
+ },
+ "required": [
+ "osFamily"
+ ],
+ "title": "The configuration for Compute Nodes in a Pool based on the Azure Cloud Services platform."
+ },
+ "ImageReference": {
+ "properties": {
+ "publisher": {
+ "type": "string",
+ "title": "The publisher of the Azure Virtual Machines Marketplace Image.",
+ "description": "For example, Canonical or MicrosoftWindowsServer."
+ },
+ "offer": {
+ "type": "string",
+ "title": "The offer type of the Azure Virtual Machines Marketplace Image.",
+ "description": "For example, UbuntuServer or WindowsServer."
+ },
+ "sku": {
+ "type": "string",
+ "title": "The SKU of the Azure Virtual Machines Marketplace Image.",
+ "description": "For example, 18.04-LTS or 2019-Datacenter."
+ },
+ "version": {
+ "type": "string",
+ "title": "The version of the Azure Virtual Machines Marketplace Image.",
+ "description": "A value of 'latest' can be specified to select the latest version of an Image. If omitted, the default is 'latest'."
+ },
+ "virtualMachineImageId": {
+ "type": "string",
+ "title": "The ARM resource identifier of the Shared Image Gallery Image. Compute Nodes in the Pool will be created using this Image Id. This is of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{VersionId} or /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName} for always defaulting to the latest image version.",
+ "description": "This property is mutually exclusive with other ImageReference properties. The Shared Image Gallery Image must have replicas in the same region and must be in the same subscription as the Azure Batch account. If the image version is not specified in the imageId, the latest version will be used. For information about the firewall settings for the Batch Compute Node agent to communicate with the Batch service see https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration."
+ }
+ },
+ "title": "A reference to an Azure Virtual Machines Marketplace Image or a Shared Image Gallery Image. To get the list of all Azure Marketplace Image references verified by Azure Batch, see the 'List Supported Images' operation."
+ },
+ "WindowsConfiguration": {
+ "properties": {
+ "enableAutomaticUpdates": {
+ "type": "boolean",
+ "title": "Whether automatic updates are enabled on the virtual machine.",
+ "description": "If omitted, the default value is true."
+ }
+ },
+ "title": "Windows operating system settings to apply to the virtual machine."
+ },
+ "DataDisk": {
+ "properties": {
+ "lun": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The logical unit number.",
+ "description": "The lun is used to uniquely identify each data disk. If attaching multiple disks, each should have a distinct lun. The value must be between 0 and 63, inclusive."
+ },
+ "caching": {
+ "$ref": "#/definitions/CachingType",
+ "title": "The type of caching to be enabled for the data disks.",
+ "description": "The default value for caching is readwrite. For information about the caching options see: https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/."
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The initial disk size in gigabytes."
+ },
+ "storageAccountType": {
+ "title": "The storage Account type to be used for the data disk.",
+ "description": "If omitted, the default is \"standard_lrs\".",
+ "$ref": "#/definitions/StorageAccountType"
+ }
+ },
+ "required": [
+ "lun",
+ "diskSizeGB"
+ ],
+ "title": "Settings which will be used by the data disks associated to Compute Nodes in the Pool. When using attached data disks, you need to mount and format the disks from within a VM to use them."
+ },
+ "StorageAccountType": {
+ "type": "string",
+ "title": "The storage Account type for use in creating data disks.",
+ "enum": [
+ "standard_lrs",
+ "premium_lrs"
+ ],
+ "x-ms-enum": {
+ "name": "StorageAccountType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "standard_lrs",
+ "description": "The data disk should use standard locally redundant storage.",
+ "name": "StandardLRS"
+ },
+ {
+ "value": "premium_lrs",
+ "description": "The data disk should use premium locally redundant storage.",
+ "name": "PremiumLRS"
+ }
+ ]
+ }
+ },
+ "CachingType": {
+ "type": "string",
+ "title": "The type of caching to enable for the disk.",
+ "description": "The default value for caching is none. For information about the caching options see: https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/.",
+ "enum": [
+ "none",
+ "readonly",
+ "readwrite"
+ ],
+ "x-ms-enum": {
+ "name": "CachingType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "none",
+ "description": "The caching mode for the disk is not enabled."
+ },
+ {
+ "value": "readonly",
+ "description": "The caching mode for the disk is read only.",
+ "name": "readOnly"
+ },
+ {
+ "value": "readwrite",
+ "description": "The caching mode for the disk is read and write.",
+ "name": "readWrite"
+ }
+ ]
+ }
+ },
+ "VirtualMachineConfiguration": {
+ "properties": {
+ "imageReference": {
+ "$ref": "#/definitions/ImageReference",
+ "title": "A reference to the Azure Virtual Machines Marketplace Image or the custom Virtual Machine Image to use."
+ },
+ "nodeAgentSKUId": {
+ "type": "string",
+ "title": "The SKU of the Batch Compute Node agent to be provisioned on Compute Nodes in the Pool.",
+ "description": "The Batch Compute Node agent is a program that runs on each Compute Node in the Pool, and provides the command-and-control interface between the Compute Node and the Batch service. There are different implementations of the Compute Node agent, known as SKUs, for different operating systems. You must specify a Compute Node agent SKU which matches the selected Image reference. To get the list of supported Compute Node agent SKUs along with their list of verified Image references, see the 'List supported Compute Node agent SKUs' operation."
+ },
+ "windowsConfiguration": {
+ "$ref": "#/definitions/WindowsConfiguration",
+ "title": "Windows operating system settings on the virtual machine.",
+ "description": "This property must not be specified if the imageReference property specifies a Linux OS Image."
+ },
+ "dataDisks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataDisk"
+ },
+ "title": "The configuration for data disks attached to the Compute Nodes in the Pool.",
+ "description": "This property must be specified if the Compute Nodes in the Pool need to have empty data disks attached to them. This cannot be updated. Each Compute Node gets its own disk (the disk is not a file share). Existing disks cannot be attached, each attached disk is empty. When the Compute Node is removed from the Pool, the disk and all data associated with it is also deleted. The disk is not formatted after being attached, it must be formatted before use - for more information see https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux and https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine."
+ },
+ "licenseType": {
+ "type": "string",
+ "title": "The type of on-premises license to be used when deploying the operating system.",
+ "description": "This only applies to Images that contain the Windows operating system, and should only be used when you hold valid on-premises licenses for the Compute Nodes which will be deployed. If omitted, no on-premises licensing discount is applied. Values are:\n\n Windows_Server - The on-premises license is for Windows Server.\n Windows_Client - The on-premises license is for Windows Client.\n"
+ },
+ "containerConfiguration": {
+ "$ref": "#/definitions/ContainerConfiguration",
+ "title": "The container configuration for the Pool.",
+ "description": "If specified, setup is performed on each Compute Node in the Pool to allow Tasks to run in containers. All regular Tasks and Job manager Tasks run on this Pool must specify the containerSettings property, and all other Tasks may specify it."
+ },
+ "diskEncryptionConfiguration": {
+ "$ref": "#/definitions/DiskEncryptionConfiguration",
+ "title": "The disk encryption configuration for the pool.",
+ "description": "If specified, encryption is performed on each node in the pool during node provisioning."
+ }
+ },
+ "required": [
+ "nodeAgentSKUId",
+ "imageReference"
+ ],
+ "title": "The configuration for Compute Nodes in a Pool based on the Azure Virtual Machines infrastructure."
+ },
+ "ContainerRegistry": {
+ "properties": {
+ "registryServer": {
+ "type": "string",
+ "title": "The registry URL.",
+ "description": "If omitted, the default is \"docker.io\"."
+ },
+ "username": {
+ "type": "string",
+ "x-ms-client-name": "userName",
+ "title": "The user name to log into the registry server."
+ },
+ "password": {
+ "type": "string",
+ "title": "The password to log into the registry server."
+ }
+ },
+ "required": [
+ "username",
+ "password"
+ ],
+ "title": "A private container registry."
+ },
+ "ContainerConfiguration": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "title": "The container technology to be used.",
+ "enum": [
+ "dockerCompatible"
+ ],
+ "x-ms-enum": {
+ "name": "ContainerType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "dockerCompatible",
+ "description": "A Docker compatible container technology will be used to launch the containers."
+ }
+ ]
+ }
+ },
+ "containerImageNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "The collection of container Image names.",
+ "description": "This is the full Image reference, as would be specified to \"docker pull\". An Image will be sourced from the default Docker registry unless the Image is fully qualified with an alternative registry."
+ },
+ "containerRegistries": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerRegistry"
+ },
+ "title": "Additional private registries from which containers can be pulled.",
+ "description": "If any Images must be downloaded from a private registry which requires credentials, then those credentials must be provided here."
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "title": "The configuration for container-enabled Pools."
+ },
+ "DiskEncryptionConfiguration": {
+ "properties": {
+ "targets": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "x-nullable": false,
+ "title": "A disk to encrypt.",
+ "enum": [
+ "osdisk",
+ "temporarydisk"
+ ],
+ "x-ms-enum": {
+ "name": "DiskEncryptionTarget",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "osdisk",
+ "description": "The temporary disk on the compute node is encrypted. On Linux this encryption applies to other partitions (such as those on mounted data disks) when encryption occurs at boot time.",
+ "name": "OsDisk"
+ },
+ {
+ "value": "temporarydisk",
+ "description": "The temporary disk on the compute node is encrypted. On Linux this encryption applies to other partitions (such as those on mounted data disks) when encryption occurs at boot time.",
+ "name": "TemporaryDisk"
+ }
+ ]
+ }
+ },
+ "title": "The list of disk targets Batch Service will encrypt on the compute node.",
+ "description": "If omitted, no disks on the compute nodes in the pool will be encrypted. On Linux pool, only \"TemporaryDisk\" is supported; on Windows pool, \"OsDisk\" and \"TemporaryDisk\" must be specified."
+ }
+ },
+ "description": "The disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Shared Image Gallery Image."
+ },
+ "IPAddressProvisioningType": {
+ "type": "string",
+ "title": "The provisioning type for Public IP Addresses for the Pool.",
+ "enum": [
+ "batchmanaged",
+ "usermanaged",
+ "nopublicipaddresses"
+ ],
+ "x-ms-enum": {
+ "name": "IPAddressProvisioningType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "batchmanaged",
+ "description": "A public IP will be created and managed by Batch. There may be multiple public IPs depending on the size of the Pool.",
+ "name": "batchManaged"
+ },
+ {
+ "value": "usermanaged",
+ "description": "Public IPs are provided by the user and will be used to provision the Compute Nodes.",
+ "name": "userManaged"
+ },
+ {
+ "value": "nopublicipaddresses",
+ "description": "No public IP Address will be created.",
+ "name": "noPublicIPAddresses"
+ }
+ ]
+ }
+ },
+ "PublicIPAddressConfiguration": {
+ "properties": {
+ "provision": {
+ "$ref": "#/definitions/IPAddressProvisioningType",
+ "title": "The provisioning type for Public IP Addresses for the Pool.",
+ "description": "The default value is BatchManaged."
+ },
+ "ipAddressIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "The list of public IPs which the Batch service will use when provisioning Compute Nodes.",
+ "description": "The number of IPs specified here limits the maximum size of the Pool - 100 dedicated nodes or 100 low-priority nodes can be allocated for each public IP. For example, a pool needing 250 dedicated VMs would need at least 3 public IPs specified. Each element of this collection is of the form: /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}."
+ }
+ },
+ "description": "The public IP Address configuration of the networking configuration of a Pool."
+ },
+ "NetworkConfiguration": {
+ "properties": {
+ "subnetId": {
+ "type": "string",
+ "title": "The ARM resource identifier of the virtual network subnet which the Compute Nodes of the Pool will join. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}.",
+ "description": "The virtual network must be in the same region and subscription as the Azure Batch Account. The specified subnet should have enough free IP addresses to accommodate the number of Compute Nodes in the Pool. If the subnet doesn't have enough free IP addresses, the Pool will partially allocate Nodes and a resize error will occur. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet. The specified subnet must allow communication from the Azure Batch service to be able to schedule Tasks on the Nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the Nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the Compute Nodes to unusable. For Pools created with virtualMachineConfiguration only ARM virtual networks ('Microsoft.Network/virtualNetworks') are supported, but for Pools created with cloudServiceConfiguration both ARM and classic virtual networks are supported. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication. For Pools created with a virtual machine configuration, enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for Windows. For Pools created with a cloud service configuration, enable ports 10100, 20100, and 30100. Also enable outbound connections to Azure Storage on port 443. For more details see: https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration",
+ "externalDocs": {
+ "url": "https://azure.microsoft.com/en-us/documentation/articles/role-based-access-built-in-roles/#classic-virtual-machine-contributor",
+ "description": "Setting up RBAC for Azure Batch VNETs"
+ }
+ },
+ "dynamicVNetAssignmentScope": {
+ "type": "string",
+ "title": "The scope of dynamic vnet assignment.",
+ "enum": [
+ "none",
+ "job"
+ ],
+ "x-ms-enum": {
+ "name": "DynamicVNetAssignmentScope",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "none",
+ "description": "No dynamic VNet assignment is enabled."
+ },
+ {
+ "value": "job",
+ "description": "Dynamic VNet assignment is done per-job."
+ }
+ ]
+ }
+ },
+ "endpointConfiguration": {
+ "$ref": "#/definitions/PoolEndpointConfiguration",
+ "title": "The configuration for endpoints on Compute Nodes in the Batch Pool.",
+ "description": "Pool endpoint configuration is only supported on Pools with the virtualMachineConfiguration property."
+ },
+ "publicIPAddressConfiguration": {
+ "$ref": "#/definitions/PublicIPAddressConfiguration",
+ "title": "The Public IPAddress configuration for Compute Nodes in the Batch Pool.",
+ "description": "Public IP configuration property is only supported on Pools with the virtualMachineConfiguration property."
+ }
+ },
+ "description": "The network configuration for a Pool."
+ },
+ "CloudPool": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "A string that uniquely identifies the Pool within the Account.",
+ "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an Account that differ only by case)."
+ },
+ "displayName": {
+ "type": "string",
+ "title": "The display name for the Pool.",
+ "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024."
+ },
+ "url": {
+ "type": "string",
+ "title": "The URL of the Pool."
+ },
+ "eTag": {
+ "type": "string",
+ "title": "The ETag of the Pool.",
+ "description": "This is an opaque string. You can use it to detect whether the Pool has changed between requests. In particular, you can be pass the ETag when updating a Pool to specify that your changes should take effect only if nobody else has modified the Pool in the meantime."
+ },
+ "lastModified": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The last modified time of the Pool.",
+ "description": "This is the last time at which the Pool level data, such as the targetDedicatedNodes or enableAutoscale settings, changed. It does not factor in node-level changes such as a Compute Node changing state."
+ },
+ "creationTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The creation time of the Pool."
+ },
+ "state": {
+ "type": "string",
+ "title": "The current state of the Pool.",
+ "enum": [
+ "active",
+ "deleting"
+ ],
+ "x-ms-enum": {
+ "name": "PoolState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "active",
+ "description": "The Pool is available to run Tasks subject to the availability of Compute Nodes."
+ },
+ {
+ "value": "deleting",
+ "description": "The user has requested that the Pool be deleted, but the delete operation has not yet completed."
+ }
+ ]
+ }
+ },
+ "stateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Pool entered its current state."
+ },
+ "allocationState": {
+ "type": "string",
+ "title": "Whether the Pool is resizing.",
+ "enum": [
+ "steady",
+ "resizing",
+ "stopping"
+ ],
+ "x-ms-enum": {
+ "name": "AllocationState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "steady",
+ "description": "The Pool is not resizing. There are no changes to the number of Compute Nodes in the Pool in progress. A Pool enters this state when it is created and when no operations are being performed on the Pool to change the number of Compute Nodes."
+ },
+ {
+ "value": "resizing",
+ "description": "The Pool is resizing; that is, Compute Nodes are being added to or removed from the Pool."
+ },
+ {
+ "value": "stopping",
+ "description": "The Pool was resizing, but the user has requested that the resize be stopped, but the stop request has not yet been completed."
+ }
+ ]
+ }
+ },
+ "allocationStateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Pool entered its current allocation state."
+ },
+ "vmSize": {
+ "type": "string",
+ "title": "The size of virtual machines in the Pool. All virtual machines in a Pool are the same size.",
+ "description": "For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes)."
+ },
+ "cloudServiceConfiguration": {
+ "$ref": "#/definitions/CloudServiceConfiguration",
+ "title": "The cloud service configuration for the Pool.",
+ "description": "This property and virtualMachineConfiguration are mutually exclusive and one of the properties must be specified. This property cannot be specified if the Batch Account was created with its poolAllocationMode property set to 'UserSubscription'."
+ },
+ "virtualMachineConfiguration": {
+ "$ref": "#/definitions/VirtualMachineConfiguration",
+ "title": "The virtual machine configuration for the Pool.",
+ "description": "This property and cloudServiceConfiguration are mutually exclusive and one of the properties must be specified."
+ },
+ "resizeTimeout": {
+ "type": "string",
+ "format": "duration",
+ "title": "The timeout for allocation of Compute Nodes to the Pool.",
+ "description": "This is the timeout for the most recent resize operation. (The initial sizing when the Pool is created counts as a resize.) The default value is 15 minutes."
+ },
+ "resizeErrors": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResizeError"
+ },
+ "title": "A list of errors encountered while performing the last resize on the Pool.",
+ "description": "This property is set only if one or more errors occurred during the last Pool resize, and only when the Pool allocationState is Steady."
+ },
+ "currentDedicatedNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of dedicated Compute Nodes currently in the Pool."
+ },
+ "currentLowPriorityNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of low-priority Compute Nodes currently in the Pool.",
+ "description": "Low-priority Compute Nodes which have been preempted are included in this count."
+ },
+ "targetDedicatedNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The desired number of dedicated Compute Nodes in the Pool."
+ },
+ "targetLowPriorityNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The desired number of low-priority Compute Nodes in the Pool."
+ },
+ "enableAutoScale": {
+ "type": "boolean",
+ "title": "Whether the Pool size should automatically adjust over time.",
+ "description": "If false, at least one of targetDedicateNodes and targetLowPriorityNodes must be specified. If true, the autoScaleFormula property is required and the Pool automatically resizes according to the formula. The default value is false."
+ },
+ "autoScaleFormula": {
+ "type": "string",
+ "title": "A formula for the desired number of Compute Nodes in the Pool.",
+ "description": "This property is set only if the Pool automatically scales, i.e. enableAutoScale is true."
+ },
+ "autoScaleEvaluationInterval": {
+ "type": "string",
+ "format": "duration",
+ "title": "The time interval at which to automatically adjust the Pool size according to the autoscale formula.",
+ "description": "This property is set only if the Pool automatically scales, i.e. enableAutoScale is true."
+ },
+ "autoScaleRun": {
+ "$ref": "#/definitions/AutoScaleRun",
+ "title": "The results and errors from the last execution of the autoscale formula.",
+ "description": "This property is set only if the Pool automatically scales, i.e. enableAutoScale is true."
+ },
+ "enableInterNodeCommunication": {
+ "type": "boolean",
+ "title": "Whether the Pool permits direct communication between Compute Nodes.",
+ "description": "This imposes restrictions on which Compute Nodes can be assigned to the Pool. Specifying this value can reduce the chance of the requested number of Compute Nodes to be allocated in the Pool."
+ },
+ "networkConfiguration": {
+ "$ref": "#/definitions/NetworkConfiguration",
+ "title": "The network configuration for the Pool."
+ },
+ "startTask": {
+ "$ref": "#/definitions/StartTask",
+ "title": "A Task specified to run on each Compute Node as it joins the Pool."
+ },
+ "certificateReferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateReference"
+ },
+ "title": "The list of Certificates to be installed on each Compute Node in the Pool.",
+ "description": "For Windows Nodes, the Batch service installs the Certificates to the specified Certificate store and location. For Linux Compute Nodes, the Certificates are stored in a directory inside the Task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this location. For Certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and Certificates are placed in that directory."
+ },
+ "applicationPackageReferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationPackageReference"
+ },
+ "title": "The list of Packages to be installed on each Compute Node in the Pool.",
+ "description": "Changes to Package references affect all new Nodes joining the Pool, but do not affect Compute Nodes that are already in the Pool until they are rebooted or reimaged. There is a maximum of 10 Package references on any given Pool."
+ },
+ "applicationLicenses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "The list of application licenses the Batch service will make available on each Compute Node in the Pool.",
+ "description": "The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, Pool creation will fail."
+ },
+ "taskSlotsPerNode": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of task slots that can be used to run concurrent tasks on a single compute node in the pool.",
+ "description": "The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256."
+ },
+ "taskSchedulingPolicy": {
+ "$ref": "#/definitions/TaskSchedulingPolicy",
+ "title": "How Tasks are distributed across Compute Nodes in a Pool.",
+ "description": "If not specified, the default is spread."
+ },
+ "userAccounts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UserAccount"
+ },
+ "title": "The list of user Accounts to be created on each Compute Node in the Pool."
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with the Pool as metadata."
+ },
+ "stats": {
+ "$ref": "#/definitions/PoolStatistics",
+ "title": "Utilization and resource usage statistics for the entire lifetime of the Pool.",
+ "description": "This property is populated only if the CloudPool was retrieved with an expand clause including the 'stats' attribute; otherwise it is null. The statistics may not be immediately available. The Batch service performs periodic roll-up of statistics. The typical delay is about 30 minutes."
+ },
+ "mountConfiguration": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MountConfiguration"
+ },
+ "title": "A list of file systems to mount on each node in the pool.",
+ "description": "This supports Azure Files, NFS, CIFS/SMB, and Blobfuse."
+ }
+ },
+ "title": "A Pool in the Azure Batch service."
+ },
+ "PoolAddParameter": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "A string that uniquely identifies the Pool within the Account.",
+ "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two Pool IDs within an Account that differ only by case)."
+ },
+ "displayName": {
+ "type": "string",
+ "title": "The display name for the Pool.",
+ "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024."
+ },
+ "vmSize": {
+ "type": "string",
+ "title": "The size of virtual machines in the Pool. All virtual machines in a Pool are the same size.",
+ "description": "For information about available sizes of virtual machines for Cloud Services Pools (pools created with cloudServiceConfiguration), see Sizes for Cloud Services (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and A2V2. For information about available VM sizes for Pools using Images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series)."
+ },
+ "cloudServiceConfiguration": {
+ "$ref": "#/definitions/CloudServiceConfiguration",
+ "title": "The cloud service configuration for the Pool.",
+ "description": "This property and virtualMachineConfiguration are mutually exclusive and one of the properties must be specified. This property cannot be specified if the Batch Account was created with its poolAllocationMode property set to 'UserSubscription'."
+ },
+ "virtualMachineConfiguration": {
+ "$ref": "#/definitions/VirtualMachineConfiguration",
+ "title": "The virtual machine configuration for the Pool.",
+ "description": "This property and cloudServiceConfiguration are mutually exclusive and one of the properties must be specified."
+ },
+ "resizeTimeout": {
+ "type": "string",
+ "format": "duration",
+ "title": "The timeout for allocation of Compute Nodes to the Pool.",
+ "description": "This timeout applies only to manual scaling; it has no effect when enableAutoScale is set to true. The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)."
+ },
+ "targetDedicatedNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The desired number of dedicated Compute Nodes in the Pool.",
+ "description": "This property must not be specified if enableAutoScale is set to true. If enableAutoScale is set to false, then you must set either targetDedicatedNodes, targetLowPriorityNodes, or both."
+ },
+ "targetLowPriorityNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The desired number of low-priority Compute Nodes in the Pool.",
+ "description": "This property must not be specified if enableAutoScale is set to true. If enableAutoScale is set to false, then you must set either targetDedicatedNodes, targetLowPriorityNodes, or both."
+ },
+ "enableAutoScale": {
+ "type": "boolean",
+ "title": "Whether the Pool size should automatically adjust over time.",
+ "description": "If false, at least one of targetDedicateNodes and targetLowPriorityNodes must be specified. If true, the autoScaleFormula property is required and the Pool automatically resizes according to the formula. The default value is false."
+ },
+ "autoScaleFormula": {
+ "type": "string",
+ "title": "A formula for the desired number of Compute Nodes in the Pool.",
+ "description": "This property must not be specified if enableAutoScale is set to false. It is required if enableAutoScale is set to true. The formula is checked for validity before the Pool is created. If the formula is not valid, the Batch service rejects the request with detailed error information. For more information about specifying this formula, see 'Automatically scale Compute Nodes in an Azure Batch Pool' (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/)."
+ },
+ "autoScaleEvaluationInterval": {
+ "type": "string",
+ "format": "duration",
+ "title": "The time interval at which to automatically adjust the Pool size according to the autoscale formula.",
+ "description": "The default value is 15 minutes. The minimum and maximum value are 5 minutes and 168 hours respectively. If you specify a value less than 5 minutes or greater than 168 hours, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)."
+ },
+ "enableInterNodeCommunication": {
+ "type": "boolean",
+ "title": "Whether the Pool permits direct communication between Compute Nodes.",
+ "description": "Enabling inter-node communication limits the maximum size of the Pool due to deployment restrictions on the Compute Nodes of the Pool. This may result in the Pool not reaching its desired size. The default value is false."
+ },
+ "networkConfiguration": {
+ "$ref": "#/definitions/NetworkConfiguration",
+ "title": "The network configuration for the Pool."
+ },
+ "startTask": {
+ "$ref": "#/definitions/StartTask",
+ "title": "A Task specified to run on each Compute Node as it joins the Pool.",
+ "description": "The Task runs when the Compute Node is added to the Pool or when the Compute Node is restarted."
+ },
+ "certificateReferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateReference"
+ },
+ "title": "The list of Certificates to be installed on each Compute Node in the Pool.",
+ "description": "For Windows Nodes, the Batch service installs the Certificates to the specified Certificate store and location. For Linux Compute Nodes, the Certificates are stored in a directory inside the Task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this location. For Certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and Certificates are placed in that directory."
+ },
+ "applicationPackageReferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationPackageReference"
+ },
+ "title": "The list of Packages to be installed on each Compute Node in the Pool.",
+ "description": "Changes to Package references affect all new Nodes joining the Pool, but do not affect Compute Nodes that are already in the Pool until they are rebooted or reimaged. There is a maximum of 10 Package references on any given Pool."
+ },
+ "applicationLicenses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "The list of application licenses the Batch service will make available on each Compute Node in the Pool.",
+ "description": "The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, Pool creation will fail."
+ },
+ "taskSlotsPerNode": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of task slots that can be used to run concurrent tasks on a single compute node in the pool.",
+ "description": "The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256."
+ },
+ "taskSchedulingPolicy": {
+ "$ref": "#/definitions/TaskSchedulingPolicy",
+ "title": "How Tasks are distributed across Compute Nodes in a Pool.",
+ "description": "If not specified, the default is spread."
+ },
+ "userAccounts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UserAccount"
+ },
+ "title": "The list of user Accounts to be created on each Compute Node in the Pool."
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with the Pool as metadata.",
+ "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code."
+ },
+ "mountConfiguration": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MountConfiguration"
+ },
+ "title": "Mount storage using specified file system for the entire lifetime of the pool.",
+ "description": "Mount the storage using Azure fileshare, NFS, CIFS or Blobfuse based file system."
+ }
+ },
+ "required": [
+ "id",
+ "vmSize"
+ ],
+ "title": "A Pool in the Azure Batch service to add."
+ },
+ "ApplicationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationSummary"
+ },
+ "title": "The list of applications available in the Account."
+ },
+ "odata.nextLink": {
+ "type": "string",
+ "title": "The URL to get the next set of results."
+ }
+ },
+ "title": "The result of listing the applications available in an Account."
+ },
+ "CloudPoolListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudPool"
+ },
+ "title": "The list of Pools."
+ },
+ "odata.nextLink": {
+ "type": "string",
+ "title": "The URL to get the next set of results."
+ }
+ },
+ "title": "The result of listing the Pools in an Account."
+ },
+ "AffinityInformation": {
+ "properties": {
+ "affinityId": {
+ "type": "string",
+ "title": "An opaque string representing the location of a Compute Node or a Task that has run previously.",
+ "description": "You can pass the affinityId of a Node to indicate that this Task needs to run on that Compute Node. Note that this is just a soft affinity. If the target Compute Node is busy or unavailable at the time the Task is scheduled, then the Task will be scheduled elsewhere."
+ }
+ },
+ "required": [
+ "affinityId"
+ ],
+ "title": "A locality hint that can be used by the Batch service to select a Compute Node on which to start a Task."
+ },
+ "TaskExecutionInformation": {
+ "properties": {
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Task started running.",
+ "description": "'Running' corresponds to the running state, so if the Task specifies resource files or Packages, then the start time reflects the time at which the Task started downloading or deploying these. If the Task has been restarted or retried, this is the most recent time at which the Task started running. This property is present only for Tasks that are in the running or completed state."
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Task completed.",
+ "description": "This property is set only if the Task is in the Completed state."
+ },
+ "exitCode": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The exit code of the program specified on the Task command line.",
+ "description": "This property is set only if the Task is in the completed state. In general, the exit code for a process reflects the specific convention implemented by the application developer for that process. If you use the exit code value to make decisions in your code, be sure that you know the exit code convention used by the application process. However, if the Batch service terminates the Task (due to timeout, or user termination via the API) you may see an operating system-defined exit code."
+ },
+ "containerInfo": {
+ "$ref": "#/definitions/TaskContainerExecutionInformation",
+ "title": "Information about the container under which the Task is executing.",
+ "description": "This property is set only if the Task runs in a container context."
+ },
+ "failureInfo": {
+ "$ref": "#/definitions/TaskFailureInformation",
+ "title": "Information describing the Task failure, if any.",
+ "description": "This property is set only if the Task is in the completed state and encountered a failure."
+ },
+ "retryCount": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of times the Task has been retried by the Batch service.",
+ "description": "Task application failures (non-zero exit code) are retried, pre-processing errors (the Task could not be run) and file upload errors are not retried. The Batch service will retry the Task up to the limit specified by the constraints."
+ },
+ "lastRetryTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The most recent time at which a retry of the Task started running.",
+ "description": "This element is present only if the Task was retried (i.e. retryCount is nonzero). If present, this is typically the same as startTime, but may be different if the Task has been restarted for reasons other than retry; for example, if the Compute Node was rebooted during a retry, then the startTime is updated but the lastRetryTime is not."
+ },
+ "requeueCount": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of times the Task has been requeued by the Batch service as the result of a user request.",
+ "description": "When the user removes Compute Nodes from a Pool (by resizing/shrinking the pool) or when the Job is being disabled, the user can specify that running Tasks on the Compute Nodes be requeued for execution. This count tracks how many times the Task has been requeued for these reasons."
+ },
+ "lastRequeueTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The most recent time at which the Task has been requeued by the Batch service as the result of a user request.",
+ "description": "This property is set only if the requeueCount is nonzero."
+ },
+ "result": {
+ "$ref": "#/definitions/TaskExecutionResult",
+ "title": "The result of the Task execution.",
+ "description": "If the value is 'failed', then the details of the failure can be found in the failureInfo property."
+ }
+ },
+ "required": [
+ "requeueCount",
+ "retryCount"
+ ],
+ "title": "Information about the execution of a Task."
+ },
+ "ComputeNodeInformation": {
+ "properties": {
+ "affinityId": {
+ "type": "string",
+ "title": "An identifier for the Node on which the Task ran, which can be passed when adding a Task to request that the Task be scheduled on this Compute Node."
+ },
+ "nodeUrl": {
+ "type": "string",
+ "title": "The URL of the Compute Node on which the Task ran. "
+ },
+ "poolId": {
+ "type": "string",
+ "title": "The ID of the Pool on which the Task ran."
+ },
+ "nodeId": {
+ "type": "string",
+ "title": "The ID of the Compute Node on which the Task ran."
+ },
+ "taskRootDirectory": {
+ "type": "string",
+ "title": "The root directory of the Task on the Compute Node."
+ },
+ "taskRootDirectoryUrl": {
+ "type": "string",
+ "title": "The URL to the root directory of the Task on the Compute Node."
+ }
+ },
+ "title": "Information about the Compute Node on which a Task ran."
+ },
+ "NodeAgentInformation": {
+ "properties": {
+ "version": {
+ "type": "string",
+ "title": "The version of the Batch Compute Node agent running on the Compute Node.",
+ "description": "This version number can be checked against the Compute Node agent release notes located at https://github.com/Azure/Batch/blob/master/changelogs/nodeagent/CHANGELOG.md."
+ },
+ "lastUpdateTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time when the Compute Node agent was updated on the Compute Node.",
+ "description": "This is the most recent time that the Compute Node agent was updated to a new version."
+ }
+ },
+ "required": [
+ "version",
+ "lastUpdateTime"
+ ],
+ "title": "Information about the Compute Node agent.",
+ "description": "The Batch Compute Node agent is a program that runs on each Compute Node in the Pool and provides Batch capability on the Compute Node."
+ },
+ "MultiInstanceSettings": {
+ "properties": {
+ "numberOfInstances": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Compute Nodes required by the Task.",
+ "description": "If omitted, the default is 1."
+ },
+ "coordinationCommandLine": {
+ "type": "string",
+ "title": "The command line to run on all the Compute Nodes to enable them to coordinate when the primary runs the main Task command.",
+ "description": "A typical coordination command line launches a background service and verifies that the service is ready to process inter-node messages."
+ },
+ "commonResourceFiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceFile"
+ },
+ "title": "A list of files that the Batch service will download before running the coordination command line.",
+ "description": "The difference between common resource files and Task resource files is that common resource files are downloaded for all subtasks including the primary, whereas Task resource files are downloaded only for the primary. Also note that these resource files are not downloaded to the Task working directory, but instead are downloaded to the Task root directory (one directory above the working directory). There is a maximum size for the list of resource files. When the max size is exceeded, the request will fail and the response error code will be RequestEntityTooLarge. If this occurs, the collection of ResourceFiles must be reduced in size. This can be achieved using .zip files, Application Packages, or Docker Containers."
+ }
+ },
+ "required": [
+ "coordinationCommandLine"
+ ],
+ "title": "Settings which specify how to run a multi-instance Task.",
+ "description": "Multi-instance Tasks are commonly used to support MPI Tasks. In the MPI case, if any of the subtasks fail (for example due to exiting with a non-zero exit code) the entire multi-instance Task fails. The multi-instance Task is then terminated and retried, up to its retry limit."
+ },
+ "TaskStatistics": {
+ "properties": {
+ "url": {
+ "type": "string",
+ "title": "The URL of the statistics."
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The start time of the time range covered by the statistics."
+ },
+ "lastUpdateTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime."
+ },
+ "userCPUTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The total user mode CPU time (summed across all cores and all Compute Nodes) consumed by the Task."
+ },
+ "kernelCPUTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The total kernel mode CPU time (summed across all cores and all Compute Nodes) consumed by the Task."
+ },
+ "wallClockTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The total wall clock time of the Task.",
+ "description": "The wall clock time is the elapsed time from when the Task started running on a Compute Node to when it finished (or to the last time the statistics were updated, if the Task had not finished by then). If the Task was retried, this includes the wall clock time of all the Task retries."
+ },
+ "readIOps": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The total number of disk read operations made by the Task."
+ },
+ "writeIOps": {
+ "type": "integer",
+ "format": "int64",
+ "title": "The total number of disk write operations made by the Task."
+ },
+ "readIOGiB": {
+ "type": "number",
+ "format": "double",
+ "title": "The total gibibytes read from disk by the Task."
+ },
+ "writeIOGiB": {
+ "type": "number",
+ "format": "double",
+ "title": "The total gibibytes written to disk by the Task."
+ },
+ "waitTime": {
+ "type": "string",
+ "format": "duration",
+ "title": "The total wait time of the Task. The wait time for a Task is defined as the elapsed time between the creation of the Task and the start of Task execution. (If the Task is retried due to failures, the wait time is the time to the most recent Task execution.)"
+ }
+ },
+ "required": [
+ "url",
+ "startTime",
+ "lastUpdateTime",
+ "userCPUTime",
+ "kernelCPUTime",
+ "wallClockTime",
+ "readIOps",
+ "writeIOps",
+ "readIOGiB",
+ "writeIOGiB",
+ "waitTime"
+ ],
+ "title": "Resource usage statistics for a Task."
+ },
+ "TaskDependencies": {
+ "properties": {
+ "taskIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "The list of Task IDs that this Task depends on. All Tasks in this list must complete successfully before the dependent Task can be scheduled.",
+ "description": "The taskIds collection is limited to 64000 characters total (i.e. the combined length of all Task IDs). If the taskIds collection exceeds the maximum length, the Add Task request fails with error code TaskDependencyListTooLong. In this case consider using Task ID ranges instead."
+ },
+ "taskIdRanges": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TaskIdRange"
+ },
+ "title": "The list of Task ID ranges that this Task depends on. All Tasks in all ranges must complete successfully before the dependent Task can be scheduled."
+ }
+ },
+ "title": "Specifies any dependencies of a Task. Any Task that is explicitly specified or within a dependency range must complete before the dependant Task will be scheduled."
+ },
+ "TaskIdRange": {
+ "properties": {
+ "start": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The first Task ID in the range."
+ },
+ "end": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The last Task ID in the range."
+ }
+ },
+ "title": "A range of Task IDs that a Task can depend on. All Tasks with IDs in the range must complete successfully before the dependent Task can be scheduled.",
+ "description": "The start and end of the range are inclusive. For example, if a range has start 9 and end 12, then it represents Tasks '9', '10', '11' and '12'.",
+ "required": [
+ "start",
+ "end"
+ ]
+ },
+ "CloudTask": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "A string that uniquely identifies the Task within the Job.",
+ "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters."
+ },
+ "displayName": {
+ "type": "string",
+ "title": "A display name for the Task.",
+ "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024."
+ },
+ "url": {
+ "type": "string",
+ "title": "The URL of the Task."
+ },
+ "eTag": {
+ "type": "string",
+ "title": "The ETag of the Task.",
+ "description": "This is an opaque string. You can use it to detect whether the Task has changed between requests. In particular, you can be pass the ETag when updating a Task to specify that your changes should take effect only if nobody else has modified the Task in the meantime."
+ },
+ "lastModified": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The last modified time of the Task."
+ },
+ "creationTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The creation time of the Task."
+ },
+ "exitConditions": {
+ "$ref": "#/definitions/ExitConditions",
+ "description": "How the Batch service should respond when the Task completes."
+ },
+ "state": {
+ "title": "The current state of the Task.",
+ "$ref": "#/definitions/TaskState"
+ },
+ "stateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Task entered its current state."
+ },
+ "previousState": {
+ "title": "The previous state of the Task.",
+ "description": "This property is not set if the Task is in its initial Active state.",
+ "$ref": "#/definitions/TaskState"
+ },
+ "previousStateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Task entered its previous state.",
+ "description": "This property is not set if the Task is in its initial Active state."
+ },
+ "commandLine": {
+ "type": "string",
+ "title": "The command line of the Task.",
+ "description": "For multi-instance Tasks, the command line is executed as the primary Task, after the primary Task and all subtasks have finished executing the coordination command line. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables)."
+ },
+ "containerSettings": {
+ "$ref": "#/definitions/TaskContainerSettings",
+ "title": "The settings for the container under which the Task runs.",
+ "description": "If the Pool that will run this Task has containerConfiguration set, this must be set as well. If the Pool that will run this Task doesn't have containerConfiguration set, this must not be set. When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all Task environment variables are mapped into the container, and the Task command line is executed in the container. Files produced in the container outside of AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning that Batch file APIs will not be able to access those files."
+ },
+ "resourceFiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceFile"
+ },
+ "title": "A list of files that the Batch service will download to the Compute Node before running the command line.",
+ "description": "For multi-instance Tasks, the resource files will only be downloaded to the Compute Node on which the primary Task is executed. There is a maximum size for the list of resource files. When the max size is exceeded, the request will fail and the response error code will be RequestEntityTooLarge. If this occurs, the collection of ResourceFiles must be reduced in size. This can be achieved using .zip files, Application Packages, or Docker Containers."
+ },
+ "outputFiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OutputFile"
+ },
+ "title": "A list of files that the Batch service will upload from the Compute Node after running the command line.",
+ "description": "For multi-instance Tasks, the files will only be uploaded from the Compute Node on which the primary Task is executed."
+ },
+ "environmentSettings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnvironmentSetting"
+ },
+ "title": "A list of environment variable settings for the Task."
+ },
+ "affinityInfo": {
+ "$ref": "#/definitions/AffinityInformation",
+ "title": "A locality hint that can be used by the Batch service to select a Compute Node on which to start the new Task."
+ },
+ "constraints": {
+ "$ref": "#/definitions/TaskConstraints",
+ "title": "The execution constraints that apply to this Task."
+ },
+ "requiredSlots": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of scheduling slots that the Task requires to run.",
+ "description": "The default is 1. A Task can only be scheduled to run on a compute node if the node has enough free scheduling slots available. For multi-instance Tasks, this must be 1."
+ },
+ "userIdentity": {
+ "$ref": "#/definitions/UserIdentity",
+ "title": "The user identity under which the Task runs.",
+ "description": "If omitted, the Task runs as a non-administrative user unique to the Task."
+ },
+ "executionInfo": {
+ "$ref": "#/definitions/TaskExecutionInformation",
+ "title": "Information about the execution of the Task."
+ },
+ "nodeInfo": {
+ "$ref": "#/definitions/ComputeNodeInformation",
+ "title": "Information about the Compute Node on which the Task ran."
+ },
+ "multiInstanceSettings": {
+ "$ref": "#/definitions/MultiInstanceSettings",
+ "title": "An object that indicates that the Task is a multi-instance Task, and contains information about how to run the multi-instance Task."
+ },
+ "stats": {
+ "$ref": "#/definitions/TaskStatistics",
+ "title": "Resource usage statistics for the Task."
+ },
+ "dependsOn": {
+ "$ref": "#/definitions/TaskDependencies",
+ "title": "The Tasks that this Task depends on.",
+ "description": "This Task will not be scheduled until all Tasks that it depends on have completed successfully. If any of those Tasks fail and exhaust their retry counts, this Task will never be scheduled."
+ },
+ "applicationPackageReferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationPackageReference"
+ },
+ "title": "A list of Packages that the Batch service will deploy to the Compute Node before running the command line.",
+ "description": "Application packages are downloaded and deployed to a shared directory, not the Task working directory. Therefore, if a referenced package is already on the Node, and is up to date, then it is not re-downloaded; the existing copy on the Compute Node is used. If a referenced Package cannot be installed, for example because the package has been deleted or because download failed, the Task fails."
+ },
+ "authenticationTokenSettings": {
+ "title": "The settings for an authentication token that the Task can use to perform Batch service operations.",
+ "description": "If this property is set, the Batch service provides the Task with an authentication token which can be used to authenticate Batch service operations without requiring an Account access key. The token is provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations that the Task can carry out using the token depend on the settings. For example, a Task can request Job permissions in order to add other Tasks to the Job, or check the status of the Job or of other Tasks under the Job.",
+ "$ref": "#/definitions/AuthenticationTokenSettings"
+ }
+ },
+ "title": "An Azure Batch Task.",
+ "description": "Batch will retry Tasks when a recovery operation is triggered on a Node. Examples of recovery operations include (but are not limited to) when an unhealthy Node is rebooted or a Compute Node disappeared due to host failure. Retries due to recovery operations are independent of and are not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, an internal retry due to a recovery operation may occur. Because of this, all Tasks should be idempotent. This means Tasks need to tolerate being interrupted and restarted without causing any corruption or duplicate data. The best practice for long running Tasks is to use some form of checkpointing."
+ },
+ "TaskAddParameter": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "A string that uniquely identifies the Task within the Job.",
+ "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within a Job that differ only by case)."
+ },
+ "displayName": {
+ "type": "string",
+ "title": "A display name for the Task.",
+ "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024."
+ },
+ "commandLine": {
+ "type": "string",
+ "title": "The command line of the Task.",
+ "description": "For multi-instance Tasks, the command line is executed as the primary Task, after the primary Task and all subtasks have finished executing the coordination command line. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables)."
+ },
+ "containerSettings": {
+ "$ref": "#/definitions/TaskContainerSettings",
+ "title": "The settings for the container under which the Task runs.",
+ "description": "If the Pool that will run this Task has containerConfiguration set, this must be set as well. If the Pool that will run this Task doesn't have containerConfiguration set, this must not be set. When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all Task environment variables are mapped into the container, and the Task command line is executed in the container. Files produced in the container outside of AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning that Batch file APIs will not be able to access those files."
+ },
+ "exitConditions": {
+ "$ref": "#/definitions/ExitConditions",
+ "description": "How the Batch service should respond when the Task completes."
+ },
+ "resourceFiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceFile"
+ },
+ "title": "A list of files that the Batch service will download to the Compute Node before running the command line.",
+ "description": "For multi-instance Tasks, the resource files will only be downloaded to the Compute Node on which the primary Task is executed. There is a maximum size for the list of resource files. When the max size is exceeded, the request will fail and the response error code will be RequestEntityTooLarge. If this occurs, the collection of ResourceFiles must be reduced in size. This can be achieved using .zip files, Application Packages, or Docker Containers."
+ },
+ "outputFiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OutputFile"
+ },
+ "title": "A list of files that the Batch service will upload from the Compute Node after running the command line.",
+ "description": "For multi-instance Tasks, the files will only be uploaded from the Compute Node on which the primary Task is executed."
+ },
+ "environmentSettings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnvironmentSetting"
+ },
+ "title": "A list of environment variable settings for the Task."
+ },
+ "affinityInfo": {
+ "$ref": "#/definitions/AffinityInformation",
+ "title": "A locality hint that can be used by the Batch service to select a Compute Node on which to start the new Task."
+ },
+ "constraints": {
+ "$ref": "#/definitions/TaskConstraints",
+ "title": "The execution constraints that apply to this Task.",
+ "description": "If you do not specify constraints, the maxTaskRetryCount is the maxTaskRetryCount specified for the Job, the maxWallClockTime is infinite, and the retentionTime is 7 days."
+ },
+ "requiredSlots": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of scheduling slots that the Task required to run.",
+ "description": "The default is 1. A Task can only be scheduled to run on a compute node if the node has enough free scheduling slots available. For multi-instance Tasks, this must be 1."
+ },
+ "userIdentity": {
+ "$ref": "#/definitions/UserIdentity",
+ "title": "The user identity under which the Task runs.",
+ "description": "If omitted, the Task runs as a non-administrative user unique to the Task."
+ },
+ "multiInstanceSettings": {
+ "$ref": "#/definitions/MultiInstanceSettings",
+ "title": "An object that indicates that the Task is a multi-instance Task, and contains information about how to run the multi-instance Task."
+ },
+ "dependsOn": {
+ "$ref": "#/definitions/TaskDependencies",
+ "title": "The Tasks that this Task depends on.",
+ "description": "This Task will not be scheduled until all Tasks that it depends on have completed successfully. If any of those Tasks fail and exhaust their retry counts, this Task will never be scheduled. If the Job does not have usesTaskDependencies set to true, and this element is present, the request fails with error code TaskDependenciesNotSpecifiedOnJob."
+ },
+ "applicationPackageReferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationPackageReference"
+ },
+ "title": "A list of Packages that the Batch service will deploy to the Compute Node before running the command line.",
+ "description": "Application packages are downloaded and deployed to a shared directory, not the Task working directory. Therefore, if a referenced package is already on the Node, and is up to date, then it is not re-downloaded; the existing copy on the Compute Node is used. If a referenced Package cannot be installed, for example because the package has been deleted or because download failed, the Task fails."
+ },
+ "authenticationTokenSettings": {
+ "title": "The settings for an authentication token that the Task can use to perform Batch service operations.",
+ "description": "If this property is set, the Batch service provides the Task with an authentication token which can be used to authenticate Batch service operations without requiring an Account access key. The token is provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations that the Task can carry out using the token depend on the settings. For example, a Task can request Job permissions in order to add other Tasks to the Job, or check the status of the Job or of other Tasks under the Job.",
+ "$ref": "#/definitions/AuthenticationTokenSettings"
+ }
+ },
+ "required": [
+ "id",
+ "commandLine"
+ ],
+ "title": "An Azure Batch Task to add.",
+ "description": "Batch will retry Tasks when a recovery operation is triggered on a Node. Examples of recovery operations include (but are not limited to) when an unhealthy Node is rebooted or a Compute Node disappeared due to host failure. Retries due to recovery operations are independent of and are not counted against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, an internal retry due to a recovery operation may occur. Because of this, all Tasks should be idempotent. This means Tasks need to tolerate being interrupted and restarted without causing any corruption or duplicate data. The best practice for long running Tasks is to use some form of checkpointing."
+ },
+ "TaskAddCollectionParameter": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TaskAddParameter"
+ },
+ "maxItems": 100,
+ "title": "The collection of Tasks to add. The maximum count of Tasks is 100.",
+ "description": "The total serialized size of this collection must be less than 1MB. If it is greater than 1MB (for example if each Task has 100's of resource files or environment variables), the request will fail with code 'RequestBodyTooLarge' and should be retried again with fewer Tasks."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "title": "A collection of Azure Batch Tasks to add."
+ },
+ "TaskAddResult": {
+ "properties": {
+ "status": {
+ "type": "string",
+ "title": "The status of the add Task request.",
+ "enum": [
+ "success",
+ "clienterror",
+ "servererror"
+ ],
+ "x-ms-enum": {
+ "name": "TaskAddStatus",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "success",
+ "description": "The Task was added successfully."
+ },
+ {
+ "value": "clienterror",
+ "description": "The Task failed to add due to a client error and should not be retried without modifying the request as appropriate.",
+ "name": "clientError"
+ },
+ {
+ "value": "servererror",
+ "description": "Task failed to add due to a server error and can be retried without modification.",
+ "name": "serverError"
+ }
+ ]
+ }
+ },
+ "taskId": {
+ "type": "string",
+ "title": "The ID of the Task for which this is the result."
+ },
+ "eTag": {
+ "type": "string",
+ "title": "The ETag of the Task, if the Task was successfully added.",
+ "description": "You can use this to detect whether the Task has changed between requests. In particular, you can be pass the ETag with an Update Task request to specify that your changes should take effect only if nobody else has modified the Job in the meantime."
+ },
+ "lastModified": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The last modified time of the Task."
+ },
+ "location": {
+ "type": "string",
+ "title": "The URL of the Task, if the Task was successfully added."
+ },
+ "error": {
+ "$ref": "#/definitions/BatchError",
+ "title": "The error encountered while attempting to add the Task."
+ }
+ },
+ "required": [
+ "status",
+ "taskId"
+ ],
+ "title": "Result for a single Task added as part of an add Task collection operation."
+ },
+ "TaskAddCollectionResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TaskAddResult"
+ },
+ "title": "The results of the add Task collection operation."
+ }
+ },
+ "title": "The result of adding a collection of Tasks to a Job."
+ },
+ "SubtaskInformation": {
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The ID of the subtask."
+ },
+ "nodeInfo": {
+ "$ref": "#/definitions/ComputeNodeInformation",
+ "title": "Information about the Compute Node on which the subtask ran."
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the subtask started running. If the subtask has been restarted or retried, this is the most recent time at which the subtask started running."
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the subtask completed.",
+ "description": "This property is set only if the subtask is in the Completed state."
+ },
+ "exitCode": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The exit code of the program specified on the subtask command line.",
+ "description": "This property is set only if the subtask is in the completed state. In general, the exit code for a process reflects the specific convention implemented by the application developer for that process. If you use the exit code value to make decisions in your code, be sure that you know the exit code convention used by the application process. However, if the Batch service terminates the subtask (due to timeout, or user termination via the API) you may see an operating system-defined exit code."
+ },
+ "containerInfo": {
+ "$ref": "#/definitions/TaskContainerExecutionInformation",
+ "title": "Information about the container under which the Task is executing.",
+ "description": "This property is set only if the Task runs in a container context."
+ },
+ "failureInfo": {
+ "$ref": "#/definitions/TaskFailureInformation",
+ "title": "Information describing the Task failure, if any.",
+ "description": "This property is set only if the Task is in the completed state and encountered a failure."
+ },
+ "state": {
+ "title": "The current state of the subtask.",
+ "$ref": "#/definitions/SubtaskState"
+ },
+ "stateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the subtask entered its current state."
+ },
+ "previousState": {
+ "title": "The previous state of the subtask.",
+ "description": "This property is not set if the subtask is in its initial running state.",
+ "$ref": "#/definitions/SubtaskState"
+ },
+ "previousStateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the subtask entered its previous state.",
+ "description": "This property is not set if the subtask is in its initial running state."
+ },
+ "result": {
+ "$ref": "#/definitions/TaskExecutionResult",
+ "title": "The result of the Task execution.",
+ "description": "If the value is 'failed', then the details of the failure can be found in the failureInfo property."
+ }
+ },
+ "title": "Information about an Azure Batch subtask."
+ },
+ "CloudTaskListSubtasksResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubtaskInformation"
+ },
+ "title": "The list of subtasks."
+ }
+ },
+ "title": "The result of listing the subtasks of a Task."
+ },
+ "CloudTaskListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudTask"
+ },
+ "title": "The list of Tasks."
+ },
+ "odata.nextLink": {
+ "type": "string",
+ "title": "The URL to get the next set of results."
+ }
+ },
+ "title": "The result of listing the Tasks in a Job."
+ },
+ "TaskInformation": {
+ "properties": {
+ "taskUrl": {
+ "type": "string",
+ "title": "The URL of the Task."
+ },
+ "jobId": {
+ "type": "string",
+ "title": "The ID of the Job to which the Task belongs."
+ },
+ "taskId": {
+ "type": "string",
+ "title": "The ID of the Task."
+ },
+ "subtaskId": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The ID of the subtask if the Task is a multi-instance Task."
+ },
+ "taskState": {
+ "title": "The current state of the Task.",
+ "$ref": "#/definitions/TaskState"
+ },
+ "executionInfo": {
+ "$ref": "#/definitions/TaskExecutionInformation",
+ "title": "Information about the execution of the Task."
+ }
+ },
+ "required": [
+ "taskState"
+ ],
+ "title": "Information about a Task running on a Compute Node."
+ },
+ "StartTaskInformation": {
+ "properties": {
+ "state": {
+ "type": "string",
+ "title": "The state of the StartTask on the Compute Node.",
+ "enum": [
+ "running",
+ "completed"
+ ],
+ "x-ms-enum": {
+ "name": "StartTaskState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "running",
+ "description": "The StartTask is currently running."
+ },
+ {
+ "value": "completed",
+ "description": "The StartTask has exited with exit code 0, or the StartTask has failed and the retry limit has reached, or the StartTask process did not run due to Task preparation errors (such as resource file download failures)."
+ }
+ ]
+ }
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the StartTask started running.",
+ "description": "This value is reset every time the Task is restarted or retried (that is, this is the most recent time at which the StartTask started running)."
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the StartTask stopped running.",
+ "description": "This is the end time of the most recent run of the StartTask, if that run has completed (even if that run failed and a retry is pending). This element is not present if the StartTask is currently running."
+ },
+ "exitCode": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The exit code of the program specified on the StartTask command line.",
+ "description": "This property is set only if the StartTask is in the completed state. In general, the exit code for a process reflects the specific convention implemented by the application developer for that process. If you use the exit code value to make decisions in your code, be sure that you know the exit code convention used by the application process. However, if the Batch service terminates the StartTask (due to timeout, or user termination via the API) you may see an operating system-defined exit code."
+ },
+ "containerInfo": {
+ "$ref": "#/definitions/TaskContainerExecutionInformation",
+ "title": "Information about the container under which the Task is executing.",
+ "description": "This property is set only if the Task runs in a container context."
+ },
+ "failureInfo": {
+ "$ref": "#/definitions/TaskFailureInformation",
+ "title": "Information describing the Task failure, if any.",
+ "description": "This property is set only if the Task is in the completed state and encountered a failure."
+ },
+ "retryCount": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of times the Task has been retried by the Batch service.",
+ "description": "Task application failures (non-zero exit code) are retried, pre-processing errors (the Task could not be run) and file upload errors are not retried. The Batch service will retry the Task up to the limit specified by the constraints."
+ },
+ "lastRetryTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The most recent time at which a retry of the Task started running.",
+ "description": "This element is present only if the Task was retried (i.e. retryCount is nonzero). If present, this is typically the same as startTime, but may be different if the Task has been restarted for reasons other than retry; for example, if the Compute Node was rebooted during a retry, then the startTime is updated but the lastRetryTime is not."
+ },
+ "result": {
+ "$ref": "#/definitions/TaskExecutionResult",
+ "title": "The result of the Task execution.",
+ "description": "If the value is 'failed', then the details of the failure can be found in the failureInfo property."
+ }
+ },
+ "required": [
+ "state",
+ "startTime",
+ "retryCount"
+ ],
+ "title": "Information about a StartTask running on a Compute Node."
+ },
+ "ComputeNodeError": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "title": "An identifier for the Compute Node error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "title": "A message describing the Compute Node error, intended to be suitable for display in a user interface."
+ },
+ "errorDetails": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NameValuePair"
+ },
+ "title": "The list of additional error details related to the Compute Node error."
+ }
+ },
+ "title": "An error encountered by a Compute Node."
+ },
+ "ComputeNode": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "The ID of the Compute Node.",
+ "description": "Every Compute Node that is added to a Pool is assigned a unique ID. Whenever a Compute Node is removed from a Pool, all of its local files are deleted, and the ID is reclaimed and could be reused for new Compute Nodes."
+ },
+ "url": {
+ "type": "string",
+ "title": "The URL of the Compute Node."
+ },
+ "state": {
+ "type": "string",
+ "title": "The current state of the Compute Node.",
+ "description": "The low-priority Compute Node has been preempted. Tasks which were running on the Compute Node when it was preempted will be rescheduled when another Compute Node becomes available.",
+ "enum": [
+ "idle",
+ "rebooting",
+ "reimaging",
+ "running",
+ "unusable",
+ "creating",
+ "starting",
+ "waitingforstarttask",
+ "starttaskfailed",
+ "unknown",
+ "leavingpool",
+ "offline",
+ "preempted"
+ ],
+ "x-ms-enum": {
+ "name": "ComputeNodeState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "idle",
+ "description": "The Compute Node is not currently running a Task."
+ },
+ {
+ "value": "rebooting",
+ "description": "The Compute Node is rebooting."
+ },
+ {
+ "value": "reimaging",
+ "description": "The Compute Node is reimaging."
+ },
+ {
+ "value": "running",
+ "description": "The Compute Node is running one or more Tasks (other than a StartTask)."
+ },
+ {
+ "value": "unusable",
+ "description": "The Compute Node cannot be used for Task execution due to errors."
+ },
+ {
+ "value": "creating",
+ "description": "The Batch service has obtained the underlying virtual machine from Azure Compute, but it has not yet started to join the Pool."
+ },
+ {
+ "value": "starting",
+ "description": "The Batch service is starting on the underlying virtual machine."
+ },
+ {
+ "value": "waitingforstarttask",
+ "description": "The StartTask has started running on the Compute Node, but waitForSuccess is set and the StartTask has not yet completed.",
+ "name": "waitingForStartTask"
+ },
+ {
+ "value": "starttaskfailed",
+ "description": "The StartTask has failed on the Compute Node (and exhausted all retries), and waitForSuccess is set. The Compute Node is not usable for running Tasks.",
+ "name": "startTaskFailed"
+ },
+ {
+ "value": "unknown",
+ "description": "The Batch service has lost contact with the Compute Node, and does not know its true state."
+ },
+ {
+ "value": "leavingpool",
+ "description": "The Compute Node is leaving the Pool, either because the user explicitly removed it or because the Pool is resizing or autoscaling down.",
+ "name": "leavingPool"
+ },
+ {
+ "value": "offline",
+ "description": "The Compute Node is not currently running a Task, and scheduling of new Tasks to the Compute Node is disabled."
+ },
+ {
+ "value": "preempted",
+ "description": "The low-priority Compute Node has been preempted. Tasks which were running on the Compute Node when it was preempted will be rescheduled when another Compute Node becomes available."
+ }
+ ]
+ }
+ },
+ "schedulingState": {
+ "type": "string",
+ "title": "Whether the Compute Node is available for Task scheduling.",
+ "enum": [
+ "enabled",
+ "disabled"
+ ],
+ "x-ms-enum": {
+ "name": "SchedulingState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "enabled",
+ "description": "Tasks can be scheduled on the Compute Node."
+ },
+ {
+ "value": "disabled",
+ "description": "No new Tasks will be scheduled on the Compute Node. Tasks already running on the Compute Node may still run to completion. All Compute Nodes start with scheduling enabled."
+ }
+ ]
+ }
+ },
+ "stateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Compute Node entered its current state."
+ },
+ "lastBootTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The last time at which the Compute Node was started.",
+ "description": "This property may not be present if the Compute Node state is unusable."
+ },
+ "allocationTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which this Compute Node was allocated to the Pool.",
+ "description": "This is the time when the Compute Node was initially allocated and doesn't change once set. It is not updated when the Compute Node is service healed or preempted."
+ },
+ "ipAddress": {
+ "type": "string",
+ "title": "The IP address that other Nodes can use to communicate with this Compute Node.",
+ "description": "Every Compute Node that is added to a Pool is assigned a unique IP address. Whenever a Compute Node is removed from a Pool, all of its local files are deleted, and the IP address is reclaimed and could be reused for new Compute Nodes."
+ },
+ "affinityId": {
+ "type": "string",
+ "title": "An identifier which can be passed when adding a Task to request that the Task be scheduled on this Compute Node.",
+ "description": "Note that this is just a soft affinity. If the target Compute Node is busy or unavailable at the time the Task is scheduled, then the Task will be scheduled elsewhere."
+ },
+ "vmSize": {
+ "type": "string",
+ "title": "The size of the virtual machine hosting the Compute Node.",
+ "description": "For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes)."
+ },
+ "totalTasksRun": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The total number of Job Tasks completed on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks."
+ },
+ "runningTasksCount": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The total number of currently running Job Tasks on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks."
+ },
+ "runningTaskSlotsCount": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The total number of scheduling slots used by currently running Job Tasks on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks."
+ },
+ "totalTasksSucceeded": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The total number of Job Tasks which completed successfully (with exitCode 0) on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks."
+ },
+ "recentTasks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TaskInformation"
+ },
+ "title": "A list of Tasks whose state has recently changed.",
+ "description": "This property is present only if at least one Task has run on this Compute Node since it was assigned to the Pool."
+ },
+ "startTask": {
+ "$ref": "#/definitions/StartTask",
+ "title": "The Task specified to run on the Compute Node as it joins the Pool."
+ },
+ "startTaskInfo": {
+ "$ref": "#/definitions/StartTaskInformation",
+ "title": "Runtime information about the execution of the StartTask on the Compute Node."
+ },
+ "certificateReferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateReference"
+ },
+ "title": "The list of Certificates installed on the Compute Node.",
+ "description": "For Windows Nodes, the Batch service installs the Certificates to the specified Certificate store and location. For Linux Compute Nodes, the Certificates are stored in a directory inside the Task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this location. For Certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and Certificates are placed in that directory."
+ },
+ "errors": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ComputeNodeError"
+ },
+ "title": "The list of errors that are currently being encountered by the Compute Node."
+ },
+ "isDedicated": {
+ "type": "boolean",
+ "title": "Whether this Compute Node is a dedicated Compute Node. If false, the Compute Node is a low-priority Compute Node."
+ },
+ "endpointConfiguration": {
+ "$ref": "#/definitions/ComputeNodeEndpointConfiguration",
+ "title": "The endpoint configuration for the Compute Node."
+ },
+ "nodeAgentInfo": {
+ "$ref": "#/definitions/NodeAgentInformation",
+ "title": "Information about the Compute Node agent version and the time the Compute Node upgraded to a new version."
+ }
+ },
+ "title": "A Compute Node in the Batch service."
+ },
+ "PoolEndpointConfiguration": {
+ "properties": {
+ "inboundNATPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InboundNATPool"
+ },
+ "title": "A list of inbound NAT Pools that can be used to address specific ports on an individual Compute Node externally.",
+ "description": "The maximum number of inbound NAT Pools per Batch Pool is 5. If the maximum number of inbound NAT Pools is exceeded the request fails with HTTP status code 400. This cannot be specified if the IPAddressProvisioningType is NoPublicIPAddresses."
+ }
+ },
+ "required": [
+ "inboundNATPools"
+ ],
+ "title": "The endpoint configuration for a Pool."
+ },
+ "InboundNATPool": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "The name of the endpoint.",
+ "description": "The name must be unique within a Batch Pool, can contain letters, numbers, underscores, periods, and hyphens. Names must start with a letter or number, must end with a letter, number, or underscore, and cannot exceed 77 characters. If any invalid values are provided the request fails with HTTP status code 400."
+ },
+ "protocol": {
+ "$ref": "#/definitions/InboundEndpointProtocol",
+ "title": "The protocol of the endpoint."
+ },
+ "backendPort": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The port number on the Compute Node.",
+ "description": "This must be unique within a Batch Pool. Acceptable values are between 1 and 65535 except for 22, 3389, 29876 and 29877 as these are reserved. If any reserved values are provided the request fails with HTTP status code 400."
+ },
+ "frontendPortRangeStart": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The first port number in the range of external ports that will be used to provide inbound access to the backendPort on individual Compute Nodes.",
+ "description": "Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved. All ranges within a Pool must be distinct and cannot overlap. Each range must contain at least 40 ports. If any reserved or overlapping values are provided the request fails with HTTP status code 400."
+ },
+ "frontendPortRangeEnd": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The last port number in the range of external ports that will be used to provide inbound access to the backendPort on individual Compute Nodes.",
+ "description": "Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved by the Batch service. All ranges within a Pool must be distinct and cannot overlap. Each range must contain at least 40 ports. If any reserved or overlapping values are provided the request fails with HTTP status code 400."
+ },
+ "networkSecurityGroupRules": {
+ "type": "array",
+ "title": "A list of network security group rules that will be applied to the endpoint.",
+ "description": "The maximum number of rules that can be specified across all the endpoints on a Batch Pool is 25. If no network security group rules are specified, a default rule will be created to allow inbound access to the specified backendPort. If the maximum number of network security group rules is exceeded the request fails with HTTP status code 400.",
+ "items": {
+ "$ref": "#/definitions/NetworkSecurityGroupRule"
+ }
+ }
+ },
+ "required": [
+ "name",
+ "protocol",
+ "backendPort",
+ "frontendPortRangeStart",
+ "frontendPortRangeEnd"
+ ],
+ "title": "A inbound NAT Pool that can be used to address specific ports on Compute Nodes in a Batch Pool externally."
+ },
+ "NetworkSecurityGroupRule": {
+ "properties": {
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The priority for this rule.",
+ "description": "Priorities within a Pool must be unique and are evaluated in order of priority. The lower the number the higher the priority. For example, rules could be specified with order numbers of 150, 250, and 350. The rule with the order number of 150 takes precedence over the rule that has an order of 250. Allowed priorities are 150 to 4096. If any reserved or duplicate values are provided the request fails with HTTP status code 400."
+ },
+ "access": {
+ "type": "string",
+ "title": "The action that should be taken for a specified IP address, subnet range or tag.",
+ "enum": [
+ "allow",
+ "deny"
+ ],
+ "x-ms-enum": {
+ "name": "NetworkSecurityGroupRuleAccess",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "allow",
+ "description": "Allow access."
+ },
+ {
+ "value": "deny",
+ "description": "Deny access."
+ }
+ ]
+ }
+ },
+ "sourceAddressPrefix": {
+ "type": "string",
+ "title": "The source address prefix or tag to match for the rule.",
+ "description": "Valid values are a single IP address (i.e. 10.10.10.10), IP subnet (i.e. 192.168.1.0/24), default tag, or * (for all addresses). If any other values are provided the request fails with HTTP status code 400."
+ },
+ "sourcePortRanges": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "The source port ranges to match for the rule.",
+ "description": "Valid values are '*' (for all ports 0 - 65535), a specific port (i.e. 22), or a port range (i.e. 100-200). The ports must be in the range of 0 to 65535. Each entry in this collection must not overlap any other entry (either a range or an individual port). If any other values are provided the request fails with HTTP status code 400. The default value is '*'."
+ }
+ },
+ "required": [
+ "priority",
+ "access",
+ "sourceAddressPrefix"
+ ],
+ "title": "A network security group rule to apply to an inbound endpoint."
+ },
+ "ComputeNodeEndpointConfiguration": {
+ "properties": {
+ "inboundEndpoints": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InboundEndpoint"
+ },
+ "title": "The list of inbound endpoints that are accessible on the Compute Node."
+ }
+ },
+ "required": [
+ "inboundEndpoints"
+ ],
+ "title": "The endpoint configuration for the Compute Node."
+ },
+ "InboundEndpoint": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "The name of the endpoint."
+ },
+ "protocol": {
+ "$ref": "#/definitions/InboundEndpointProtocol",
+ "title": "The protocol of the endpoint."
+ },
+ "publicIPAddress": {
+ "type": "string",
+ "title": "The public IP address of the Compute Node."
+ },
+ "publicFQDN": {
+ "type": "string",
+ "title": "The public fully qualified domain name for the Compute Node."
+ },
+ "frontendPort": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The public port number of the endpoint."
+ },
+ "backendPort": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The backend port number of the endpoint."
+ }
+ },
+ "required": [
+ "name",
+ "protocol",
+ "publicIPAddress",
+ "publicFQDN",
+ "frontendPort",
+ "backendPort"
+ ],
+ "title": "An inbound endpoint on a Compute Node."
+ },
+ "ComputeNodeListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ComputeNode"
+ },
+ "title": "The list of Compute Nodes."
+ },
+ "odata.nextLink": {
+ "type": "string",
+ "title": "The URL to get the next set of results."
+ }
+ },
+ "title": "The result of listing the Compute Nodes in a Pool."
+ },
+ "ComputeNodeUser": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "The user name of the Account."
+ },
+ "isAdmin": {
+ "type": "boolean",
+ "title": "Whether the Account should be an administrator on the Compute Node.",
+ "description": "The default value is false."
+ },
+ "expiryTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Account should expire.",
+ "description": "If omitted, the default is 1 day from the current time. For Linux Compute Nodes, the expiryTime has a precision up to a day."
+ },
+ "password": {
+ "type": "string",
+ "title": "The password of the Account.",
+ "description": "The password is required for Windows Compute Nodes (those created with 'cloudServiceConfiguration', or created with 'virtualMachineConfiguration' using a Windows Image reference). For Linux Compute Nodes, the password can optionally be specified along with the sshPublicKey property."
+ },
+ "sshPublicKey": {
+ "type": "string",
+ "title": "The SSH public key that can be used for remote login to the Compute Node.",
+ "description": "The public key should be compatible with OpenSSH encoding and should be base 64 encoded. This property can be specified only for Linux Compute Nodes. If this is specified for a Windows Compute Node, then the Batch service rejects the request; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)."
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "title": "A user Account for RDP or SSH access on a Compute Node."
+ },
+ "ComputeNodeGetRemoteLoginSettingsResult": {
+ "properties": {
+ "remoteLoginIPAddress": {
+ "type": "string",
+ "title": "The IP address used for remote login to the Compute Node."
+ },
+ "remoteLoginPort": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The port used for remote login to the Compute Node."
+ }
+ },
+ "required": [
+ "remoteLoginIPAddress",
+ "remoteLoginPort"
+ ],
+ "title": "The remote login settings for a Compute Node."
+ },
+ "JobSchedulePatchParameter": {
+ "properties": {
+ "schedule": {
+ "$ref": "#/definitions/Schedule",
+ "title": "The schedule according to which Jobs will be created.",
+ "description": "If you do not specify this element, the existing schedule is left unchanged."
+ },
+ "jobSpecification": {
+ "$ref": "#/definitions/JobSpecification",
+ "title": "The details of the Jobs to be created on this schedule.",
+ "description": "Updates affect only Jobs that are started after the update has taken place. Any currently active Job continues with the older specification."
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with the Job Schedule as metadata.",
+ "description": "If you do not specify this element, existing metadata is left unchanged."
+ }
+ },
+ "title": "The set of changes to be made to a Job Schedule."
+ },
+ "JobScheduleUpdateParameter": {
+ "properties": {
+ "schedule": {
+ "$ref": "#/definitions/Schedule",
+ "title": "The schedule according to which Jobs will be created.",
+ "description": "If you do not specify this element, it is equivalent to passing the default schedule: that is, a single Job scheduled to run immediately."
+ },
+ "jobSpecification": {
+ "$ref": "#/definitions/JobSpecification",
+ "title": "Details of the Jobs to be created on this schedule.",
+ "description": "Updates affect only Jobs that are started after the update has taken place. Any currently active Job continues with the older specification."
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with the Job Schedule as metadata.",
+ "description": "If you do not specify this element, it takes the default value of an empty list; in effect, any existing metadata is deleted."
+ }
+ },
+ "required": [
+ "schedule",
+ "jobSpecification"
+ ],
+ "title": "The set of changes to be made to a Job Schedule."
+ },
+ "JobDisableParameter": {
+ "properties": {
+ "disableTasks": {
+ "type": "string",
+ "title": "What to do with active Tasks associated with the Job.",
+ "enum": [
+ "requeue",
+ "terminate",
+ "wait"
+ ],
+ "x-ms-enum": {
+ "name": "DisableJobOption",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "requeue",
+ "description": "Terminate running Tasks and requeue them. The Tasks will run again when the Job is enabled."
+ },
+ {
+ "value": "terminate",
+ "description": "Terminate running Tasks. The Tasks will be completed with failureInfo indicating that they were terminated, and will not run again."
+ },
+ {
+ "value": "wait",
+ "description": "Allow currently running Tasks to complete."
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "disableTasks"
+ ],
+ "title": "Options when disabling a Job."
+ },
+ "JobTerminateParameter": {
+ "properties": {
+ "terminateReason": {
+ "type": "string",
+ "title": "The text you want to appear as the Job's TerminateReason. The default is 'UserTerminate'."
+ }
+ },
+ "title": "Options when terminating a Job."
+ },
+ "JobPatchParameter": {
+ "properties": {
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The priority of the Job.",
+ "description": "Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. If omitted, the priority of the Job is left unchanged."
+ },
+ "onAllTasksComplete": {
+ "title": "The action the Batch service should take when all Tasks in the Job are in the completed state.",
+ "description": "If omitted, the completion behavior is left unchanged. You may not change the value from terminatejob to noaction - that is, once you have engaged automatic Job termination, you cannot turn it off again. If you try to do this, the request fails with an 'invalid property value' error response; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
+ "$ref": "#/definitions/OnAllTasksComplete"
+ },
+ "constraints": {
+ "$ref": "#/definitions/JobConstraints",
+ "title": "The execution constraints for the Job.",
+ "description": "If omitted, the existing execution constraints are left unchanged."
+ },
+ "poolInfo": {
+ "$ref": "#/definitions/PoolInformation",
+ "title": "The Pool on which the Batch service runs the Job's Tasks.",
+ "description": "You may change the Pool for a Job only when the Job is disabled. The Patch Job call will fail if you include the poolInfo element and the Job is not disabled. If you specify an autoPoolSpecification in the poolInfo, only the keepAlive property of the autoPoolSpecification can be updated, and then only if the autoPoolSpecification has a poolLifetimeOption of Job (other job properties can be updated as normal). If omitted, the Job continues to run on its current Pool."
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with the Job as metadata.",
+ "description": "If omitted, the existing Job metadata is left unchanged."
+ }
+ },
+ "title": "The set of changes to be made to a Job."
+ },
+ "JobUpdateParameter": {
+ "properties": {
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The priority of the Job.",
+ "description": "Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. If omitted, it is set to the default value 0."
+ },
+ "constraints": {
+ "$ref": "#/definitions/JobConstraints",
+ "title": "The execution constraints for the Job.",
+ "description": "If omitted, the constraints are cleared."
+ },
+ "poolInfo": {
+ "$ref": "#/definitions/PoolInformation",
+ "title": "The Pool on which the Batch service runs the Job's Tasks.",
+ "description": "You may change the Pool for a Job only when the Job is disabled. The Update Job call will fail if you include the poolInfo element and the Job is not disabled. If you specify an autoPoolSpecification in the poolInfo, only the keepAlive property of the autoPoolSpecification can be updated, and then only if the autoPoolSpecification has a poolLifetimeOption of Job (other job properties can be updated as normal)."
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with the Job as metadata.",
+ "description": "If omitted, it takes the default value of an empty list; in effect, any existing metadata is deleted."
+ },
+ "onAllTasksComplete": {
+ "title": "The action the Batch service should take when all Tasks in the Job are in the completed state.",
+ "description": "If omitted, the completion behavior is set to noaction. If the current value is terminatejob, this is an error because a Job's completion behavior may not be changed from terminatejob to noaction. You may not change the value from terminatejob to noaction - that is, once you have engaged automatic Job termination, you cannot turn it off again. If you try to do this, the request fails and Batch returns status code 400 (Bad Request) and an 'invalid property value' error response. If you do not specify this element in a PUT request, it is equivalent to passing noaction. This is an error if the current value is terminatejob.",
+ "$ref": "#/definitions/OnAllTasksComplete"
+ }
+ },
+ "required": [
+ "poolInfo"
+ ],
+ "title": "The set of changes to be made to a Job."
+ },
+ "PoolEnableAutoScaleParameter": {
+ "properties": {
+ "autoScaleFormula": {
+ "type": "string",
+ "title": "The formula for the desired number of Compute Nodes in the Pool.",
+ "description": "The formula is checked for validity before it is applied to the Pool. If the formula is not valid, the Batch service rejects the request with detailed error information. For more information about specifying this formula, see Automatically scale Compute Nodes in an Azure Batch Pool (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling)."
+ },
+ "autoScaleEvaluationInterval": {
+ "type": "string",
+ "format": "duration",
+ "title": "The time interval at which to automatically adjust the Pool size according to the autoscale formula.",
+ "description": "The default value is 15 minutes. The minimum and maximum value are 5 minutes and 168 hours respectively. If you specify a value less than 5 minutes or greater than 168 hours, the Batch service rejects the request with an invalid property value error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request). If you specify a new interval, then the existing autoscale evaluation schedule will be stopped and a new autoscale evaluation schedule will be started, with its starting time being the time when this request was issued."
+ }
+ },
+ "title": "Options for enabling automatic scaling on a Pool."
+ },
+ "PoolEvaluateAutoScaleParameter": {
+ "properties": {
+ "autoScaleFormula": {
+ "type": "string",
+ "title": "The formula for the desired number of Compute Nodes in the Pool.",
+ "description": "The formula is validated and its results calculated, but it is not applied to the Pool. To apply the formula to the Pool, 'Enable automatic scaling on a Pool'. For more information about specifying this formula, see Automatically scale Compute Nodes in an Azure Batch Pool (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling)."
+ }
+ },
+ "required": [
+ "autoScaleFormula"
+ ],
+ "title": "Options for evaluating an automatic scaling formula on a Pool."
+ },
+ "PoolResizeParameter": {
+ "properties": {
+ "targetDedicatedNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The desired number of dedicated Compute Nodes in the Pool."
+ },
+ "targetLowPriorityNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The desired number of low-priority Compute Nodes in the Pool."
+ },
+ "resizeTimeout": {
+ "type": "string",
+ "format": "duration",
+ "title": "The timeout for allocation of Nodes to the Pool or removal of Compute Nodes from the Pool.",
+ "description": "The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)."
+ },
+ "nodeDeallocationOption": {
+ "title": "Determines what to do with a Compute Node and its running task(s) if the Pool size is decreasing.",
+ "description": "The default value is requeue.",
+ "$ref": "#/definitions/ComputeNodeDeallocationOption"
+ }
+ },
+ "title": "Options for changing the size of a Pool."
+ },
+ "PoolUpdatePropertiesParameter": {
+ "properties": {
+ "startTask": {
+ "$ref": "#/definitions/StartTask",
+ "title": "A Task to run on each Compute Node as it joins the Pool. The Task runs when the Compute Node is added to the Pool or when the Compute Node is restarted.",
+ "description": "If this element is present, it overwrites any existing StartTask. If omitted, any existing StartTask is removed from the Pool."
+ },
+ "certificateReferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateReference"
+ },
+ "title": "A list of Certificates to be installed on each Compute Node in the Pool.",
+ "description": "This list replaces any existing Certificate references configured on the Pool. If you specify an empty collection, any existing Certificate references are removed from the Pool. For Windows Nodes, the Batch service installs the Certificates to the specified Certificate store and location. For Linux Compute Nodes, the Certificates are stored in a directory inside the Task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this location. For Certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and Certificates are placed in that directory."
+ },
+ "applicationPackageReferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationPackageReference"
+ },
+ "title": "The list of Application Packages to be installed on each Compute Node in the Pool.",
+ "description": "The list replaces any existing Application Package references on the Pool. Changes to Application Package references affect all new Compute Nodes joining the Pool, but do not affect Compute Nodes that are already in the Pool until they are rebooted or reimaged. There is a maximum of 10 Application Package references on any given Pool. If omitted, or if you specify an empty collection, any existing Application Packages references are removed from the Pool. A maximum of 10 references may be specified on a given Pool."
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with the Pool as metadata.",
+ "description": "This list replaces any existing metadata configured on the Pool. If omitted, or if you specify an empty collection, any existing metadata is removed from the Pool."
+ }
+ },
+ "required": [
+ "certificateReferences",
+ "metadata",
+ "applicationPackageReferences"
+ ],
+ "title": "The set of changes to be made to a Pool."
+ },
+ "PoolPatchParameter": {
+ "properties": {
+ "startTask": {
+ "$ref": "#/definitions/StartTask",
+ "title": "A Task to run on each Compute Node as it joins the Pool. The Task runs when the Compute Node is added to the Pool or when the Compute Node is restarted.",
+ "description": "If this element is present, it overwrites any existing StartTask. If omitted, any existing StartTask is left unchanged."
+ },
+ "certificateReferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateReference"
+ },
+ "title": "A list of Certificates to be installed on each Compute Node in the Pool.",
+ "description": "If this element is present, it replaces any existing Certificate references configured on the Pool. If omitted, any existing Certificate references are left unchanged. For Windows Nodes, the Batch service installs the Certificates to the specified Certificate store and location. For Linux Compute Nodes, the Certificates are stored in a directory inside the Task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this location. For Certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and Certificates are placed in that directory."
+ },
+ "applicationPackageReferences": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationPackageReference"
+ },
+ "title": "A list of Packages to be installed on each Compute Node in the Pool.",
+ "description": "Changes to Package references affect all new Nodes joining the Pool, but do not affect Compute Nodes that are already in the Pool until they are rebooted or reimaged. If this element is present, it replaces any existing Package references. If you specify an empty collection, then all Package references are removed from the Pool. If omitted, any existing Package references are left unchanged."
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with the Pool as metadata.",
+ "description": "If this element is present, it replaces any existing metadata configured on the Pool. If you specify an empty collection, any metadata is removed from the Pool. If omitted, any existing metadata is left unchanged."
+ }
+ },
+ "title": "The set of changes to be made to a Pool."
+ },
+ "TaskUpdateParameter": {
+ "properties": {
+ "constraints": {
+ "$ref": "#/definitions/TaskConstraints",
+ "title": "Constraints that apply to this Task.",
+ "description": "If omitted, the Task is given the default constraints. For multi-instance Tasks, updating the retention time applies only to the primary Task and not subtasks."
+ }
+ },
+ "title": "The set of changes to be made to a Task."
+ },
+ "NodeUpdateUserParameter": {
+ "properties": {
+ "password": {
+ "type": "string",
+ "title": "The password of the Account.",
+ "description": "The password is required for Windows Compute Nodes (those created with 'cloudServiceConfiguration', or created with 'virtualMachineConfiguration' using a Windows Image reference). For Linux Compute Nodes, the password can optionally be specified along with the sshPublicKey property. If omitted, any existing password is removed."
+ },
+ "expiryTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the Account should expire.",
+ "description": "If omitted, the default is 1 day from the current time. For Linux Compute Nodes, the expiryTime has a precision up to a day."
+ },
+ "sshPublicKey": {
+ "type": "string",
+ "title": "The SSH public key that can be used for remote login to the Compute Node.",
+ "description": "The public key should be compatible with OpenSSH encoding and should be base 64 encoded. This property can be specified only for Linux Compute Nodes. If this is specified for a Windows Compute Node, then the Batch service rejects the request; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request). If omitted, any existing SSH public key is removed."
+ }
+ },
+ "title": "The set of changes to be made to a user Account on a Compute Node."
+ },
+ "NodeRebootParameter": {
+ "properties": {
+ "nodeRebootOption": {
+ "type": "string",
+ "title": "When to reboot the Compute Node and what to do with currently running Tasks.",
+ "description": "The default value is requeue.",
+ "enum": [
+ "requeue",
+ "terminate",
+ "taskcompletion",
+ "retaineddata"
+ ],
+ "x-ms-enum": {
+ "name": "ComputeNodeRebootOption",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "requeue",
+ "description": "Terminate running Task processes and requeue the Tasks. The Tasks will run again when a Compute Node is available. Restart the Compute Node as soon as Tasks have been terminated."
+ },
+ {
+ "value": "terminate",
+ "description": "Terminate running Tasks. The Tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Restart the Compute Node as soon as Tasks have been terminated."
+ },
+ {
+ "value": "taskcompletion",
+ "description": "Allow currently running Tasks to complete. Schedule no new Tasks while waiting. Restart the Compute Node when all Tasks have completed.",
+ "name": "taskCompletion"
+ },
+ {
+ "value": "retaineddata",
+ "description": "Allow currently running Tasks to complete, then wait for all Task data retention periods to expire. Schedule no new Tasks while waiting. Restart the Compute Node when all Task retention periods have expired.",
+ "name": "retainedData"
+ }
+ ]
+ }
+ }
+ },
+ "title": "Options for rebooting a Compute Node."
+ },
+ "NodeReimageParameter": {
+ "properties": {
+ "nodeReimageOption": {
+ "type": "string",
+ "title": "When to reimage the Compute Node and what to do with currently running Tasks.",
+ "description": "The default value is requeue.",
+ "enum": [
+ "requeue",
+ "terminate",
+ "taskcompletion",
+ "retaineddata"
+ ],
+ "x-ms-enum": {
+ "name": "ComputeNodeReimageOption",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "requeue",
+ "description": "Terminate running Task processes and requeue the Tasks. The Tasks will run again when a Compute Node is available. Reimage the Compute Node as soon as Tasks have been terminated."
+ },
+ {
+ "value": "terminate",
+ "description": "Terminate running Tasks. The Tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Reimage the Compute Node as soon as Tasks have been terminated."
+ },
+ {
+ "value": "taskcompletion",
+ "description": "Allow currently running Tasks to complete. Schedule no new Tasks while waiting. Reimage the Compute Node when all Tasks have completed.",
+ "name": "taskCompletion"
+ },
+ {
+ "value": "retaineddata",
+ "description": "Allow currently running Tasks to complete, then wait for all Task data retention periods to expire. Schedule no new Tasks while waiting. Reimage the Compute Node when all Task retention periods have expired.",
+ "name": "retainedData"
+ }
+ ]
+ }
+ }
+ },
+ "title": "Options for reimaging a Compute Node."
+ },
+ "NodeDisableSchedulingParameter": {
+ "properties": {
+ "nodeDisableSchedulingOption": {
+ "type": "string",
+ "title": "What to do with currently running Tasks when disabling Task scheduling on the Compute Node.",
+ "description": "The default value is requeue.",
+ "enum": [
+ "requeue",
+ "terminate",
+ "taskcompletion"
+ ],
+ "x-ms-enum": {
+ "name": "DisableComputeNodeSchedulingOption",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "requeue",
+ "description": "Terminate running Task processes and requeue the Tasks. The Tasks may run again on other Compute Nodes, or when Task scheduling is re-enabled on this Compute Node. Enter offline state as soon as Tasks have been terminated."
+ },
+ {
+ "value": "terminate",
+ "description": "Terminate running Tasks. The Tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Enter offline state as soon as Tasks have been terminated."
+ },
+ {
+ "value": "taskcompletion",
+ "description": "Allow currently running Tasks to complete. Schedule no new Tasks while waiting. Enter offline state when all Tasks have completed.",
+ "name": "taskCompletion"
+ }
+ ]
+ }
+ }
+ },
+ "title": "Options for disabling scheduling on a Compute Node."
+ },
+ "NodeRemoveParameter": {
+ "properties": {
+ "nodeList": {
+ "type": "array",
+ "maxItems": 100,
+ "items": {
+ "type": "string"
+ },
+ "title": "A list containing the IDs of the Compute Nodes to be removed from the specified Pool."
+ },
+ "resizeTimeout": {
+ "type": "string",
+ "format": "duration",
+ "title": "The timeout for removal of Compute Nodes to the Pool.",
+ "description": "The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)."
+ },
+ "nodeDeallocationOption": {
+ "title": "Determines what to do with a Compute Node and its running task(s) after it has been selected for deallocation.",
+ "description": "The default value is requeue.",
+ "$ref": "#/definitions/ComputeNodeDeallocationOption"
+ }
+ },
+ "required": [
+ "nodeList"
+ ],
+ "title": "Options for removing Compute Nodes from a Pool."
+ },
+ "OutputFile": {
+ "properties": {
+ "filePattern": {
+ "type": "string",
+ "title": "A pattern indicating which file(s) to upload.",
+ "description": "Both relative and absolute paths are supported. Relative paths are relative to the Task working directory. The following wildcards are supported: * matches 0 or more characters (for example pattern abc* would match abc or abcdef), ** matches any directory, ? matches any single character, [abc] matches one character in the brackets, and [a-c] matches one character in the range. Brackets can include a negation to match any character not specified (for example [!abc] matches any character but a, b, or c). If a file name starts with \".\" it is ignored by default but may be matched by specifying it explicitly (for example *.gif will not match .a.gif, but .*.gif will). A simple example: **\\*.txt matches any file that does not start in '.' and ends with .txt in the Task working directory or any subdirectory. If the filename contains a wildcard character it can be escaped using brackets (for example abc[*] would match a file named abc*). Note that both \\ and / are treated as directory separators on Windows, but only / is on Linux. Environment variables (%var% on Windows or $var on Linux) are expanded prior to the pattern being applied."
+ },
+ "destination": {
+ "title": "The destination for the output file(s).",
+ "$ref": "#/definitions/OutputFileDestination"
+ },
+ "uploadOptions": {
+ "title": "Additional options for the upload operation, including under what conditions to perform the upload.",
+ "$ref": "#/definitions/OutputFileUploadOptions"
+ }
+ },
+ "required": [
+ "filePattern",
+ "destination",
+ "uploadOptions"
+ ],
+ "title": "A specification for uploading files from an Azure Batch Compute Node to another location after the Batch service has finished executing the Task process.",
+ "description": "On every file uploads, Batch service writes two log files to the compute node, 'fileuploadout.txt' and 'fileuploaderr.txt'. These log files are used to learn more about a specific failure."
+ },
+ "OutputFileDestination": {
+ "properties": {
+ "container": {
+ "title": "A location in Azure blob storage to which files are uploaded.",
+ "$ref": "#/definitions/OutputFileBlobContainerDestination"
+ }
+ },
+ "title": "The destination to which a file should be uploaded."
+ },
+ "OutputFileBlobContainerDestination": {
+ "properties": {
+ "path": {
+ "type": "string",
+ "title": "The destination blob or virtual directory within the Azure Storage container.",
+ "description": "If filePattern refers to a specific file (i.e. contains no wildcards), then path is the name of the blob to which to upload that file. If filePattern contains one or more wildcards (and therefore may match multiple files), then path is the name of the blob virtual directory (which is prepended to each blob name) to which to upload the file(s). If omitted, file(s) are uploaded to the root of the container with a blob name matching their file name."
+ },
+ "containerUrl": {
+ "type": "string",
+ "title": "The URL of the container within Azure Blob Storage to which to upload the file(s).",
+ "description": "The URL must include a Shared Access Signature (SAS) granting write permissions to the container."
+ }
+ },
+ "required": [
+ "containerUrl"
+ ],
+ "title": "Specifies a file upload destination within an Azure blob storage container."
+ },
+ "OutputFileUploadOptions": {
+ "properties": {
+ "uploadCondition": {
+ "title": "The conditions under which the Task output file or set of files should be uploaded.",
+ "description": "The default is taskcompletion.",
+ "$ref": "#/definitions/OutputFileUploadCondition"
+ }
+ },
+ "required": [
+ "uploadCondition"
+ ],
+ "title": "Details about an output file upload operation, including under what conditions to perform the upload."
+ },
+ "ErrorMessage": {
+ "properties": {
+ "lang": {
+ "type": "string",
+ "title": "The language code of the error message"
+ },
+ "value": {
+ "type": "string",
+ "title": "The text of the message."
+ }
+ },
+ "title": "An error message received in an Azure Batch error response."
+ },
+ "BatchErrorDetail": {
+ "properties": {
+ "key": {
+ "type": "string",
+ "title": "An identifier specifying the meaning of the Value property."
+ },
+ "value": {
+ "type": "string",
+ "title": "The additional information included with the error response."
+ }
+ },
+ "title": "An item of additional information included in an Azure Batch error response."
+ },
+ "BatchError": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "title": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "$ref": "#/definitions/ErrorMessage",
+ "title": "A message describing the error, intended to be suitable for display in a user interface."
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BatchErrorDetail"
+ },
+ "title": "A collection of key-value pairs containing additional details about the error."
+ }
+ },
+ "title": "An error response received from the Azure Batch service."
+ },
+ "CertificateState": {
+ "type": "string",
+ "title": "The state of the Certificate.",
+ "enum": [
+ "active",
+ "deleting",
+ "deletefailed"
+ ],
+ "x-ms-enum": {
+ "name": "CertificateState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "active",
+ "description": "The Certificate is available for use in Pools."
+ },
+ {
+ "value": "deleting",
+ "description": "The user has requested that the Certificate be deleted, but the delete operation has not yet completed. You may not reference the Certificate when creating or updating Pools."
+ },
+ {
+ "value": "deletefailed",
+ "description": "The user requested that the Certificate be deleted, but there are Pools that still have references to the Certificate, or it is still installed on one or more Nodes. (The latter can occur if the Certificate has been removed from the Pool, but the Compute Node has not yet restarted. Compute Nodes refresh their Certificates only when they restart.) You may use the cancel Certificate delete operation to cancel the delete, or the delete Certificate operation to retry the delete.",
+ "name": "deleteFailed"
+ }
+ ]
+ }
+ },
+ "ElevationLevel": {
+ "type": "string",
+ "title": "The elevation level of the user.",
+ "enum": [
+ "nonadmin",
+ "admin"
+ ],
+ "x-ms-enum": {
+ "name": "ElevationLevel",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "nonadmin",
+ "description": "The user is a standard user without elevated access.",
+ "name": "nonAdmin"
+ },
+ {
+ "value": "admin",
+ "description": "The user is a user with elevated access and operates with full Administrator permissions."
+ }
+ ]
+ }
+ },
+ "JobScheduleState": {
+ "type": "string",
+ "title": "The state of the Job Schedule.",
+ "enum": [
+ "active",
+ "completed",
+ "disabled",
+ "terminating",
+ "deleting"
+ ],
+ "x-ms-enum": {
+ "name": "JobScheduleState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "active",
+ "description": "The Job Schedule is active and will create Jobs as per its schedule."
+ },
+ {
+ "value": "completed",
+ "description": "The Job Schedule has terminated, either by reaching its end time or by the user terminating it explicitly."
+ },
+ {
+ "value": "disabled",
+ "description": "The user has disabled the Job Schedule. The scheduler will not initiate any new Jobs will on this schedule, but any existing active Job will continue to run."
+ },
+ {
+ "value": "terminating",
+ "description": "The Job Schedule has no more work to do, or has been explicitly terminated by the user, but the termination operation is still in progress. The scheduler will not initiate any new Jobs for this Job Schedule, nor is any existing Job active."
+ },
+ {
+ "value": "deleting",
+ "description": "The user has requested that the Job Schedule be deleted, but the delete operation is still in progress. The scheduler will not initiate any new Jobs for this Job Schedule, and will delete any existing Jobs and Tasks under the Job Schedule, including any active Job. The Job Schedule will be deleted when all Jobs and Tasks under the Job Schedule have been deleted."
+ }
+ ]
+ }
+ },
+ "JobState": {
+ "type": "string",
+ "title": "The state of the Job.",
+ "enum": [
+ "active",
+ "disabling",
+ "disabled",
+ "enabling",
+ "terminating",
+ "completed",
+ "deleting"
+ ],
+ "x-ms-enum": {
+ "name": "JobState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "active",
+ "description": "The Job is available to have Tasks scheduled."
+ },
+ {
+ "value": "disabling",
+ "description": "A user has requested that the Job be disabled, but the disable operation is still in progress (for example, waiting for Tasks to terminate)."
+ },
+ {
+ "value": "disabled",
+ "description": "A user has disabled the Job. No Tasks are running, and no new Tasks will be scheduled."
+ },
+ {
+ "value": "enabling",
+ "description": "A user has requested that the Job be enabled, but the enable operation is still in progress."
+ },
+ {
+ "value": "terminating",
+ "description": "The Job is about to complete, either because a Job Manager Task has completed or because the user has terminated the Job, but the terminate operation is still in progress (for example, because Job Release Tasks are running)."
+ },
+ {
+ "value": "completed",
+ "description": "All Tasks have terminated, and the system will not accept any more Tasks or any further changes to the Job."
+ },
+ {
+ "value": "deleting",
+ "description": "A user has requested that the Job be deleted, but the delete operation is still in progress (for example, because the system is still terminating running Tasks)."
+ }
+ ]
+ }
+ },
+ "OnAllTasksComplete": {
+ "type": "string",
+ "title": "The action the Batch service should take when all Tasks in the Job are in the completed state.",
+ "enum": [
+ "noaction",
+ "terminatejob"
+ ],
+ "x-ms-enum": {
+ "name": "OnAllTasksComplete",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "noaction",
+ "description": "Do nothing. The Job remains active unless terminated or disabled by some other means.",
+ "name": "noAction"
+ },
+ {
+ "value": "terminatejob",
+ "description": "Terminate the Job. The Job's terminateReason is set to 'AllTasksComplete'.",
+ "name": "terminateJob"
+ }
+ ]
+ }
+ },
+ "OnTaskFailure": {
+ "type": "string",
+ "title": "The action the Batch service should take when any Task in the Job fails.",
+ "description": "A Task is considered to have failed if has a failureInfo. A failureInfo is set if the Task completes with a non-zero exit code after exhausting its retry count, or if there was an error starting the Task, for example due to a resource file download error. The default is noaction.",
+ "enum": [
+ "noaction",
+ "performexitoptionsjobaction"
+ ],
+ "x-ms-enum": {
+ "name": "OnTaskFailure",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "noaction",
+ "description": "Do nothing. The Job remains active unless terminated or disabled by some other means.",
+ "name": "noAction"
+ },
+ {
+ "value": "performexitoptionsjobaction",
+ "description": "Take the action associated with the Task exit condition in the Task's exitConditions collection. (This may still result in no action being taken, if that is what the Task specifies.)",
+ "name": "performExitOptionsJobAction"
+ }
+ ]
+ }
+ },
+ "ErrorCategory": {
+ "type": "string",
+ "title": "The category of the error.",
+ "enum": [
+ "usererror",
+ "servererror"
+ ],
+ "x-ms-enum": {
+ "name": "ErrorCategory",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "usererror",
+ "description": "The error is due to a user issue, such as misconfiguration.",
+ "name": "userError"
+ },
+ {
+ "value": "servererror",
+ "description": "The error is due to an internal server issue.",
+ "name": "serverError"
+ }
+ ]
+ }
+ },
+ "TaskState": {
+ "type": "string",
+ "title": "The state of the Task.",
+ "enum": [
+ "active",
+ "preparing",
+ "running",
+ "completed"
+ ],
+ "x-ms-enum": {
+ "name": "TaskState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "active",
+ "description": "The Task is queued and able to run, but is not currently assigned to a Compute Node. A Task enters this state when it is created, when it is enabled after being disabled, or when it is awaiting a retry after a failed run."
+ },
+ {
+ "value": "preparing",
+ "description": "The Task has been assigned to a Compute Node, but is waiting for a required Job Preparation Task to complete on the Compute Node. If the Job Preparation Task succeeds, the Task will move to running. If the Job Preparation Task fails, the Task will return to active and will be eligible to be assigned to a different Compute Node."
+ },
+ {
+ "value": "running",
+ "description": "The Task is running on a Compute Node. This includes task-level preparation such as downloading resource files or deploying Packages specified on the Task - it does not necessarily mean that the Task command line has started executing."
+ },
+ {
+ "value": "completed",
+ "description": "The Task is no longer eligible to run, usually because the Task has finished successfully, or the Task has finished unsuccessfully and has exhausted its retry limit. A Task is also marked as completed if an error occurred launching the Task, or when the Task has been terminated."
+ }
+ ]
+ }
+ },
+ "SubtaskState": {
+ "type": "string",
+ "title": "The state of the subtask.",
+ "enum": [
+ "preparing",
+ "running",
+ "completed"
+ ],
+ "x-ms-enum": {
+ "name": "SubtaskState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "preparing",
+ "description": "The Task has been assigned to a Compute Node, but is waiting for a required Job Preparation Task to complete on the Compute Node. If the Job Preparation Task succeeds, the Task will move to running. If the Job Preparation Task fails, the Task will return to active and will be eligible to be assigned to a different Compute Node."
+ },
+ {
+ "value": "running",
+ "description": "The Task is running on a Compute Node. This includes task-level preparation such as downloading resource files or deploying Packages specified on the Task - it does not necessarily mean that the Task command line has started executing."
+ },
+ {
+ "value": "completed",
+ "description": "The Task is no longer eligible to run, usually because the Task has finished successfully, or the Task has finished unsuccessfully and has exhausted its retry limit. A Task is also marked as completed if an error occurred launching the Task, or when the Task has been terminated."
+ }
+ ]
+ }
+ },
+ "ComputeNodeDeallocationOption": {
+ "type": "string",
+ "title": "Determines what to do with a Compute Node and its running task(s) after it has been selected for deallocation.",
+ "description": "The default value is requeue.",
+ "enum": [
+ "requeue",
+ "terminate",
+ "taskcompletion",
+ "retaineddata"
+ ],
+ "x-ms-enum": {
+ "name": "ComputeNodeDeallocationOption",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "requeue",
+ "description": "Terminate running Task processes and requeue the Tasks. The Tasks will run again when a Compute Node is available. Remove Compute Nodes as soon as Tasks have been terminated."
+ },
+ {
+ "value": "terminate",
+ "description": "Terminate running Tasks. The Tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Remove Compute Nodes as soon as Tasks have been terminated."
+ },
+ {
+ "value": "taskcompletion",
+ "description": "Allow currently running Tasks to complete. Schedule no new Tasks while waiting. Remove Compute Nodes when all Tasks have completed.",
+ "name": "taskCompletion"
+ },
+ {
+ "value": "retaineddata",
+ "description": "Allow currently running Tasks to complete, then wait for all Task data retention periods to expire. Schedule no new Tasks while waiting. Remove Compute Nodes when all Task retention periods have expired.",
+ "name": "retainedData"
+ }
+ ]
+ }
+ },
+ "OutputFileUploadCondition": {
+ "type": "string",
+ "title": "The conditions under which a Task output file or set of files should be uploaded.",
+ "enum": [
+ "tasksuccess",
+ "taskfailure",
+ "taskcompletion"
+ ],
+ "x-ms-enum": {
+ "name": "OutputFileUploadCondition",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "tasksuccess",
+ "description": "Upload the file(s) only after the Task process exits with an exit code of 0.",
+ "name": "taskSuccess"
+ },
+ {
+ "value": "taskfailure",
+ "description": "Upload the file(s) only after the Task process exits with a nonzero exit code.",
+ "name": "taskFailure"
+ },
+ {
+ "value": "taskcompletion",
+ "description": "Upload the file(s) after the Task process exits, no matter what the exit code was.",
+ "name": "taskCompletion"
+ }
+ ]
+ }
+ },
+ "TaskExecutionResult": {
+ "type": "string",
+ "title": "The result of Task execution.",
+ "enum": [
+ "success",
+ "failure"
+ ],
+ "x-ms-enum": {
+ "name": "TaskExecutionResult",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "success",
+ "description": "The Task ran successfully.",
+ "name": "success"
+ },
+ {
+ "value": "failure",
+ "description": "There was an error during processing of the Task. The failure may have occurred before the Task process was launched, while the Task process was executing, or after the Task process exited.",
+ "name": "failure"
+ }
+ ]
+ }
+ },
+ "InboundEndpointProtocol": {
+ "type": "string",
+ "title": "The protocol of the endpoint.",
+ "enum": [
+ "tcp",
+ "udp"
+ ],
+ "x-ms-enum": {
+ "name": "InboundEndpointProtocol",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "tcp",
+ "description": "Use TCP for the endpoint.",
+ "name": "tcp"
+ },
+ {
+ "value": "udp",
+ "description": "Use UDP for the endpoint.",
+ "name": "udp"
+ }
+ ]
+ }
+ },
+ "UploadBatchServiceLogsConfiguration": {
+ "properties": {
+ "containerUrl": {
+ "type": "string",
+ "title": "The URL of the container within Azure Blob Storage to which to upload the Batch Service log file(s).",
+ "description": "The URL must include a Shared Access Signature (SAS) granting write permissions to the container. The SAS duration must allow enough time for the upload to finish. The start time for SAS is optional and recommended to not be specified."
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The start of the time range from which to upload Batch Service log file(s).",
+ "description": "Any log file containing a log message in the time range will be uploaded. This means that the operation might retrieve more logs than have been requested since the entire log file is always uploaded, but the operation should not retrieve fewer logs than have been requested."
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The end of the time range from which to upload Batch Service log file(s).",
+ "description": "Any log file containing a log message in the time range will be uploaded. This means that the operation might retrieve more logs than have been requested since the entire log file is always uploaded, but the operation should not retrieve fewer logs than have been requested. If omitted, the default is to upload all logs available after the startTime."
+ }
+ },
+ "required": [
+ "containerUrl",
+ "startTime"
+ ],
+ "title": "The Azure Batch service log files upload configuration for a Compute Node."
+ },
+ "UploadBatchServiceLogsResult": {
+ "properties": {
+ "virtualDirectoryName": {
+ "type": "string",
+ "title": "The virtual directory within Azure Blob Storage container to which the Batch Service log file(s) will be uploaded.",
+ "description": "The virtual directory name is part of the blob name for each log file uploaded, and it is built based poolId, nodeId and a unique identifier."
+ },
+ "numberOfFilesUploaded": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of log files which will be uploaded."
+ }
+ },
+ "required": [
+ "virtualDirectoryName",
+ "numberOfFilesUploaded"
+ ],
+ "title": "The result of uploading Batch service log files from a specific Compute Node."
+ },
+ "PoolNodeCountsListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PoolNodeCounts"
+ },
+ "description": "A list of Compute Node counts by Pool."
+ },
+ "odata.nextLink": {
+ "type": "string",
+ "title": "The URL to get the next set of results."
+ }
+ },
+ "title": "The result of listing the Compute Node counts in the Account."
+ },
+ "PoolNodeCounts": {
+ "properties": {
+ "poolId": {
+ "type": "string",
+ "title": "The ID of the Pool."
+ },
+ "dedicated": {
+ "$ref": "#/definitions/NodeCounts",
+ "title": "The number of dedicated Compute Nodes in each state."
+ },
+ "lowPriority": {
+ "$ref": "#/definitions/NodeCounts",
+ "title": "The number of low priority Compute Nodes in each state."
+ }
+ },
+ "required": [
+ "poolId"
+ ],
+ "title": "The number of Compute Nodes in each state for a Pool."
+ },
+ "NodeCounts": {
+ "properties": {
+ "creating": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Compute Nodes in the creating state."
+ },
+ "idle": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Compute Nodes in the idle state."
+ },
+ "offline": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Compute Nodes in the offline state."
+ },
+ "preempted": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Compute Nodes in the preempted state."
+ },
+ "rebooting": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The count of Compute Nodes in the rebooting state."
+ },
+ "reimaging": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Compute Nodes in the reimaging state."
+ },
+ "running": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Compute Nodes in the running state."
+ },
+ "starting": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Compute Nodes in the starting state."
+ },
+ "startTaskFailed": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Compute Nodes in the startTaskFailed state."
+ },
+ "leavingPool": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Compute Nodes in the leavingPool state."
+ },
+ "unknown": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Compute Nodes in the unknown state."
+ },
+ "unusable": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Compute Nodes in the unusable state."
+ },
+ "waitingForStartTask": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of Compute Nodes in the waitingForStartTask state."
+ },
+ "total": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The total number of Compute Nodes."
+ }
+ },
+ "required": [
+ "creating",
+ "idle",
+ "offline",
+ "preempted",
+ "rebooting",
+ "reimaging",
+ "running",
+ "starting",
+ "startTaskFailed",
+ "leavingPool",
+ "unknown",
+ "unusable",
+ "waitingForStartTask",
+ "total"
+ ],
+ "title": "The number of Compute Nodes in each Compute Node state."
+ },
+ "MountConfiguration": {
+ "properties": {
+ "azureBlobFileSystemConfiguration": {
+ "$ref": "#/definitions/AzureBlobFileSystemConfiguration",
+ "title": "The Azure Storage Container to mount using blob FUSE on each node.",
+ "description": "This property is mutually exclusive with all other properties."
+ },
+ "nfsMountConfiguration": {
+ "$ref": "#/definitions/NFSMountConfiguration",
+ "title": "The NFS file system to mount on each node.",
+ "description": "This property is mutually exclusive with all other properties."
+ },
+ "cifsMountConfiguration": {
+ "$ref": "#/definitions/CIFSMountConfiguration",
+ "title": "The CIFS/SMB file system to mount on each node.",
+ "description": "This property is mutually exclusive with all other properties."
+ },
+ "azureFileShareConfiguration": {
+ "$ref": "#/definitions/AzureFileShareConfiguration",
+ "title": "The Azure File Share to mount on each node.",
+ "description": "This property is mutually exclusive with all other properties."
+ }
+ },
+ "title": "The file system to mount on each node."
+ },
+ "AzureBlobFileSystemConfiguration": {
+ "properties": {
+ "accountName": {
+ "type": "string",
+ "title": "The Azure Storage Account name."
+ },
+ "containerName": {
+ "type": "string",
+ "title": "The Azure Blob Storage Container name."
+ },
+ "accountKey": {
+ "type": "string",
+ "title": "The Azure Storage Account key.",
+ "description": "This property is mutually exclusive with sasKey and one must be specified."
+ },
+ "sasKey": {
+ "type": "string",
+ "title": "The Azure Storage SAS token.",
+ "description": "This property is mutually exclusive with accountKey and one must be specified."
+ },
+ "blobfuseOptions": {
+ "type": "string",
+ "title": "Additional command line options to pass to the mount command.",
+ "description": "These are 'net use' options in Windows and 'mount' options in Linux."
+ },
+ "relativeMountPath": {
+ "type": "string",
+ "title": "The relative path on the compute node where the file system will be mounted",
+ "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable."
+ }
+ },
+ "required": [
+ "accountName",
+ "containerName",
+ "relativeMountPath"
+ ],
+ "title": "Information used to connect to an Azure Storage Container using Blobfuse."
+ },
+ "NFSMountConfiguration": {
+ "properties": {
+ "source": {
+ "type": "string",
+ "title": "The URI of the file system to mount."
+ },
+ "relativeMountPath": {
+ "type": "string",
+ "title": "The relative path on the compute node where the file system will be mounted",
+ "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable."
+ },
+ "mountOptions": {
+ "type": "string",
+ "title": "Additional command line options to pass to the mount command.",
+ "description": "These are 'net use' options in Windows and 'mount' options in Linux."
+ }
+ },
+ "required": [
+ "source",
+ "relativeMountPath"
+ ],
+ "title": "Information used to connect to an NFS file system."
+ },
+ "CIFSMountConfiguration": {
+ "properties": {
+ "username": {
+ "type": "string",
+ "title": "The user to use for authentication against the CIFS file system."
+ },
+ "source": {
+ "type": "string",
+ "title": "The URI of the file system to mount."
+ },
+ "relativeMountPath": {
+ "type": "string",
+ "title": "The relative path on the compute node where the file system will be mounted",
+ "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable."
+ },
+ "mountOptions": {
+ "type": "string",
+ "title": "Additional command line options to pass to the mount command.",
+ "description": "These are 'net use' options in Windows and 'mount' options in Linux."
+ },
+ "password": {
+ "type": "string",
+ "title": "The password to use for authentication against the CIFS file system."
+ }
+ },
+ "required": [
+ "username",
+ "source",
+ "password",
+ "relativeMountPath"
+ ],
+ "title": "Information used to connect to a CIFS file system."
+ },
+ "AzureFileShareConfiguration": {
+ "properties": {
+ "accountName": {
+ "type": "string",
+ "title": "The Azure Storage account name."
+ },
+ "azureFileUrl": {
+ "type": "string",
+ "title": "The Azure Files URL.",
+ "description": "This is of the form 'https://{account}.file.core.windows.net/'."
+ },
+ "accountKey": {
+ "type": "string",
+ "title": "The Azure Storage account key."
+ },
+ "relativeMountPath": {
+ "type": "string",
+ "title": "The relative path on the compute node where the file system will be mounted",
+ "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable."
+ },
+ "mountOptions": {
+ "type": "string",
+ "title": "Additional command line options to pass to the mount command.",
+ "description": "These are 'net use' options in Windows and 'mount' options in Linux."
+ }
+ },
+ "required": [
+ "accountName",
+ "azureFileUrl",
+ "accountKey",
+ "relativeMountPath"
+ ],
+ "title": "Information used to connect to an Azure Fileshare."
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client API Version."
+ },
+ "batchUrl": {
+ "name": "batchUrl",
+ "x-ms-parameter-location": "client",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true,
+ "description": "The base URL for all Azure Batch service requests."
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/AccountListPoolNodeCounts.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/AccountListPoolNodeCounts.json
new file mode 100644
index 000000000000..fd5329b8a55d
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/AccountListPoolNodeCounts.json
@@ -0,0 +1,121 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "poolId": "pool1",
+ "dedicated": {
+ "creating": 0,
+ "idle": 0,
+ "leavingPool": 0,
+ "offline": 0,
+ "preempted": 0,
+ "rebooting": 0,
+ "reimaging": 0,
+ "running": 0,
+ "starting": 0,
+ "startTaskFailed": 0,
+ "unknown": 0,
+ "unusable": 0,
+ "waitingForStartTask": 0,
+ "total": 0
+ },
+ "lowPriority": {
+ "creating": 0,
+ "idle": 0,
+ "leavingPool": 0,
+ "offline": 0,
+ "preempted": 0,
+ "rebooting": 0,
+ "reimaging": 0,
+ "running": 2,
+ "starting": 1,
+ "startTaskFailed": 0,
+ "unknown": 0,
+ "unusable": 0,
+ "waitingForStartTask": 0,
+ "total": 3
+ }
+ },
+ {
+ "poolId": "pool2",
+ "dedicated": {
+ "creating": 0,
+ "idle": 1,
+ "leavingPool": 0,
+ "offline": 3,
+ "preempted": 0,
+ "rebooting": 0,
+ "reimaging": 0,
+ "running": 0,
+ "starting": 0,
+ "startTaskFailed": 0,
+ "unknown": 0,
+ "unusable": 0,
+ "waitingForStartTask": 0,
+ "total": 4
+ },
+ "lowPriority": {
+ "creating": 0,
+ "idle": 0,
+ "leavingPool": 0,
+ "offline": 0,
+ "preempted": 0,
+ "rebooting": 0,
+ "reimaging": 0,
+ "running": 0,
+ "starting": 0,
+ "startTaskFailed": 0,
+ "unknown": 0,
+ "unusable": 0,
+ "waitingForStartTask": 0,
+ "total": 0
+ }
+ },
+ {
+ "poolId": "pool3",
+ "dedicated": {
+ "creating": 0,
+ "idle": 5,
+ "leavingPool": 0,
+ "offline": 0,
+ "preempted": 0,
+ "rebooting": 0,
+ "reimaging": 4,
+ "running": 0,
+ "starting": 0,
+ "startTaskFailed": 0,
+ "unknown": 0,
+ "unusable": 0,
+ "waitingForStartTask": 0,
+ "total": 9
+ },
+ "lowPriority": {
+ "creating": 7,
+ "idle": 0,
+ "leavingPool": 0,
+ "offline": 0,
+ "preempted": 0,
+ "rebooting": 0,
+ "reimaging": 0,
+ "running": 4,
+ "starting": 0,
+ "startTaskFailed": 0,
+ "unknown": 0,
+ "unusable": 0,
+ "waitingForStartTask": 0,
+ "total": 11
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/AccountListSupportedImages.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/AccountListSupportedImages.json
new file mode 100644
index 000000000000..9e44b35f461f
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/AccountListSupportedImages.json
@@ -0,0 +1,76 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "nodeAgentSKUId": "batch.node.centos 7",
+ "imageReference": {
+ "publisher": "OpenLogic",
+ "offer": "CentOS",
+ "sku": "7.2",
+ "version": "latest"
+ },
+ "verificationType": "verified",
+ "capabilities": [
+ "DockerCompatible",
+ "NvidiaTeslaDriverInstalled"
+ ],
+ "osType": "linux"
+ },
+ {
+ "nodeAgentSKUId": "batch.node.centos 7",
+ "imageReference": {
+ "publisher": "OpenLogic",
+ "offer": "CentOS",
+ "sku": "7.1",
+ "version": "latest"
+ },
+ "verificationType": "unverified",
+ "osType": "linux",
+ "batchSupportEndOfLife": "2019-11-01T00:00:00.0Z"
+ },
+ {
+ "nodeAgentSKUId": "batch.node.debian 8",
+ "imageReference": {
+ "publisher": "Credativ",
+ "offer": "Debian",
+ "sku": "8",
+ "version": "latest"
+ },
+ "verificationType": "verified",
+ "osType": "linux"
+ },
+ {
+ "nodeAgentSKUId": "batch.node.windows amd64",
+ "imageReference": {
+ "publisher": "MicrosoftWindowsServer",
+ "offer": "WindowsServer",
+ "sku": "2012-R2-Datacenter",
+ "version": "latest"
+ },
+ "verificationType": "verified",
+ "osType": "windows"
+ },
+ {
+ "nodeAgentSKUId": "batch.node.windows amd64",
+ "imageReference": {
+ "publisher": "MicrosoftWindowsServer",
+ "offer": "WindowsServer",
+ "sku": "2012-Datacenter",
+ "version": "latest"
+ },
+ "verificationType": "verified",
+ "osType": "windows"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/ApplicationGet.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/ApplicationGet.json
new file mode 100644
index 000000000000..c668e0cc8b5c
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/ApplicationGet.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "applicationId": "my_application_id"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "my_application_id",
+ "versions": [
+ "v1.0"
+ ],
+ "displayName": "my_display_name"
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/ApplicationList.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/ApplicationList.json
new file mode 100644
index 000000000000..6da4a4f8240c
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/ApplicationList.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "my_application_id",
+ "versions": [
+ "v1.0"
+ ],
+ "displayName": "my_display_name"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateAdd.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateAdd.json
new file mode 100644
index 000000000000..51d9f44dc128
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateAdd.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "certificate": {
+ "thumbprintAlgorithm": "sha1",
+ "thumbprint": "0123456789abcdef0123456789abcdef01234567",
+ "data": "#####...",
+ "certificateFormat": "pfx",
+ "password": "certpassword"
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateCancelDelete.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateCancelDelete.json
new file mode 100644
index 000000000000..5d12eb51782d
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateCancelDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "thumbprintAlgorithm": "sha1",
+ "thumbprint": "0123456789abcdef0123456789abcdef01234567",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateDelete.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateDelete.json
new file mode 100644
index 000000000000..d9a41ac18fd7
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "thumbprintAlgorithm": "sha1",
+ "thumbprint": "0123456789abcdef0123456789abcdef01234567",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateGet.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateGet.json
new file mode 100644
index 000000000000..4edfd98d70ec
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateGet.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "thumbprintAlgorithm": "sha1",
+ "thumbprint": "0123456789abcdef0123456789abcdef01234567",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "thumbprint": "0123456789abcdef0123456789abcdef01234567",
+ "thumbprintAlgorithm": "sha1",
+ "url": "https://account.region.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=0123456789abcdef0123456789abcdef01234567)",
+ "state": "deletefailed",
+ "stateTransitionTime": "2014-07-31T21:12:58.236Z",
+ "previousState": "deleting",
+ "previousStateTransitionTime": "2014-07-31T21:11:58.236Z",
+ "publicData": "#####...",
+ "deleteCertificateError": {
+ "code": "PoolsReferencingCertificate",
+ "message": "The specified certificate is being used by the below mentioned pool(s)",
+ "values": [
+ {
+ "name": "Pools",
+ "value": "mypool1"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateList.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateList.json
new file mode 100644
index 000000000000..505982b557ec
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/CertificateList.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "thumbprint": "0123456789abcdef0123456789abcdef01234567",
+ "thumbprintAlgorithm": "sha1",
+ "url": "https://account.region.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=0123456789abcdef0123456789abcdef01234567)",
+ "state": "deletefailed",
+ "stateTransitionTime": "2014-07-31T21:12:58.236Z",
+ "previousState": "deleting",
+ "previousStateTransitionTime": "2014-07-31T21:11:58.236Z",
+ "publicData": "#####...",
+ "deleteCertificateError": {
+ "code": "PoolsReferencingCertificate",
+ "message": "The specified certificate is being used by the below mentioned pool(s)",
+ "values": [
+ {
+ "name": "Pools",
+ "value": "mypool1"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileDeleteFromNode.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileDeleteFromNode.json
new file mode 100644
index 000000000000..7e50e97535b7
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileDeleteFromNode.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "nodeId": "tvm-1695681911_1-20161122t193202z",
+ "filePath": "workitems\\jobId\\job-1\\task1\\wd\\testFile.txt",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "recursive": false
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileDeleteFromTask.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileDeleteFromTask.json
new file mode 100644
index 000000000000..83cdc5d8a44d
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileDeleteFromTask.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "taskId": "task1",
+ "filePath": "wd\\testFile.txt",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "recursive": false
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileGetFromNode.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileGetFromNode.json
new file mode 100644
index 000000000000..5c8caab50236
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileGetFromNode.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "nodeId": "nodeId",
+ "filePath": "workitems\\jobId\\job-1\\task1\\wd\\testFile.txt",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "ocp-creation-time": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "Last-Modified": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "ocp-batch-file-isdirectory": "false",
+ "Content-Length": "17",
+ "Content-Type": "application/octet-stream",
+ "body": "This is actually a byte stream. This request/response is being presented as a string for readability in the example"
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileGetFromTask.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileGetFromTask.json
new file mode 100644
index 000000000000..d91097ed9b81
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileGetFromTask.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "taskId": "task1",
+ "filePath": "wd\\testFile.txt",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "ocp-creation-time": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "Last-Modified": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "ocp-batch-file-isdirectory": "false",
+ "Content-Length": "17",
+ "Content-Type": "application/octet-stream",
+ "body": "This is actually a byte stream. This request/response is being presented as a string for readability in the example"
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileGetPropertiesFromNode.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileGetPropertiesFromNode.json
new file mode 100644
index 000000000000..4018bb01a152
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileGetPropertiesFromNode.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "nodeId": "nodeId",
+ "filePath": "workitems\\jobId\\job-1\\task1\\wd\\testFile.txt",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "ocp-creation-time": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "Last-Modified": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "ocp-batch-file-isdirectory": "false",
+ "Content-Length": "17",
+ "Content-Type": "application/octet-stream"
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileGetPropertiesFromTask.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileGetPropertiesFromTask.json
new file mode 100644
index 000000000000..94a53b325051
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileGetPropertiesFromTask.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "taskId": "taskId",
+ "filePath": "wd\\testFile.txt",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "ocp-creation-time": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "Last-Modified": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "ocp-batch-file-isdirectory": "false",
+ "Content-Length": "17",
+ "Content-Type": "application/octet-stream"
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileListFromNode.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileListFromNode.json
new file mode 100644
index 000000000000..4f7a05445642
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileListFromNode.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "nodeId": "tvm-1695681911_1-20161122t193202z",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "recursive": false
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "shared",
+ "url": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2167304207_2-20140919t215614z/files/shared",
+ "isDirectory": true
+ },
+ {
+ "name": "startup\\ProcessEnv.cmd",
+ "url": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2167304207_2-20140919t215614z/files/startup\\ProcessEnv.cmd",
+ "isDirectory": false,
+ "properties": {
+ "creationTime": "2014-09-19T21:56:17.679195Z",
+ "lastModified": "2014-09-19T21:56:17.679195Z",
+ "contentLength": 1813,
+ "contentType": "application/octet-stream"
+ }
+ },
+ {
+ "name": "startup\\stderr.txt",
+ "url": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2167304207_2-20140919t215614z/files/startup\\stderr.txt",
+ "isDirectory": false,
+ "properties": {
+ "creationTime": "2014-09-19T21:56:17.5590855Z",
+ "lastModified": "2014-09-19T21:56:17.5590855Z",
+ "contentLength": 0,
+ "contentType": "application/octet-stream"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileListFromTask.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileListFromTask.json
new file mode 100644
index 000000000000..641cb5c09b2c
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/FileListFromTask.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "taskId": "taskId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "recursive": false
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "startup\\ProcessEnv.cmd",
+ "url": "https://account.region.batch.azure.com/jobs/jobId/tasks/taskId/files/startup\\ProcessEnv.cmd",
+ "isDirectory": false,
+ "properties": {
+ "creationTime": "2014-09-19T21:56:17.679195Z",
+ "lastModified": "2014-09-19T21:56:17.679195Z",
+ "contentLength": 1813,
+ "contentType": "application/octet-stream"
+ }
+ },
+ {
+ "name": "startup\\stderr.txt",
+ "url": "https://account.region.batch.azure.com/jobs/jobId/tasks/taskId/files/startup\\stderr.txt",
+ "isDirectory": false,
+ "properties": {
+ "creationTime": "2014-09-19T21:56:17.5590855Z",
+ "lastModified": "2014-09-19T21:56:17.5590855Z",
+ "contentLength": 0,
+ "contentType": "application/octet-stream"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobAdd_Basic.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobAdd_Basic.json
new file mode 100644
index 000000000000..bb1e4709ff40
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobAdd_Basic.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "job": {
+ "id": "jobId",
+ "priority": 0,
+ "poolInfo": {
+ "poolId": "poolId"
+ }
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobAdd_Complex.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobAdd_Complex.json
new file mode 100644
index 000000000000..dd0de6b2d6a7
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobAdd_Complex.json
@@ -0,0 +1,121 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "job": {
+ "id": "jobId",
+ "priority": 100,
+ "constraints": {
+ "maxWallClockTime": "PT1H",
+ "maxTaskRetryCount": -1
+ },
+ "jobManagerTask": {
+ "id": "taskId",
+ "commandLine": "myprogram.exe",
+ "resourceFiles": [
+ {
+ "httpUrl": "http://mystorage1.blob.core.windows.net/scripts/myprogram.exe?sas",
+ "filePath": "myprogram.exe"
+ },
+ {
+ "storageContainerUrl": "http://mystorage1.blob.core.windows.net/data?sas",
+ "filePath": "datafolder"
+ }
+ ],
+ "environmentSettings": [
+ {
+ "name": "myvariable",
+ "value": "myvalue"
+ }
+ ],
+ "constraints": {
+ "maxWallClockTime": "PT1H",
+ "maxTaskRetryCount": 0,
+ "retentionTime": "PT1H"
+ },
+ "requiredSlots": 2,
+ "killJobOnCompletion": false,
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "admin"
+ }
+ },
+ "runExclusive": true
+ },
+ "poolInfo": {
+ "autoPoolSpecification": {
+ "autoPoolIdPrefix": "mypool",
+ "poolLifetimeOption": "job",
+ "pool": {
+ "vmSize": "small",
+ "cloudServiceConfiguration": {
+ "osFamily": "4",
+ "osVersion": "*"
+ },
+ "resizeTimeout": "PT15M",
+ "targetDedicatedNodes": 3,
+ "targetLowPriorityNodes": 0,
+ "taskSlotsPerNode": 2,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "spread"
+ },
+ "enableAutoScale": false,
+ "enableInterNodeCommunication": true,
+ "startTask": {
+ "commandLine": "myprogram2.exe",
+ "resourceFiles": [
+ {
+ "httpUrl": "http://mystorage1.blob.core.windows.net/scripts/myprogram2.exe?sas",
+ "filePath": "myprogram2.exe"
+ }
+ ],
+ "environmentSettings": [
+ {
+ "name": "myvariable",
+ "value": "myvalue"
+ }
+ ],
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "admin"
+ }
+ },
+ "maxTaskRetryCount": 2,
+ "waitForSuccess": true
+ },
+ "certificateReferences": [
+ {
+ "thumbprint": "0123456789abcdef0123456789abcdef01234567",
+ "thumbprintAlgorithm": "sha1",
+ "storeLocation": "localmachine",
+ "storeName": "Root",
+ "visibility": [
+ "task"
+ ]
+ }
+ ],
+ "metadata": [
+ {
+ "name": "myproperty",
+ "value": "myvalue"
+ }
+ ]
+ }
+ }
+ },
+ "metadata": [
+ {
+ "name": "myproperty",
+ "value": "myvalue"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobDelete.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobDelete.json
new file mode 100644
index 000000000000..3b296a3c42c6
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobDisable.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobDisable.json
new file mode 100644
index 000000000000..76e59fa0de45
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobDisable.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "jobDisableParameter": {
+ "disableTasks": "terminate"
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobEnable.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobEnable.json
new file mode 100644
index 000000000000..3b296a3c42c6
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobEnable.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobGet.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobGet.json
new file mode 100644
index 000000000000..b27d2338b3f9
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobGet.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "jobId",
+ "url": "https://account.region.batch.azure.com/jobs/jobId",
+ "eTag": "0x8D4100FC49F0278",
+ "lastModified": "2016-11-19T00:05:27.5391608Z",
+ "creationTime": "2016-11-19T00:05:25.311915Z",
+ "state": "completed",
+ "stateTransitionTime": "2016-11-19T00:05:27.578581Z",
+ "previousState": "active",
+ "previousStateTransitionTime": "2016-11-19T00:05:27.2137716Z",
+ "priority": 0,
+ "usesTaskDependencies": false,
+ "constraints": {
+ "maxWallClockTime": "P10675199DT2H48M5.4775807S",
+ "maxTaskRetryCount": 0
+ },
+ "poolInfo": {
+ "poolId": "poolId"
+ },
+ "executionInfo": {
+ "startTime": "2016-11-19T00:05:25.3309105Z",
+ "endTime": "2016-11-19T00:05:27.578581Z",
+ "poolId": "poolId",
+ "terminateReason": "UserTerminate"
+ },
+ "onAllTasksComplete": "noaction",
+ "onTaskFailure": "noaction"
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobGetLifetimeStatistics.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobGetLifetimeStatistics.json
new file mode 100644
index 000000000000..906a39988de6
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobGetLifetimeStatistics.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "url": "https://account.region.batch.core.windows.net/lifetimejobstats",
+ "startTime": "2014-08-01T18:30:00.4345729Z",
+ "lastUpdateTime": "2014-08-04T18:30:00.4345729Z",
+ "userCPUTime": "PT0S",
+ "kernelCPUTime": "PT0S",
+ "wallClockTime": "PT0S",
+ "readIOps": 0,
+ "writeIOps": 0,
+ "readIOGiB": 10.0,
+ "writeIOGiB": 5.0,
+ "numSucceededTasks": 0,
+ "numFailedTasks": 0,
+ "numTaskRetries": 0,
+ "waitTime": "PT0S"
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobGetTaskCounts.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobGetTaskCounts.json
new file mode 100644
index 000000000000..2a4691f25abb
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobGetTaskCounts.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "taskCounts": {
+ "active": 5,
+ "running": 7,
+ "completed": 4,
+ "succeeded": 2,
+ "failed": 2
+ },
+ "taskSlotCounts": {
+ "active": 5,
+ "running": 7,
+ "completed": 4,
+ "succeeded": 2,
+ "failed": 2
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobList.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobList.json
new file mode 100644
index 000000000000..43990e520346
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobList.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "jobId",
+ "url": "https://account.region.batch.azure.com/jobs/jobId",
+ "eTag": "0x8D4100FC46D5BF4",
+ "lastModified": "2016-11-19T00:05:27.2137716Z",
+ "creationTime": "2016-11-19T00:05:25.311915Z",
+ "state": "active",
+ "stateTransitionTime": "2016-11-19T00:05:27.2137716Z",
+ "previousState": "disabled",
+ "previousStateTransitionTime": "2016-11-19T00:05:26.88777Z",
+ "priority": 0,
+ "usesTaskDependencies": false,
+ "constraints": {
+ "maxWallClockTime": "P10675199DT2H48M5.4775807S",
+ "maxTaskRetryCount": 0
+ },
+ "poolInfo": {
+ "poolId": "poolId"
+ },
+ "executionInfo": {
+ "startTime": "2016-11-19T00:05:25.3309105Z",
+ "poolId": "poolId"
+ },
+ "onAllTasksComplete": "noaction",
+ "onTaskFailure": "noaction"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobListFromJobSchedule.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobListFromJobSchedule.json
new file mode 100644
index 000000000000..67c7d3b4a2ea
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobListFromJobSchedule.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobScheduleId": "jobScheduleId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "jobId",
+ "url": "https://account.region.batch.azure.com/jobs/jobId",
+ "eTag": "0x8D4100FC46D5BF4",
+ "lastModified": "2016-11-19T00:05:27.2137716Z",
+ "creationTime": "2016-11-19T00:05:25.311915Z",
+ "state": "active",
+ "stateTransitionTime": "2016-11-19T00:05:27.2137716Z",
+ "previousState": "disabled",
+ "previousStateTransitionTime": "2016-11-19T00:05:26.88777Z",
+ "priority": 0,
+ "usesTaskDependencies": false,
+ "constraints": {
+ "maxWallClockTime": "P10675199DT2H48M5.4775807S",
+ "maxTaskRetryCount": 0
+ },
+ "poolInfo": {
+ "poolId": "poolId"
+ },
+ "executionInfo": {
+ "startTime": "2016-11-19T00:05:25.3309105Z",
+ "poolId": "poolId"
+ },
+ "onAllTasksComplete": "noaction",
+ "onTaskFailure": "noaction"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobListPreparationAndReleaseTaskStatus.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobListPreparationAndReleaseTaskStatus.json
new file mode 100644
index 000000000000..396b2e4581f1
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobListPreparationAndReleaseTaskStatus.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "poolId": "poolId",
+ "nodeId": "tvm-2167304207_1-20140905t174658z",
+ "nodeUrl": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2167304207_1-20140905t174658z",
+ "jobPreparationTaskExecutionInfo": {
+ "state": "completed",
+ "startTime": "2015-05-01T10:20:31Z",
+ "endTime": "2015-05-02T20:12:42Z",
+ "taskRootDirectory": "tasks/myjob/job-1/myjobpreptask",
+ "taskRootDirectoryUrl": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2167304207_1-20140905t174658z/files/tasks/myjob/job-1/myjobpreptask",
+ "exitCode": 0,
+ "retryCount": 0
+ },
+ "jobReleaseTaskExecutionInfo": {
+ "state": "completed",
+ "startTime": "2015-05-01T10:20:31Z",
+ "endTime": "2015-05-02T20:12:42Z",
+ "taskRootDirectory": "tasks/myjob/job-1/myjobreleasetask",
+ "taskRootDirectoryUrl": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2167304207_1-20140905t174658z/files/tasks/myjob/job-1/myjobreleasetask",
+ "exitCode": 0
+ }
+ }
+ ],
+ "odata.nextLink": "https://account.region.batch.azure.com/jobs/myjob/jobpreparationandreleasestatus?$skipToken=tvm-2167304207_1-20140905t174658z&api-version=2020-09-01.12.0"
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobPatch.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobPatch.json
new file mode 100644
index 000000000000..2e28d3734615
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobPatch.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "jobPatchParameter": {
+ "priority": 100,
+ "constraints": {
+ "maxWallClockTime": "PT1H",
+ "maxTaskRetryCount": -1
+ },
+ "poolInfo": {
+ "poolId": "poolId"
+ }
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleAdd_Basic.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleAdd_Basic.json
new file mode 100644
index 000000000000..8cef6bca6462
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleAdd_Basic.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "cloudJobSchedule": {
+ "id": "jobScheduleId",
+ "schedule": {
+ "recurrenceInterval": "PT5M"
+ },
+ "jobSpecification": {
+ "poolInfo": {
+ "poolId": "poolId"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleAdd_Complex.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleAdd_Complex.json
new file mode 100644
index 000000000000..3a0ab999490a
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleAdd_Complex.json
@@ -0,0 +1,129 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "cloudJobSchedule": {
+ "id": "jobScheduleId",
+ "schedule": {
+ "doNotRunUntil": "2014-09-10T02:30:00.000Z",
+ "doNotRunAfter": "2014-09-10T06:30:00.000Z",
+ "startWindow": "PT1M",
+ "recurrenceInterval": "PT5M"
+ },
+ "jobSpecification": {
+ "priority": 100,
+ "constraints": {
+ "maxWallClockTime": "PT1H",
+ "maxTaskRetryCount": -1
+ },
+ "jobManagerTask": {
+ "id": "mytask1",
+ "commandLine": "myprogram.exe",
+ "resourceFiles": [
+ {
+ "httpUrl": "http://mystorage1.blob.core.windows.net/scripts/myprogram.exe?sas",
+ "filePath": "myprogram.exe"
+ },
+ {
+ "httpUrl": "http://mystorage1.blob.core.windows.net/scripts/test.txt?sas",
+ "filePath": "test.txt"
+ }
+ ],
+ "environmentSettings": [
+ {
+ "name": "myvariable",
+ "value": "myvalue"
+ }
+ ],
+ "constraints": {
+ "maxWallClockTime": "PT1H",
+ "maxTaskRetryCount": 0,
+ "retentionTime": "PT1H"
+ },
+ "requiredSlots": 2,
+ "killJobOnCompletion": true,
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "nonadmin"
+ }
+ },
+ "runExclusive": true
+ },
+ "poolInfo": {
+ "autoPoolSpecification": {
+ "autoPoolIdPrefix": "mypool",
+ "poolLifetimeOption": "jobschedule",
+ "pool": {
+ "vmSize": "small",
+ "cloudServiceConfiguration": {
+ "osFamily": "4",
+ "osVersion": "*"
+ },
+ "resizeTimeout": "PT15M",
+ "targetDedicatedNodes": 3,
+ "targetLowPriorityNodes": 0,
+ "taskSlotsPerNode": 2,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "spread"
+ },
+ "enableAutoScale": false,
+ "enableInterNodeCommunication": true,
+ "startTask": {
+ "commandLine": "myprogram2.exe",
+ "resourceFiles": [
+ {
+ "httpUrl": "http://mystorage1.blob.core.windows.net/scripts/myprogram2.exe?sas",
+ "filePath": "myprogram2.exe"
+ }
+ ],
+ "environmentSettings": [
+ {
+ "name": "myvariable",
+ "value": "myvalue"
+ }
+ ],
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "admin"
+ }
+ },
+ "maxTaskRetryCount": 2,
+ "waitForSuccess": true
+ },
+ "certificateReferences": [
+ {
+ "thumbprint": "0123456789abcdef0123456789abcdef01234567",
+ "thumbprintAlgorithm": "sha1",
+ "storeLocation": "localmachine",
+ "storeName": "Root",
+ "visibility": [
+ "task"
+ ]
+ }
+ ],
+ "metadata": [
+ {
+ "name": "myproperty",
+ "value": "myvalue"
+ }
+ ]
+ }
+ }
+ }
+ },
+ "metadata": [
+ {
+ "name": "myproperty",
+ "value": "myvalue"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleDelete.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleDelete.json
new file mode 100644
index 000000000000..14e0811ce888
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobScheduleId": "jobScheduleId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleDisable.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleDisable.json
new file mode 100644
index 000000000000..287b1c271025
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleDisable.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobScheduleId": "jobScheduleId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleEnable.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleEnable.json
new file mode 100644
index 000000000000..287b1c271025
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleEnable.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobScheduleId": "jobScheduleId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleExists.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleExists.json
new file mode 100644
index 000000000000..93bcdd818777
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleExists.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobScheduleId": "jobScheduleId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {},
+ "404": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleGet.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleGet.json
new file mode 100644
index 000000000000..b169b3bef501
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleGet.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobScheduleId": "jobScheduleId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "jobScheduleId",
+ "url": "https://account.region.batch.azure.com/jobschedules/jobScheduleId",
+ "eTag": "0x8D40FFD2E848323",
+ "lastModified": "2016-11-18T21:52:24.7661347Z",
+ "creationTime": "2016-11-18T21:52:22.5431125Z",
+ "state": "completed",
+ "stateTransitionTime": "2016-11-18T21:52:24.8371778Z",
+ "previousState": "active",
+ "previousStateTransitionTime": "2016-11-18T21:52:24.0064874Z",
+ "jobSpecification": {
+ "priority": 0,
+ "usesTaskDependencies": false,
+ "onAllTasksComplete": "noaction",
+ "onTaskFailure": "noaction",
+ "constraints": {
+ "maxWallClockTime": "P10675199DT2H48M5.4775807S",
+ "maxTaskRetryCount": 0
+ },
+ "poolInfo": {
+ "poolId": "testPool"
+ }
+ },
+ "executionInfo": {
+ "recentJob": {
+ "url": "https://account.region.batch.azure.com/jobschedules/jobScheduleId:job-1",
+ "id": "jobScheduleId:job-1"
+ },
+ "endTime": "2016-11-18T21:52:24.8371778Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleList.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleList.json
new file mode 100644
index 000000000000..6cd0731819cc
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleList.json
@@ -0,0 +1,74 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "jobSchedule1",
+ "url": "https://account.region.batch.azure.com/jobschedules/jobSchedule1",
+ "eTag": "0x8D40FFD2E10996A",
+ "lastModified": "2016-11-18T21:52:24.0064874Z",
+ "creationTime": "2016-11-18T21:52:22.5431125Z",
+ "state": "active",
+ "stateTransitionTime": "2016-11-18T21:52:24.0064874Z",
+ "previousState": "disabled",
+ "previousStateTransitionTime": "2016-11-18T21:52:23.6471782Z",
+ "jobSpecification": {
+ "priority": 0,
+ "usesTaskDependencies": false,
+ "onAllTasksComplete": "noaction",
+ "onTaskFailure": "noaction",
+ "constraints": {
+ "maxWallClockTime": "P10675199DT2H48M5.4775807S",
+ "maxTaskRetryCount": 0
+ },
+ "poolInfo": {
+ "poolId": "poolId"
+ }
+ },
+ "executionInfo": {
+ "recentJob": {
+ "url": "https://account.region.batch.azure.com/jobs/jobSchedule1:job-1",
+ "id": "jobSchedule1:job-1"
+ }
+ }
+ },
+ {
+ "id": "jobSchedule2",
+ "url": "https://account.region.batch.azure.com/jobschedules/jobSchedule2",
+ "eTag": "0x8D40FFCFF760B51",
+ "lastModified": "2016-11-18T21:51:05.8184017Z",
+ "creationTime": "2016-11-18T21:51:05.8184017Z",
+ "state": "active",
+ "stateTransitionTime": "2016-11-18T21:51:05.8184017Z",
+ "schedule": {
+ "doNotRunUntil": "2020-01-01T12:30:00Z"
+ },
+ "jobSpecification": {
+ "priority": 0,
+ "usesTaskDependencies": false,
+ "onAllTasksComplete": "noaction",
+ "onTaskFailure": "noaction",
+ "constraints": {
+ "maxWallClockTime": "P10675199DT2H48M5.4775807S",
+ "maxTaskRetryCount": 0
+ },
+ "poolInfo": {
+ "poolId": "testPool2"
+ }
+ },
+ "executionInfo": {
+ "nextRunTime": "2020-01-01T12:30:00Z"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobSchedulePatch.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobSchedulePatch.json
new file mode 100644
index 000000000000..81a5508137af
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobSchedulePatch.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobScheduleId": "jobScheduleId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "jobSchedulePatchParameter": {
+ "schedule": {
+ "doNotRunUntil": "2025-01-01T12:30:00Z"
+ },
+ "jobSpecification": {
+ "priority": 0,
+ "usesTaskDependencies": false,
+ "constraints": {
+ "maxWallClockTime": "P10675199DT2H48M5.4775807S",
+ "maxTaskRetryCount": 0
+ },
+ "poolInfo": {
+ "poolId": "poolId"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleTerminate.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleTerminate.json
new file mode 100644
index 000000000000..14e0811ce888
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleTerminate.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobScheduleId": "jobScheduleId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleUpdate.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleUpdate.json
new file mode 100644
index 000000000000..f87cd8150731
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobScheduleUpdate.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobScheduleId": "jobScheduleId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "jobScheduleUpdateParameter": {
+ "schedule": {
+ "doNotRunUntil": "2025-01-01T12:30:00Z"
+ },
+ "jobSpecification": {
+ "priority": 0,
+ "usesTaskDependencies": false,
+ "constraints": {
+ "maxWallClockTime": "P10675199DT2H48M5.4775807S",
+ "maxTaskRetryCount": 0
+ },
+ "poolInfo": {
+ "poolId": "poolId"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobTerminate.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobTerminate.json
new file mode 100644
index 000000000000..57f565f320b1
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobTerminate.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "jobTerminateParameter": {
+ "terminateReason": "User supplied termination reason"
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobUpdate.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobUpdate.json
new file mode 100644
index 000000000000..4719db878b12
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/JobUpdate.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "jobUpdateParameter": {
+ "priority": 100,
+ "constraints": {
+ "maxWallClockTime": "PT1H",
+ "maxTaskRetryCount": -1
+ },
+ "poolInfo": {
+ "poolId": "poolId"
+ }
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeAddUser.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeAddUser.json
new file mode 100644
index 000000000000..a7ab64e40b13
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeAddUser.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "nodeId": "tvm-1695681911_1-20161121t182739z",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "user": {
+ "name": "userName",
+ "isAdmin": false,
+ "expiryTime": "2017-08-01T00:00:00Z",
+ "password": "Password"
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeDeleteUser.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeDeleteUser.json
new file mode 100644
index 000000000000..b0bee107d329
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeDeleteUser.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "nodeId": "tvm-1695681911_1-20161121t182739z",
+ "userName": "userName",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeDisableScheduling.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeDisableScheduling.json
new file mode 100644
index 000000000000..d079cb68ef08
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeDisableScheduling.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "nodeId": "tvm-1695681911_1-20161122t193202z",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "nodeDisableSchedulingParameter": {
+ "nodeDisableSchedulingOption": "terminate"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeEnableScheduling.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeEnableScheduling.json
new file mode 100644
index 000000000000..621b7944c0bd
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeEnableScheduling.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "nodeId": "tvm-1695681911_1-20161122t193202z",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeGetRemoteDesktop.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeGetRemoteDesktop.json
new file mode 100644
index 000000000000..e12b60648ab5
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeGetRemoteDesktop.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "nodeId": "tvm-1695681911_1-20161121t182739z",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": "This is actually a byte stream. This request/response is being presented as a string for readability in the example"
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeGetRemoteLoginSettings.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeGetRemoteLoginSettings.json
new file mode 100644
index 000000000000..5241f16fd45b
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeGetRemoteLoginSettings.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "nodeId": "tvm-1695681911_1-20161121t182739z",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "remoteLoginIPAddress": "1.1.1.1",
+ "remoteLoginPort": 50000
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeGet_Basic.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeGet_Basic.json
new file mode 100644
index 000000000000..d15497f19b9f
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeGet_Basic.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "poolId": "poolId",
+ "nodeId": "tvm-1695681911_2-20161122t193202z",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "tvm-1695681911_2-20161122t193202z",
+ "url": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-1695681911_2-20161122t193202z",
+ "state": "idle",
+ "schedulingState": "enabled",
+ "stateTransitionTime": "2016-11-22T19:37:31.4285526Z",
+ "lastBootTime": "2016-11-22T19:37:28.623369Z",
+ "allocationTime": "2016-11-22T19:32:02.8155319Z",
+ "ipAddress": "1.1.1.1",
+ "affinityId": "TVM:tvm-1695681911_2-20161122t193202z",
+ "vmSize": "small",
+ "totalTasksRun": 0,
+ "totalTasksSucceeded": 0,
+ "runningTasksCount": 0,
+ "isDedicated": true,
+ "startTask": {
+ "commandLine": "cmd /c echo hello",
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "nonadmin"
+ }
+ },
+ "maxTaskRetryCount": 0,
+ "waitForSuccess": false
+ },
+ "startTaskInfo": {
+ "state": "completed",
+ "startTime": "2016-11-22T19:37:31.4285526Z",
+ "endTime": "2016-11-22T19:37:31.838028Z",
+ "exitCode": 0,
+ "retryCount": 0
+ },
+ "nodeAgentInfo": {
+ "version": "1.2.0.0",
+ "lastUpdateTime": "2016-11-22T19:37:28.623369Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeList.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeList.json
new file mode 100644
index 000000000000..4b2668f99f15
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeList.json
@@ -0,0 +1,134 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "tvm-1695681911_1-20161122t193202z",
+ "url": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-1695681911_1-20161122t193202z",
+ "state": "idle",
+ "schedulingState": "enabled",
+ "stateTransitionTime": "2016-11-22T22:22:27.2236818Z",
+ "lastBootTime": "2016-11-22T22:22:24.4634125Z",
+ "allocationTime": "2016-11-22T19:32:02.8155319Z",
+ "ipAddress": "1.1.1.1",
+ "affinityId": "TVM:tvm-1695681911_1-20161122t193202z",
+ "vmSize": "small",
+ "totalTasksRun": 0,
+ "totalTasksSucceeded": 0,
+ "runningTasksCount": 0,
+ "runningTaskSlotsCount": 0,
+ "isDedicated": true,
+ "startTask": {
+ "commandLine": "cmd /c echo hello",
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "nonadmin"
+ }
+ },
+ "maxTaskRetryCount": 0,
+ "waitForSuccess": false
+ },
+ "startTaskInfo": {
+ "state": "completed",
+ "startTime": "2016-11-22T22:22:27.2236818Z",
+ "endTime": "2016-11-22T22:22:27.567189Z",
+ "exitCode": 0,
+ "retryCount": 0
+ },
+ "nodeAgentInfo": {
+ "version": "1.2.0.0",
+ "lastUpdateTime": "2016-11-22T22:22:24.4634125Z"
+ }
+ },
+ {
+ "id": "tvm-1695681911_2-20161122t193202z",
+ "url": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-1695681911_2-20161122t193202z",
+ "state": "idle",
+ "schedulingState": "enabled",
+ "stateTransitionTime": "2016-11-22T19:37:31.4285526Z",
+ "lastBootTime": "2016-11-22T19:37:28.623369Z",
+ "allocationTime": "2016-11-22T19:32:02.8155319Z",
+ "ipAddress": "1.1.1.1",
+ "affinityId": "TVM:tvm-1695681911_2-20161122t193202z",
+ "vmSize": "small",
+ "totalTasksRun": 0,
+ "totalTasksSucceeded": 0,
+ "runningTasksCount": 0,
+ "runningTaskSlotsCount": 0,
+ "isDedicated": true,
+ "startTask": {
+ "commandLine": "cmd /c echo hello",
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "nonadmin"
+ }
+ },
+ "maxTaskRetryCount": 0,
+ "waitForSuccess": false
+ },
+ "startTaskInfo": {
+ "state": "completed",
+ "startTime": "2016-11-22T19:37:31.4285526Z",
+ "endTime": "2016-11-22T19:37:31.838028Z",
+ "exitCode": 0,
+ "retryCount": 0
+ },
+ "nodeAgentInfo": {
+ "version": "1.2.0.0",
+ "lastUpdateTime": "2016-11-22T22:22:24.4634125Z"
+ }
+ },
+ {
+ "id": "tvm-1695681911_3-20161122t193202z",
+ "url": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-1695681911_3-20161122t193202z",
+ "state": "idle",
+ "schedulingState": "enabled",
+ "stateTransitionTime": "2016-11-22T19:36:51.0013378Z",
+ "lastBootTime": "2016-11-22T19:36:48.21721Z",
+ "allocationTime": "2016-11-22T19:32:02.8155319Z",
+ "ipAddress": "1.1.1.1",
+ "affinityId": "TVM:tvm-1695681911_3-20161122t193202z",
+ "vmSize": "small",
+ "totalTasksRun": 0,
+ "totalTasksSucceeded": 0,
+ "runningTasksCount": 0,
+ "runningTaskSlotsCount": 0,
+ "isDedicated": true,
+ "startTask": {
+ "commandLine": "cmd /c echo hello",
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "nonadmin"
+ }
+ },
+ "maxTaskRetryCount": 0,
+ "waitForSuccess": false
+ },
+ "startTaskInfo": {
+ "state": "completed",
+ "startTime": "2016-11-22T19:36:51.0013378Z",
+ "endTime": "2016-11-22T19:36:51.2363447Z",
+ "exitCode": 0,
+ "retryCount": 0
+ },
+ "nodeAgentInfo": {
+ "version": "1.2.0.0",
+ "lastUpdateTime": "2016-11-22T22:22:24.4634125Z"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeReboot.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeReboot.json
new file mode 100644
index 000000000000..964687451745
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeReboot.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "nodeId": "tvm-1695681911_1-20161122t193202z",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "nodeRebootParameter": {
+ "nodeRebootOption": "terminate"
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeReimage.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeReimage.json
new file mode 100644
index 000000000000..2afb95c328ca
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeReimage.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "nodeId": "tvm-1695681911_1-20161122t193202z",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "nodeReimageParameter": {
+ "nodeReimageOption": "terminate"
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeUpdateUser.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeUpdateUser.json
new file mode 100644
index 000000000000..c2e2a1e45e92
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeUpdateUser.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "nodeId": "tvm-1695681911_1-20161121t182739z",
+ "userName": "userName",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "nodeUpdateUserParameter": {
+ "password": "12345",
+ "expiryTime": "2016-11-27T00:45:48.7320857Z"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeUploadBatchServiceLogs.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeUploadBatchServiceLogs.json
new file mode 100644
index 000000000000..ac9bf2557395
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/NodeUploadBatchServiceLogs.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "nodeId": "tvm-1695681911_1-20161121t182739z",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "uploadBatchServiceLogsConfiguration": {
+ "containerUrl": "https://somestorageacct.blob.core.windows.net/batch-compute-node-logs?se=2017-12-09T18%3A51%3A00Z&sp=w&sv=2016-05-31&sr=c&sig",
+ "startTime": "2017-11-27T00:00:00Z"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "virtualDirectoryName": "poolId/tvm-1695681911-1-20161121t182739z/0795539d-82fe-48e3-bbff-2964905b6de0",
+ "numberOfFilesUploaded": 8
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolAdd_CloudServiceConfiguration.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolAdd_CloudServiceConfiguration.json
new file mode 100644
index 000000000000..fcb99e19c195
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolAdd_CloudServiceConfiguration.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "pool": {
+ "id": "poolId",
+ "vmSize": "small",
+ "cloudServiceConfiguration": {
+ "osFamily": "4"
+ },
+ "resizeTimeout": "PT15M",
+ "targetDedicatedNodes": 5,
+ "targetLowPriorityNodes": 0,
+ "taskSlotsPerNode": 3,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "spread"
+ },
+ "enableAutoScale": false,
+ "enableInterNodeCommunication": true,
+ "metadata": [
+ {
+ "name": "myproperty",
+ "value": "myvalue"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "201": {
+ "request-id": "00000000-0000-0000-0000-000000000000",
+ "ETag": "0x8D45765A6A2DC04",
+ "Last-Modified": "Fri, 17 Feb 2017 00:00:00 GMT"
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolAdd_MountConfiguration.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolAdd_MountConfiguration.json
new file mode 100644
index 000000000000..57f9c0f2f58c
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolAdd_MountConfiguration.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "pool": {
+ "id": "pool2",
+ "vmSize": "standard_a1",
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "publisher": "Canonical",
+ "offer": "UbuntuServer",
+ "sku": "16.04.0-LTS"
+ },
+ "nodeAgentSKUId": "batch.node.ubuntu 16.04"
+ },
+ "mountConfiguration": [
+ {
+ "azureBlobFileSystemConfiguration": {
+ "accountName": "accountName",
+ "containerName": "blobContainerName",
+ "accountKey": "accountKey",
+ "relativeMountPath": "bfusepath"
+ }
+ },
+ {
+ "azureFileShareConfiguration": {
+ "accountName": "accountName",
+ "azureFileUrl": "https://myaccount.file.core.windows.net/fileshare",
+ "accountKey": "accountKey",
+ "relativeMountPath": "filesharepath",
+ "mountOptions": "mount options ver=1.0"
+ }
+ },
+ {
+ "nfsMountConfiguration": {
+ "source": "somesource nfs url",
+ "relativeMountPath": "mountpath",
+ "mountOptions": "mount options ver=1.0"
+ }
+ },
+ {
+ "cifsMountConfiguration": {
+ "username": "accountName",
+ "password": "password",
+ "source": "//myaccount.file.core.windows.net/file",
+ "relativeMountPath": "mountpath",
+ "mountOptions": "mount options ver=1.0"
+ }
+ }
+ ],
+ "resizeTimeout": "PT15M",
+ "targetDedicatedNodes": 5,
+ "targetLowPriorityNodes": 0,
+ "taskSlotsPerNode": 3,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "spread"
+ },
+ "enableAutoScale": false
+ }
+ },
+ "responses": {
+ "201": {
+ "request-id": "00000000-0000-0000-0000-000000000000",
+ "ETag": "0x8D45765A6A2DC04",
+ "Last-Modified": "Fri, 17 Feb 2017 00:00:00 GMT"
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolAdd_VirtualMachineConfiguration.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolAdd_VirtualMachineConfiguration.json
new file mode 100644
index 000000000000..5bc7a4b886e0
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolAdd_VirtualMachineConfiguration.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "pool": {
+ "id": "pool2",
+ "vmSize": "standard_a1",
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "publisher": "Canonical",
+ "offer": "UbuntuServer",
+ "sku": "16.04.0-LTS"
+ },
+ "nodeAgentSKUId": "batch.node.ubuntu 16.04"
+ },
+ "resizeTimeout": "PT15M",
+ "targetDedicatedNodes": 5,
+ "targetLowPriorityNodes": 0,
+ "taskSlotsPerNode": 3,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "spread"
+ },
+ "enableAutoScale": false,
+ "enableInterNodeCommunication": true,
+ "metadata": [
+ {
+ "name": "myproperty",
+ "value": "myvalue"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "201": {
+ "request-id": "00000000-0000-0000-0000-000000000000",
+ "ETag": "0x8D45765A6A2DC04",
+ "Last-Modified": "Fri, 17 Feb 2017 00:00:00 GMT"
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolAdd_VirtualMachineConfigurationWithContainers.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolAdd_VirtualMachineConfigurationWithContainers.json
new file mode 100644
index 000000000000..88bca975c31f
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolAdd_VirtualMachineConfigurationWithContainers.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "pool": {
+ "id": "pool2",
+ "vmSize": "standard_a1",
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "publisher": "Canonical",
+ "offer": "UbuntuServer",
+ "sku": "16.04.0-LTS"
+ },
+ "nodeAgentSKUId": "batch.node.ubuntu 16.04",
+ "containerConfiguration": {
+ "type": "dockerCompatible",
+ "containerImageNames": [
+ "busybox"
+ ]
+ }
+ },
+ "resizeTimeout": "PT15M",
+ "targetDedicatedNodes": 5,
+ "targetLowPriorityNodes": 0,
+ "taskSlotsPerNode": 3,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "spread"
+ },
+ "enableAutoScale": false
+ }
+ },
+ "responses": {
+ "201": {
+ "request-id": "00000000-0000-0000-0000-000000000000",
+ "ETag": "0x8D45765A6A2DC04",
+ "Last-Modified": "Fri, 17 Feb 2017 00:00:00 GMT"
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolDelete.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolDelete.json
new file mode 100644
index 000000000000..ccc0b81b402e
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolDisableAutoScale.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolDisableAutoScale.json
new file mode 100644
index 000000000000..1114a1ce73e3
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolDisableAutoScale.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolEnableAutoscale.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolEnableAutoscale.json
new file mode 100644
index 000000000000..f9308dbcd95f
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolEnableAutoscale.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "poolEnableAutoScaleParameter": {
+ "autoScaleFormula": "$TargetDedicated=0",
+ "autoScaleEvaluationInterval": "PT8M"
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolEvaluateAutoscale.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolEvaluateAutoscale.json
new file mode 100644
index 000000000000..15e17c4821cd
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolEvaluateAutoscale.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "poolEvaluateAutoScaleParameter": {
+ "autoScaleFormula": "$TargetDedicated=1"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "timestamp": "2016-11-22T19:39:28.5246331Z",
+ "results": "$TargetDedicated=1;$NodeDeallocationOption=requeue"
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolExists.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolExists.json
new file mode 100644
index 000000000000..041fca2f0bff
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolExists.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {},
+ "404": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolGetLifetimeStatistics.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolGetLifetimeStatistics.json
new file mode 100644
index 000000000000..2f804d1809aa
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolGetLifetimeStatistics.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "url": "https://account.region.batch.core.windows.net/lifetimepoolstats",
+ "startTime": "2014-08-01T18:30:00.4345729Z",
+ "lastUpdateTime": "2014-08-04T18:30:00.4345729Z",
+ "usageStats": {
+ "startTime": "2014-08-01T18:30:00.4345729Z",
+ "lastUpdateTime": "2014-08-04T18:30:00.4345729Z",
+ "dedicatedCoreTime": "PT0S"
+ },
+ "resourceStats": {
+ "startTime": "2014-08-01T18:30:00.4345729Z",
+ "lastUpdateTime": "2014-08-04T18:30:00.4345729Z",
+ "avgCPUPercentage": 40.0,
+ "avgMemoryGiB": 2.0,
+ "peakMemoryGiB": 4.0,
+ "avgDiskGiB": 125.0,
+ "peakDiskGiB": 240.0,
+ "diskReadIOps": 0,
+ "diskWriteIOps": 0,
+ "diskReadGiB": 10.0,
+ "diskWriteGiB": 1.0,
+ "networkReadGiB": 20.0,
+ "networkWriteGiB": 25.0
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolGet_Basic.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolGet_Basic.json
new file mode 100644
index 000000000000..b397fd8c028e
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolGet_Basic.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "pool",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "pool",
+ "url": "https://account.region.batch.azure.com/pools/pool",
+ "eTag": "0x8D413091E739A56",
+ "lastModified": "2016-11-22T18:55:25.2608598Z",
+ "creationTime": "2016-11-22T18:55:24.2632496Z",
+ "state": "active",
+ "stateTransitionTime": "2016-11-22T18:55:24.2632496Z",
+ "allocationState": "steady",
+ "allocationStateTransitionTime": "2016-11-22T18:55:24.8154041Z",
+ "vmSize": "standard_a1",
+ "resizeTimeout": "PT15M",
+ "currentDedicatedNodes": 0,
+ "currentLowPriorityNodes": 0,
+ "targetDedicatedNodes": 0,
+ "targetLowPriorityNodes": 0,
+ "enableAutoScale": false,
+ "enableInterNodeCommunication": false,
+ "startTask": {
+ "commandLine": "/bin/bash -c 'echo start task'",
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "nonadmin"
+ }
+ },
+ "maxTaskRetryCount": 0,
+ "waitForSuccess": false
+ },
+ "taskSlotsPerNode": 1,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "spread"
+ },
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "publisher": "Canonical",
+ "offer": "UbuntuServer",
+ "sku": "16.04.0-LTS",
+ "version": "latest"
+ },
+ "nodeAgentSKUId": "batch.node.ubuntu 16.04"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolListUsageMetrics.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolListUsageMetrics.json
new file mode 100644
index 000000000000..64b854240086
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolListUsageMetrics.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "startTime": "2013-04-01T00:00:00Z",
+ "endTime": "2013-04-01T00:30:00Z",
+ "poolId": "p1",
+ "vmSize": "a1",
+ "totalCoreHours": 39.384838
+ },
+ {
+ "startTime": "2013-04-01T00:30:00Z",
+ "endTime": "2013-04-01T01:00:00Z",
+ "poolId": "p2",
+ "vmSize": "a8",
+ "totalCoreHours": 3039.384838
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolList_Basic.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolList_Basic.json
new file mode 100644
index 000000000000..9871ed2b00a9
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolList_Basic.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "testPool",
+ "url": "https://accountname.region.batch.azure.com/pools/testPool",
+ "eTag": "0x8D4123BEF87D233",
+ "lastModified": "2016-11-21T18:26:39.7108787Z",
+ "creationTime": "2016-11-21T18:26:39.7108787Z",
+ "state": "active",
+ "stateTransitionTime": "2016-11-21T18:26:39.7108787Z",
+ "allocationState": "steady",
+ "allocationStateTransitionTime": "2016-11-21T18:27:40.287803Z",
+ "vmSize": "small",
+ "resizeTimeout": "PT15M",
+ "currentDedicatedNodes": 3,
+ "currentLowPriorityNodes": 0,
+ "targetDedicatedNodes": 3,
+ "targetLowPriorityNodes": 0,
+ "enableAutoScale": false,
+ "enableInterNodeCommunication": false,
+ "startTask": {
+ "commandLine": "cmd /c echo hello",
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "nonadmin"
+ }
+ },
+ "maxTaskRetryCount": 0,
+ "waitForSuccess": false
+ },
+ "taskSlotsPerNode": 1,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "spread"
+ },
+ "cloudServiceConfiguration": {
+ "osFamily": "4",
+ "osVersion": "*"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolPatch.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolPatch.json
new file mode 100644
index 000000000000..b5f4a7e33be4
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolPatch.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "poolPatchParameter": {
+ "startTask": {
+ "commandLine": "/bin/bash -c 'echo start task'"
+ }
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolRemoveNodes.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolRemoveNodes.json
new file mode 100644
index 000000000000..ec5a7f4d40ed
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolRemoveNodes.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "nodeRemoveParameter": {
+ "nodeList": [
+ "tvm-1695681911_1-20161122t224741z",
+ "tvm-1695681911_2-20161122t224741z"
+ ]
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolResize.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolResize.json
new file mode 100644
index 000000000000..d6abe2d54922
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolResize.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "resizePool",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "poolResizeParameter": {
+ "targetDedicatedNodes": 1,
+ "targetLowPriorityNodes": 0
+ }
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolStopResize.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolStopResize.json
new file mode 100644
index 000000000000..ccc0b81b402e
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolStopResize.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "202": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolUpdate.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolUpdate.json
new file mode 100644
index 000000000000..4be088f9c864
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/PoolUpdate.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "poolId": "poolId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "poolUpdatePropertiesParameter": {
+ "startTask": {
+ "commandLine": "/bin/bash -c 'echo start task'"
+ },
+ "certificateReferences": [],
+ "applicationPackageReferences": [],
+ "metadata": []
+ }
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAddCollection_Basic.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAddCollection_Basic.json
new file mode 100644
index 000000000000..f6f783ad9dcc
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAddCollection_Basic.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "taskCollection": {
+ "value": [
+ {
+ "id": "simple1",
+ "commandLine": "cmd /c dir /s"
+ },
+ {
+ "id": "simple2",
+ "commandLine": "cmd /c dir /s"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "status": "success",
+ "taskId": "simple1",
+ "eTag": "0x8D3D623CD661246",
+ "lastModified": "2016-09-06T07:02:44.7589958Z",
+ "location": "https://account.region.batch.azure.com/jobs/jobId/tasks/simple1"
+ },
+ {
+ "status": "success",
+ "taskId": "simple2",
+ "eTag": "0x8D3D623CD7072CC",
+ "lastModified": "2016-09-06T07:02:44.8270028Z",
+ "location": "https://account.region.batch.azure.com/jobs/jobId/tasks/simple2"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAddCollection_Complex.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAddCollection_Complex.json
new file mode 100644
index 000000000000..5a30f66ebcc9
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAddCollection_Complex.json
@@ -0,0 +1,78 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "taskCollection": {
+ "value": [
+ {
+ "id": "complex1",
+ "commandLine": "cmd /c dir /s",
+ "resourceFiles": [
+ {
+ "autoStorageContainerName": "containerName",
+ "filePath": "data"
+ }
+ ],
+ "environmentSettings": [
+ {
+ "name": "env1",
+ "value": "value1"
+ },
+ {
+ "name": "env2",
+ "value": "value2"
+ }
+ ],
+ "affinityInfo": {
+ "affinityId": "affinityId"
+ },
+ "constraints": {
+ "maxWallClockTime": "P1D",
+ "retentionTime": "P2D",
+ "maxTaskRetryCount": 5
+ },
+ "requiredSlots": 2,
+ "multiInstanceSettings": {
+ "numberOfInstances": 3,
+ "coordinationCommandLine": "cmd /c echo coordinating",
+ "commonResourceFiles": [
+ {
+ "httpUrl": "https://common.blob.core.windows.net/",
+ "filePath": "common.exe"
+ }
+ ]
+ }
+ },
+ {
+ "id": "simple3",
+ "commandLine": "cmd /c dir /s"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "taskId": "simple3",
+ "status": "success",
+ "eTag": "0x8D3D623CE295629",
+ "lastModified": "2016-09-06T07:02:46.0386857Z",
+ "location": "https://account.region.batch.azure.com/jobs/jobId/tasks/simple3"
+ },
+ {
+ "taskId": "complex1",
+ "status": "success",
+ "eTag": "0x8D3D623CE29A412",
+ "lastModified": "2016-09-06T07:02:46.0406802Z",
+ "location": "https://account.region.batch.azure.com/jobs/jobId/tasks/complex1"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAdd_Basic.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAdd_Basic.json
new file mode 100644
index 000000000000..4f57f322e72d
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAdd_Basic.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "task": {
+ "id": "task1",
+ "commandLine": "cmd /c echo task1"
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAdd_ContainerSettings.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAdd_ContainerSettings.json
new file mode 100644
index 000000000000..53369b6c6967
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAdd_ContainerSettings.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "task": {
+ "id": "taskId",
+ "commandLine": "bash -c 'echo hello'",
+ "containerSettings": {
+ "imageName": "ubuntu",
+ "containerRunOptions": "--rm"
+ },
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "nonadmin"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAdd_ExitConditions.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAdd_ExitConditions.json
new file mode 100644
index 000000000000..254568f2be10
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAdd_ExitConditions.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "task": {
+ "id": "taskId",
+ "commandLine": "cmd /c exit 3",
+ "exitConditions": {
+ "exitCodeRanges": [
+ {
+ "start": 2,
+ "end": 4,
+ "exitOptions": {
+ "jobAction": "terminate"
+ }
+ }
+ ]
+ },
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "nonadmin"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAdd_RequiredSlots.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAdd_RequiredSlots.json
new file mode 100644
index 000000000000..927722fab1c5
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskAdd_RequiredSlots.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "task": {
+ "id": "task1",
+ "requiredSlots": 2,
+ "commandLine": "cmd /c echo task1"
+ }
+ },
+ "responses": {
+ "201": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskDelete.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskDelete.json
new file mode 100644
index 000000000000..e3bcdf4f63b6
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "taskId": "taskId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskGet.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskGet.json
new file mode 100644
index 000000000000..eb32de875da8
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskGet.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "taskId": "taskId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "testTask",
+ "url": "https://account.region.batch.azure.com/jobs/jobId/tasks/taskId",
+ "eTag": "0x8D3D62350711C55",
+ "creationTime": "2016-09-06T06:59:15.1161429Z",
+ "lastModified": "2016-09-06T06:59:15.1161429Z",
+ "state": "active",
+ "stateTransitionTime": "2016-09-06T06:59:15.1161429Z",
+ "commandLine": "cmd /c hostname",
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "nonadmin"
+ }
+ },
+ "multiInstanceSettings": {
+ "numberOfInstances": 3,
+ "coordinationCommandLine": "cmd /c echo coordinating"
+ },
+ "constraints": {
+ "maxWallClockTime": "P10675199DT2H48M5.4775807S",
+ "retentionTime": "P10675199DT2H48M5.4775807S",
+ "maxTaskRetryCount": 0
+ },
+ "requiredSlots": 2,
+ "executionInfo": {
+ "retryCount": 0,
+ "requeueCount": 0
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskList.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskList.json
new file mode 100644
index 000000000000..520c4a707c8f
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskList.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "task1",
+ "url": "https://account.region.batch.azure.com/jobs/jobId/tasks/task1",
+ "eTag": "0x8D4125FD1A825A4",
+ "creationTime": "2016-11-21T22:43:31.4733476Z",
+ "lastModified": "2016-11-21T22:43:31.4733476Z",
+ "state": "active",
+ "stateTransitionTime": "2016-11-21T22:43:31.4733476Z",
+ "commandLine": "cmd /c echo task1",
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "nonadmin"
+ }
+ },
+ "constraints": {
+ "maxWallClockTime": "P10675199DT2H48M5.4775807S",
+ "retentionTime": "P10675199DT2H48M5.4775807S",
+ "maxTaskRetryCount": 0
+ },
+ "requiredSlots": 2,
+ "executionInfo": {
+ "retryCount": 0,
+ "requeueCount": 0
+ }
+ },
+ {
+ "id": "task2",
+ "url": "https://account.region.batch.azure.com/jobs/jobId/tasks/task2",
+ "eTag": "0x8D4125FD2153345",
+ "creationTime": "2016-11-21T22:43:31.6736345Z",
+ "lastModified": "2016-11-21T22:43:32.1880389Z",
+ "state": "active",
+ "stateTransitionTime": "2016-11-21T22:43:31.6736345Z",
+ "commandLine": "cmd /c echo task2",
+ "userIdentity": {
+ "autoUser": {
+ "scope": "task",
+ "elevationLevel": "nonadmin"
+ }
+ },
+ "constraints": {
+ "maxWallClockTime": "P10675199DT2H48M5.4775807S",
+ "retentionTime": "P10675199DT2H48M5.4775807S",
+ "maxTaskRetryCount": 3
+ },
+ "requiredSlots": 2,
+ "executionInfo": {
+ "retryCount": 0,
+ "requeueCount": 0
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskListSubtasks.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskListSubtasks.json
new file mode 100644
index 000000000000..e259e7461712
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskListSubtasks.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "taskId": "taskId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": 1,
+ "startTime": "2016-09-06T06:59:16.3139271Z",
+ "endTime": "2016-09-06T06:59:20.0242024Z",
+ "state": "completed",
+ "stateTransitionTime": "2016-09-06T06:59:20.0242024Z",
+ "previousState": "running",
+ "previousStateTransitionTime": "2016-09-06T06:59:16.3139271Z",
+ "exitCode": 0,
+ "nodeInfo": {
+ "affinityId": "TVM:tvm-2544493925_3-20160905t051718z",
+ "nodeUrl": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2544493925_3-20160905t051718z",
+ "poolId": "mpiPool",
+ "nodeId": "tvm-2544493925_3-20160905t051718z",
+ "taskRootDirectory": "\\workitems\\jobId\\job-1\\taskId\\1",
+ "taskRootDirectoryUrl": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2544493925_3-20160905t051718z/files//workitems/jobId/job-1/taskId/1"
+ }
+ },
+ {
+ "id": 2,
+ "startTime": "2016-09-06T06:59:16.9702844Z",
+ "state": "running",
+ "stateTransitionTime": "2016-09-06T06:59:16.9702844Z",
+ "nodeInfo": {
+ "affinityId": "TVM:tvm-2544493925_2-20160905t051718z",
+ "nodeUrl": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2544493925_2-20160905t051718z",
+ "poolId": "mpiPool",
+ "nodeId": "tvm-2544493925_2-20160905t051718z",
+ "taskRootDirectory": "\\workitems\\jobId\\job-1\\taskId\\2",
+ "taskRootDirectoryUrl": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2544493925_2-20160905t051718z/files//workitems/jobId/job-1/taskId/2"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskReactivate.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskReactivate.json
new file mode 100644
index 000000000000..22e0815189c1
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskReactivate.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "taskId": "taskId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskTerminate.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskTerminate.json
new file mode 100644
index 000000000000..22e0815189c1
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskTerminate.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "taskId": "taskId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskUpdate.json b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskUpdate.json
new file mode 100644
index 000000000000..f46819eb85f6
--- /dev/null
+++ b/specification/batch/data-plane/Microsoft.Batch/stable/2020-09-01.12.0/examples/TaskUpdate.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "batchUrl": "account.region.batch.azure.com",
+ "api-version": "2020-09-01.12.0",
+ "jobId": "jobId",
+ "taskId": "taskId",
+ "client-request-id": "00000000-0000-0000-0000-000000000000",
+ "ocp-date": "Fri, 17 Feb 2017 00:00:00 GMT",
+ "taskUpdateParameter": {
+ "constraints": {
+ "maxWallClockTime": "PT1H",
+ "maxTaskRetryCount": 3,
+ "retentionTime": "PT1H"
+ }
+ }
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/batch/data-plane/readme.go.md b/specification/batch/data-plane/readme.go.md
index 3f970038d20a..ce9f53e4369b 100644
--- a/specification/batch/data-plane/readme.go.md
+++ b/specification/batch/data-plane/readme.go.md
@@ -20,6 +20,16 @@ batch:
- tag: package-2019-06.9.0
- tag: package-2019-08.10.0
- tag: package-2020-03.11.0
+ - tag: package-2020-09.12.0
+```
+
+### Tag: package-2020-09.12.0 and go
+
+These settings apply only when `--tag=package-2020-09.12.0 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag)=='package-2020-09.12.0' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/2020-09-01.12.0/$(namespace)
```
### Tag: package-2020-03.11.0 and go
diff --git a/specification/batch/data-plane/readme.md b/specification/batch/data-plane/readme.md
index adfd75a18255..d3d4c786623f 100644
--- a/specification/batch/data-plane/readme.md
+++ b/specification/batch/data-plane/readme.md
@@ -26,7 +26,16 @@ These are the global settings for the Batch API.
``` yaml
openapi-type: data-plane
-tag: package-2020-03.11.0
+tag: package-2020-09.12.0
+```
+
+### Tag: package-2020-09.12.0
+
+These settings apply only when `--tag=package-2020-09.12.0` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-09.12.0'
+input-file:
+- Microsoft.Batch/stable/2020-09-01.12.0/BatchService.json
```
### Tag: package-2020-03.11.0
@@ -360,6 +369,7 @@ require: $(this-folder)/../../../profiles/readme.md
# all the input files across all versions
input-file:
+ - $(this-folder)/Microsoft.Batch/stable/2020-09-01.12.0/BatchService.json
- $(this-folder)/Microsoft.Batch/stable/2020-03-01.11.0/BatchService.json
- $(this-folder)/Microsoft.Batch/stable/2019-08-01.10.0/BatchService.json
- $(this-folder)/Microsoft.Batch/stable/2019-06-01.9.0/BatchService.json
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/BatchManagement.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/BatchManagement.json
new file mode 100644
index 000000000000..b17f00cf9811
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/BatchManagement.json
@@ -0,0 +1,5147 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "BatchManagement",
+ "version": "2020-09-01",
+ "x-ms-code-generation-settings": {
+ "name": "BatchManagementClient"
+ }
+ },
+ "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.Batch/batchAccounts/{accountName}": {
+ "put": {
+ "tags": [
+ "BatchAccount"
+ ],
+ "operationId": "BatchAccount_Create",
+ "x-ms-examples": {
+ "BatchAccountCreate_Default": {
+ "$ref": "./examples/BatchAccountCreate_Default.json"
+ },
+ "BatchAccountCreate_BYOS": {
+ "$ref": "./examples/BatchAccountCreate_BYOS.json"
+ },
+ "PrivateBatchAccountCreate": {
+ "$ref": "./examples/PrivateBatchAccountCreate.json"
+ },
+ "BatchAccountCreate_SystemAssignedIdentity": {
+ "$ref": "./examples/BatchAccountCreate_SystemAssignedIdentity.json"
+ }
+ },
+ "description": "Creates a new Batch account with the specified parameters. Existing accounts cannot be updated with this API and should instead be updated with the Update Batch Account API.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "accountName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-z0-9]+$",
+ "minLength": 3,
+ "maxLength": 24,
+ "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BatchAccountCreateParameters"
+ },
+ "description": "Additional parameters for account creation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the Batch account entity.",
+ "schema": {
+ "$ref": "#/definitions/BatchAccount"
+ }
+ },
+ "202": {
+ "description": "The operation will be completed asynchronously.",
+ "headers": {
+ "Location": {
+ "description": "The URL of the resource used to check the status of the asynchronous operation.",
+ "type": "string"
+ },
+ "Retry-After": {
+ "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that specifies the delay in seconds.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "BatchAccount"
+ ],
+ "operationId": "BatchAccount_Update",
+ "x-ms-examples": {
+ "BatchAccountUpdate": {
+ "$ref": "./examples/BatchAccountUpdate.json"
+ }
+ },
+ "description": "Updates the properties of an existing Batch account.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BatchAccountUpdateParameters"
+ },
+ "description": "Additional parameters for account update."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the Batch account entity.",
+ "schema": {
+ "$ref": "#/definitions/BatchAccount"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "BatchAccount"
+ ],
+ "operationId": "BatchAccount_Delete",
+ "x-ms-examples": {
+ "BatchAccountDelete": {
+ "$ref": "./examples/BatchAccountDelete.json"
+ }
+ },
+ "description": "Deletes the specified Batch account.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful."
+ },
+ "202": {
+ "description": "The operation will be completed asynchronously.",
+ "headers": {
+ "Location": {
+ "description": "The URL of the resource used to check the status of the asynchronous operation.",
+ "type": "string"
+ },
+ "Retry-After": {
+ "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that specifies the delay in seconds.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "204": {
+ "description": "NoContent -- account does not exist in the subscription."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "BatchAccount"
+ ],
+ "operationId": "BatchAccount_Get",
+ "x-ms-examples": {
+ "BatchAccountGet": {
+ "$ref": "./examples/BatchAccountGet.json"
+ },
+ "PrivateBatchAccountGet": {
+ "$ref": "./examples/PrivateBatchAccountGet.json"
+ }
+ },
+ "description": "Gets information about the specified Batch account.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the Batch account entity.",
+ "schema": {
+ "$ref": "#/definitions/BatchAccount"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/batchAccounts": {
+ "get": {
+ "tags": [
+ "BatchAccount"
+ ],
+ "operationId": "BatchAccount_List",
+ "x-ms-examples": {
+ "BatchAccountList": {
+ "$ref": "./examples/BatchAccountList.json"
+ }
+ },
+ "description": "Gets information about the Batch accounts associated with the subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains a list of Batch account entities associated with the subscription.",
+ "schema": {
+ "$ref": "#/definitions/BatchAccountListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts": {
+ "get": {
+ "tags": [
+ "BatchAccount"
+ ],
+ "operationId": "BatchAccount_ListByResourceGroup",
+ "x-ms-examples": {
+ "BatchAccountListByResourceGroup": {
+ "$ref": "./examples/BatchAccountListByResourceGroup.json"
+ }
+ },
+ "description": "Gets information about the Batch accounts associated with the specified resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains a list of Batch account entities associated with the resource group.",
+ "schema": {
+ "$ref": "#/definitions/BatchAccountListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/syncAutoStorageKeys": {
+ "post": {
+ "tags": [
+ "BatchAccount"
+ ],
+ "operationId": "BatchAccount_SynchronizeAutoStorageKeys",
+ "x-ms-examples": {
+ "BatchAccountSynchronizeAutoStorageKeys": {
+ "$ref": "./examples/BatchAccountSynchronizeAutoStorageKeys.json"
+ }
+ },
+ "description": "Synchronizes access keys for the auto-storage account configured for the specified Batch account.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "The operation was successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/regenerateKeys": {
+ "post": {
+ "tags": [
+ "BatchAccount"
+ ],
+ "operationId": "BatchAccount_RegenerateKey",
+ "x-ms-examples": {
+ "BatchAccountRegenerateKey": {
+ "$ref": "./examples/BatchAccountRegenerateKey.json"
+ }
+ },
+ "description": "Regenerates the specified account key for the Batch account.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BatchAccountRegenerateKeyParameters"
+ },
+ "description": "The type of key to regenerate."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the Batch account keys.",
+ "schema": {
+ "$ref": "#/definitions/BatchAccountKeys"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/listKeys": {
+ "post": {
+ "tags": [
+ "BatchAccount"
+ ],
+ "operationId": "BatchAccount_GetKeys",
+ "x-ms-examples": {
+ "BatchAccountGetKeys": {
+ "$ref": "./examples/BatchAccountGetKeys.json"
+ }
+ },
+ "summary": "Gets the account keys for the specified Batch account.",
+ "description": "This operation applies only to Batch accounts created with a poolAllocationMode of 'BatchService'. If the Batch account was created with a poolAllocationMode of 'UserSubscription', clients cannot use access to keys to authenticate, and must use Azure Active Directory instead. In this case, getting the keys will fail.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the keys of the Batch account.",
+ "schema": {
+ "$ref": "#/definitions/BatchAccountKeys"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions/{versionName}/activate": {
+ "post": {
+ "tags": [
+ "ApplicationPackage"
+ ],
+ "operationId": "ApplicationPackage_Activate",
+ "x-ms-examples": {
+ "ApplicationPackageActivate": {
+ "$ref": "./examples/ApplicationPackageActivate.json"
+ }
+ },
+ "description": "Activates the specified application package. This should be done after the `ApplicationPackage` was created and uploaded. This needs to be done before an `ApplicationPackage` can be used on Pools or Tasks.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ },
+ {
+ "$ref": "#/parameters/VersionNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ActivateApplicationPackageParameters"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the application package entity.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationPackage"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}": {
+ "put": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Application_Create",
+ "x-ms-examples": {
+ "ApplicationCreate": {
+ "$ref": "./examples/ApplicationCreate.json"
+ }
+ },
+ "description": "Adds an application to the specified Batch account.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/Application"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the application entity.",
+ "schema": {
+ "$ref": "#/definitions/Application"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Application_Delete",
+ "x-ms-examples": {
+ "ApplicationDelete": {
+ "$ref": "./examples/ApplicationDelete.json"
+ }
+ },
+ "description": "Deletes an application.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful."
+ },
+ "204": {
+ "description": "The operation was successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Application_Get",
+ "x-ms-examples": {
+ "ApplicationGet": {
+ "$ref": "./examples/ApplicationGet.json"
+ }
+ },
+ "description": "Gets information about the specified application.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the application entity.",
+ "schema": {
+ "$ref": "#/definitions/Application"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Application_Update",
+ "x-ms-examples": {
+ "ApplicationUpdate": {
+ "$ref": "./examples/ApplicationUpdate.json"
+ }
+ },
+ "description": "Updates settings for the specified application.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Application"
+ },
+ "description": "The parameters for the request."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the application entity.",
+ "schema": {
+ "$ref": "#/definitions/Application"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions/{versionName}": {
+ "put": {
+ "tags": [
+ "ApplicationPackage"
+ ],
+ "operationId": "ApplicationPackage_Create",
+ "x-ms-examples": {
+ "ApplicationPackageCreate": {
+ "$ref": "./examples/ApplicationPackageCreate.json"
+ }
+ },
+ "description": "Creates an application package record. The record contains the SAS where the package should be uploaded to. Once it is uploaded the `ApplicationPackage` needs to be activated using `ApplicationPackageActive` before it can be used.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ },
+ {
+ "$ref": "#/parameters/VersionNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/ApplicationPackage"
+ },
+ "description": "The parameters for the request."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the application package entity.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationPackage"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ApplicationPackage"
+ ],
+ "operationId": "ApplicationPackage_Delete",
+ "x-ms-examples": {
+ "ApplicationPackageDelete": {
+ "$ref": "./examples/ApplicationPackageDelete.json"
+ }
+ },
+ "description": "Deletes an application package record and its associated binary file.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ },
+ {
+ "$ref": "#/parameters/VersionNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful."
+ },
+ "204": {
+ "description": "The operation was successful."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ApplicationPackage"
+ ],
+ "operationId": "ApplicationPackage_Get",
+ "x-ms-examples": {
+ "ApplicationPackageGet": {
+ "$ref": "./examples/ApplicationPackageGet.json"
+ }
+ },
+ "description": "Gets information about the specified application package.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ },
+ {
+ "$ref": "#/parameters/VersionNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the application package entity.",
+ "schema": {
+ "$ref": "#/definitions/ApplicationPackage"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications": {
+ "get": {
+ "tags": [
+ "Application"
+ ],
+ "operationId": "Application_List",
+ "x-ms-examples": {
+ "ApplicationList": {
+ "$ref": "./examples/ApplicationList.json"
+ }
+ },
+ "description": "Lists all of the applications in the specified account.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains a list of the application entities associated with the specified account.",
+ "schema": {
+ "$ref": "#/definitions/ListApplicationsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions": {
+ "get": {
+ "tags": [
+ "ApplicationPackage"
+ ],
+ "operationId": "ApplicationPackage_List",
+ "x-ms-examples": {
+ "ApplicationList": {
+ "$ref": "./examples/ApplicationPackageList.json"
+ }
+ },
+ "description": "Lists all of the application packages in the specified application.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApplicationNameParameter"
+ },
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains a list of the application package entities associated with the specified application.",
+ "schema": {
+ "$ref": "#/definitions/ListApplicationPackagesResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/quotas": {
+ "get": {
+ "tags": [
+ "Location"
+ ],
+ "operationId": "Location_GetQuotas",
+ "x-ms-examples": {
+ "LocationGetQuotas": {
+ "$ref": "./examples/LocationGetQuotas.json"
+ }
+ },
+ "description": "Gets the Batch service quotas for the specified subscription at the given location.",
+ "parameters": [
+ {
+ "name": "locationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The region for which to retrieve Batch service quotas."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the Batch service quotas for the subscription in the specified location.",
+ "schema": {
+ "$ref": "#/definitions/BatchLocationQuota"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Batch/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "operationId": "Operations_List",
+ "description": "Lists available operations for the Microsoft.Batch 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}/providers/Microsoft.Batch/locations/{locationName}/checkNameAvailability": {
+ "post": {
+ "operationId": "Location_CheckNameAvailability",
+ "description": "Checks whether the Batch account name is available in the specified region.",
+ "x-ms-examples": {
+ "LocationCheckNameAvailability_Available": {
+ "$ref": "./examples/LocationCheckNameAvailability_Available.json"
+ },
+ "LocationCheckNameAvailability_AlreadyExists": {
+ "$ref": "./examples/LocationCheckNameAvailability_AlreadyExists.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "locationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The desired region for the name check."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CheckNameAvailabilityParameters"
+ },
+ "description": "Properties needed to check the availability of a name."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. Returns details about whether a Batch account name is available.",
+ "schema": {
+ "$ref": "#/definitions/CheckNameAvailabilityResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/certificates": {
+ "get": {
+ "tags": [
+ "Certificate"
+ ],
+ "operationId": "Certificate_ListByBatchAccount",
+ "description": "Lists all of the certificates in the specified account.",
+ "x-ms-examples": {
+ "ListCertificates": {
+ "$ref": "./examples/CertificateList.json"
+ },
+ "ListCertificates - Filter and Select": {
+ "$ref": "./examples/CertificateListWithFilter.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response."
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Comma separated list of properties that should be returned. e.g. \"properties/provisioningState\". Only top level properties under properties/ are valid for selection."
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData filter expression. Valid properties for filtering are \"properties/provisioningState\", \"properties/provisioningStateTransitionTime\", \"name\"."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains a list of certificates associated with the account.",
+ "schema": {
+ "$ref": "#/definitions/ListCertificatesResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/certificates/{certificateName}": {
+ "put": {
+ "tags": [
+ "Certificate"
+ ],
+ "operationId": "Certificate_Create",
+ "description": "Creates a new certificate inside the specified account.",
+ "x-ms-examples": {
+ "CreateCertificate - Minimal Pfx": {
+ "$ref": "./examples/CertificateCreate_Minimal.json"
+ },
+ "CreateCertificate - Minimal Cer": {
+ "$ref": "./examples/CertificateCreate_MinimalCer.json"
+ },
+ "CreateCertificate - Full": {
+ "$ref": "./examples/CertificateCreate_Full.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CertificateNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateCreateOrUpdateParameters"
+ },
+ "description": "Additional parameters for certificate creation."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "The entity state (ETag) version of the certificate to update. A value of \"*\" can be used to apply the operation only if the certificate already exists. If omitted, this operation will always be applied."
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "Set to '*' to allow a new certificate to be created, but to prevent updating an existing certificate. Other values will be ignored."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the certificate entity.",
+ "schema": {
+ "$ref": "#/definitions/Certificate"
+ },
+ "headers": {
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "Certificate"
+ ],
+ "operationId": "Certificate_Update",
+ "description": "Updates the properties of an existing certificate.",
+ "x-ms-examples": {
+ "UpdateCertificate": {
+ "$ref": "./examples/CertificateUpdate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CertificateNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateCreateOrUpdateParameters"
+ },
+ "description": "Certificate entity to update."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "The entity state (ETag) version of the certificate to update. This value can be omitted or set to \"*\" to apply the operation unconditionally."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the certificate entity.",
+ "schema": {
+ "$ref": "#/definitions/Certificate"
+ },
+ "headers": {
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Certificate"
+ ],
+ "operationId": "Certificate_Delete",
+ "description": "Deletes the specified certificate.",
+ "x-ms-examples": {
+ "CertificateDelete": {
+ "$ref": "./examples/CertificateDelete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CertificateNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful."
+ },
+ "204": {
+ "description": "The operation was successful."
+ },
+ "202": {
+ "description": "The operation will be completed asynchronously.",
+ "headers": {
+ "Location": {
+ "description": "The URL of the resource used to check the status of the asynchronous operation.",
+ "type": "string"
+ },
+ "Retry-After": {
+ "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that represents the seconds.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "Certificate"
+ ],
+ "operationId": "Certificate_Get",
+ "description": "Gets information about the specified certificate.",
+ "x-ms-examples": {
+ "Get Certificate": {
+ "$ref": "./examples/CertificateGet.json"
+ },
+ "Get Certificate with Deletion Error": {
+ "$ref": "./examples/CertificateGetWithDeletionError.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CertificateNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the certificate entity.",
+ "schema": {
+ "$ref": "#/definitions/Certificate"
+ },
+ "headers": {
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/certificates/{certificateName}/cancelDelete": {
+ "post": {
+ "tags": [
+ "Certificate"
+ ],
+ "operationId": "Certificate_CancelDeletion",
+ "summary": "Cancels a failed deletion of a certificate from the specified account.",
+ "description": "If you try to delete a certificate that is being used by a pool or compute node, the status of the certificate changes to deleteFailed. If you decide that you want to continue using the certificate, you can use this operation to set the status of the certificate back to active. If you intend to delete the certificate, you do not need to run this operation after the deletion failed. You must make sure that the certificate is not being used by any resources, and then you can try again to delete the certificate.",
+ "x-ms-examples": {
+ "CertificateCancelDeletion": {
+ "$ref": "./examples/CertificateCancelDeletion.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/CertificateNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the certificate entity.",
+ "schema": {
+ "$ref": "#/definitions/Certificate"
+ },
+ "headers": {
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "PrivateLinkResource"
+ ],
+ "operationId": "PrivateLinkResource_ListByBatchAccount",
+ "description": "Lists all of the private link resources in the specified account.",
+ "x-ms-examples": {
+ "ListPrivateLinkResource": {
+ "$ref": "./examples/PrivateLinkResourcesList.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains a list of private link resources associated with the account.",
+ "schema": {
+ "$ref": "#/definitions/ListPrivateLinkResourcesResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateLinkResources/{privateLinkResourceName}": {
+ "get": {
+ "tags": [
+ "PrivateLinkResource"
+ ],
+ "operationId": "PrivateLinkResource_Get",
+ "description": "Gets information about the specified private link resource.",
+ "x-ms-examples": {
+ "GetPrivateLinkResource": {
+ "$ref": "./examples/PrivateLinkResourceGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkResourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the private link resource.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnection"
+ ],
+ "operationId": "PrivateEndpointConnection_ListByBatchAccount",
+ "description": "Lists all of the private endpoint connections in the specified account.",
+ "x-ms-examples": {
+ "ListPrivateEndpointConnections": {
+ "$ref": "./examples/PrivateEndpointConnectionsList.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains a list of private link resources associated with the account.",
+ "schema": {
+ "$ref": "#/definitions/ListPrivateEndpointConnectionsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnection"
+ ],
+ "operationId": "PrivateEndpointConnection_Get",
+ "description": "Gets information about the specified private endpoint connection.",
+ "x-ms-examples": {
+ "GetPrivateEndpointConnection": {
+ "$ref": "./examples/PrivateEndpointConnectionGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateEndpointConnectionNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the private endpoint connection.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "PrivateEndpointConnection"
+ ],
+ "operationId": "PrivateEndpointConnection_Update",
+ "description": "Updates the properties of an existing private endpoint connection.",
+ "x-ms-examples": {
+ "UpdatePrivateEndpointConnection": {
+ "$ref": "./examples/PrivateEndpointConnectionUpdate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateEndpointConnectionNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "PrivateEndpointConnection properties that should be updated. Properties that are supplied will be updated, any property not supplied will be unchanged."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "The state (ETag) version of the private endpoint connection to update. This value can be omitted or set to \"*\" to apply the operation unconditionally."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the PrivateEndpointConnection.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "204": {
+ "description": "The operation was successful."
+ },
+ "202": {
+ "description": "The operation will be completed asynchronously.",
+ "headers": {
+ "Location": {
+ "description": "The URL of the resource used to check the status of the asynchronous operation.",
+ "type": "string"
+ },
+ "Retry-After": {
+ "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that represents the seconds.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "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.Batch/batchAccounts/{accountName}/pools": {
+ "get": {
+ "tags": [
+ "Pool"
+ ],
+ "operationId": "Pool_ListByBatchAccount",
+ "description": "Lists all of the pools in the specified account.",
+ "x-ms-examples": {
+ "ListPool": {
+ "$ref": "./examples/PoolList.json"
+ },
+ "ListPoolWithFilter": {
+ "$ref": "./examples/PoolListWithFilter.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "name": "maxresults",
+ "in": "query",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of items to return in the response."
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Comma separated list of properties that should be returned. e.g. \"properties/provisioningState\". Only top level properties under properties/ are valid for selection."
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "OData filter expression. Valid properties for filtering are:\n\n name\n properties/allocationState\n properties/allocationStateTransitionTime\n properties/creationTime\n properties/provisioningState\n properties/provisioningStateTransitionTime\n properties/lastModified\n properties/vmSize\n properties/interNodeCommunication\n properties/scaleSettings/autoScale\n properties/scaleSettings/fixedScale"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains a list of certificates associated with the account.",
+ "schema": {
+ "$ref": "#/definitions/ListPoolsResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName}": {
+ "put": {
+ "tags": [
+ "Pool"
+ ],
+ "operationId": "Pool_Create",
+ "description": "Creates a new pool inside the specified account.",
+ "x-ms-examples": {
+ "CreatePool - Minimal CloudServiceConfiguration": {
+ "$ref": "./examples/PoolCreate_MinimalCloudServiceConfiguration.json"
+ },
+ "CreatePool - Minimal VirtualMachineConfiguration": {
+ "$ref": "./examples/PoolCreate_MinimalVirtualMachineConfiguration.json"
+ },
+ "CreatePool - Full Example": {
+ "$ref": "./examples/PoolCreate_FullExample.json"
+ },
+ "CreatePool - Custom Image": {
+ "$ref": "./examples/PoolCreate_SharedImageGallery.json"
+ },
+ "CreatePool - Public IPs": {
+ "$ref": "./examples/PoolCreate_PublicIPs.json"
+ },
+ "CreatePool - Full VirtualMachineConfiguration": {
+ "$ref": "./examples/PoolCreate_VirtualMachineConfiguration.json"
+ },
+ "CreatePool - No public IP": {
+ "$ref": "./examples/PoolCreate_NoPublicIPAddresses.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PoolNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Pool"
+ },
+ "description": "Additional parameters for pool creation."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "The entity state (ETag) version of the pool to update. A value of \"*\" can be used to apply the operation only if the pool already exists. If omitted, this operation will always be applied."
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "Set to '*' to allow a new pool to be created, but to prevent updating an existing pool. Other values will be ignored."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the pool entity.",
+ "schema": {
+ "$ref": "#/definitions/Pool"
+ },
+ "headers": {
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "Pool"
+ ],
+ "operationId": "Pool_Update",
+ "description": "Updates the properties of an existing pool.",
+ "x-ms-examples": {
+ "UpdatePool - Resize Pool": {
+ "$ref": "./examples/PoolUpdate_ResizePool.json"
+ },
+ "UpdatePool - Enable Autoscale": {
+ "$ref": "./examples/PoolUpdate_EnableAutoScale.json"
+ },
+ "UpdatePool - Remove Start Task": {
+ "$ref": "./examples/PoolUpdate_RemoveStartTask.json"
+ },
+ "UpdatePool - Other Properties": {
+ "$ref": "./examples/PoolUpdate_OtherProperties.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PoolNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Pool"
+ },
+ "description": "Pool properties that should be updated. Properties that are supplied will be updated, any property not supplied will be unchanged."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "The entity state (ETag) version of the pool to update. This value can be omitted or set to \"*\" to apply the operation unconditionally."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the pool entity.",
+ "schema": {
+ "$ref": "#/definitions/Pool"
+ },
+ "headers": {
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Pool"
+ ],
+ "operationId": "Pool_Delete",
+ "description": "Deletes the specified pool.",
+ "x-ms-examples": {
+ "DeletePool": {
+ "$ref": "./examples/PoolDelete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful."
+ },
+ "204": {
+ "description": "The operation was successful."
+ },
+ "202": {
+ "description": "The operation will be completed asynchronously.",
+ "headers": {
+ "Location": {
+ "description": "The URL of the resource used to check the status of the asynchronous operation.",
+ "type": "string"
+ },
+ "Retry-After": {
+ "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that represents the seconds.",
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "Pool"
+ ],
+ "operationId": "Pool_Get",
+ "description": "Gets information about the specified pool.",
+ "x-ms-examples": {
+ "GetPool": {
+ "$ref": "./examples/PoolGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the pool entity.",
+ "schema": {
+ "$ref": "#/definitions/Pool"
+ },
+ "headers": {
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName}/disableAutoScale": {
+ "post": {
+ "tags": [
+ "Pool"
+ ],
+ "operationId": "Pool_DisableAutoScale",
+ "description": "Disables automatic scaling for a pool.",
+ "x-ms-examples": {
+ "Disable AutoScale": {
+ "$ref": "./examples/PoolDisableAutoScale.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the pool entity.",
+ "schema": {
+ "$ref": "#/definitions/Pool"
+ },
+ "headers": {
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName}/stopResize": {
+ "post": {
+ "tags": [
+ "Pool"
+ ],
+ "operationId": "Pool_StopResize",
+ "summary": "Stops an ongoing resize operation on the pool.",
+ "description": "This does not restore the pool to its previous state before the resize operation: it only stops any further changes being made, and the pool maintains its current state. After stopping, the pool stabilizes at the number of nodes it was at when the stop operation was done. During the stop operation, the pool allocation state changes first to stopping and then to steady. A resize operation need not be an explicit resize pool request; this API can also be used to halt the initial sizing of the pool when it is created.",
+ "x-ms-examples": {
+ "StopPoolResize": {
+ "$ref": "./examples/PoolStopResize.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/AccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PoolNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the pool entity.",
+ "schema": {
+ "$ref": "#/definitions/Pool"
+ },
+ "headers": {
+ "ETag": {
+ "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AutoStorageBaseProperties": {
+ "properties": {
+ "storageAccountId": {
+ "type": "string",
+ "description": "The resource ID of the storage account to be used for auto-storage account."
+ }
+ },
+ "required": [
+ "storageAccountId"
+ ],
+ "description": "The properties related to the auto-storage account."
+ },
+ "BatchAccountUpdateProperties": {
+ "properties": {
+ "autoStorage": {
+ "$ref": "#/definitions/AutoStorageBaseProperties",
+ "description": "The properties related to the auto-storage account."
+ },
+ "encryption": {
+ "title": "The encryption configuration for the Batch account.",
+ "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.",
+ "$ref": "#/definitions/EncryptionProperties"
+ }
+ },
+ "description": "The properties of a Batch account."
+ },
+ "BatchAccountCreateProperties": {
+ "properties": {
+ "autoStorage": {
+ "$ref": "#/definitions/AutoStorageBaseProperties",
+ "description": "The properties related to the auto-storage account."
+ },
+ "poolAllocationMode": {
+ "title": "The allocation mode to use for creating pools in the Batch account.",
+ "description": "The pool allocation mode also affects how clients may authenticate to the Batch Service API. If the mode is BatchService, clients may authenticate using access keys or Azure Active Directory. If the mode is UserSubscription, clients must use Azure Active Directory. The default is BatchService.",
+ "$ref": "#/definitions/PoolAllocationMode"
+ },
+ "keyVaultReference": {
+ "$ref": "#/definitions/KeyVaultReference",
+ "description": "A reference to the Azure key vault associated with the Batch account."
+ },
+ "publicNetworkAccess": {
+ "title": "The network access type for accessing Azure Batch account.",
+ "description": "If not specified, the default value is 'enabled'.",
+ "$ref": "#/definitions/PublicNetworkAccessType"
+ },
+ "encryption": {
+ "title": "The encryption configuration for the Batch account.",
+ "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.",
+ "$ref": "#/definitions/EncryptionProperties"
+ }
+ },
+ "description": "The properties of a Batch account."
+ },
+ "BatchAccountCreateParameters": {
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "The region in which to create the account."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The user-specified tags associated with the account."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/BatchAccountCreateProperties",
+ "description": "The properties of the Batch account."
+ },
+ "identity": {
+ "$ref": "#/definitions/BatchAccountIdentity",
+ "description": "The identity of the Batch account."
+ }
+ },
+ "required": [
+ "location"
+ ],
+ "description": "Parameters supplied to the Create operation."
+ },
+ "KeyVaultReference": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The resource ID of the Azure key vault associated with the Batch account."
+ },
+ "url": {
+ "type": "string",
+ "description": "The URL of the Azure key vault associated with the Batch account."
+ }
+ },
+ "required": [
+ "id",
+ "url"
+ ],
+ "description": "Identifies the Azure key vault associated with a Batch account."
+ },
+ "AutoStorageProperties": {
+ "properties": {
+ "lastKeySync": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The UTC time at which storage keys were last synchronized with the Batch account."
+ }
+ },
+ "required": [
+ "lastKeySync"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/definitions/AutoStorageBaseProperties"
+ }
+ ],
+ "description": "Contains information about the auto-storage account associated with a Batch account."
+ },
+ "VirtualMachineFamilyCoreQuota": {
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "x-nullable": false,
+ "type": "string",
+ "description": "The Virtual Machine family name."
+ },
+ "coreQuota": {
+ "readOnly": true,
+ "x-nullable": false,
+ "type": "integer",
+ "format": "int32",
+ "description": "The core quota for the VM family for the Batch account."
+ }
+ },
+ "description": "A VM Family and its associated core quota for the Batch account."
+ },
+ "BatchAccountIdentity": {
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of the Batch account. This property will only be provided for a system assigned identity."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant id associated with the Batch account. This property will only be provided for a system assigned identity."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of identity used for the Batch account.",
+ "enum": [
+ "SystemAssigned",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceIdentityType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "SystemAssigned",
+ "description": "Batch account has a system assigned identity with it."
+ },
+ {
+ "value": "None",
+ "description": "Batch account has no identity associated with it. Setting `None` in update account will remove existing identities."
+ }
+ ]
+ }
+ }
+ },
+ "description": "The identity of the Batch account, if configured. This is only used when the user specifies 'Microsoft.KeyVault' as their Batch account encryption configuration.",
+ "required": [
+ "type"
+ ]
+ },
+ "BatchAccountProperties": {
+ "properties": {
+ "accountEndpoint": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The account endpoint used to interact with the Batch service."
+ },
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false,
+ "description": "The provisioned state of the resource",
+ "enum": [
+ "Invalid",
+ "Creating",
+ "Deleting",
+ "Succeeded",
+ "Failed",
+ "Cancelled"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "The account is in an invalid state."
+ },
+ {
+ "value": "Creating",
+ "description": "The account is being created."
+ },
+ {
+ "value": "Deleting",
+ "description": "The account is being deleted."
+ },
+ {
+ "value": "Succeeded",
+ "description": "The account has been created and is ready for use."
+ },
+ {
+ "value": "Failed",
+ "description": "The last operation for the account is failed."
+ },
+ {
+ "value": "Cancelled",
+ "description": "The last operation for the account is cancelled."
+ }
+ ]
+ }
+ },
+ "poolAllocationMode": {
+ "readOnly": true,
+ "x-nullable": false,
+ "title": "The allocation mode to use for creating pools in the Batch account.",
+ "$ref": "#/definitions/PoolAllocationMode"
+ },
+ "keyVaultReference": {
+ "title": "A reference to the Azure key vault associated with the Batch account.",
+ "readOnly": true,
+ "$ref": "#/definitions/KeyVaultReference"
+ },
+ "publicNetworkAccess": {
+ "readOnly": true,
+ "x-nullable": true,
+ "title": "The network interface type for accessing Azure Batch service and Batch account operations.",
+ "description": "If not specified, the default value is 'enabled'.",
+ "$ref": "#/definitions/PublicNetworkAccessType"
+ },
+ "privateEndpointConnections": {
+ "readOnly": true,
+ "x-nullable": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "List of private endpoint connections associated with the Batch account"
+ },
+ "autoStorage": {
+ "title": "The properties and status of any auto-storage account associated with the Batch account.",
+ "readOnly": true,
+ "$ref": "#/definitions/AutoStorageProperties"
+ },
+ "encryption": {
+ "title": "The encryption configuration for the Batch account.",
+ "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.",
+ "readOnly": true,
+ "$ref": "#/definitions/EncryptionProperties"
+ },
+ "dedicatedCoreQuota": {
+ "readOnly": true,
+ "x-nullable": true,
+ "type": "integer",
+ "format": "int32",
+ "title": "The dedicated core quota for the Batch account.",
+ "description": "For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned."
+ },
+ "lowPriorityCoreQuota": {
+ "readOnly": true,
+ "x-nullable": true,
+ "type": "integer",
+ "format": "int32",
+ "title": "The low-priority core quota for the Batch account.",
+ "description": "For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned."
+ },
+ "dedicatedCoreQuotaPerVMFamily": {
+ "readOnly": true,
+ "x-nullable": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineFamilyCoreQuota"
+ },
+ "description": "A list of the dedicated core quota per Virtual Machine family for the Batch account. For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned."
+ },
+ "dedicatedCoreQuotaPerVMFamilyEnforced": {
+ "readOnly": true,
+ "x-nullable": false,
+ "type": "boolean",
+ "title": "A value indicating whether the core quota for the Batch Account is enforced per Virtual Machine family or not.",
+ "description": "Batch is transitioning its core quota system for dedicated cores to be enforced per Virtual Machine family. During this transitional phase, the dedicated core quota per Virtual Machine family may not yet be enforced. If this flag is false, dedicated core quota is enforced via the old dedicatedCoreQuota property on the account and does not consider Virtual Machine family. If this flag is true, dedicated core quota is enforced via the dedicatedCoreQuotaPerVMFamily property on the account, and the old dedicatedCoreQuota does not apply."
+ },
+ "poolQuota": {
+ "readOnly": true,
+ "x-nullable": false,
+ "type": "integer",
+ "format": "int32",
+ "title": "The pool quota for the Batch account."
+ },
+ "activeJobAndJobScheduleQuota": {
+ "readOnly": true,
+ "x-nullable": false,
+ "type": "integer",
+ "format": "int32",
+ "title": "The active job and job schedule quota for the Batch account."
+ }
+ },
+ "description": "Account specific properties."
+ },
+ "BatchAccount": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/BatchAccountProperties",
+ "description": "The properties associated with the account."
+ },
+ "identity": {
+ "$ref": "#/definitions/BatchAccountIdentity",
+ "description": "The identity of the Batch account."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Contains information about an Azure Batch account."
+ },
+ "BatchAccountUpdateParameters": {
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The user-specified tags associated with the account."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/BatchAccountUpdateProperties",
+ "description": "The properties of the account."
+ },
+ "identity": {
+ "$ref": "#/definitions/BatchAccountIdentity",
+ "description": "The identity of the Batch account."
+ }
+ },
+ "description": "Parameters for updating an Azure Batch account."
+ },
+ "BatchAccountListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BatchAccount"
+ },
+ "description": "The collection of Batch accounts returned by the listing operation."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The continuation token."
+ }
+ },
+ "description": "Values returned by the List operation."
+ },
+ "EncryptionProperties": {
+ "properties": {
+ "keySource": {
+ "type": "string",
+ "description": "Type of the key source.",
+ "enum": [
+ "Microsoft.Batch",
+ "Microsoft.KeyVault"
+ ],
+ "x-ms-enum": {
+ "name": "KeySource",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Microsoft.Batch",
+ "description": "Batch creates and manages the encryption keys used to protect the account data."
+ },
+ {
+ "value": "Microsoft.KeyVault",
+ "description": "The encryption keys used to protect the account data are stored in an external key vault. If this is set then the Batch Account identity must be set to `SystemAssigned` and a valid Key Identifier must also be supplied under the keyVaultProperties."
+ }
+ ]
+ }
+ },
+ "keyVaultProperties": {
+ "$ref": "#/definitions/KeyVaultProperties",
+ "description": "Additional details when using Microsoft.KeyVault"
+ }
+ },
+ "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead."
+ },
+ "KeyVaultProperties": {
+ "properties": {
+ "keyIdentifier": {
+ "type": "string",
+ "description": "Full path to the versioned secret. Example https://mykeyvault.vault.azure.net/keys/testkey/6e34a81fef704045975661e297a4c053. To be usable the following prerequisites must be met:\n\n The Batch Account has a System Assigned identity\n The account identity has been granted Key/Get, Key/Unwrap and Key/Wrap permissions\n The KeyVault has soft-delete and purge protection enabled"
+ }
+ },
+ "description": "KeyVault configuration when using an encryption KeySource of Microsoft.KeyVault."
+ },
+ "BatchAccountRegenerateKeyParameters": {
+ "properties": {
+ "keyName": {
+ "type": "string",
+ "description": "The type of account key to regenerate.",
+ "enum": [
+ "Primary",
+ "Secondary"
+ ],
+ "x-ms-enum": {
+ "name": "AccountKeyType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Primary",
+ "description": "The primary account key."
+ },
+ {
+ "value": "Secondary",
+ "description": "The secondary account key."
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "keyName"
+ ],
+ "description": "Parameters supplied to the RegenerateKey operation."
+ },
+ "BatchAccountKeys": {
+ "properties": {
+ "accountName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The Batch account name."
+ },
+ "primary": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The primary key associated with the account."
+ },
+ "secondary": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The secondary key associated with the account."
+ }
+ },
+ "description": "A set of Azure Batch account keys."
+ },
+ "ActivateApplicationPackageParameters": {
+ "properties": {
+ "format": {
+ "type": "string",
+ "description": "The format of the application package binary file."
+ }
+ },
+ "required": [
+ "format"
+ ],
+ "description": "Parameters for an activating an application package."
+ },
+ "Application": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationProperties",
+ "description": "The properties associated with the Application."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Contains information about an application in a Batch account."
+ },
+ "ApplicationProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "The display name for the application."
+ },
+ "allowUpdates": {
+ "type": "boolean",
+ "description": "A value indicating whether packages within the application may be overwritten using the same version string."
+ },
+ "defaultVersion": {
+ "type": "string",
+ "description": "The package to use if a client requests the application but does not specify a version. This property can only be set to the name of an existing package."
+ }
+ },
+ "description": "The properties associated with the Application."
+ },
+ "ApplicationPackage": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ApplicationPackageProperties",
+ "description": "The properties associated with the Application Package."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "description": "An application package which represents a particular version of an application."
+ },
+ "ApplicationPackageProperties": {
+ "properties": {
+ "state": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The current state of the application package.",
+ "enum": [
+ "Pending",
+ "Active"
+ ],
+ "x-ms-enum": {
+ "name": "PackageState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Pending",
+ "description": "The application package has been created but has not yet been activated."
+ },
+ {
+ "value": "Active",
+ "description": "The application package is ready for use."
+ }
+ ]
+ }
+ },
+ "format": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The format of the application package, if the package is active."
+ },
+ "storageUrl": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The URL for the application package in Azure Storage."
+ },
+ "storageUrlExpiry": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "The UTC time at which the Azure Storage URL will expire."
+ },
+ "lastActivationTime": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "The time at which the package was last activated, if the package is active."
+ }
+ },
+ "description": "Properties of an application package"
+ },
+ "ListApplicationsResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Application"
+ },
+ "description": "The list of applications."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "The result of performing list applications."
+ },
+ "ListApplicationPackagesResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationPackage"
+ },
+ "description": "The list of application packages."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of results."
+ }
+ },
+ "description": "The result of performing list application packages."
+ },
+ "BatchLocationQuota": {
+ "properties": {
+ "accountQuota": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "description": "The number of Batch accounts that may be created under the subscription in the specified region."
+ }
+ },
+ "description": "Quotas associated with a Batch region for a particular subscription."
+ },
+ "Resource": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The ID of the resource."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the resource."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The type of the resource."
+ },
+ "location": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The location of the resource."
+ },
+ "tags": {
+ "readOnly": true,
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The tags of the resource."
+ }
+ },
+ "description": "A definition of an Azure resource.",
+ "x-ms-azure-resource": true
+ },
+ "ProxyResource": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The ID of the resource."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the resource."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The type of the resource."
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The ETag of the resource, used for concurrency statements."
+ }
+ },
+ "description": "A definition of an Azure resource.",
+ "x-ms-azure-resource": true
+ },
+ "PublicNetworkAccessType": {
+ "type": "string",
+ "description": "The network access type for operating on the resources in the Batch account.",
+ "default": "Enabled",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "PublicNetworkAccessType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Enabled",
+ "description": "Enables connectivity to Azure Batch through public DNS."
+ },
+ {
+ "value": "Disabled",
+ "description": "Disables public connectivity and enables private connectivity to Azure Batch Service through private endpoint resource."
+ }
+ ]
+ }
+ },
+ "PoolAllocationMode": {
+ "type": "string",
+ "description": "The allocation mode for creating pools in the Batch account.",
+ "enum": [
+ "BatchService",
+ "UserSubscription"
+ ],
+ "x-ms-enum": {
+ "name": "PoolAllocationMode",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "BatchService",
+ "description": "Pools will be allocated in subscriptions owned by the Batch service."
+ },
+ {
+ "value": "UserSubscription",
+ "description": "Pools will be allocated in a subscription owned by the user."
+ }
+ ]
+ }
+ },
+ "CertificateBaseProperties": {
+ "properties": {
+ "thumbprintAlgorithm": {
+ "type": "string",
+ "title": "The algorithm of the certificate thumbprint.",
+ "description": "This must match the first portion of the certificate name. Currently required to be 'SHA1'."
+ },
+ "thumbprint": {
+ "type": "string",
+ "title": "The thumbprint of the certificate.",
+ "description": "This must match the thumbprint from the name."
+ },
+ "format": {
+ "type": "string",
+ "x-nullable": false,
+ "description": "The format of the certificate - either Pfx or Cer. If omitted, the default is Pfx.",
+ "enum": [
+ "Pfx",
+ "Cer"
+ ],
+ "x-ms-enum": {
+ "name": "CertificateFormat",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Pfx",
+ "description": "The certificate is a PFX (PKCS#12) formatted certificate or certificate chain."
+ },
+ {
+ "value": "Cer",
+ "description": "The certificate is a base64-encoded X.509 certificate."
+ }
+ ]
+ }
+ }
+ }
+ },
+ "CertificateProperties": {
+ "properties": {
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false,
+ "title": "The provisioned state of the resource",
+ "enum": [
+ "Succeeded",
+ "Deleting",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "CertificateProvisioningState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Succeeded",
+ "description": "The certificate is available for use in pools."
+ },
+ {
+ "value": "Deleting",
+ "description": "The user has requested that the certificate be deleted, but the delete operation has not yet completed. You may not reference the certificate when creating or updating pools."
+ },
+ {
+ "value": "Failed",
+ "description": "The user requested that the certificate be deleted, but there are pools that still have references to the certificate, or it is still installed on one or more compute nodes. (The latter can occur if the certificate has been removed from the pool, but the node has not yet restarted. Nodes refresh their certificates only when they restart.) You may use the cancel certificate delete operation to cancel the delete, or the delete certificate operation to retry the delete."
+ }
+ ]
+ }
+ },
+ "provisioningStateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the certificate entered its current state.",
+ "readOnly": true
+ },
+ "previousProvisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false,
+ "description": "The previous provisioned state of the resource",
+ "enum": [
+ "Succeeded",
+ "Deleting",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "CertificateProvisioningState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Succeeded",
+ "description": "The certificate is available for use in pools."
+ },
+ {
+ "value": "Deleting",
+ "description": "The user has requested that the certificate be deleted, but the delete operation has not yet completed. You may not reference the certificate when creating or updating pools."
+ },
+ {
+ "value": "Failed",
+ "description": "The user requested that the certificate be deleted, but there are pools that still have references to the certificate, or it is still installed on one or more compute nodes. (The latter can occur if the certificate has been removed from the pool, but the node has not yet restarted. Nodes refresh their certificates only when they restart.) You may use the cancel certificate delete operation to cancel the delete, or the delete certificate operation to retry the delete."
+ }
+ ]
+ }
+ },
+ "previousProvisioningStateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the certificate entered its previous state.",
+ "readOnly": true
+ },
+ "publicData": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The public key of the certificate."
+ },
+ "deleteCertificateError": {
+ "readOnly": true,
+ "$ref": "#/definitions/DeleteCertificateError",
+ "title": "The error which occurred while deleting the certificate",
+ "description": "This is only returned when the certificate provisioningState is 'Failed'."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/CertificateBaseProperties"
+ }
+ ],
+ "description": "Certificate properties."
+ },
+ "CertificateCreateOrUpdateProperties": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/CertificateBaseProperties"
+ }
+ ],
+ "properties": {
+ "data": {
+ "type": "string",
+ "title": "The base64-encoded contents of the certificate.",
+ "description": "The maximum size is 10KB."
+ },
+ "password": {
+ "type": "string",
+ "title": "The password to access the certificate's private key.",
+ "description": "This must not be specified if the certificate format is Cer."
+ }
+ },
+ "description": "Certificate properties for create operations",
+ "required": [
+ "data"
+ ]
+ },
+ "Certificate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/CertificateProperties",
+ "description": "The properties associated with the certificate."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Contains information about a certificate."
+ },
+ "CertificateCreateOrUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/CertificateCreateOrUpdateProperties",
+ "description": "The properties associated with the certificate."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Contains information about a certificate."
+ },
+ "ListCertificatesResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Certificate"
+ },
+ "description": "The collection of returned certificates."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The continuation token."
+ }
+ },
+ "description": "Values returned by the List operation."
+ },
+ "DeleteCertificateError": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "A message describing the error, intended to be suitable for display in a user interface."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the particular error. For example, the name of the property in error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeleteCertificateError"
+ },
+ "description": "A list of additional details about the error."
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ],
+ "description": "An error response from the Batch service."
+ },
+ "PrivateLinkResource": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PrivateLinkResourceProperties",
+ "description": "The properties associated with the private link resource."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Contains information about a private link resource."
+ },
+ "PrivateLinkResourceProperties": {
+ "properties": {
+ "groupId": {
+ "type": "string",
+ "title": "The group id of the private link resource.",
+ "description": "The group id is used to establish the private link connection.",
+ "readOnly": true
+ },
+ "requiredMembers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "The list of required members that are used to establish the private link connection.",
+ "readOnly": true
+ },
+ "requiredZoneNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "The list of required zone names for the private DNS resource name",
+ "readOnly": true
+ }
+ },
+ "description": "Private link resource properties."
+ },
+ "PrivateEndpointConnection": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "description": "The properties associated with the private endpoint connection."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Contains information about a private link resource."
+ },
+ "PrivateEndpointConnectionProperties": {
+ "properties": {
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": false,
+ "title": "The provisioning state of the private endpoint connection.",
+ "enum": [
+ "Succeeded",
+ "Updating",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "PrivateEndpointConnectionProvisioningState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Succeeded",
+ "description": "The connection status is final and is ready for use if Status is Approved."
+ },
+ {
+ "value": "Updating",
+ "description": "The user has requested that the connection status be updated, but the update operation has not yet completed. You may not reference the connection when connecting the Batch account."
+ },
+ {
+ "value": "Failed",
+ "description": "The user requested that the connection be updated and it failed. You may retry the update operation."
+ }
+ ]
+ }
+ },
+ "privateEndpoint": {
+ "$ref": "#/definitions/PrivateEndpoint",
+ "title": "The ARM resource identifier of the private endpoint."
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "#/definitions/PrivateLinkServiceConnectionState",
+ "title": "The private link service connection state of the private endpoint connection."
+ }
+ },
+ "description": "Private endpoint connection properties."
+ },
+ "PrivateEndpoint": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "The ARM resource identifier of the private endpoint. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/privateEndpoints/{privateEndpoint}.",
+ "readOnly": true
+ }
+ },
+ "description": "The private endpoint of the private endpoint connection."
+ },
+ "PrivateLinkServiceConnectionState": {
+ "properties": {
+ "status": {
+ "$ref": "#/definitions/PrivateLinkServiceConnectionStatus",
+ "title": "The status for the private endpoint connection of Batch account"
+ },
+ "description": {
+ "type": "string",
+ "title": "Description of the private Connection state"
+ },
+ "actionRequired": {
+ "type": "string",
+ "title": "Action required on the private connection state",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "description": "The private link service connection state of the private endpoint connection"
+ },
+ "PrivateLinkServiceConnectionStatus": {
+ "type": "string",
+ "title": "The status of the Batch private endpoint connection",
+ "enum": [
+ "Approved",
+ "Pending",
+ "Rejected",
+ "Disconnected"
+ ],
+ "x-ms-enum": {
+ "name": "PrivateLinkServiceConnectionStatus",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Approved",
+ "description": "The private endpoint connection is approved and can be used to access Batch account"
+ },
+ {
+ "value": "Pending",
+ "description": "The private endpoint connection is pending and cannot be used to access Batch account"
+ },
+ {
+ "value": "Rejected",
+ "description": "The private endpoint connection is rejected and cannot be used to access Batch account"
+ },
+ {
+ "value": "Disconnected",
+ "description": "The private endpoint connection is disconnected and cannot be used to access Batch account"
+ }
+ ]
+ }
+ },
+ "Pool": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/PoolProperties",
+ "description": "The properties associated with the pool."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "description": "Contains information about a pool."
+ },
+ "PoolProperties": {
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "title": "The display name for the pool.",
+ "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024."
+ },
+ "lastModified": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The last modified time of the pool.",
+ "description": "This is the last time at which the pool level data, such as the targetDedicatedNodes or autoScaleSettings, changed. It does not factor in node-level changes such as a compute node changing state.",
+ "readOnly": true
+ },
+ "creationTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The creation time of the pool.",
+ "readOnly": true
+ },
+ "provisioningState": {
+ "type": "string",
+ "title": "The current state of the pool.",
+ "enum": [
+ "Succeeded",
+ "Deleting"
+ ],
+ "x-ms-enum": {
+ "name": "PoolProvisioningState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Succeeded",
+ "description": "The pool is available to run tasks subject to the availability of compute nodes."
+ },
+ {
+ "value": "Deleting",
+ "description": "The user has requested that the pool be deleted, but the delete operation has not yet completed."
+ }
+ ]
+ },
+ "readOnly": true
+ },
+ "provisioningStateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the pool entered its current state.",
+ "readOnly": true
+ },
+ "allocationState": {
+ "type": "string",
+ "title": "Whether the pool is resizing.",
+ "enum": [
+ "Steady",
+ "Resizing",
+ "Stopping"
+ ],
+ "x-ms-enum": {
+ "name": "AllocationState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Steady",
+ "description": "The pool is not resizing. There are no changes to the number of nodes in the pool in progress. A pool enters this state when it is created and when no operations are being performed on the pool to change the number of nodes."
+ },
+ {
+ "value": "Resizing",
+ "description": "The pool is resizing; that is, compute nodes are being added to or removed from the pool."
+ },
+ {
+ "value": "Stopping",
+ "description": "The pool was resizing, but the user has requested that the resize be stopped, but the stop request has not yet been completed."
+ }
+ ]
+ },
+ "readOnly": true
+ },
+ "allocationStateTransitionTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the pool entered its current allocation state.",
+ "readOnly": true
+ },
+ "vmSize": {
+ "type": "string",
+ "title": "The size of virtual machines in the pool. All VMs in a pool are the same size.",
+ "description": "For information about available sizes of virtual machines for Cloud Services pools (pools created with cloudServiceConfiguration), see Sizes for Cloud Services (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). Batch supports all Cloud Services VM sizes except ExtraSmall. For information about available VM sizes for pools using images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series)."
+ },
+ "deploymentConfiguration": {
+ "$ref": "#/definitions/DeploymentConfiguration",
+ "title": "This property describes how the pool nodes will be deployed - using Cloud Services or Virtual Machines.",
+ "description": "Using CloudServiceConfiguration specifies that the nodes should be creating using Azure Cloud Services (PaaS), while VirtualMachineConfiguration uses Azure Virtual Machines (IaaS)."
+ },
+ "currentDedicatedNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of compute nodes currently in the pool.",
+ "readOnly": true
+ },
+ "currentLowPriorityNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of low priority compute nodes currently in the pool.",
+ "readOnly": true
+ },
+ "scaleSettings": {
+ "$ref": "#/definitions/ScaleSettings",
+ "title": "Settings which configure the number of nodes in the pool."
+ },
+ "autoScaleRun": {
+ "$ref": "#/definitions/AutoScaleRun",
+ "title": "The results and errors from the last execution of the autoscale formula.",
+ "description": "This property is set only if the pool automatically scales, i.e. autoScaleSettings are used.",
+ "readOnly": true
+ },
+ "interNodeCommunication": {
+ "type": "string",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "InterNodeCommunicationState",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Enabled",
+ "description": "Enable network communication between virtual machines."
+ },
+ {
+ "value": "Disabled",
+ "description": "Disable network communication between virtual machines."
+ }
+ ]
+ },
+ "title": "Whether the pool permits direct communication between nodes.",
+ "description": "This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. If not specified, this value defaults to 'Disabled'."
+ },
+ "networkConfiguration": {
+ "$ref": "#/definitions/NetworkConfiguration",
+ "title": "The network configuration for the pool."
+ },
+ "taskSlotsPerNode": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The number of task slots that can be used to run concurrent tasks on a single compute node in the pool.",
+ "description": "The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256."
+ },
+ "taskSchedulingPolicy": {
+ "$ref": "#/definitions/TaskSchedulingPolicy",
+ "title": "How tasks are distributed across compute nodes in a pool.",
+ "description": "If not specified, the default is spread."
+ },
+ "userAccounts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UserAccount"
+ },
+ "title": "The list of user accounts to be created on each node in the pool."
+ },
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataItem"
+ },
+ "title": "A list of name-value pairs associated with the pool as metadata.",
+ "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code."
+ },
+ "startTask": {
+ "$ref": "#/definitions/StartTask",
+ "title": "A task specified to run on each compute node as it joins the pool.",
+ "description": "In an PATCH (update) operation, this property can be set to an empty object to remove the start task from the pool."
+ },
+ "certificates": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateReference"
+ },
+ "title": "The list of certificates to be installed on each compute node in the pool.",
+ "description": "For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory."
+ },
+ "applicationPackages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationPackageReference"
+ },
+ "title": "The list of application packages to be installed on each compute node in the pool.",
+ "description": "Changes to application package references affect all new compute nodes joining the pool, but do not affect compute nodes that are already in the pool until they are rebooted or reimaged. There is a maximum of 10 application package references on any given pool."
+ },
+ "applicationLicenses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "The list of application licenses the Batch service will make available on each compute node in the pool.",
+ "description": "The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, pool creation will fail."
+ },
+ "resizeOperationStatus": {
+ "$ref": "#/definitions/ResizeOperationStatus",
+ "title": "Contains details about the current or last completed resize operation.",
+ "readOnly": true
+ },
+ "mountConfiguration": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MountConfiguration"
+ },
+ "title": "A list of file systems to mount on each node in the pool.",
+ "description": "This supports Azure Files, NFS, CIFS/SMB, and Blobfuse."
+ }
+ },
+ "description": "Pool properties."
+ },
+ "DeploymentConfiguration": {
+ "properties": {
+ "cloudServiceConfiguration": {
+ "$ref": "#/definitions/CloudServiceConfiguration",
+ "title": "The cloud service configuration for the pool.",
+ "description": "This property and virtualMachineConfiguration are mutually exclusive and one of the properties must be specified. This property cannot be specified if the Batch account was created with its poolAllocationMode property set to 'UserSubscription'."
+ },
+ "virtualMachineConfiguration": {
+ "$ref": "#/definitions/VirtualMachineConfiguration",
+ "title": "The virtual machine configuration for the pool.",
+ "description": "This property and cloudServiceConfiguration are mutually exclusive and one of the properties must be specified."
+ }
+ },
+ "title": "Deployment configuration properties."
+ },
+ "ScaleSettings": {
+ "properties": {
+ "fixedScale": {
+ "$ref": "#/definitions/FixedScaleSettings",
+ "title": "Fixed scale settings for the pool.",
+ "description": "This property and autoScale are mutually exclusive and one of the properties must be specified."
+ },
+ "autoScale": {
+ "$ref": "#/definitions/AutoScaleSettings",
+ "title": "AutoScale settings for the pool.",
+ "description": "This property and fixedScale are mutually exclusive and one of the properties must be specified."
+ }
+ },
+ "title": "Scale settings for the pool",
+ "description": "Defines the desired size of the pool. This can either be 'fixedScale' where the requested targetDedicatedNodes is specified, or 'autoScale' which defines a formula which is periodically reevaluated. If this property is not specified, the pool will have a fixed scale with 0 targetDedicatedNodes."
+ },
+ "AutoScaleSettings": {
+ "properties": {
+ "formula": {
+ "type": "string",
+ "title": "A formula for the desired number of compute nodes in the pool.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/azure/batch/batch-automatic-scaling",
+ "description": "Create an automatic scaling formula for scaling compute nodes in a Batch pool"
+ }
+ },
+ "evaluationInterval": {
+ "type": "string",
+ "format": "duration",
+ "title": "The time interval at which to automatically adjust the pool size according to the autoscale formula.",
+ "description": "If omitted, the default value is 15 minutes (PT15M)."
+ }
+ },
+ "required": [
+ "formula"
+ ],
+ "title": "AutoScale settings for the pool."
+ },
+ "FixedScaleSettings": {
+ "properties": {
+ "resizeTimeout": {
+ "type": "string",
+ "format": "duration",
+ "title": "The timeout for allocation of compute nodes to the pool.",
+ "description": "The default value is 15 minutes. Timeout values use ISO 8601 format. For example, use PT10M for 10 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service rejects the request with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)."
+ },
+ "targetDedicatedNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The desired number of dedicated compute nodes in the pool.",
+ "description": "At least one of targetDedicatedNodes, targetLowPriorityNodes must be set."
+ },
+ "targetLowPriorityNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The desired number of low-priority compute nodes in the pool.",
+ "description": "At least one of targetDedicatedNodes, targetLowPriorityNodes must be set."
+ },
+ "nodeDeallocationOption": {
+ "title": "Determines what to do with a node and its running task(s) if the pool size is decreasing.",
+ "description": "If omitted, the default value is Requeue.",
+ "$ref": "#/definitions/ComputeNodeDeallocationOption"
+ }
+ },
+ "title": "Fixed scale settings for the pool."
+ },
+ "ComputeNodeDeallocationOption": {
+ "type": "string",
+ "title": "Determines what to do with a node and its running task(s) after it has been selected for deallocation.",
+ "enum": [
+ "Requeue",
+ "Terminate",
+ "TaskCompletion",
+ "RetainedData"
+ ],
+ "x-ms-enum": {
+ "name": "ComputeNodeDeallocationOption",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Requeue",
+ "description": "Terminate running task processes and requeue the tasks. The tasks will run again when a node is available. Remove nodes as soon as tasks have been terminated."
+ },
+ {
+ "value": "Terminate",
+ "description": "Terminate running tasks. The tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Remove nodes as soon as tasks have been terminated."
+ },
+ {
+ "value": "TaskCompletion",
+ "description": "Allow currently running tasks to complete. Schedule no new tasks while waiting. Remove nodes when all tasks have completed."
+ },
+ {
+ "value": "RetainedData",
+ "description": "Allow currently running tasks to complete, then wait for all task data retention periods to expire. Schedule no new tasks while waiting. Remove nodes when all task retention periods have expired."
+ }
+ ]
+ }
+ },
+ "CertificateReference": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "The fully qualified ID of the certificate to install on the pool. This must be inside the same batch account as the pool."
+ },
+ "storeLocation": {
+ "type": "string",
+ "title": "The location of the certificate store on the compute node into which to install the certificate.",
+ "description": "The default value is currentUser. This property is applicable only for pools configured with Windows nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows image reference). For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.",
+ "enum": [
+ "CurrentUser",
+ "LocalMachine"
+ ],
+ "x-ms-enum": {
+ "name": "CertificateStoreLocation",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "CurrentUser",
+ "description": "Certificates should be installed to the CurrentUser certificate store."
+ },
+ {
+ "value": "LocalMachine",
+ "description": "Certificates should be installed to the LocalMachine certificate store."
+ }
+ ]
+ }
+ },
+ "storeName": {
+ "type": "string",
+ "title": "The name of the certificate store on the compute node into which to install the certificate.",
+ "description": "This property is applicable only for pools configured with Windows nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows image reference). Common store names include: My, Root, CA, Trust, Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but any custom store name can also be used. The default value is My."
+ },
+ "visibility": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "x-nullable": false,
+ "enum": [
+ "StartTask",
+ "Task",
+ "RemoteUser"
+ ],
+ "x-ms-enum": {
+ "name": "CertificateVisibility",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "StartTask",
+ "description": "The certificate should be visible to the user account under which the start task is run. Note that if AutoUser Scope is Pool for both the StartTask and a Task, this certificate will be visible to the Task as well."
+ },
+ {
+ "value": "Task",
+ "description": "The certificate should be visible to the user accounts under which job tasks are run."
+ },
+ {
+ "value": "RemoteUser",
+ "description": "The certificate should be visible to the user accounts under which users remotely access the node."
+ }
+ ]
+ }
+ },
+ "title": "Which user accounts on the compute node should have access to the private data of the certificate."
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "title": "A reference to a certificate to be installed on compute nodes in a pool. This must exist inside the same account as the pool."
+ },
+ "ApplicationPackageReference": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "title": "The ID of the application package to install. This must be inside the same batch account as the pool. This can either be a reference to a specific version or the default version if one exists."
+ },
+ "version": {
+ "type": "string",
+ "title": "The version of the application to deploy. If omitted, the default version is deployed.",
+ "description": "If this is omitted, and no default version is specified for this application, the request fails with the error code InvalidApplicationPackageReferences. If you are calling the REST API directly, the HTTP status code is 409."
+ }
+ },
+ "title": "Link to an application package inside the batch account",
+ "required": [
+ "id"
+ ]
+ },
+ "ResizeError": {
+ "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."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResizeError"
+ },
+ "title": "Additional details about the error."
+ }
+ },
+ "title": "An error that occurred when resizing a pool.",
+ "required": [
+ "code",
+ "message"
+ ]
+ },
+ "AutoScaleRunError": {
+ "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."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AutoScaleRunError"
+ },
+ "title": "Additional details about the error."
+ }
+ },
+ "title": "An error that occurred when autoscaling a pool.",
+ "required": [
+ "code",
+ "message"
+ ]
+ },
+ "AutoScaleRun": {
+ "properties": {
+ "evaluationTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time at which the autoscale formula was last evaluated."
+ },
+ "results": {
+ "type": "string",
+ "title": "The final values of all variables used in the evaluation of the autoscale formula.",
+ "description": "Each variable value is returned in the form $variable=value, and variables are separated by semicolons."
+ },
+ "error": {
+ "$ref": "#/definitions/AutoScaleRunError",
+ "title": "Details of the error encountered evaluating the autoscale formula on the pool, if the evaluation was unsuccessful."
+ }
+ },
+ "required": [
+ "evaluationTime"
+ ],
+ "title": "The results and errors from an execution of a pool autoscale formula."
+ },
+ "VirtualMachineConfiguration": {
+ "properties": {
+ "imageReference": {
+ "$ref": "#/definitions/ImageReference",
+ "title": "A reference to the Azure Virtual Machines Marketplace Image or the custom Virtual Machine Image to use."
+ },
+ "nodeAgentSkuId": {
+ "type": "string",
+ "title": "The SKU of the Batch node agent to be provisioned on compute nodes in the pool.",
+ "description": "The Batch node agent is a program that runs on each node in the pool, and provides the command-and-control interface between the node and the Batch service. There are different implementations of the node agent, known as SKUs, for different operating systems. You must specify a node agent SKU which matches the selected image reference. To get the list of supported node agent SKUs along with their list of verified image references, see the 'List supported node agent SKUs' operation."
+ },
+ "windowsConfiguration": {
+ "$ref": "#/definitions/WindowsConfiguration",
+ "title": "Windows operating system settings on the virtual machine.",
+ "description": "This property must not be specified if the imageReference specifies a Linux OS image."
+ },
+ "dataDisks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataDisk"
+ },
+ "title": "The configuration for data disks attached to the compute nodes in the pool.",
+ "description": "This property must be specified if the compute nodes in the pool need to have empty data disks attached to them."
+ },
+ "licenseType": {
+ "type": "string",
+ "title": "The type of on-premises license to be used when deploying the operating system.",
+ "description": "This only applies to images that contain the Windows operating system, and should only be used when you hold valid on-premises licenses for the nodes which will be deployed. If omitted, no on-premises licensing discount is applied. Values are:\n\n Windows_Server - The on-premises license is for Windows Server.\n Windows_Client - The on-premises license is for Windows Client.\n"
+ },
+ "containerConfiguration": {
+ "$ref": "#/definitions/ContainerConfiguration",
+ "title": "The container configuration for the pool.",
+ "description": "If specified, setup is performed on each node in the pool to allow tasks to run in containers. All regular tasks and job manager tasks run on this pool must specify the containerSettings property, and all other tasks may specify it."
+ },
+ "diskEncryptionConfiguration": {
+ "$ref": "#/definitions/DiskEncryptionConfiguration",
+ "title": "The disk encryption configuration for the pool.",
+ "description": "If specified, encryption is performed on each node in the pool during node provisioning."
+ }
+ },
+ "required": [
+ "imageReference",
+ "nodeAgentSkuId"
+ ],
+ "title": "The configuration for compute nodes in a pool based on the Azure Virtual Machines infrastructure."
+ },
+ "ContainerRegistry": {
+ "properties": {
+ "registryServer": {
+ "type": "string",
+ "title": "The registry URL.",
+ "description": "If omitted, the default is \"docker.io\"."
+ },
+ "username": {
+ "type": "string",
+ "x-ms-client-name": "userName",
+ "title": "The user name to log into the registry server."
+ },
+ "password": {
+ "type": "string",
+ "title": "The password to log into the registry server."
+ }
+ },
+ "required": [
+ "username",
+ "password"
+ ],
+ "title": "A private container registry."
+ },
+ "DiskEncryptionConfiguration": {
+ "properties": {
+ "targets": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "x-nullable": false,
+ "title": "The disks to encrypt on each compute node.",
+ "description": "If omitted, no disks on the compute nodes in the pool will be encrypted.",
+ "enum": [
+ "OsDisk",
+ "TemporaryDisk"
+ ],
+ "x-ms-enum": {
+ "name": "DiskEncryptionTarget",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "OsDisk",
+ "description": "The OS Disk on the compute node is encrypted.",
+ "name": "OsDisk"
+ },
+ {
+ "value": "TemporaryDisk",
+ "description": "The temporary disk on the compute node is encrypted. On Linux this encryption applies to other partitions (such as those on mounted data disks) when encryption occurs at boot time.",
+ "name": "TemporaryDisk"
+ }
+ ]
+ }
+ },
+ "title": "The list of disk targets Batch Service will encrypt on the compute node",
+ "description": "On Linux pool, only \"TemporaryDisk\" is supported; on Windows pool, \"OsDisk\" and \"TemporaryDisk\" must be specified."
+ }
+ },
+ "description": "The disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Shared Image Gallery Image."
+ },
+ "ContainerConfiguration": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "title": "The container technology to be used.",
+ "enum": [
+ "DockerCompatible"
+ ],
+ "x-ms-enum": {
+ "name": "ContainerType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "DockerCompatible",
+ "description": "A Docker compatible container technology will be used to launch the containers."
+ }
+ ]
+ }
+ },
+ "containerImageNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "The collection of container image names.",
+ "description": "This is the full image reference, as would be specified to \"docker pull\". An image will be sourced from the default Docker registry unless the image is fully qualified with an alternative registry."
+ },
+ "containerRegistries": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerRegistry"
+ },
+ "title": "Additional private registries from which containers can be pulled.",
+ "description": "If any images must be downloaded from a private registry which requires credentials, then those credentials must be provided here."
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "title": "The configuration for container-enabled pools."
+ },
+ "WindowsConfiguration": {
+ "properties": {
+ "enableAutomaticUpdates": {
+ "type": "boolean",
+ "title": "Whether automatic updates are enabled on the virtual machine.",
+ "description": "If omitted, the default value is true."
+ }
+ },
+ "title": "Windows operating system settings to apply to the virtual machine."
+ },
+ "ImageReference": {
+ "properties": {
+ "publisher": {
+ "type": "string",
+ "title": "The publisher of the Azure Virtual Machines Marketplace image.",
+ "description": "For example, Canonical or MicrosoftWindowsServer."
+ },
+ "offer": {
+ "type": "string",
+ "title": "The offer type of the Azure Virtual Machines Marketplace image.",
+ "description": "For example, UbuntuServer or WindowsServer."
+ },
+ "sku": {
+ "type": "string",
+ "title": "The SKU of the Azure Virtual Machines Marketplace image.",
+ "description": "For example, 18.04-LTS or 2019-Datacenter."
+ },
+ "version": {
+ "type": "string",
+ "title": "The version of the Azure Virtual Machines Marketplace image.",
+ "description": "A value of 'latest' can be specified to select the latest version of an image. If omitted, the default is 'latest'."
+ },
+ "id": {
+ "type": "string",
+ "title": "The ARM resource identifier of the Shared Image Gallery Image. Compute Nodes in the Pool will be created using this Image Id. This is of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}.",
+ "description": "This property is mutually exclusive with other properties. The Shared Image Gallery image must have replicas in the same region as the Azure Batch account. For information about the firewall settings for the Batch node agent to communicate with the Batch service see https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration."
+ }
+ },
+ "title": "A reference to an Azure Virtual Machines Marketplace image or the Azure Image resource of a custom Virtual Machine. To get the list of all imageReferences verified by Azure Batch, see the 'List supported node agent SKUs' operation."
+ },
+ "DataDisk": {
+ "properties": {
+ "lun": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The logical unit number.",
+ "description": "The lun is used to uniquely identify each data disk. If attaching multiple disks, each should have a distinct lun. The value must be between 0 and 63, inclusive."
+ },
+ "caching": {
+ "$ref": "#/definitions/CachingType",
+ "title": "The type of caching to be enabled for the data disks.",
+ "description": "Values are:\n\n none - The caching mode for the disk is not enabled.\n readOnly - The caching mode for the disk is read only.\n readWrite - The caching mode for the disk is read and write.\n\n The default value for caching is none. For information about the caching options see: https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/."
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The initial disk size in GB when creating new data disk."
+ },
+ "storageAccountType": {
+ "title": "The storage account type to be used for the data disk.",
+ "description": "If omitted, the default is \"Standard_LRS\". Values are:\n\n Standard_LRS - The data disk should use standard locally redundant storage.\n Premium_LRS - The data disk should use premium locally redundant storage.",
+ "$ref": "#/definitions/StorageAccountType"
+ }
+ },
+ "required": [
+ "lun",
+ "diskSizeGB"
+ ],
+ "description": "Settings which will be used by the data disks associated to Compute Nodes in the Pool. When using attached data disks, you need to mount and format the disks from within a VM to use them."
+ },
+ "TaskSchedulingPolicy": {
+ "properties": {
+ "nodeFillType": {
+ "type": "string",
+ "title": "How tasks should be distributed across compute nodes.",
+ "enum": [
+ "Spread",
+ "Pack"
+ ],
+ "x-ms-enum": {
+ "name": "ComputeNodeFillType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Spread",
+ "description": "Tasks should be assigned evenly across all nodes in the pool."
+ },
+ {
+ "value": "Pack",
+ "description": "As many tasks as possible (taskSlotsPerNode) should be assigned to each node in the pool before any tasks are assigned to the next node in the pool."
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "nodeFillType"
+ ],
+ "title": "Specifies how tasks should be distributed across compute nodes."
+ },
+ "LinuxUserConfiguration": {
+ "properties": {
+ "uid": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The user ID of the user account.",
+ "description": "The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the uid."
+ },
+ "gid": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The group ID for the user account.",
+ "description": "The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the gid."
+ },
+ "sshPrivateKey": {
+ "type": "string",
+ "title": "The SSH private key for the user account.",
+ "description": "The private key must not be password protected. The private key is used to automatically configure asymmetric-key based authentication for SSH between nodes in a Linux pool when the pool's enableInterNodeCommunication property is true (it is ignored if enableInterNodeCommunication is false). It does this by placing the key pair into the user's .ssh directory. If not specified, password-less SSH is not configured between nodes (no modification of the user's .ssh directory is done)."
+ }
+ },
+ "title": "Properties used to create a user account on a Linux node."
+ },
+ "WindowsUserConfiguration": {
+ "properties": {
+ "loginMode": {
+ "type": "string",
+ "title": "Login mode for user",
+ "description": "Specifies login mode for the user. The default value for VirtualMachineConfiguration pools is interactive mode and for CloudServiceConfiguration pools is batch mode.",
+ "enum": [
+ "Batch",
+ "Interactive"
+ ],
+ "x-ms-enum": {
+ "name": "LoginMode",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Batch",
+ "description": "The LOGON32_LOGON_BATCH Win32 login mode. The batch login mode is recommended for long running parallel processes."
+ },
+ {
+ "value": "Interactive",
+ "description": "The LOGON32_LOGON_INTERACTIVE Win32 login mode. Some applications require having permissions associated with the interactive login mode. If this is the case for an application used in your task, then this option is recommended."
+ }
+ ]
+ }
+ }
+ },
+ "title": "Properties used to create a user account on a Windows node."
+ },
+ "UserAccount": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "The name of the user account."
+ },
+ "password": {
+ "type": "string",
+ "title": "The password for the user account."
+ },
+ "elevationLevel": {
+ "title": "The elevation level of the user account.",
+ "description": "nonAdmin - The auto user is a standard user without elevated access. admin - The auto user is a user with elevated access and operates with full Administrator permissions. The default value is nonAdmin.",
+ "$ref": "#/definitions/ElevationLevel"
+ },
+ "linuxUserConfiguration": {
+ "title": "The Linux-specific user configuration for the user account.",
+ "description": "This property is ignored if specified on a Windows pool. If not specified, the user is created with the default options.",
+ "$ref": "#/definitions/LinuxUserConfiguration"
+ },
+ "windowsUserConfiguration": {
+ "title": "The Windows-specific user configuration for the user account.",
+ "description": "This property can only be specified if the user is on a Windows pool. If not specified and on a Windows pool, the user is created with the default options.",
+ "$ref": "#/definitions/WindowsUserConfiguration"
+ }
+ },
+ "required": [
+ "name",
+ "password"
+ ],
+ "title": "Properties used to create a user on an Azure Batch node."
+ },
+ "StartTask": {
+ "properties": {
+ "commandLine": {
+ "type": "string",
+ "title": "The command line of the start task.",
+ "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. Required if any other properties of the startTask are specified."
+ },
+ "resourceFiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceFile"
+ },
+ "title": "A list of files that the Batch service will download to the compute node before running the command line."
+ },
+ "environmentSettings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnvironmentSetting"
+ },
+ "title": "A list of environment variable settings for the start task."
+ },
+ "userIdentity": {
+ "$ref": "#/definitions/UserIdentity",
+ "title": "The user identity under which the start task runs.",
+ "description": "If omitted, the task runs as a non-administrative user unique to the task."
+ },
+ "maxTaskRetryCount": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The maximum number of times the task may be retried.",
+ "description": "The Batch service retries a task if its exit code is nonzero. Note that this value specifically controls the number of retries. The Batch service will try the task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries the task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry the task. If the maximum retry count is -1, the Batch service retries the task without limit."
+ },
+ "waitForSuccess": {
+ "type": "boolean",
+ "title": "Whether the Batch service should wait for the start task to complete successfully (that is, to exit with exit code 0) before scheduling any tasks on the compute node.",
+ "description": "If true and the start task fails on a compute node, the Batch service retries the start task up to its maximum retry count (maxTaskRetryCount). If the task has still not completed successfully after all retries, then the Batch service marks the compute node unusable, and will not schedule tasks to it. This condition can be detected via the node state and scheduling error detail. If false, the Batch service will not wait for the start task to complete. In this case, other tasks can start executing on the compute node while the start task is still running; and even if the start task fails, new tasks will continue to be scheduled on the node. The default is true."
+ },
+ "containerSettings": {
+ "$ref": "#/definitions/TaskContainerSettings",
+ "title": "The settings for the container under which the start task runs.",
+ "description": "When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all task environment variables are mapped into the container, and the task command line is executed in the container."
+ }
+ },
+ "title": "A task which is run when a compute node joins a pool in the Azure Batch service, or when the compute node is rebooted or reimaged.",
+ "description": "In some cases the start task may be re-run even though the node was not rebooted. Due to this, start tasks should be idempotent and exit gracefully if the setup they're performing has already been done. Special care should be taken to avoid start tasks which create breakaway process or install/launch services from the start task working directory, as this will block Batch from being able to re-run the start task."
+ },
+ "TaskContainerSettings": {
+ "properties": {
+ "containerRunOptions": {
+ "type": "string",
+ "title": "Additional options to the container create command.",
+ "description": "These additional options are supplied as arguments to the \"docker create\" command, in addition to those controlled by the Batch Service."
+ },
+ "imageName": {
+ "type": "string",
+ "title": "The image to use to create the container in which the task will run.",
+ "description": "This is the full image reference, as would be specified to \"docker pull\". If no tag is provided as part of the image name, the tag \":latest\" is used as a default."
+ },
+ "registry": {
+ "$ref": "#/definitions/ContainerRegistry",
+ "title": "The private registry which contains the container image.",
+ "description": "This setting can be omitted if was already provided at pool creation."
+ },
+ "workingDirectory": {
+ "type": "string",
+ "title": "A flag to indicate where the container task working directory is. The default is 'taskWorkingDirectory'.",
+ "enum": [
+ "TaskWorkingDirectory",
+ "ContainerImageDefault"
+ ],
+ "x-ms-enum": {
+ "name": "ContainerWorkingDirectory",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "TaskWorkingDirectory",
+ "description": "Use the standard Batch service task working directory, which will contain the Task resource files populated by Batch."
+ },
+ {
+ "value": "ContainerImageDefault",
+ "description": "Using container image defined working directory. Beware that this directory will not contain the resource files downloaded by Batch."
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "imageName"
+ ],
+ "title": "The container settings for a task."
+ },
+ "ResourceFile": {
+ "properties": {
+ "autoStorageContainerName": {
+ "type": "string",
+ "title": "The storage container name in the auto storage account.",
+ "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified."
+ },
+ "storageContainerUrl": {
+ "type": "string",
+ "title": "The URL of the blob container within Azure Blob Storage.",
+ "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. This URL must be readable and listable using anonymous access; that is, the Batch service does not present any credentials when downloading the blob. There are two ways to get such a URL for a blob in Azure storage: include a Shared Access Signature (SAS) granting read and list permissions on the blob, or set the ACL for the blob or its container to allow public access."
+ },
+ "httpUrl": {
+ "type": "string",
+ "title": "The URL of the file to download.",
+ "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. If the URL is Azure Blob Storage, it must be readable using anonymous access; that is, the Batch service does not present any credentials when downloading the blob. There are two ways to get such a URL for a blob in Azure storage: include a Shared Access Signature (SAS) granting read permissions on the blob, or set the ACL for the blob or its container to allow public access."
+ },
+ "blobPrefix": {
+ "type": "string",
+ "title": "The blob prefix to use when downloading blobs from an Azure Storage container. Only the blobs whose names begin with the specified prefix will be downloaded.",
+ "description": "The property is valid only when autoStorageContainerName or storageContainerUrl is used. This prefix can be a partial filename or a subdirectory. If a prefix is not specified, all the files in the container will be downloaded."
+ },
+ "filePath": {
+ "type": "string",
+ "title": "The location on the compute node to which to download the file, relative to the task's working directory.",
+ "description": "If the httpUrl property is specified, the filePath is required and describes the path which the file will be downloaded to, including the filename. Otherwise, if the autoStorageContainerName or storageContainerUrl property is specified, filePath is optional and is the directory to download the files to. In the case where filePath is used as a directory, any directory structure already associated with the input data will be retained in full and appended to the specified filePath directory. The specified relative path cannot break out of the task's working directory (for example by using '..')."
+ },
+ "fileMode": {
+ "type": "string",
+ "title": "The file permission mode attribute in octal format.",
+ "description": "This property applies only to files being downloaded to Linux compute nodes. It will be ignored if it is specified for a resourceFile which will be downloaded to a Windows node. If this property is not specified for a Linux node, then a default value of 0770 is applied to the file."
+ }
+ },
+ "title": "A single file or multiple files to be downloaded to a compute node."
+ },
+ "EnvironmentSetting": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "The name of the environment variable."
+ },
+ "value": {
+ "type": "string",
+ "title": "The value of the environment variable."
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "title": "An environment variable to be set on a task process."
+ },
+ "UserIdentity": {
+ "properties": {
+ "userName": {
+ "type": "string",
+ "title": "The name of the user identity under which the task is run.",
+ "description": "The userName and autoUser properties are mutually exclusive; you must specify one but not both."
+ },
+ "autoUser": {
+ "$ref": "#/definitions/AutoUserSpecification",
+ "title": "The auto user under which the task is run.",
+ "description": "The userName and autoUser properties are mutually exclusive; you must specify one but not both."
+ }
+ },
+ "title": "The definition of the user identity under which the task is run.",
+ "description": "Specify either the userName or autoUser property, but not both."
+ },
+ "AutoUserSpecification": {
+ "properties": {
+ "scope": {
+ "type": "string",
+ "title": "The scope for the auto user",
+ "description": "The default value is Pool. If the pool is running Windows a value of Task should be specified if stricter isolation between tasks is required. For example, if the task mutates the registry in a way which could impact other tasks, or if certificates have been specified on the pool which should not be accessible by normal tasks but should be accessible by start tasks.",
+ "enum": [
+ "Task",
+ "Pool"
+ ],
+ "x-ms-enum": {
+ "name": "AutoUserScope",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Task",
+ "description": "Specifies that the service should create a new user for the task."
+ },
+ {
+ "value": "Pool",
+ "description": "Specifies that the task runs as the common auto user account which is created on every node in a pool."
+ }
+ ]
+ }
+ },
+ "elevationLevel": {
+ "title": "The elevation level of the auto user.",
+ "description": "The default value is nonAdmin.",
+ "$ref": "#/definitions/ElevationLevel"
+ }
+ },
+ "title": "Specifies the parameters for the auto user that runs a task on the Batch service."
+ },
+ "ElevationLevel": {
+ "type": "string",
+ "title": "The elevation level of the user.",
+ "enum": [
+ "NonAdmin",
+ "Admin"
+ ],
+ "x-ms-enum": {
+ "name": "ElevationLevel",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "NonAdmin",
+ "description": "The user is a standard user without elevated access."
+ },
+ {
+ "value": "Admin",
+ "description": "The user is a user with elevated access and operates with full Administrator permissions."
+ }
+ ]
+ }
+ },
+ "StorageAccountType": {
+ "type": "string",
+ "title": "The storage account type for use in creating data disks.",
+ "enum": [
+ "Standard_LRS",
+ "Premium_LRS"
+ ],
+ "x-ms-enum": {
+ "name": "StorageAccountType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Standard_LRS",
+ "description": "The data disk should use standard locally redundant storage."
+ },
+ {
+ "value": "Premium_LRS",
+ "description": "The data disk should use premium locally redundant storage."
+ }
+ ]
+ }
+ },
+ "CachingType": {
+ "type": "string",
+ "title": "The type of caching to enable for the disk.",
+ "enum": [
+ "None",
+ "ReadOnly",
+ "ReadWrite"
+ ],
+ "x-ms-enum": {
+ "name": "CachingType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "None",
+ "description": "The caching mode for the disk is not enabled."
+ },
+ {
+ "value": "ReadOnly",
+ "description": "The caching mode for the disk is read only."
+ },
+ {
+ "value": "ReadWrite",
+ "description": "The caching mode for the disk is read and write."
+ }
+ ]
+ }
+ },
+ "IPAddressProvisioningType": {
+ "type": "string",
+ "title": "The provisioning type for Public IP Addresses for the Batch Pool.",
+ "enum": [
+ "BatchManaged",
+ "UserManaged",
+ "NoPublicIPAddresses"
+ ],
+ "x-ms-enum": {
+ "name": "IPAddressProvisioningType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "BatchManaged",
+ "description": "A public IP will be created and managed by Batch. There may be multiple public IPs depending on the size of the Pool."
+ },
+ {
+ "value": "UserManaged",
+ "description": "Public IPs are provided by the user and will be used to provision the Compute Nodes."
+ },
+ {
+ "value": "NoPublicIPAddresses",
+ "description": "No public IP Address will be created for the Compute Nodes in the Pool."
+ }
+ ]
+ }
+ },
+ "PublicIPAddressConfiguration": {
+ "properties": {
+ "provision": {
+ "$ref": "#/definitions/IPAddressProvisioningType",
+ "title": "The provisioning type for Public IP Addresses for the pool",
+ "description": "The default value is BatchManaged"
+ },
+ "ipAddressIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "The list of public IPs which the Batch service will use when provisioning Compute Nodes.",
+ "description": "The number of IPs specified here limits the maximum size of the Pool - 100 dedicated nodes or 100 low-priority nodes can be allocated for each public IP. For example, a pool needing 250 dedicated VMs would need at least 3 public IPs specified. Each element of this collection is of the form: /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}."
+ }
+ },
+ "description": "The public IP Address configuration of the networking configuration of a Pool."
+ },
+ "NetworkConfiguration": {
+ "properties": {
+ "subnetId": {
+ "type": "string",
+ "title": "The ARM resource identifier of the virtual network subnet which the compute nodes of the pool will join. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}.",
+ "description": "The virtual network must be in the same region and subscription as the Azure Batch account. The specified subnet should have enough free IP addresses to accommodate the number of nodes in the pool. If the subnet doesn't have enough free IP addresses, the pool will partially allocate compute nodes and a resize error will occur. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet. The specified subnet must allow communication from the Azure Batch service to be able to schedule tasks on the compute nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the compute nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the compute nodes to unusable. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication. For pools created with a virtual machine configuration, enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for Windows. For pools created with a cloud service configuration, enable ports 10100, 20100, and 30100. Also enable outbound connections to Azure Storage on port 443. For cloudServiceConfiguration pools, only 'classic' VNETs are supported. For more details see: https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration",
+ "externalDocs": {
+ "url": "https://azure.microsoft.com/en-us/documentation/articles/role-based-access-built-in-roles/#classic-virtual-machine-contributor",
+ "description": "Setting up RBAC for Azure Batch VNets"
+ }
+ },
+ "endpointConfiguration": {
+ "$ref": "#/definitions/PoolEndpointConfiguration",
+ "title": "The configuration for endpoints on compute nodes in the Batch pool.",
+ "description": "Pool endpoint configuration is only supported on pools with the virtualMachineConfiguration property."
+ },
+ "publicIPAddressConfiguration": {
+ "$ref": "#/definitions/PublicIPAddressConfiguration",
+ "title": "The Public IPAddress configuration for Compute Nodes in the Batch Pool.",
+ "description": "This property is only supported on Pools with the virtualMachineConfiguration property."
+ }
+ },
+ "description": "The network configuration for a pool."
+ },
+ "CloudServiceConfiguration": {
+ "properties": {
+ "osFamily": {
+ "type": "string",
+ "title": "The Azure Guest OS family to be installed on the virtual machines in the pool.",
+ "description": "Possible values are: 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. 3 - OS Family 3, equivalent to Windows Server 2012. 4 - OS Family 4, equivalent to Windows Server 2012 R2. 5 - OS Family 5, equivalent to Windows Server 2016. 6 - OS Family 6, equivalent to Windows Server 2019. For more information, see Azure Guest OS Releases (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases)."
+ },
+ "osVersion": {
+ "type": "string",
+ "title": "The Azure Guest OS version to be installed on the virtual machines in the pool.",
+ "description": "The default value is * which specifies the latest operating system version for the specified OS family."
+ }
+ },
+ "required": [
+ "osFamily"
+ ],
+ "title": "The configuration for nodes in a pool based on the Azure Cloud Services platform."
+ },
+ "MetadataItem": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "The name of the metadata item."
+ },
+ "value": {
+ "type": "string",
+ "title": "The value of the metadata item."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "title": "A name-value pair associated with a Batch service resource.",
+ "description": "The Batch service does not assign any meaning to this metadata; it is solely for the use of user code."
+ },
+ "ResizeOperationStatus": {
+ "properties": {
+ "targetDedicatedNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The desired number of dedicated compute nodes in the pool."
+ },
+ "targetLowPriorityNodes": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The desired number of low-priority compute nodes in the pool."
+ },
+ "resizeTimeout": {
+ "type": "string",
+ "format": "duration",
+ "title": "The timeout for allocation of compute nodes to the pool or removal of compute nodes from the pool.",
+ "description": "The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)."
+ },
+ "nodeDeallocationOption": {
+ "title": "Determines what to do with a node and its running task(s) if the pool size is decreasing.",
+ "description": "The default value is requeue.",
+ "$ref": "#/definitions/ComputeNodeDeallocationOption"
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time",
+ "title": "The time when this resize operation was started."
+ },
+ "errors": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResizeError"
+ },
+ "title": "Details of any errors encountered while performing the last resize on the pool.",
+ "description": "This property is set only if an error occurred during the last pool resize, and only when the pool allocationState is Steady."
+ }
+ },
+ "title": "Details about the current or last completed resize operation.",
+ "description": "Describes either the current operation (if the pool AllocationState is Resizing) or the previously completed operation (if the AllocationState is Steady)."
+ },
+ "PoolEndpointConfiguration": {
+ "properties": {
+ "inboundNatPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InboundNatPool"
+ },
+ "title": "A list of inbound NAT pools that can be used to address specific ports on an individual compute node externally.",
+ "description": "The maximum number of inbound NAT pools per Batch pool is 5. If the maximum number of inbound NAT pools is exceeded the request fails with HTTP status code 400. This cannot be specified if the IPAddressProvisioningType is NoPublicIPAddresses."
+ }
+ },
+ "required": [
+ "inboundNatPools"
+ ],
+ "title": "The endpoint configuration for a pool."
+ },
+ "InboundNatPool": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "The name of the endpoint.",
+ "description": "The name must be unique within a Batch pool, can contain letters, numbers, underscores, periods, and hyphens. Names must start with a letter or number, must end with a letter, number, or underscore, and cannot exceed 77 characters. If any invalid values are provided the request fails with HTTP status code 400."
+ },
+ "protocol": {
+ "type": "string",
+ "title": "The protocol of the endpoint.",
+ "enum": [
+ "TCP",
+ "UDP"
+ ],
+ "x-ms-enum": {
+ "name": "InboundEndpointProtocol",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "TCP",
+ "description": "Use TCP for the endpoint."
+ },
+ {
+ "value": "UDP",
+ "description": "Use UDP for the endpoint."
+ }
+ ]
+ }
+ },
+ "backendPort": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The port number on the compute node.",
+ "description": "This must be unique within a Batch pool. Acceptable values are between 1 and 65535 except for 22, 3389, 29876 and 29877 as these are reserved. If any reserved values are provided the request fails with HTTP status code 400."
+ },
+ "frontendPortRangeStart": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The first port number in the range of external ports that will be used to provide inbound access to the backendPort on individual compute nodes.",
+ "description": "Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400."
+ },
+ "frontendPortRangeEnd": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The last port number in the range of external ports that will be used to provide inbound access to the backendPort on individual compute nodes.",
+ "description": "Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved by the Batch service. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400."
+ },
+ "networkSecurityGroupRules": {
+ "type": "array",
+ "title": "A list of network security group rules that will be applied to the endpoint.",
+ "description": "The maximum number of rules that can be specified across all the endpoints on a Batch pool is 25. If no network security group rules are specified, a default rule will be created to allow inbound access to the specified backendPort. If the maximum number of network security group rules is exceeded the request fails with HTTP status code 400.",
+ "items": {
+ "$ref": "#/definitions/NetworkSecurityGroupRule"
+ }
+ }
+ },
+ "required": [
+ "name",
+ "protocol",
+ "backendPort",
+ "frontendPortRangeStart",
+ "frontendPortRangeEnd"
+ ],
+ "title": "A inbound NAT pool that can be used to address specific ports on compute nodes in a Batch pool externally."
+ },
+ "NetworkSecurityGroupRule": {
+ "properties": {
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "title": "The priority for this rule.",
+ "description": "Priorities within a pool must be unique and are evaluated in order of priority. The lower the number the higher the priority. For example, rules could be specified with order numbers of 150, 250, and 350. The rule with the order number of 150 takes precedence over the rule that has an order of 250. Allowed priorities are 150 to 4096. If any reserved or duplicate values are provided the request fails with HTTP status code 400."
+ },
+ "access": {
+ "type": "string",
+ "title": "The action that should be taken for a specified IP address, subnet range or tag.",
+ "enum": [
+ "Allow",
+ "Deny"
+ ],
+ "x-ms-enum": {
+ "name": "NetworkSecurityGroupRuleAccess",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Allow",
+ "description": "Allow access."
+ },
+ {
+ "value": "Deny",
+ "description": "Deny access."
+ }
+ ]
+ }
+ },
+ "sourceAddressPrefix": {
+ "type": "string",
+ "title": "The source address prefix or tag to match for the rule.",
+ "description": "Valid values are a single IP address (i.e. 10.10.10.10), IP subnet (i.e. 192.168.1.0/24), default tag, or * (for all addresses). If any other values are provided the request fails with HTTP status code 400."
+ },
+ "sourcePortRanges": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "The source port ranges to match for the rule.",
+ "description": "Valid values are '*' (for all ports 0 - 65535) or arrays of ports or port ranges (i.e. 100-200). The ports should in the range of 0 to 65535 and the port ranges or ports can't overlap. If any other values are provided the request fails with HTTP status code 400. Default value will be *."
+ }
+ },
+ "required": [
+ "priority",
+ "access",
+ "sourceAddressPrefix"
+ ],
+ "title": "A network security group rule to apply to an inbound endpoint."
+ },
+ "ListPrivateLinkResourcesResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ },
+ "description": "The collection of returned private link resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The continuation token."
+ }
+ },
+ "description": "Values returned by the List operation."
+ },
+ "ListPrivateEndpointConnectionsResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "The collection of returned private endpoint connection."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The continuation token."
+ }
+ },
+ "description": "Values returned by the List operation."
+ },
+ "ListPoolsResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Pool"
+ },
+ "description": "The collection of returned pools."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The continuation token."
+ }
+ },
+ "description": "Values returned by the List operation."
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/CloudErrorBody"
+ }
+ },
+ "description": "An error response from the Batch service."
+ },
+ "CloudErrorBody": {
+ "x-ms-external": true,
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "A message describing the error, intended to be suitable for display in a user interface."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the particular error. For example, the name of the property in error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudErrorBody"
+ },
+ "description": "A list of additional details about the error."
+ }
+ },
+ "description": "An error response from the Batch service."
+ },
+ "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, or listKeys/action",
+ "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"
+ }
+ }
+ },
+ "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."
+ }
+ }
+ },
+ "CheckNameAvailabilityParameters": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name to check for availability"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "Microsoft.Batch/batchAccounts"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceType",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Microsoft.Batch/batchAccounts",
+ "description": "The Batch account resource type.",
+ "name": "BatchAccounts"
+ }
+ ]
+ },
+ "description": "The resource type."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "description": "Parameters for a check name availability request."
+ },
+ "CheckNameAvailabilityResult": {
+ "properties": {
+ "nameAvailable": {
+ "readOnly": true,
+ "type": "boolean",
+ "description": "Gets a boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or invalid and cannot be used."
+ },
+ "reason": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "Invalid",
+ "AlreadyExists"
+ ],
+ "x-ms-enum": {
+ "name": "NameAvailabilityReason",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "Invalid",
+ "description": "The requested name is invalid."
+ },
+ {
+ "value": "AlreadyExists",
+ "description": "The requested name is already in use."
+ }
+ ]
+ },
+ "description": "Gets the reason that a Batch account name could not be used. The Reason element is only returned if NameAvailable is false."
+ },
+ "message": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Gets an error message explaining the Reason value in more detail."
+ }
+ },
+ "description": "The CheckNameAvailability operation response."
+ },
+ "MountConfiguration": {
+ "properties": {
+ "azureBlobFileSystemConfiguration": {
+ "$ref": "#/definitions/AzureBlobFileSystemConfiguration",
+ "title": "The Azure Storage Container to mount using blob FUSE on each node.",
+ "description": "This property is mutually exclusive with all other properties."
+ },
+ "nfsMountConfiguration": {
+ "$ref": "#/definitions/NFSMountConfiguration",
+ "title": "The NFS file system to mount on each node.",
+ "description": "This property is mutually exclusive with all other properties."
+ },
+ "cifsMountConfiguration": {
+ "$ref": "#/definitions/CIFSMountConfiguration",
+ "title": "The CIFS/SMB file system to mount on each node.",
+ "description": "This property is mutually exclusive with all other properties."
+ },
+ "azureFileShareConfiguration": {
+ "$ref": "#/definitions/AzureFileShareConfiguration",
+ "title": "The Azure File Share to mount on each node.",
+ "description": "This property is mutually exclusive with all other properties."
+ }
+ },
+ "title": "The file system to mount on each node."
+ },
+ "AzureBlobFileSystemConfiguration": {
+ "properties": {
+ "accountName": {
+ "type": "string",
+ "title": "The Azure Storage Account name."
+ },
+ "containerName": {
+ "type": "string",
+ "title": "The Azure Blob Storage Container name."
+ },
+ "accountKey": {
+ "type": "string",
+ "title": "The Azure Storage Account key.",
+ "description": "This property is mutually exclusive with sasKey and one must be specified."
+ },
+ "sasKey": {
+ "type": "string",
+ "title": "The Azure Storage SAS token.",
+ "description": "This property is mutually exclusive with accountKey and one must be specified."
+ },
+ "blobfuseOptions": {
+ "type": "string",
+ "title": "Additional command line options to pass to the mount command.",
+ "description": "These are 'net use' options in Windows and 'mount' options in Linux."
+ },
+ "relativeMountPath": {
+ "type": "string",
+ "title": "The relative path on the compute node where the file system will be mounted",
+ "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable."
+ }
+ },
+ "required": [
+ "accountName",
+ "containerName",
+ "relativeMountPath"
+ ],
+ "title": "Information used to connect to an Azure Storage Container using Blobfuse."
+ },
+ "NFSMountConfiguration": {
+ "properties": {
+ "source": {
+ "type": "string",
+ "title": "The URI of the file system to mount."
+ },
+ "relativeMountPath": {
+ "type": "string",
+ "title": "The relative path on the compute node where the file system will be mounted",
+ "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable."
+ },
+ "mountOptions": {
+ "type": "string",
+ "title": "Additional command line options to pass to the mount command.",
+ "description": "These are 'net use' options in Windows and 'mount' options in Linux."
+ }
+ },
+ "required": [
+ "source",
+ "relativeMountPath"
+ ],
+ "title": "Information used to connect to an NFS file system."
+ },
+ "CIFSMountConfiguration": {
+ "properties": {
+ "username": {
+ "type": "string",
+ "title": "The user to use for authentication against the CIFS file system."
+ },
+ "source": {
+ "type": "string",
+ "title": "The URI of the file system to mount."
+ },
+ "relativeMountPath": {
+ "type": "string",
+ "title": "The relative path on the compute node where the file system will be mounted",
+ "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable."
+ },
+ "mountOptions": {
+ "type": "string",
+ "title": "Additional command line options to pass to the mount command.",
+ "description": "These are 'net use' options in Windows and 'mount' options in Linux."
+ },
+ "password": {
+ "type": "string",
+ "title": "The password to use for authentication against the CIFS file system."
+ }
+ },
+ "required": [
+ "username",
+ "source",
+ "password",
+ "relativeMountPath"
+ ],
+ "title": "Information used to connect to a CIFS file system."
+ },
+ "AzureFileShareConfiguration": {
+ "properties": {
+ "accountName": {
+ "type": "string",
+ "title": "The Azure Storage account name."
+ },
+ "azureFileUrl": {
+ "type": "string",
+ "title": "The Azure Files URL.",
+ "description": "This is of the form 'https://{account}.file.core.windows.net/'."
+ },
+ "accountKey": {
+ "type": "string",
+ "title": "The Azure Storage account key."
+ },
+ "relativeMountPath": {
+ "type": "string",
+ "title": "The relative path on the compute node where the file system will be mounted",
+ "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable."
+ },
+ "mountOptions": {
+ "type": "string",
+ "title": "Additional command line options to pass to the mount command.",
+ "description": "These are 'net use' options in Windows and 'mount' options in Linux."
+ }
+ },
+ "required": [
+ "accountName",
+ "azureFileUrl",
+ "accountKey",
+ "relativeMountPath"
+ ],
+ "title": "Information used to connect to an Azure Fileshare."
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000)"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "The API version to be used with the HTTP request."
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group that contains the Batch account.",
+ "x-ms-parameter-location": "method"
+ },
+ "AccountNameParameter": {
+ "name": "accountName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9]+$",
+ "minLength": 3,
+ "maxLength": 24,
+ "description": "The name of the Batch account.",
+ "x-ms-parameter-location": "method"
+ },
+ "CertificateNameParameter": {
+ "name": "certificateName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[\\w]+-[\\w]+$",
+ "minLength": 5,
+ "maxLength": 45,
+ "description": "The identifier for the certificate. This must be made up of algorithm and thumbprint separated by a dash, and must match the certificate data in the request. For example SHA1-a3d1c5.",
+ "x-ms-parameter-location": "method"
+ },
+ "PoolNameParameter": {
+ "name": "poolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9_-]+$",
+ "minLength": 1,
+ "maxLength": 64,
+ "description": "The pool name. This must be unique within the account.",
+ "x-ms-parameter-location": "method"
+ },
+ "PrivateLinkResourceNameParameter": {
+ "name": "privateLinkResourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9_-]+\\.?[a-fA-F0-9-]*$",
+ "minLength": 1,
+ "maxLength": 101,
+ "description": "The private link resource name. This must be unique within the account.",
+ "x-ms-parameter-location": "method"
+ },
+ "PrivateEndpointConnectionNameParameter": {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9_-]+\\.?[a-fA-F0-9-]*$",
+ "minLength": 1,
+ "maxLength": 101,
+ "description": "The private endpoint connection name. This must be unique within the account.",
+ "x-ms-parameter-location": "method"
+ },
+ "ApplicationNameParameter": {
+ "name": "applicationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9_-]+$",
+ "minLength": 1,
+ "maxLength": 64,
+ "description": "The name of the application. This must be unique within the account.",
+ "x-ms-parameter-location": "method"
+ },
+ "VersionNameParameter": {
+ "name": "versionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9_-][a-zA-Z0-9_.-]*$",
+ "minLength": 1,
+ "maxLength": 64,
+ "description": "The version of the application.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationCreate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationCreate.json
new file mode 100644
index 000000000000..6b8e8cd6dc8c
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationCreate.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "applicationName": "app1",
+ "parameters": {
+ "properties": {
+ "allowUpdates": false,
+ "displayName": "myAppName"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D64F8EBB3DC411\""
+ },
+ "body": {
+ "type": "Microsoft.Batch/batchAccounts/applications",
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1",
+ "name": "app1",
+ "etag": "W/\"0x8D64F8EBB3DC411\"",
+ "properties": {
+ "allowUpdates": false,
+ "displayName": "myAppName"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationDelete.json
new file mode 100644
index 000000000000..9b227efde0f1
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "applicationName": "app1"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationGet.json
new file mode 100644
index 000000000000..741f95bce72b
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationGet.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "applicationName": "app1"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D64F915BDF7F00\""
+ },
+ "body": {
+ "type": "Microsoft.Batch/batchAccounts/applications",
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1",
+ "name": "app1",
+ "etag": "W/\"0x8D64F915BDF7F00\"",
+ "properties": {
+ "allowUpdates": true,
+ "displayName": "Sample Application"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationList.json
new file mode 100644
index 000000000000..469e7cb6537e
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationList.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "type": "Microsoft.Batch/batchAccounts/applications",
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1",
+ "name": "app1",
+ "etag": "W/\"0x8D64F91A9089879\"",
+ "properties": {
+ "allowUpdates": false,
+ "defaultVersion": "1"
+ }
+ },
+ {
+ "type": "Microsoft.Batch/batchAccounts/applications",
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app2",
+ "name": "app1",
+ "etag": "W/\"0x8D64F91A9089879\"",
+ "properties": {
+ "allowUpdates": false,
+ "defaultVersion": "2.0",
+ "displayName": "myAppName"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageActivate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageActivate.json
new file mode 100644
index 000000000000..a83232097169
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageActivate.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "applicationName": "app1",
+ "versionName": "1",
+ "parameters": {
+ "format": "zip"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D64FEC83A3B436\""
+ },
+ "body": {
+ "type": "Microsoft.Batch/batchAccounts/applications/versions",
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1",
+ "name": "1",
+ "etag": "W/\"0x8D64FEC83A3B436\"",
+ "properties": {
+ "state": "Active",
+ "format": "zip",
+ "lastActivationTime": "2017-06-27T18:48:09.9330991Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageCreate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageCreate.json
new file mode 100644
index 000000000000..309a702809e9
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageCreate.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "applicationName": "app1",
+ "versionName": "1"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D64FEC83A3B436\""
+ },
+ "body": {
+ "type": "Microsoft.Batch/batchAccounts/applications/versions",
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1",
+ "name": "1",
+ "etag": "W/\"0x8D64FEC83A3B436\"",
+ "properties": {
+ "storageUrl": "http://mystorage1.blob.core.windows.net/myapp?mysas",
+ "storageUrlExpiry": "2017-06-27T18:48:09.9330991Z",
+ "state": "Pending"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageDelete.json
new file mode 100644
index 000000000000..6bcf59ddc31e
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "applicationName": "app1",
+ "versionName": "1"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageGet.json
new file mode 100644
index 000000000000..f3056d495ef3
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageGet.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "applicationName": "app1",
+ "versionName": "1"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D64FEC83A3B436\""
+ },
+ "body": {
+ "type": "Microsoft.Batch/batchAccounts/applications/versions",
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1",
+ "name": "1",
+ "etag": "W/\"0x8D64FEC83A3B436\"",
+ "properties": {
+ "state": "Active",
+ "format": "zip",
+ "lastActivationTime": "2017-06-27T18:48:09.9330991Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageList.json
new file mode 100644
index 000000000000..65a151f160bb
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationPackageList.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "applicationName": "app1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "type": "Microsoft.Batch/batchAccounts/applications/versions",
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1.0",
+ "name": "1.0",
+ "etag": "W/\"0x8D64FF0B9F47F67\"",
+ "properties": {
+ "state": "Pending"
+ }
+ },
+ {
+ "type": "Microsoft.Batch/batchAccounts/applications/versions",
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/2.0",
+ "name": "2.0",
+ "etag": "W/\"0x8D64FF0B9F47F67\"",
+ "properties": {
+ "state": "Active",
+ "format": "zip",
+ "lastActivationTime": "2017-06-27T18:48:09.9330991Z"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationUpdate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationUpdate.json
new file mode 100644
index 000000000000..b8c547c50f69
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/ApplicationUpdate.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "applicationName": "app1",
+ "parameters": {
+ "properties": {
+ "allowUpdates": true,
+ "displayName": "myAppName",
+ "defaultVersion": "2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D64F915BDF7F00\""
+ },
+ "body": {
+ "type": "Microsoft.Batch/batchAccounts/applications",
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1",
+ "name": "app1",
+ "etag": "W/\"0x8D64F915BDF7F00\"",
+ "properties": {
+ "allowUpdates": true,
+ "displayName": "myAppName",
+ "defaultVersion": "2"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountCreate_BYOS.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountCreate_BYOS.json
new file mode 100644
index 000000000000..432f68c14f1f
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountCreate_BYOS.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "location": "japaneast",
+ "properties": {
+ "autoStorage": {
+ "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage"
+ },
+ "poolAllocationMode": "UserSubscription",
+ "keyVaultReference": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample",
+ "url": "http://sample.vault.azure.net/"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "name": "sampleacct",
+ "location": "japaneast",
+ "properties": {
+ "accountEndpoint": "sampleacct.japaneast.batch.azure.com",
+ "provisioningState": "Succeeded",
+ "poolAllocationMode": "UserSubscription",
+ "dedicatedCoreQuota": 20,
+ "lowPriorityCoreQuota": 20,
+ "poolQuota": 20,
+ "activeJobAndJobScheduleQuota": 20,
+ "autoStorage": {
+ "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage",
+ "lastKeySync": "2016-03-10T23:48:38.9878479Z"
+ },
+ "keyVaultReference": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample",
+ "url": "http://sample.vault.azure.net/"
+ },
+ "publicNetworkAccess": "Enabled"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct",
+ "type": "Microsoft.Batch/batchAccounts"
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountCreate_Default.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountCreate_Default.json
new file mode 100644
index 000000000000..3a615a73bbb3
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountCreate_Default.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "location": "japaneast",
+ "properties": {
+ "autoStorage": {
+ "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "name": "sampleacct",
+ "location": "japaneast",
+ "properties": {
+ "accountEndpoint": "sampleacct.japaneast.batch.azure.com",
+ "provisioningState": "Succeeded",
+ "poolAllocationMode": "BatchService",
+ "dedicatedCoreQuota": 20,
+ "lowPriorityCoreQuota": 20,
+ "poolQuota": 20,
+ "activeJobAndJobScheduleQuota": 20,
+ "autoStorage": {
+ "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage",
+ "lastKeySync": "2016-03-10T23:48:38.9878479Z"
+ },
+ "publicNetworkAccess": "Enabled"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct",
+ "type": "Microsoft.Batch/batchAccounts"
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountCreate_SystemAssignedIdentity.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountCreate_SystemAssignedIdentity.json
new file mode 100644
index 000000000000..ccece80c6834
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountCreate_SystemAssignedIdentity.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "location": "japaneast",
+ "properties": {
+ "autoStorage": {
+ "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage"
+ }
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "name": "sampleacct",
+ "location": "japaneast",
+ "properties": {
+ "accountEndpoint": "sampleacct.japaneast.batch.azure.com",
+ "provisioningState": "Succeeded",
+ "poolAllocationMode": "BatchService",
+ "dedicatedCoreQuota": 20,
+ "lowPriorityCoreQuota": 20,
+ "poolQuota": 20,
+ "activeJobAndJobScheduleQuota": 20,
+ "autoStorage": {
+ "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage",
+ "lastKeySync": "2016-03-10T23:48:38.9878479Z"
+ },
+ "publicNetworkAccess": "Enabled"
+ },
+ "identity": {
+ "principalId": "1a2e532b-9900-414c-8600-cfc6126628d7",
+ "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd",
+ "type": "SystemAssigned"
+ },
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct",
+ "type": "Microsoft.Batch/batchAccounts"
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountDelete.json
new file mode 100644
index 000000000000..10eaf26f009a
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountGet.json
new file mode 100644
index 000000000000..30f14fa187c2
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountGet.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sampleacct",
+ "location": "japaneast",
+ "properties": {
+ "accountEndpoint": "sampleacct.japaneast.batch.azure.com",
+ "provisioningState": "Succeeded",
+ "poolAllocationMode": "BatchService",
+ "dedicatedCoreQuota": 20,
+ "lowPriorityCoreQuota": 20,
+ "poolQuota": 20,
+ "activeJobAndJobScheduleQuota": 20,
+ "autoStorage": {
+ "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage",
+ "lastKeySync": "2016-03-10T23:48:38.9878479Z"
+ },
+ "publicNetworkAccess": "Enabled"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct",
+ "type": "Microsoft.Batch/batchAccounts"
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountGetKeys.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountGetKeys.json
new file mode 100644
index 000000000000..7ab92a5b58e6
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountGetKeys.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "accountName": "sampleacct",
+ "primary": "AAAA==",
+ "secondary": "BBBB=="
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountList.json
new file mode 100644
index 000000000000..703fc01822af
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountList.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "sampleacct",
+ "location": "japaneast",
+ "properties": {
+ "accountEndpoint": "sampleacct.japaneast.batch.azure.com",
+ "provisioningState": "Succeeded",
+ "poolAllocationMode": "BatchService",
+ "dedicatedCoreQuota": 20,
+ "lowPriorityCoreQuota": 20,
+ "poolQuota": 20,
+ "activeJobAndJobScheduleQuota": 20,
+ "autoStorage": {
+ "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage",
+ "lastKeySync": "2016-03-10T23:48:38.9878479Z"
+ },
+ "publicNetworkAccess": "Enabled"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct",
+ "type": "Microsoft.Batch/batchAccounts"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountListByResourceGroup.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountListByResourceGroup.json
new file mode 100644
index 000000000000..15a83c30b5b9
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountListByResourceGroup.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "sampleacct",
+ "location": "japaneast",
+ "properties": {
+ "accountEndpoint": "sampleacct.japaneast.batch.azure.com",
+ "provisioningState": "Succeeded",
+ "poolAllocationMode": "BatchService",
+ "dedicatedCoreQuota": 20,
+ "lowPriorityCoreQuota": 20,
+ "poolQuota": 20,
+ "activeJobAndJobScheduleQuota": 20,
+ "autoStorage": {
+ "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage",
+ "lastKeySync": "2016-03-10T23:48:38.9878479Z"
+ },
+ "publicNetworkAccess": "Enabled"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct",
+ "type": "Microsoft.Batch/batchAccounts"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountRegenerateKey.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountRegenerateKey.json
new file mode 100644
index 000000000000..84ec60d93d81
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountRegenerateKey.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "keyName": "Primary"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "accountName": "sampleacct",
+ "primary": "AAAA==",
+ "secondary": "BBBB=="
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountSynchronizeAutoStorageKeys.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountSynchronizeAutoStorageKeys.json
new file mode 100644
index 000000000000..409b0dcc2a60
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountSynchronizeAutoStorageKeys.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountUpdate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountUpdate.json
new file mode 100644
index 000000000000..019431d6ed87
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/BatchAccountUpdate.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "autoStorage": {
+ "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sampleacct",
+ "location": "japaneast",
+ "properties": {
+ "accountEndpoint": "sampleacct.japaneast.batch.azure.com",
+ "provisioningState": "Succeeded",
+ "poolAllocationMode": "BatchService",
+ "dedicatedCoreQuota": 20,
+ "lowPriorityCoreQuota": 20,
+ "poolQuota": 20,
+ "activeJobAndJobScheduleQuota": 20,
+ "autoStorage": {
+ "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage",
+ "lastKeySync": "2016-03-10T23:48:38.9878479Z"
+ },
+ "publicNetworkAccess": "Enabled"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct",
+ "type": "Microsoft.Batch/batchAccounts"
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateCancelDeletion.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateCancelDeletion.json
new file mode 100644
index 000000000000..7c6934776ce4
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateCancelDeletion.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDD513C3EDBB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "type": "Microsoft.Batch/batchAccounts/certificates",
+ "etag": "W/\"0x8D4EDD513C3EDBB\"",
+ "properties": {
+ "thumbprintAlgorithm": "sha1",
+ "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z",
+ "previousProvisioningState": "Failed",
+ "previousProvisioningStateTransitionTime": "2017-07-21T00:22:54.3299195Z",
+ "format": "Pfx",
+ "publicData": "MIICrjCCAZagAwI..."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateCreate_Full.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateCreate_Full.json
new file mode 100644
index 000000000000..8d2d14c40ed4
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateCreate_Full.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "parameters": {
+ "properties": {
+ "thumbprintAlgorithm": "sha1",
+ "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "data": "MIIJsgIBAzCCCW4GCSqGSIb3DQE...",
+ "password": "KG0UY40e...",
+ "format": "Pfx"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDD5118668F7\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "type": "Microsoft.Batch/batchAccounts/certificates",
+ "etag": "W/\"0x8D4EDD5118668F7\"",
+ "properties": {
+ "thumbprintAlgorithm": "sha1",
+ "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z",
+ "format": "Pfx",
+ "publicData": "MIICrjCCAZagAwI..."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateCreate_Minimal.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateCreate_Minimal.json
new file mode 100644
index 000000000000..51cbabcd15c2
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateCreate_Minimal.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "parameters": {
+ "properties": {
+ "data": "MIIJsgIBAzCCCW4GCSqGSIb3DQE...",
+ "password": "KG0UY40e..."
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDD5118668F7\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "type": "Microsoft.Batch/batchAccounts/certificates",
+ "etag": "W/\"0x8D4EDD5118668F7\"",
+ "properties": {
+ "thumbprintAlgorithm": "sha1",
+ "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z",
+ "format": "Pfx",
+ "publicData": "MIICrjCCAZagAwI..."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateCreate_MinimalCer.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateCreate_MinimalCer.json
new file mode 100644
index 000000000000..72ebf221b8f9
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateCreate_MinimalCer.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "parameters": {
+ "properties": {
+ "data": "MIICrjCCAZagAwI...",
+ "format": "Cer"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDD5118668F7\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "type": "Microsoft.Batch/batchAccounts/certificates",
+ "etag": "W/\"0x8D4EDD5118668F7\"",
+ "properties": {
+ "thumbprintAlgorithm": "sha1",
+ "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z",
+ "format": "Cer",
+ "publicData": "MIICrjCCAZagAwI..."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateDelete.json
new file mode 100644
index 000000000000..000c37203a5f
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateDelete.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "api-version": "2020-09-01"
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "headers": {
+ "Retry-After": "15",
+ "Location": "https://management.azure.com/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/certificateOperationResults/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e-8D4EDFF164A11C9?api-version=2020-09-01"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateGet.json
new file mode 100644
index 000000000000..ada646b1975b
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateGet.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "api-version": "2020-09-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDD5118668F7\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "type": "Microsoft.Batch/batchAccounts/certificates",
+ "etag": "W/\"0x8D4EDD5118668F7\"",
+ "properties": {
+ "thumbprintAlgorithm": "sha1",
+ "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z",
+ "format": "Pfx",
+ "publicData": "MIICrjCCAZagAwI..."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateGetWithDeletionError.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateGetWithDeletionError.json
new file mode 100644
index 000000000000..9ec5852cb349
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateGetWithDeletionError.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "api-version": "2020-09-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDD5118668F7\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "type": "Microsoft.Batch/batchAccounts/certificates",
+ "etag": "W/\"0x8D4EDD5118668F7\"",
+ "properties": {
+ "thumbprintAlgorithm": "sha1",
+ "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "provisioningState": "Failed",
+ "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z",
+ "previousProvisioningState": "Deleting",
+ "previousProvisioningStateTransitionTime": "2017-07-21T00:15:25.5625498Z",
+ "format": "Pfx",
+ "publicData": "MIICrjCCAZagAwI...",
+ "deleteCertificateError": {
+ "code": "NodesReferencingCertificate",
+ "message": "The specified certificate is being used by the below mentioned node(s)\nRequestId:2dc78afc-b15b-42d2-8c85-39cb61a0799e\nTime:2017-08-28T10:22:52.8633406Z",
+ "target": "BatchAccount",
+ "details": [
+ {
+ "code": "Nodes",
+ "message": "node1, node3"
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateList.json
new file mode 100644
index 000000000000..951e5eb3f632
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateList.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "api-version": "2020-09-01",
+ "maxResults": "1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "type": "Microsoft.Batch/batchAccounts/certificates",
+ "etag": "W/\"0x8D4EDD5118668F7\"",
+ "properties": {
+ "thumbprintAlgorithm": "sha1",
+ "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z",
+ "format": "Pfx",
+ "publicData": "MIICrjCCAZagAwI..."
+ }
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates?api-version=2020-09-01&$skiptoken=NPK%3D28%3A2857p428pug%2022F53A7734C947B8NRK%3D45%3Asha1-c23dc7f22edc793856a7506fe66397ccb4a33b46SM%3D5%3AFalse"
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateListWithFilter.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateListWithFilter.json
new file mode 100644
index 000000000000..e1b16b5bb131
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateListWithFilter.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "api-version": "2020-09-01",
+ "$filter": "properties/provisioningStateTransitionTime gt '2017-05-01' or properties/provisioningState eq 'Failed'",
+ "$select": "properties/format,properties/provisioningState"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "type": "Microsoft.Batch/batchAccounts/certificates",
+ "etag": "W/\"0x8D4EDD5118668F7\"",
+ "properties": {
+ "provisioningState": "Failed",
+ "format": "Pfx"
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-aeb228ffb0bf67a793d61dce263ebd16949f15a1",
+ "name": "sha1-aeb228ffb0bf67a793d61dce263ebd16949f15a1",
+ "type": "Microsoft.Batch/batchAccounts/certificates",
+ "etag": "W/\"0x8D4EDD5118572E0\"",
+ "properties": {
+ "provisioningState": "Failed",
+ "format": "Cer"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateUpdate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateUpdate.json
new file mode 100644
index 000000000000..51cbabcd15c2
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/CertificateUpdate.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "parameters": {
+ "properties": {
+ "data": "MIIJsgIBAzCCCW4GCSqGSIb3DQE...",
+ "password": "KG0UY40e..."
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDD5118668F7\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "type": "Microsoft.Batch/batchAccounts/certificates",
+ "etag": "W/\"0x8D4EDD5118668F7\"",
+ "properties": {
+ "thumbprintAlgorithm": "sha1",
+ "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z",
+ "format": "Pfx",
+ "publicData": "MIICrjCCAZagAwI..."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/LocationCheckNameAvailability_AlreadyExists.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/LocationCheckNameAvailability_AlreadyExists.json
new file mode 100644
index 000000000000..7e1fdb190047
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/LocationCheckNameAvailability_AlreadyExists.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "locationName": "japaneast",
+ "parameters": {
+ "name": "existingaccountname",
+ "type": "Microsoft.Batch/batchAccounts"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": false,
+ "reason": "AlreadyExists",
+ "message": "An account named 'existingaccountname' is already in use."
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/LocationCheckNameAvailability_Available.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/LocationCheckNameAvailability_Available.json
new file mode 100644
index 000000000000..ef9e76d6a14d
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/LocationCheckNameAvailability_Available.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "locationName": "japaneast",
+ "parameters": {
+ "name": "newaccountname",
+ "type": "Microsoft.Batch/batchAccounts"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": true
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/LocationGetQuotas.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/LocationGetQuotas.json
new file mode 100644
index 000000000000..c81c5a8a984b
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/LocationGetQuotas.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "locationName": "japaneast"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "accountQuota": 1
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_FullExample.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_FullExample.json
new file mode 100644
index 000000000000..9e39e88a3411
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_FullExample.json
@@ -0,0 +1,285 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01",
+ "parameters": {
+ "properties": {
+ "displayName": "my-pool-name",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Enabled",
+ "taskSlotsPerNode": 13,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Pack"
+ },
+ "deploymentConfiguration": {
+ "cloudServiceConfiguration": {
+ "osFamily": "4",
+ "osVersion": "WA-GUEST-OS-4.45_201708-01"
+ }
+ },
+ "networkConfiguration": {
+ "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123",
+ "publicIPAddressConfiguration": {
+ "provision": "UserManaged",
+ "ipAddressIds": [
+ "/subscriptions/subid1/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135",
+ "/subscriptions/subid2/resourceGroups/rg24/providers/Microsoft.Network/publicIPAddresses/ip268"
+ ]
+ },
+ "endpointConfiguration": {
+ "inboundNatPools": [
+ {
+ "name": "testnat",
+ "protocol": "TCP",
+ "backendPort": 12001,
+ "frontendPortRangeStart": 15000,
+ "frontendPortRangeEnd": 15100,
+ "networkSecurityGroupRules": [
+ {
+ "access": "Allow",
+ "sourceAddressPrefix": "192.100.12.45",
+ "priority": 150,
+ "sourcePortRanges": [
+ "*"
+ ]
+ },
+ {
+ "access": "Deny",
+ "sourceAddressPrefix": "*",
+ "priority": 3500,
+ "sourcePortRanges": [
+ "*"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "scaleSettings": {
+ "fixedScale": {
+ "targetDedicatedNodes": 6,
+ "targetLowPriorityNodes": 28,
+ "resizeTimeout": "PT8M",
+ "nodeDeallocationOption": "TaskCompletion"
+ }
+ },
+ "metadata": [
+ {
+ "name": "metadata-1",
+ "value": "value-1"
+ },
+ {
+ "name": "metadata-2",
+ "value": "value-2"
+ }
+ ],
+ "startTask": {
+ "commandLine": "cmd /c SET",
+ "resourceFiles": [
+ {
+ "httpUrl": "https://testaccount.blob.core.windows.net/example-blob-file",
+ "filePath": "c:\\temp\\gohere",
+ "fileMode": "777"
+ }
+ ],
+ "environmentSettings": [
+ {
+ "name": "MYSET",
+ "value": "1234"
+ }
+ ],
+ "userIdentity": {
+ "autoUser": {
+ "scope": "Pool",
+ "elevationLevel": "Admin"
+ }
+ },
+ "maxTaskRetryCount": 6,
+ "waitForSuccess": true
+ },
+ "userAccounts": [
+ {
+ "name": "username1",
+ "password": "examplepassword",
+ "elevationLevel": "Admin",
+ "linuxUserConfiguration": {
+ "sshPrivateKey": "sshprivatekeyvalue",
+ "uid": 1234,
+ "gid": 4567
+ }
+ }
+ ],
+ "applicationPackages": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234",
+ "version": "asdf"
+ }
+ ],
+ "certificates": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567",
+ "storeLocation": "LocalMachine",
+ "storeName": "MY",
+ "visibility": [
+ "RemoteUser"
+ ]
+ }
+ ],
+ "applicationLicenses": [
+ "app-license0",
+ "app-license1"
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-28T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Resizing",
+ "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Enabled",
+ "taskSlotsPerNode": 13,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Pack"
+ },
+ "deploymentConfiguration": {
+ "cloudServiceConfiguration": {
+ "osFamily": "4",
+ "osVersion": "WA-GUEST-OS-4.45_201708-01"
+ }
+ },
+ "scaleSettings": {
+ "fixedScale": {
+ "targetDedicatedNodes": 6,
+ "targetLowPriorityNodes": 28,
+ "resizeTimeout": "PT8M",
+ "nodeDeallocationOption": "TaskCompletion"
+ }
+ },
+ "networkConfiguration": {
+ "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123",
+ "publicIPAddressConfiguration": {
+ "provision": "UserManaged",
+ "ipAddressIds": [
+ "/subscriptions/subid1/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135",
+ "/subscriptions/subid2/resourceGroups/rg24/providers/Microsoft.Network/publicIPAddresses/ip268"
+ ]
+ },
+ "endpointConfiguration": {
+ "inboundNatPools": [
+ {
+ "name": "testnat",
+ "protocol": "TCP",
+ "backendPort": 12001,
+ "frontendPortRangeStart": 15000,
+ "frontendPortRangeEnd": 15100,
+ "networkSecurityGroupRules": [
+ {
+ "access": "Allow",
+ "sourceAddressPrefix": "192.100.12.45",
+ "priority": 150,
+ "sourcePortRanges": [
+ "*"
+ ]
+ },
+ {
+ "access": "Deny",
+ "sourceAddressPrefix": "*",
+ "priority": 3500,
+ "sourcePortRanges": [
+ "*"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "metadata": [
+ {
+ "name": "metadata-1",
+ "value": "value-1"
+ },
+ {
+ "name": "metadata-2",
+ "value": "value-2"
+ }
+ ],
+ "startTask": {
+ "commandLine": "cmd /c SET",
+ "resourceFiles": [
+ {
+ "httpUrl": "https://testaccount.blob.core.windows.net/example-blob-file",
+ "filePath": "c:\\temp\\gohere",
+ "fileMode": "777"
+ }
+ ],
+ "environmentSettings": [
+ {
+ "name": "MYSET",
+ "value": "1234"
+ }
+ ],
+ "userIdentity": {
+ "autoUser": {
+ "scope": "Pool",
+ "elevationLevel": "Admin"
+ }
+ },
+ "maxTaskRetryCount": 6,
+ "waitForSuccess": true
+ },
+ "userAccounts": [
+ {
+ "name": "username1",
+ "elevationLevel": "Admin",
+ "linuxUserConfiguration": {
+ "uid": 1234,
+ "gid": 4567
+ }
+ }
+ ],
+ "applicationPackages": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234",
+ "version": "asdf"
+ }
+ ],
+ "certificates": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567",
+ "storeLocation": "LocalMachine",
+ "storeName": "MY",
+ "visibility": [
+ "RemoteUser"
+ ]
+ }
+ ],
+ "applicationLicenses": [
+ "app-license0",
+ "app-license1"
+ ],
+ "currentDedicatedNodes": 0,
+ "currentLowPriorityNodes": 0
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_MinimalCloudServiceConfiguration.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_MinimalCloudServiceConfiguration.json
new file mode 100644
index 000000000000..17b557d1e4db
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_MinimalCloudServiceConfiguration.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01",
+ "parameters": {
+ "properties": {
+ "vmSize": "STANDARD_D4",
+ "deploymentConfiguration": {
+ "cloudServiceConfiguration": {
+ "osFamily": "5"
+ }
+ },
+ "scaleSettings": {
+ "fixedScale": {
+ "targetDedicatedNodes": 3
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-28T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Resizing",
+ "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Disabled",
+ "taskSlotsPerNode": 1,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Spread"
+ },
+ "deploymentConfiguration": {
+ "cloudServiceConfiguration": {
+ "osFamily": "5",
+ "osVersion": "*"
+ }
+ },
+ "scaleSettings": {
+ "fixedScale": {
+ "targetDedicatedNodes": 3,
+ "targetLowPriorityNodes": 0,
+ "resizeTimeout": "PT15M"
+ }
+ },
+ "currentDedicatedNodes": 0,
+ "currentLowPriorityNodes": 0,
+ "resizeOperationStatus": {
+ "startTime": "2017-08-28T10:22:55.9407275Z",
+ "targetDedicatedNodes": 3,
+ "nodeDeallocationOption": "Requeue",
+ "resizeTimeout": "PT15M"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_MinimalVirtualMachineConfiguration.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_MinimalVirtualMachineConfiguration.json
new file mode 100644
index 000000000000..923e04acfa53
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_MinimalVirtualMachineConfiguration.json
@@ -0,0 +1,77 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01",
+ "parameters": {
+ "properties": {
+ "vmSize": "STANDARD_D4",
+ "deploymentConfiguration": {
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "publisher": "Canonical",
+ "offer": "UbuntuServer",
+ "sku": "18.04-LTS",
+ "version": "latest"
+ },
+ "nodeAgentSkuId": "batch.node.ubuntu 18.04"
+ }
+ },
+ "scaleSettings": {
+ "autoScale": {
+ "formula": "$TargetDedicatedNodes=1",
+ "evaluationInterval": "PT5M"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-28T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Resizing",
+ "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Disabled",
+ "taskSlotsPerNode": 1,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Spread"
+ },
+ "deploymentConfiguration": {
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "publisher": "Canonical",
+ "offer": "UbuntuServer",
+ "sku": "18.04-LTS",
+ "version": "latest"
+ },
+ "nodeAgentSkuId": "batch.node.ubuntu 18.04"
+ }
+ },
+ "scaleSettings": {
+ "autoScale": {
+ "formula": "$TargetDedicatedNodes=1",
+ "evaluationInterval": "PT5M"
+ }
+ },
+ "currentDedicatedNodes": 0,
+ "currentLowPriorityNodes": 0
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_NoPublicIPAddresses.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_NoPublicIPAddresses.json
new file mode 100644
index 000000000000..db0df277c332
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_NoPublicIPAddresses.json
@@ -0,0 +1,77 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01",
+ "parameters": {
+ "properties": {
+ "vmSize": "STANDARD_D4",
+ "networkConfiguration": {
+ "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123",
+ "publicIPAddressConfiguration": {
+ "provision": "NoPublicIPAddresses"
+ }
+ },
+ "deploymentConfiguration": {
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1"
+ },
+ "nodeAgentSkuId": "batch.node.ubuntu 18.04"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-28T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Steady",
+ "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Disabled",
+ "taskSlotsPerNode": 1,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Spread"
+ },
+ "networkConfiguration": {
+ "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123",
+ "publicIPAddressConfiguration": {
+ "provision": "NoPublicIPAddresses"
+ }
+ },
+ "deploymentConfiguration": {
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1"
+ },
+ "nodeAgentSkuId": "batch.node.ubuntu 18.04"
+ }
+ },
+ "scaleSettings": {
+ "fixedScale": {
+ "targetDedicatedNodes": 0,
+ "targetLowPriorityNodes": 0
+ }
+ },
+ "currentDedicatedNodes": 0,
+ "currentLowPriorityNodes": 0
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_PublicIPs.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_PublicIPs.json
new file mode 100644
index 000000000000..9ee19fa36fae
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_PublicIPs.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01",
+ "parameters": {
+ "properties": {
+ "vmSize": "STANDARD_D4",
+ "networkConfiguration": {
+ "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123",
+ "publicIPAddressConfiguration": {
+ "provision": "UserManaged",
+ "ipAddressIds": [
+ "/subscriptions/subid1/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135"
+ ]
+ }
+ },
+ "deploymentConfiguration": {
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1"
+ },
+ "nodeAgentSkuId": "batch.node.ubuntu 18.04"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-28T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Steady",
+ "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Disabled",
+ "taskSlotsPerNode": 1,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Spread"
+ },
+ "networkConfiguration": {
+ "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123",
+ "publicIPAddressConfiguration": {
+ "provision": "UserManaged",
+ "ipAddressIds": [
+ "/subscriptions/subid1/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135"
+ ]
+ }
+ },
+ "deploymentConfiguration": {
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1"
+ },
+ "nodeAgentSkuId": "batch.node.ubuntu 18.04"
+ }
+ },
+ "scaleSettings": {
+ "fixedScale": {
+ "targetDedicatedNodes": 0,
+ "targetLowPriorityNodes": 0
+ }
+ },
+ "currentDedicatedNodes": 0,
+ "currentLowPriorityNodes": 0
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_SharedImageGallery.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_SharedImageGallery.json
new file mode 100644
index 000000000000..0ef1defe82af
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_SharedImageGallery.json
@@ -0,0 +1,65 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01",
+ "parameters": {
+ "properties": {
+ "vmSize": "STANDARD_D4",
+ "deploymentConfiguration": {
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1"
+ },
+ "nodeAgentSkuId": "batch.node.ubuntu 18.04"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-28T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Steady",
+ "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Disabled",
+ "taskSlotsPerNode": 1,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Spread"
+ },
+ "deploymentConfiguration": {
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1"
+ },
+ "nodeAgentSkuId": "batch.node.ubuntu 18.04"
+ }
+ },
+ "scaleSettings": {
+ "fixedScale": {
+ "targetDedicatedNodes": 0,
+ "targetLowPriorityNodes": 0
+ }
+ },
+ "currentDedicatedNodes": 0,
+ "currentLowPriorityNodes": 0
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_VirtualMachineConfiguration.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_VirtualMachineConfiguration.json
new file mode 100644
index 000000000000..21ac6ac44143
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolCreate_VirtualMachineConfiguration.json
@@ -0,0 +1,189 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01",
+ "parameters": {
+ "properties": {
+ "vmSize": "STANDARD_D4",
+ "deploymentConfiguration": {
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "publisher": "MicrosoftWindowsServer",
+ "offer": "WindowsServer",
+ "sku": "2016-Datacenter-SmallDisk",
+ "version": "latest"
+ },
+ "nodeAgentSkuId": "batch.node.windows amd64",
+ "windowsConfiguration": {
+ "enableAutomaticUpdates": false
+ },
+ "licenseType": "Windows_Server",
+ "dataDisks": [
+ {
+ "lun": 0,
+ "caching": "ReadWrite",
+ "diskSizeGB": 30,
+ "storageAccountType": "Premium_LRS"
+ },
+ {
+ "lun": 1,
+ "caching": "None",
+ "diskSizeGB": 200,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "diskEncryptionConfiguration": {
+ "targets": [
+ "OsDisk",
+ "TemporaryDisk"
+ ]
+ }
+ }
+ },
+ "networkConfiguration": {
+ "endpointConfiguration": {
+ "inboundNatPools": [
+ {
+ "name": "testnat",
+ "protocol": "TCP",
+ "backendPort": 12001,
+ "frontendPortRangeStart": 15000,
+ "frontendPortRangeEnd": 15100,
+ "networkSecurityGroupRules": [
+ {
+ "access": "Allow",
+ "sourceAddressPrefix": "192.100.12.45",
+ "priority": 150,
+ "sourcePortRanges": [
+ "1",
+ "2"
+ ]
+ },
+ {
+ "access": "Deny",
+ "sourceAddressPrefix": "*",
+ "priority": 3500,
+ "sourcePortRanges": [
+ "*"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "scaleSettings": {
+ "autoScale": {
+ "formula": "$TargetDedicatedNodes=1",
+ "evaluationInterval": "PT5M"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-28T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Resizing",
+ "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Disabled",
+ "taskSlotsPerNode": 1,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Spread"
+ },
+ "deploymentConfiguration": {
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "publisher": "MicrosoftWindowsServer",
+ "offer": "WindowsServer",
+ "sku": "2016-Datacenter-SmallDisk",
+ "version": "latest"
+ },
+ "nodeAgentSkuId": "batch.node.windows amd64",
+ "windowsConfiguration": {
+ "enableAutomaticUpdates": false
+ },
+ "licenseType": "Windows_Server",
+ "dataDisks": [
+ {
+ "lun": 0,
+ "caching": "ReadWrite",
+ "diskSizeGB": 30,
+ "storageAccountType": "Premium_LRS"
+ },
+ {
+ "lun": 1,
+ "caching": "None",
+ "diskSizeGB": 200,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "diskEncryptionConfiguration": {
+ "targets": [
+ "OsDisk",
+ "TemporaryDisk"
+ ]
+ }
+ }
+ },
+ "networkConfiguration": {
+ "endpointConfiguration": {
+ "inboundNatPools": [
+ {
+ "name": "testnat",
+ "protocol": "TCP",
+ "backendPort": 12001,
+ "frontendPortRangeStart": 15000,
+ "frontendPortRangeEnd": 15100,
+ "networkSecurityGroupRules": [
+ {
+ "access": "Allow",
+ "sourceAddressPrefix": "192.100.12.45",
+ "priority": 150,
+ "sourcePortRanges": [
+ "1",
+ "2"
+ ]
+ },
+ {
+ "access": "Deny",
+ "sourceAddressPrefix": "*",
+ "priority": 3500,
+ "sourcePortRanges": [
+ "*"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "scaleSettings": {
+ "autoScale": {
+ "formula": "$TargetDedicatedNodes=1",
+ "evaluationInterval": "PT5M"
+ }
+ },
+ "currentDedicatedNodes": 0,
+ "currentLowPriorityNodes": 0
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolDelete.json
new file mode 100644
index 000000000000..dfb2985cdb22
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolDelete.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01"
+ },
+ "responses": {
+ "200": {},
+ "204": {},
+ "202": {
+ "headers": {
+ "Retry-After": "15",
+ "Location": "https://management.azure.com/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/poolOperationResults/delete-testpool-8D4EDFF164A11C9?api-version=2020-09-01"
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolDisableAutoScale.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolDisableAutoScale.json
new file mode 100644
index 000000000000..54cab4d6b157
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolDisableAutoScale.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-28T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Resizing",
+ "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Disabled",
+ "taskSlotsPerNode": 1,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Spread"
+ },
+ "deploymentConfiguration": {
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "publisher": "Canonical",
+ "offer": "UbuntuServer",
+ "sku": "18.04-LTS",
+ "version": "latest"
+ },
+ "nodeAgentSkuId": "batch.node.ubuntu 18.04"
+ }
+ },
+ "scaleSettings": {
+ "fixedScale": {
+ "targetDedicatedNodes": 3,
+ "targetLowPriorityNodes": 0,
+ "resizeTimeout": "PT15M"
+ }
+ },
+ "currentDedicatedNodes": 0,
+ "currentLowPriorityNodes": 0
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolGet.json
new file mode 100644
index 000000000000..293739c4017e
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolGet.json
@@ -0,0 +1,155 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-28T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Resizing",
+ "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Enabled",
+ "taskSlotsPerNode": 13,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Pack"
+ },
+ "deploymentConfiguration": {
+ "cloudServiceConfiguration": {
+ "osFamily": "4",
+ "osVersion": "WA-GUEST-OS-4.45_201708-01"
+ }
+ },
+ "scaleSettings": {
+ "fixedScale": {
+ "targetDedicatedNodes": 6,
+ "targetLowPriorityNodes": 28,
+ "resizeTimeout": "PT8M"
+ }
+ },
+ "networkConfiguration": {
+ "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123",
+ "endpointConfiguration": {
+ "inboundNatPools": [
+ {
+ "name": "testnat",
+ "protocol": "TCP",
+ "backendPort": 12001,
+ "frontendPortRangeStart": 15000,
+ "frontendPortRangeEnd": 15100,
+ "networkSecurityGroupRules": [
+ {
+ "access": "Allow",
+ "sourceAddressPrefix": "192.100.12.45",
+ "priority": 150,
+ "sourcePortRanges": [
+ "123",
+ "22"
+ ]
+ },
+ {
+ "access": "Deny",
+ "sourceAddressPrefix": "*",
+ "priority": 3500,
+ "sourcePortRanges": [
+ "*"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "metadata": [
+ {
+ "name": "metadata-1",
+ "value": "value-1"
+ },
+ {
+ "name": "metadata-2",
+ "value": "value-2"
+ }
+ ],
+ "startTask": {
+ "commandLine": "cmd /c SET",
+ "resourceFiles": [
+ {
+ "httpUrl": "https://testaccount.blob.core.windows.net/example-blob-file",
+ "filePath": "c:\\temp\\gohere",
+ "fileMode": "777"
+ }
+ ],
+ "environmentSettings": [
+ {
+ "name": "MYSET",
+ "value": "1234"
+ }
+ ],
+ "userIdentity": {
+ "autoUser": {
+ "scope": "Pool",
+ "elevationLevel": "Admin"
+ }
+ },
+ "maxTaskRetryCount": 6,
+ "waitForSuccess": true
+ },
+ "userAccounts": [
+ {
+ "name": "username1",
+ "elevationLevel": "Admin",
+ "linuxUserConfiguration": {
+ "uid": 1234,
+ "gid": 4567
+ }
+ }
+ ],
+ "applicationPackages": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234",
+ "version": "asdf"
+ }
+ ],
+ "certificates": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567",
+ "storeLocation": "LocalMachine",
+ "storeName": "MY",
+ "visibility": [
+ "RemoteUser"
+ ]
+ }
+ ],
+ "applicationLicenses": [
+ "app-license0",
+ "app-license1"
+ ],
+ "currentDedicatedNodes": 0,
+ "currentLowPriorityNodes": 0,
+ "resizeOperationStatus": {
+ "startTime": "2017-08-28T10:22:55.9407275Z",
+ "targetDedicatedNodes": 6,
+ "targetLowPriorityNodes": 28,
+ "nodeDeallocationOption": "TaskCompletion",
+ "resizeTimeout": "PT8M"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolList.json
new file mode 100644
index 000000000000..a6f3b005dd85
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolList.json
@@ -0,0 +1,161 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-28T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Steady",
+ "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Enabled",
+ "taskSlotsPerNode": 13,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Pack"
+ },
+ "deploymentConfiguration": {
+ "cloudServiceConfiguration": {
+ "osFamily": "4",
+ "osVersion": "WA-GUEST-OS-4.45_201708-01"
+ }
+ },
+ "scaleSettings": {
+ "fixedScale": {
+ "targetDedicatedNodes": 6,
+ "targetLowPriorityNodes": 28,
+ "resizeTimeout": "PT8M"
+ }
+ },
+ "networkConfiguration": {
+ "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123",
+ "endpointConfiguration": {
+ "inboundNatPools": [
+ {
+ "name": "testnat",
+ "protocol": "TCP",
+ "backendPort": 12001,
+ "frontendPortRangeStart": 15000,
+ "frontendPortRangeEnd": 15100,
+ "networkSecurityGroupRules": [
+ {
+ "access": "Allow",
+ "sourceAddressPrefix": "192.100.12.45",
+ "priority": 150,
+ "sourcePortRanges": [
+ "*"
+ ]
+ },
+ {
+ "access": "Deny",
+ "sourceAddressPrefix": "*",
+ "priority": 3500,
+ "sourcePortRanges": [
+ "*"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "metadata": [
+ {
+ "name": "metadata-1",
+ "value": "value-1"
+ },
+ {
+ "name": "metadata-2",
+ "value": "value-2"
+ }
+ ],
+ "startTask": {
+ "commandLine": "cmd /c SET",
+ "resourceFiles": [
+ {
+ "httpUrl": "https://testaccount.blob.core.windows.net/example-blob-file",
+ "filePath": "c:\\temp\\gohere",
+ "fileMode": "777"
+ }
+ ],
+ "environmentSettings": [
+ {
+ "name": "MYSET",
+ "value": "1234"
+ }
+ ],
+ "userIdentity": {
+ "autoUser": {
+ "scope": "Pool",
+ "elevationLevel": "Admin"
+ }
+ },
+ "maxTaskRetryCount": 6,
+ "waitForSuccess": true
+ },
+ "userAccounts": [
+ {
+ "name": "username1",
+ "elevationLevel": "Admin",
+ "linuxUserConfiguration": {
+ "uid": 1234,
+ "gid": 4567
+ }
+ }
+ ],
+ "applicationPackages": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234",
+ "version": "asdf"
+ }
+ ],
+ "certificates": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567",
+ "storeLocation": "LocalMachine",
+ "storeName": "MY",
+ "visibility": [
+ "RemoteUser"
+ ]
+ }
+ ],
+ "applicationLicenses": [
+ "app-license0",
+ "app-license1"
+ ],
+ "currentDedicatedNodes": 0,
+ "currentLowPriorityNodes": 0,
+ "resizeOperationStatus": {
+ "startTime": "2017-08-28T10:22:55.9407275Z",
+ "targetDedicatedNodes": 6,
+ "targetLowPriorityNodes": 28,
+ "nodeDeallocationOption": "TaskCompletion",
+ "resizeTimeout": "PT8M",
+ "errors": [
+ {
+ "code": "AllocationTimedout",
+ "message": "Desired number of dedicated nodes could not be allocated as the resize timeout was reached"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolListWithFilter.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolListWithFilter.json
new file mode 100644
index 000000000000..778c32c45df0
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolListWithFilter.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01",
+ "$filter": "startswith(name, 'po') or (properties/allocationState eq 'Steady' and properties/provisioningStateTransitionTime lt datetime'2017-02-02')",
+ "$select": "properties/allocationState,properties/provisioningStateTransitionTime,properties/currentDedicatedNodes,properties/currentLowPriorityNodes",
+ "maxResults": "50"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Steady",
+ "currentDedicatedNodes": 0,
+ "currentLowPriorityNodes": 2
+ }
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/pooltest",
+ "name": "pooltest",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "provisioningStateTransitionTime": "2017-08-26T10:22:55.9407275Z",
+ "allocationState": "Resizing",
+ "currentDedicatedNodes": 4,
+ "currentLowPriorityNodes": 0
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolStopResize.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolStopResize.json
new file mode 100644
index 000000000000..436f16ba43ac
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolStopResize.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-28T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Steady",
+ "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Disabled",
+ "taskSlotsPerNode": 1,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Spread"
+ },
+ "deploymentConfiguration": {
+ "virtualMachineConfiguration": {
+ "imageReference": {
+ "publisher": "Canonical",
+ "offer": "UbuntuServer",
+ "sku": "18.04-LTS",
+ "version": "latest"
+ },
+ "nodeAgentSkuId": "batch.node.ubuntu 18.04"
+ }
+ },
+ "scaleSettings": {
+ "fixedScale": {
+ "targetDedicatedNodes": 3,
+ "targetLowPriorityNodes": 0,
+ "resizeTimeout": "PT15M"
+ }
+ },
+ "resizeOperationStatus": {
+ "startTime": "2017-08-28T10:22:55.9407275Z",
+ "targetDedicatedNodes": 1,
+ "nodeDeallocationOption": "Requeue",
+ "resizeTimeout": "PT10M"
+ },
+ "currentDedicatedNodes": 0,
+ "currentLowPriorityNodes": 0
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolUpdate_EnableAutoScale.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolUpdate_EnableAutoScale.json
new file mode 100644
index 000000000000..9bf3dbb6bf59
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolUpdate_EnableAutoScale.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01",
+ "parameters": {
+ "properties": {
+ "scaleSettings": {
+ "autoScale": {
+ "formula": "$TargetDedicatedNodes=34"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-29T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Resizing",
+ "allocationStateTransitionTime": "2017-08-29T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Disabled",
+ "taskSlotsPerNode": 1,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Spread"
+ },
+ "deploymentConfiguration": {
+ "cloudServiceConfiguration": {
+ "osFamily": "5",
+ "osVersion": "*"
+ }
+ },
+ "scaleSettings": {
+ "autoScale": {
+ "formula": "$TargetDedicated=34",
+ "evaluationInterval": "PT15M"
+ }
+ },
+ "autoScaleRun": {
+ "evaluationTime": "2017-08-29T10:22:55.9407275Z",
+ "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue"
+ },
+ "currentDedicatedNodes": 12,
+ "currentLowPriorityNodes": 0,
+ "resizeOperationStatus": {
+ "startTime": "2017-08-29T10:22:55.9407275Z",
+ "targetDedicatedNodes": 34,
+ "nodeDeallocationOption": "Requeue",
+ "resizeTimeout": "PT15M"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolUpdate_OtherProperties.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolUpdate_OtherProperties.json
new file mode 100644
index 000000000000..ef414fb391d0
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolUpdate_OtherProperties.json
@@ -0,0 +1,115 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01",
+ "parameters": {
+ "properties": {
+ "metadata": [
+ {
+ "name": "key1",
+ "value": "value1"
+ }
+ ],
+ "applicationPackages": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_5678",
+ "version": "1.0"
+ }
+ ],
+ "certificates": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567",
+ "storeLocation": "LocalMachine",
+ "storeName": "MY"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-29T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Resizing",
+ "allocationStateTransitionTime": "2017-08-29T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Disabled",
+ "taskSlotsPerNode": 1,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Spread"
+ },
+ "deploymentConfiguration": {
+ "cloudServiceConfiguration": {
+ "osFamily": "5",
+ "osVersion": "*"
+ }
+ },
+ "scaleSettings": {
+ "fixedScale": {
+ "targetDedicatedNodes": 1,
+ "targetLowPriorityNodes": 0,
+ "resizeTimeout": "PT8M",
+ "nodeDeallocationOption": "TaskCompletion"
+ }
+ },
+ "autoScaleRun": {
+ "evaluationTime": "2017-08-29T10:22:55.9407275Z",
+ "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue"
+ },
+ "currentDedicatedNodes": 12,
+ "currentLowPriorityNodes": 0,
+ "resizeOperationStatus": {
+ "startTime": "2017-08-29T10:22:55.9407275Z",
+ "targetDedicatedNodes": 8,
+ "nodeDeallocationOption": "TaskCompletion",
+ "resizeTimeout": "PT8M"
+ },
+ "metadata": [
+ {
+ "name": "key1",
+ "value": "value1"
+ }
+ ],
+ "applicationPackages": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234"
+ },
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_5678",
+ "version": "1.0"
+ }
+ ],
+ "certificates": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567",
+ "storeLocation": "LocalMachine",
+ "storeName": "MY",
+ "visibility": [
+ "StartTask",
+ "Task",
+ "RemoteUser"
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolUpdate_RemoveStartTask.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolUpdate_RemoveStartTask.json
new file mode 100644
index 000000000000..5db6199f7eef
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolUpdate_RemoveStartTask.json
@@ -0,0 +1,65 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01",
+ "parameters": {
+ "properties": {
+ "startTask": {}
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-29T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Resizing",
+ "allocationStateTransitionTime": "2017-08-29T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Disabled",
+ "taskSlotsPerNode": 1,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Spread"
+ },
+ "deploymentConfiguration": {
+ "cloudServiceConfiguration": {
+ "osFamily": "5",
+ "osVersion": "*"
+ }
+ },
+ "scaleSettings": {
+ "autoScale": {
+ "formula": "$TargetDedicated=34",
+ "evaluationInterval": "PT15M"
+ }
+ },
+ "autoScaleRun": {
+ "evaluationTime": "2017-08-29T10:22:55.9407275Z",
+ "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue"
+ },
+ "currentDedicatedNodes": 12,
+ "currentLowPriorityNodes": 0,
+ "resizeOperationStatus": {
+ "startTime": "2017-08-29T10:22:55.9407275Z",
+ "targetDedicatedNodes": 34,
+ "nodeDeallocationOption": "Requeue",
+ "resizeTimeout": "PT15M"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolUpdate_ResizePool.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolUpdate_ResizePool.json
new file mode 100644
index 000000000000..7e1684e024b3
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PoolUpdate_ResizePool.json
@@ -0,0 +1,74 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "poolName": "testpool",
+ "api-version": "2020-09-01",
+ "parameters": {
+ "properties": {
+ "scaleSettings": {
+ "fixedScale": {
+ "targetDedicatedNodes": 5,
+ "targetLowPriorityNodes": 0,
+ "resizeTimeout": "PT8M",
+ "nodeDeallocationOption": "TaskCompletion"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool",
+ "name": "testpool",
+ "type": "Microsoft.Batch/batchAccounts/pools",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "lastModified": "2017-08-29T10:22:55.9407275Z",
+ "creationTime": "2017-08-28T10:22:55.9407275Z",
+ "provisioningState": "Succeeded",
+ "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z",
+ "allocationState": "Resizing",
+ "allocationStateTransitionTime": "2017-08-29T10:22:55.9407275Z",
+ "vmSize": "STANDARD_D4",
+ "interNodeCommunication": "Disabled",
+ "taskSlotsPerNode": 1,
+ "taskSchedulingPolicy": {
+ "nodeFillType": "Spread"
+ },
+ "deploymentConfiguration": {
+ "cloudServiceConfiguration": {
+ "osFamily": "5",
+ "osVersion": "*"
+ }
+ },
+ "scaleSettings": {
+ "fixedScale": {
+ "targetDedicatedNodes": 1,
+ "targetLowPriorityNodes": 0,
+ "resizeTimeout": "PT8M",
+ "nodeDeallocationOption": "TaskCompletion"
+ }
+ },
+ "autoScaleRun": {
+ "evaluationTime": "2017-08-29T10:22:55.9407275Z",
+ "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue"
+ },
+ "currentDedicatedNodes": 12,
+ "currentLowPriorityNodes": 0,
+ "resizeOperationStatus": {
+ "startTime": "2017-08-29T10:22:55.9407275Z",
+ "targetDedicatedNodes": 8,
+ "nodeDeallocationOption": "TaskCompletion",
+ "resizeTimeout": "PT8M"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateBatchAccountCreate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateBatchAccountCreate.json
new file mode 100644
index 000000000000..716388d7893c
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateBatchAccountCreate.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid",
+ "parameters": {
+ "location": "japaneast",
+ "properties": {
+ "autoStorage": {
+ "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage"
+ },
+ "keyVaultReference": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample",
+ "url": "http://sample.vault.azure.net/"
+ },
+ "publicNetworkAccess": "Disabled"
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "name": "sampleacct",
+ "location": "japaneast",
+ "properties": {
+ "accountEndpoint": "sampleacct.japaneast.batch.azure.com",
+ "provisioningState": "Succeeded",
+ "poolAllocationMode": "UserSubscription",
+ "dedicatedCoreQuota": 20,
+ "lowPriorityCoreQuota": 20,
+ "poolQuota": 20,
+ "activeJobAndJobScheduleQuota": 20,
+ "autoStorage": {
+ "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage",
+ "lastKeySync": "2016-03-10T23:48:38.9878479Z"
+ },
+ "keyVaultReference": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample",
+ "url": "http://sample.vault.azure.net/"
+ },
+ "publicNetworkAccess": "Disabled"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct",
+ "type": "Microsoft.Batch/batchAccounts"
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateBatchAccountGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateBatchAccountGet.json
new file mode 100644
index 000000000000..1071b24004f3
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateBatchAccountGet.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "accountName": "sampleacct",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "sampleacct",
+ "location": "japaneast",
+ "properties": {
+ "accountEndpoint": "sampleacct.japaneast.batch.azure.com",
+ "provisioningState": "Succeeded",
+ "poolAllocationMode": "BatchService",
+ "dedicatedCoreQuota": 20,
+ "lowPriorityCoreQuota": 20,
+ "poolQuota": 20,
+ "activeJobAndJobScheduleQuota": 20,
+ "autoStorage": {
+ "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage",
+ "lastKeySync": "2016-03-10T23:48:38.9878479Z"
+ },
+ "publicNetworkAccess": "Disabled",
+ "privateEndpointConnections": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0",
+ "name": "testprivateEndpointConnection.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0",
+ "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by xyz.abc@company.com"
+ }
+ }
+ }
+ ]
+ },
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct",
+ "type": "Microsoft.Batch/batchAccounts"
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateEndpointConnectionGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateEndpointConnectionGet.json
new file mode 100644
index 000000000000..f17e8b69bf4e
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateEndpointConnectionGet.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "privateEndpointConnectionName": "testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0",
+ "api-version": "2020-09-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0",
+ "name": "testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0",
+ "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by xyz.abc@company.com"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateEndpointConnectionUpdate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateEndpointConnectionUpdate.json
new file mode 100644
index 000000000000..9809c2408861
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateEndpointConnectionUpdate.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "privateEndpointConnectionName": "testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0",
+ "api-version": "2020-09-01",
+ "parameters": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by xyz.abc@company.com"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "ETag": "W/\"0x8D4EDFEBFADF4AB\""
+ },
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0",
+ "name": "testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0",
+ "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections",
+ "etag": "W/\"0x8D4EDFEBFADF4AB\"",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by xyz.abc@company.com"
+ }
+ }
+ }
+ },
+ "204": {},
+ "202": {
+ "headers": {
+ "Retry-After": "15",
+ "Location": "https://management.azure.com/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnectionProxyResults/Updating$testprivateEndpointConnection5.24d6b4b5$e65c-4330-bbe9-3a290d62f8e0-8D4EDFF164A11C9?api-version=2020-09-01"
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateEndpointConnectionsList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateEndpointConnectionsList.json
new file mode 100644
index 000000000000..708f8a563405
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateEndpointConnectionsList.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "privateEndpointConnectionName": "testprivateEndpointConnection",
+ "api-version": "2020-09-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection",
+ "name": "testprivateEndpointConnection",
+ "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by xyz.abc@company.com"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateLinkResourceGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateLinkResourceGet.json
new file mode 100644
index 000000000000..f6176752cb4f
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateLinkResourceGet.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "privateLinkResourceName": "sampleacct",
+ "api-version": "2020-09-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateLinkResources/sampleacct",
+ "name": "sampleacct",
+ "type": "Microsoft.Batch/batchAccounts/privateLinkResources",
+ "properties": {
+ "groupId": "batchAccount",
+ "requiredMembers": [
+ "batchAccount"
+ ],
+ "requiredZoneNames": [
+ "privatelink.japaneast.batch.azure.com"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateLinkResourcesList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateLinkResourcesList.json
new file mode 100644
index 000000000000..79b710d45fb5
--- /dev/null
+++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2020-09-01/examples/PrivateLinkResourcesList.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "subid",
+ "resourceGroupName": "default-azurebatch-japaneast",
+ "accountName": "sampleacct",
+ "privateLinkResourceName": "testprivateLinkResource",
+ "api-version": "2020-09-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateLinkResources/testprivateLinkResource",
+ "name": "testprivateLinkResource",
+ "type": "Microsoft.Batch/batchAccounts/privateLinkResources",
+ "properties": {
+ "groupId": "batchAccount",
+ "requiredMembers": [
+ "batchAccount"
+ ],
+ "requiredZoneNames": [
+ "privatelink.japaneast.batch.azure.com"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/batch/resource-manager/readme.azureresourceschema.md b/specification/batch/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..54f7626e5744
--- /dev/null
+++ b/specification/batch/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,132 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - 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-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.go.md b/specification/batch/resource-manager/readme.go.md
index 35692665cfa7..058ae96ce535 100644
--- a/specification/batch/resource-manager/readme.go.md
+++ b/specification/batch/resource-manager/readme.go.md
@@ -14,6 +14,8 @@ go:
### Go multi-api
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-2020-09
+ - tag: package-2020-05
- tag: package-2020-03
- tag: package-2019-08
- tag: package-2019-04
@@ -24,6 +26,24 @@ batch:
- tag: package-2015-12
```
+### Tag: package-2020-09 and go
+
+These settings apply only when `--tag=package-2020-09 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-09' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-09-01/$(namespace)
+```
+
+### Tag: package-2020-05 and go
+
+These settings apply only when `--tag=package-2020-05 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-05' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-05-01/$(namespace)
+```
+
### Tag: package-2020-03 and go
These settings apply only when `--tag=package-2020-03 --go` is specified on the command line.
@@ -33,7 +53,6 @@ Please also specify `--go-sdk-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 64c9b649cdac..6c29bae8f5b6 100644
--- a/specification/batchai/resource-manager/readme.md
+++ b/specification/batchai/resource-manager/readme.md
@@ -72,6 +72,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js batchai/resource-manager
```
@@ -183,29 +186,7 @@ regenerate-manager: true
generate-interface: true
```
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.BatchAI/preview/2017-09-01-preview/BatchAI.json
- - $(this-folder)/Microsoft.BatchAI/stable/2018-03-01/BatchAI.json
- - $(this-folder)/Microsoft.BatchAI/stable/2018-05-01/BatchAI.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2018-03-01-preview/billingV2.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2018-03-01-preview/billingV2.json
index 94e961a7fdee..a4b03809ce4f 100644
--- a/specification/billing/resource-manager/Microsoft.Billing/preview/2018-03-01-preview/billingV2.json
+++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2018-03-01-preview/billingV2.json
@@ -109,7 +109,7 @@
},
"parameters": [
{
- "$ref": "#/parameters/subscriptionGuidParameter"
+ "$ref": "#/parameters/subscriptionIdParameter"
},
{
"$ref": "#/parameters/apiVersionParameter"
@@ -171,7 +171,7 @@
},
"parameters": [
{
- "$ref": "#/parameters/subscriptionGuidParameter"
+ "$ref": "#/parameters/subscriptionIdParameter"
},
{
"$ref": "#/parameters/apiVersionParameter"
@@ -322,6 +322,11 @@
"description": "The target of the particular error.",
"type": "string",
"readOnly": true
+ },
+ "details": {
+ "description": "The sub details of the error.",
+ "readOnly": true,
+ "$ref": "#/definitions/ErrorSubDetails"
}
}
},
@@ -335,6 +340,29 @@
}
}
},
+ "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
+ }
+ }
+ }
+ },
"Resource": {
"description": "The Resource model definition.",
"properties": {
@@ -365,10 +393,10 @@
"type": "string",
"description": "Version of the API to be used with the client request. The current version is 2018-03-01-preview."
},
- "subscriptionGuidParameter": {
+ "subscriptionIdParameter": {
"name": "subscriptionId",
"in": "path",
- "description": "Azure Subscription ID.",
+ "description": "The ID that uniquely identifies an Azure subscription.",
"required": true,
"type": "string"
}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/billing.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/billing.json
index 38e006b05097..2f6b7a0b47ad 100644
--- a/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/billing.json
+++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/billing.json
@@ -1685,6 +1685,74 @@
}
}
},
+ "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/downloadDocuments": {
+ "post": {
+ "tags": [
+ "Invoices"
+ ],
+ "x-ms-examples": {
+ "InvoiceDownload": {
+ "$ref": "./examples/MultipleInvoiceDownload.json"
+ }
+ },
+ "operationId": "Invoices_DownloadMultipleEAInvoice",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "description": "Gets a URL to download an multiple invoices documents (invoice pdf, tax receipts, credit notes) as a zip file.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/billing/"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/billingAccountNameParameter"
+ },
+ {
+ "name": "downloadUrls",
+ "in": "body",
+ "required": true,
+ "description": "An array of download urls for individual documents. The download url paths in the request body should match the path of the original request.",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted.",
+ "headers": {
+ "Location": {
+ "description": "GET this URL to retrieve the status of the asynchronous operation.",
+ "type": "string"
+ },
+ "Retry-After": {
+ "description": "The amount of delay to use while the status of the operation is checked. The value is expressed in seconds.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/DownloadUrl"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
"/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/{invoiceName}": {
"get": {
"tags": [
@@ -1724,6 +1792,74 @@
}
}
},
+ "/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/{subscriptionId}/downloadDocuments": {
+ "post": {
+ "tags": [
+ "Invoices"
+ ],
+ "x-ms-examples": {
+ "BillingSubscriptionInvoiceDownload": {
+ "$ref": "./examples/MultipleBillingSubscriptionInvoiceDownload.json"
+ }
+ },
+ "operationId": "Invoices_DownloadMultipleBillingSubscriptionInvoice",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "description": "Gets a URL to download multiple invoices documents (invoice pdf, tax receipts, credit notes) as a zip file.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/billing/"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "name": "downloadUrls",
+ "in": "body",
+ "required": true,
+ "description": "An array of download urls for individual documents. The download url paths in the request body should match the path of the original request.",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted.",
+ "headers": {
+ "Location": {
+ "description": "GET this URL to retrieve the status of the asynchronous operation.",
+ "type": "string"
+ },
+ "Retry-After": {
+ "description": "The amount of delay to use while the status of the operation is checked. The value is expressed in seconds.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/DownloadUrl"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
"/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoices/{invoiceName}/pricesheet/default/download": {
"post": {
"tags": [
@@ -1900,6 +2036,77 @@
}
}
},
+ "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/downloadDocuments": {
+ "post": {
+ "tags": [
+ "Invoices"
+ ],
+ "x-ms-examples": {
+ "ModernInvoiceDownload": {
+ "$ref": "./examples/MultipleModernInvoiceDownload.json"
+ }
+ },
+ "operationId": "Invoices_DownloadMultipleModernInvoice",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "description": "Gets a URL to download multiple invoices documents (invoice pdf, tax receipts, credit notes) as a zip file.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/billing/"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/billingAccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/billingProfileNameParameter"
+ },
+ {
+ "name": "downloadUrls",
+ "in": "body",
+ "required": true,
+ "description": "An array of download urls for individual documents. The download url paths in the request body should match the path of the original request.",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted.",
+ "headers": {
+ "Location": {
+ "description": "GET this URL to retrieve the status of the asynchronous operation.",
+ "type": "string"
+ },
+ "Retry-After": {
+ "description": "The amount of delay to use while the status of the operation is checked. The value is expressed in seconds.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/DownloadUrl"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
"/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoices/{invoiceName}": {
"get": {
"tags": [
@@ -4473,6 +4680,52 @@
}
}
}
+ },
+ "put": {
+ "tags": [
+ "BillingRoleAssignments"
+ ],
+ "operationId": "RoleAssignments_Put",
+ "description": "Create or update a billing role assignment.",
+ "x-ms-examples": {
+ "PutEnrollmentAdministratorRoleAssignment": {
+ "$ref": "./examples/PutAdministratorRoleAssignment.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/billingAccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/billingRoleAssignmentNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BillingRoleAssignment"
+ },
+ "description": "The new or updated billing role assignment."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/BillingRoleAssignment"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
}
},
"/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}/billingRoleAssignments/{billingRoleAssignmentName}": {
@@ -4725,6 +4978,55 @@
}
}
}
+ },
+ "put": {
+ "tags": [
+ "BillingRoleAssignments"
+ ],
+ "operationId": "EnrollmentDepartmentRoleAssignments_Put",
+ "description": "Create or update a billing role assignment.",
+ "x-ms-examples": {
+ "PutEnrollmentDepartmentAdministratorRoleAssignment": {
+ "$ref": "./examples/PutEnrollmentDepartmentAdministratorRoleAssignment.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/billingAccountNameParameter"
+ },
+ {
+ "$ref": "#/parameters/departmentNameParameter"
+ },
+ {
+ "$ref": "#/parameters/billingRoleAssignmentNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/BillingRoleAssignment"
+ },
+ "description": "The new or updated billing role assignment."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/BillingRoleAssignment"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
}
},
"/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/enrollmentAccounts/{enrollmentAccountName}/billingRoleAssignments/{billingRoleAssignmentName}": {
@@ -6909,6 +7211,11 @@
"description": "The target of the particular error.",
"type": "string",
"readOnly": true
+ },
+ "details": {
+ "description": "The sub details of the error.",
+ "readOnly": true,
+ "$ref": "#/definitions/ErrorSubDetails"
}
}
},
@@ -6922,6 +7229,29 @@
}
}
},
+ "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
+ }
+ }
+ }
+ },
"Reseller": {
"description": "Details of the reseller.",
"properties": {
diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/MultipleBillingSubscriptionInvoiceDownload.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/MultipleBillingSubscriptionInvoiceDownload.json
new file mode 100644
index 000000000000..a810e1a7775d
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/MultipleBillingSubscriptionInvoiceDownload.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "api-version": "2019-10-01-preview",
+ "subscriptionId": "{subscriptionId}",
+ "downloadUrls": [
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/{subscriptionId}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2019-10-01-preview",
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/{subscriptionId}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2019-10-01-preview",
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/{subscriptionId}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2019-10-01-preview"
+ ]
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Location": "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/{subscriptionId}/operationResults/invoiceDownload_{operationId}?api-version=2019-10-01-preview",
+ "Retry-After": "10"
+ }
+ },
+ "200": {
+ "body": {
+ "url": "https://myaccount.blob.core.windows.net/invoices/1383724.pdf?sv=2019-02-02&sr=b&sig=sp=r"
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/MultipleInvoiceDownload.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/MultipleInvoiceDownload.json
new file mode 100644
index 000000000000..bd9e7f59f578
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/MultipleInvoiceDownload.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "api-version": "2019-10-01-preview",
+ "billingAccountName": "{billingAccountName}",
+ "downloadUrls": [
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2019-10-01-preview",
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2019-10-01-preview",
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2019-10-01-preview"
+ ]
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Location": "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/operationResults/invoiceDownload_{operationId}?api-version=2019-10-01-preview",
+ "Retry-After": "10"
+ }
+ },
+ "200": {
+ "body": {
+ "url": "https://myaccount.blob.core.windows.net/invoices/1383724.pdf?sv=2019-02-02&sr=b&sp=r"
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/MultipleModernInvoiceDownload.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/MultipleModernInvoiceDownload.json
new file mode 100644
index 000000000000..cafb3e2cbaa7
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/MultipleModernInvoiceDownload.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2019-10-01-preview",
+ "billingAccountName": "{billingAccountName}",
+ "billingProfileName": "{billingProfileName}",
+ "downloadUrls": [
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}billingProfiles/{billingProfileName}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2019-10-01-preview",
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}billingProfiles/{billingProfileName}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2019-10-01-preview",
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}billingProfiles/{billingProfileName}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2019-10-01-preview"
+ ]
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Location": "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}billingProfiles/{billingProfileName}/invoices/{invoiceName}/operationResults/invoiceDownload_{operationId}?api-version=2019-10-01-preview",
+ "Retry-After": "10"
+ }
+ },
+ "200": {
+ "body": {
+ "url": "https://myaccount.blob.core.windows.net/invoices/1383724.pdf?sv=2019-02-02&sr=b&sp=r"
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/PutAdministratorRoleAssignment.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/PutAdministratorRoleAssignment.json
new file mode 100644
index 000000000000..927ad134c30c
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/PutAdministratorRoleAssignment.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2019-10-01-preview",
+ "billingAccountName": "{billingAccountName}",
+ "billingRoleAssignmentName": "{billingRoleAssignmentName}",
+ "parameters": {
+ "properties": {
+ "principalId": "99a1a759-30dd-42c2-828c-db398826bb67",
+ "principalTenantId": "7ca289b9-c32d-4f01-8566-7ff93261d76f",
+ "roleDefinitionId": "/providers/Microsoft.Billing/billingAccounts/7898901/billingRoleDefinitions/9f1983cb-2574-400c-87e9-34cf8e2280db"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/providers/Microsoft.Billing/billingAccounts/7898901/billingRoleAssignments/9dfd08c2-62a3-4d47-85bd-1cdba1408402",
+ "name": "9dfd08c2-62a3-4d47-85bd-1cdba1408402",
+ "properties": {
+ "createdOn": "2019-06-28T19:11:50.6168809+00:00",
+ "createdByPrincipalTenantId": "7ca289b9-c32d-4f01-8566-7ff93261d76f",
+ "createdByPrincipalId": "60d97094-2be4-46cc-a4fe-3633021a25b9",
+ "principalId": "99a1a759-30dd-42c2-828c-db398826bb67",
+ "principalTenantId": "7ca289b9-c32d-4f01-8566-7ff93261d76f",
+ "roleDefinitionId": "/providers/Microsoft.Billing/billingAccounts/7898901/billingRoleDefinitions/9f1983cb-2574-400c-87e9-34cf8e2280db",
+ "scope": "/providers/Microsoft.Billing/billingAccounts/7898901"
+ },
+ "type": "Microsoft.Billing/billingAccounts/billingRoleAssignments"
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/PutEnrollmentDepartmentAdministratorRoleAssignment.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/PutEnrollmentDepartmentAdministratorRoleAssignment.json
new file mode 100644
index 000000000000..ad30ee9ed1f0
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2019-10-01-preview/examples/PutEnrollmentDepartmentAdministratorRoleAssignment.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2019-10-01-preview",
+ "billingAccountName": "{billingAccountName}",
+ "departmentName": "{departmentName}",
+ "billingRoleAssignmentName": "{billingRoleAssignmentName}",
+ "parameters": {
+ "properties": {
+ "principalId": "99a1a759-30dd-42c2-828c-db398826bb67",
+ "principalTenantId": "7ca289b9-c32d-4f01-8566-7ff93261d76f",
+ "roleDefinitionId": "/providers/Microsoft.Billing/billingAccounts/7898901/departments/97603/billingRoleDefinitions/fb2cf67f-be5b-42e7-8025-4683c668f840"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/providers/Microsoft.Billing/billingAccounts/7898901/departments/97603/billingRoleAssignments/9dfd08c2-62a3-4d47-85bd-1cdba1408402",
+ "name": "9dfd08c2-62a3-4d47-85bd-1cdba1408402",
+ "properties": {
+ "createdOn": "2019-06-28T19:11:50.6168809+00:00",
+ "createdByPrincipalTenantId": "7ca289b9-c32d-4f01-8566-7ff93261d76f",
+ "createdByPrincipalId": "60d97094-2be4-46cc-a4fe-3633021a25b9",
+ "principalId": "99a1a759-30dd-42c2-828c-db398826bb67",
+ "principalTenantId": "7ca289b9-c32d-4f01-8566-7ff93261d76f",
+ "roleDefinitionId": "/providers/Microsoft.Billing/billingAccounts/7898901/departments/97603/billingRoleDefinitions/fb2cf67f-be5b-42e7-8025-4683c668f840",
+ "scope": "/providers/Microsoft.Billing/billingAccounts/7898901/departments/97603"
+ },
+ "type": "Microsoft.Billing/billingAccounts/departments/billingRoleAssignments"
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/billing.json b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/billing.json
index 965ec56e3691..65048a244a9f 100644
--- a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/billing.json
+++ b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/billing.json
@@ -1064,6 +1064,9 @@
"x-ms-examples": {
"BillingAccountInvoicesList": {
"$ref": "./examples/BillingAccountInvoicesList.json"
+ },
+ "BillingAccountInvoicesListWithRebillDetails": {
+ "$ref": "./examples/BillingAccountInvoicesListWithRebillDetails.json"
}
},
"operationId": "Invoices_ListByBillingAccount",
@@ -1120,6 +1123,9 @@
"x-ms-examples": {
"InvoicesListByBillingProfile": {
"$ref": "./examples/InvoicesListByBillingProfile.json"
+ },
+ "InvoicesListByBillingProfileWithRebillDetails": {
+ "$ref": "./examples/InvoicesListByBillingProfileWithRebillDetails.json"
}
},
"operationId": "Invoices_ListByBillingProfile",
@@ -1179,6 +1185,15 @@
"x-ms-examples": {
"Invoice": {
"$ref": "./examples/Invoice.json"
+ },
+ "InvoiceWithRebillDetails": {
+ "$ref": "./examples/InvoiceWithRebillDetails.json"
+ },
+ "VoidInvoice": {
+ "$ref": "./examples/VoidInvoice.json"
+ },
+ "CreditNote": {
+ "$ref": "./examples/CreditNote.json"
}
},
"operationId": "Invoices_Get",
@@ -1259,7 +1274,7 @@
],
"x-ms-examples": {
"InvoiceDownload": {
- "$ref": "./examples/InvoiceDownload.json"
+ "$ref": "./examples/ModernInvoiceDownload.json"
}
},
"operationId": "Invoices_DownloadInvoice",
@@ -1318,6 +1333,74 @@
}
}
},
+ "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/downloadDocuments": {
+ "post": {
+ "tags": [
+ "Invoices"
+ ],
+ "x-ms-examples": {
+ "InvoiceDownload": {
+ "$ref": "./examples/MultipleModernInvoiceDownload.json"
+ }
+ },
+ "operationId": "Invoices_DownloadMultipleModernInvoice",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "description": "Gets a URL to download an multiple invoices documents (invoice pdf, tax receipts, credit notes) as a zip file. The operation is supported for billing accounts with agreement type Microsoft Partner Agreement or Microsoft Customer Agreement.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/billing/"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/billingAccountNameParameter"
+ },
+ {
+ "name": "downloadUrls",
+ "in": "body",
+ "required": true,
+ "description": "An array of download urls for individual documents",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted.",
+ "headers": {
+ "Location": {
+ "description": "GET this URL to retrieve the status of the asynchronous operation.",
+ "type": "string"
+ },
+ "Retry-After": {
+ "description": "The amount of delay to use while the status of the operation is checked. The value is expressed in seconds.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/DownloadUrl"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
"/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingSubscriptions": {
"get": {
"tags": [
@@ -1524,6 +1607,74 @@
}
}
},
+ "/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/{subscriptionId}/downloadDocuments": {
+ "post": {
+ "tags": [
+ "Invoices"
+ ],
+ "x-ms-examples": {
+ "BillingSubscriptionInvoiceDownload": {
+ "$ref": "./examples/MultipleBillingSubscriptionInvoiceDownload.json"
+ }
+ },
+ "operationId": "Invoices_DownloadMultipleBillingSubscriptionInvoice",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "description": "Gets a URL to download multiple invoices documents (invoice pdf, tax receipts, credit notes) as a zip file.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/billing/"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "name": "downloadUrls",
+ "in": "body",
+ "required": true,
+ "description": "An array of download urls for individual documents",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted.",
+ "headers": {
+ "Location": {
+ "description": "GET this URL to retrieve the status of the asynchronous operation.",
+ "type": "string"
+ },
+ "Retry-After": {
+ "description": "The amount of delay to use while the status of the operation is checked. The value is expressed in seconds.",
+ "type": "string"
+ }
+ }
+ },
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/DownloadUrl"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
"/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/billingSubscriptions": {
"get": {
"tags": [
@@ -4600,6 +4751,11 @@
"description": "The target of the particular error.",
"type": "string",
"readOnly": true
+ },
+ "details": {
+ "description": "The sub details of the error.",
+ "readOnly": true,
+ "$ref": "#/definitions/ErrorSubDetails"
}
}
},
@@ -4613,6 +4769,29 @@
}
}
},
+ "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
+ }
+ }
+ }
+ },
"Reseller": {
"description": "Details of the reseller.",
"properties": {
@@ -4704,7 +4883,8 @@
"enum": [
"Due",
"OverDue",
- "Paid"
+ "Paid",
+ "Void"
],
"readOnly": true,
"x-ms-enum": {
@@ -4814,6 +4994,38 @@
"$ref": "#/definitions/PaymentProperties"
}
},
+ "rebillDetails": {
+ "description": "Rebill details for an invoice.",
+ "type": "object",
+ "readOnly": true,
+ "additionalProperties": {
+ "type": "object",
+ "$ref": "#/definitions/RebillDetails"
+ }
+ },
+ "documentType": {
+ "description": "The type of the document.",
+ "type": "string",
+ "enum": [
+ "Invoice",
+ "CreditNote"
+ ],
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "InvoiceDocumentType",
+ "modelAsString": true
+ }
+ },
+ "billedDocumentId": {
+ "description": "The Id of the active invoice which is originally billed after this invoice was voided. This field is applicable to the void invoices only.",
+ "type": "string",
+ "readOnly": true
+ },
+ "creditForDocumentId": {
+ "description": "The Id of the invoice which got voided and this credit note was issued as a result. This field is applicable to the credit notes only.",
+ "type": "string",
+ "readOnly": true
+ },
"subscriptionId": {
"description": "The ID of the subscription for which the invoice is generated.",
"type": "string",
@@ -4861,6 +5073,30 @@
}
}
},
+ "RebillDetails": {
+ "description": "The rebill details of an invoice.",
+ "properties": {
+ "creditNoteDocumentId": {
+ "description": "The ID of credit note.",
+ "type": "string",
+ "readOnly": true
+ },
+ "invoiceDocumentId": {
+ "description": "The ID of invoice.",
+ "type": "string",
+ "readOnly": true
+ },
+ "rebillDetails": {
+ "description": "Rebill details for an invoice.",
+ "type": "object",
+ "readOnly": true,
+ "additionalProperties": {
+ "type": "object",
+ "$ref": "#/definitions/RebillDetails"
+ }
+ }
+ }
+ },
"Document": {
"description": "The properties of a document.",
"properties": {
diff --git a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/BillingAccountInvoicesList.json b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/BillingAccountInvoicesList.json
index 843c4e2bc85a..d95c28a8d7a4 100644
--- a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/BillingAccountInvoicesList.json
+++ b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/BillingAccountInvoicesList.json
@@ -55,6 +55,7 @@
"billingProfileId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/11000000-0000-0000-0000-000000000000",
"billingProfileDisplayName": "Contoso Operations Billing",
"purchaseOrderNumber": "123456",
+ "documentType": "Invoice",
"documents": [
{
"kind": "Invoice",
@@ -122,6 +123,7 @@
"billingProfileId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/11000000-0000-0000-0000-000000000000",
"billingProfileDisplayName": "Contoso Operations Billing",
"purchaseOrderNumber": "123456",
+ "documentType": "Invoice",
"documents": [
{
"kind": "TaxReceipt",
diff --git a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/BillingAccountInvoicesListWithRebillDetails.json b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/BillingAccountInvoicesListWithRebillDetails.json
new file mode 100644
index 000000000000..6a6f68ce064d
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/BillingAccountInvoicesListWithRebillDetails.json
@@ -0,0 +1,161 @@
+{
+ "parameters": {
+ "api-version": "2020-05-01",
+ "billingAccountName": "{billingAccountName}",
+ "periodStartDate": "2018-01-01",
+ "periodEndDate": "2018-06-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/I000003",
+ "name": "I000003",
+ "type": "Microsoft.Billing/billingAccounts/invoices",
+ "properties": {
+ "dueDate": "2018-01-16T17:32:28Z",
+ "invoiceDate": "2018-01-01T17:32:28Z",
+ "status": "Due",
+ "amountDue": {
+ "currency": "USD",
+ "value": 8.53
+ },
+ "billedAmount": {
+ "currency": "USD",
+ "value": 33.99
+ },
+ "azurePrepaymentApplied": {
+ "currency": "USD",
+ "value": 25.46
+ },
+ "creditAmount": {
+ "currency": "USD",
+ "value": 1.00
+ },
+ "freeAzureCreditApplied": {
+ "currency": "USD",
+ "value": 0.00
+ },
+ "subTotal": {
+ "currency": "USD",
+ "value": 33.99
+ },
+ "taxAmount": {
+ "currency": "USD",
+ "value": 0.00
+ },
+ "totalAmount": {
+ "currency": "USD",
+ "value": 7.53
+ },
+ "invoicePeriodStartDate": "2018-01-01T17:32:28Z",
+ "invoicePeriodEndDate": "2018-01-15T17:32:28Z",
+ "isMonthlyInvoice": false,
+ "billingProfileId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/11000000-0000-0000-0000-000000000000",
+ "billingProfileDisplayName": "Contoso Operations Billing",
+ "purchaseOrderNumber": "123456",
+ "documentType": "Invoice",
+ "documents": [
+ {
+ "kind": "Invoice",
+ "url": "https://microsoft.com/invoice.pdf",
+ "source": "DRS"
+ }
+ ],
+ "payments": [
+ {
+ "date": "2018-01-14T17:32:28Z",
+ "paymentType": "credited",
+ "amount": {
+ "currency": "USD",
+ "value": 1.00
+ },
+ "paymentMethodFamily": "CreditCard",
+ "paymentMethodType": "visa"
+ }
+ ],
+ "rebillDetails": {
+ "creditNoteDocumentId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/CreditNote2",
+ "invoiceDocumentId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/I000002",
+ "rebillDetails": {
+ "creditNoteDocumentId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/CreditNote1",
+ "invoiceDocumentId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/I000001",
+ "rebillDetails": null
+ }
+ }
+ }
+ },
+ {
+ "id": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/1383724",
+ "name": "1383724",
+ "type": "Microsoft.Billing/billingAccounts/invoices",
+ "properties": {
+ "dueDate": "2018-03-01T17:32:28Z",
+ "invoiceDate": "2018-02-01T17:32:28Z",
+ "status": "PastDue",
+ "amountDue": {
+ "currency": "USD",
+ "value": 16.53
+ },
+ "billedAmount": {
+ "currency": "USD",
+ "value": 33.99
+ },
+ "azurePrepaymentApplied": {
+ "currency": "USD",
+ "value": 15.46
+ },
+ "creditAmount": {
+ "currency": "USD",
+ "value": 2.00
+ },
+ "freeAzureCreditApplied": {
+ "currency": "USD",
+ "value": 0.00
+ },
+ "subTotal": {
+ "currency": "USD",
+ "value": 33.99
+ },
+ "taxAmount": {
+ "currency": "USD",
+ "value": 0.00
+ },
+ "totalAmount": {
+ "currency": "USD",
+ "value": 16.53
+ },
+ "invoicePeriodStartDate": "2018-02-01T17:32:28Z",
+ "invoicePeriodEndDate": "2018-02-28T17:32:28Z",
+ "isMonthlyInvoice": true,
+ "billingProfileId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/11000000-0000-0000-0000-000000000000",
+ "billingProfileDisplayName": "Contoso Operations Billing",
+ "purchaseOrderNumber": "123456",
+ "documentType": "Invoice",
+ "documents": [
+ {
+ "kind": "TaxReceipt",
+ "url": "https://microsoft.com/taxreceipt.pdf",
+ "source": "DRS"
+ }
+ ],
+ "payments": [
+ {
+ "date": "2018-01-14T17:32:28Z",
+ "paymentType": "credited",
+ "amount": {
+ "currency": "USD",
+ "value": 2.00
+ },
+ "paymentMethodFamily": "CreditCard",
+ "paymentMethodType": "visa"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/BillingSubscriptionInvoiceDownload.json b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/BillingSubscriptionInvoiceDownload.json
index 226bfa9ef63e..1d2f434b068d 100644
--- a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/BillingSubscriptionInvoiceDownload.json
+++ b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/BillingSubscriptionInvoiceDownload.json
@@ -8,7 +8,7 @@
"responses": {
"202": {
"headers": {
- "Location": "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/11000000-0000-0000-0000-000000000000/operationResults/invoiceDownload_11000000-0000-0000-0000-000000000000?api-version=2020-05-01",
+ "Location": "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/{subscriptionId}/operationResults/invoiceDownload_{operationId}?api-version=2020-05-01",
"Retry-After": "10"
}
},
diff --git a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/CreditNote.json b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/CreditNote.json
new file mode 100644
index 000000000000..436f1f56ee11
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/CreditNote.json
@@ -0,0 +1,85 @@
+{
+ "parameters": {
+ "api-version": "2020-05-01",
+ "billingAccountName": "{billingAccountName}",
+ "invoiceName": "{invoiceName}"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/{invoiceName}",
+ "name": "{invoiceName}",
+ "type": "Microsoft.Billing/billingAccounts/invoices",
+ "properties": {
+ "dueDate": "2018-01-16T17:32:28Z",
+ "invoiceDate": "2018-01-01T17:32:28Z",
+ "status": "Paid",
+ "amountDue": {
+ "currency": "USD",
+ "value": 16.53
+ },
+ "billedAmount": {
+ "currency": "USD",
+ "value": 33.99
+ },
+ "azurePrepaymentApplied": {
+ "currency": "USD",
+ "value": 15.46
+ },
+ "creditAmount": {
+ "currency": "USD",
+ "value": 2.00
+ },
+ "freeAzureCreditApplied": {
+ "currency": "USD",
+ "value": 0.00
+ },
+ "subTotal": {
+ "currency": "USD",
+ "value": 33.99
+ },
+ "taxAmount": {
+ "currency": "USD",
+ "value": 0.00
+ },
+ "totalAmount": {
+ "currency": "USD",
+ "value": 16.53
+ },
+ "invoicePeriodStartDate": "2018-01-01T17:32:28Z",
+ "invoicePeriodEndDate": "2018-01-15T17:32:28Z",
+ "isMonthlyInvoice": false,
+ "billingProfileId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}",
+ "billingProfileDisplayName": "Contoso Operations Billing",
+ "purchaseOrderNumber": "123456",
+ "documentType": "CreditNote",
+ "creditForDocumentId": "providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/I000001",
+ "documents": [
+ {
+ "kind": "Invoice",
+ "url": "https://microsoft.com/invoice.pdf",
+ "source": "DRS"
+ },
+ {
+ "kind": "TaxReceipt",
+ "url": "https://microsoft.com/taxDoc.pdf",
+ "source": "DRS"
+ }
+ ],
+ "payments": [
+ {
+ "date": "2018-01-14T17:32:28Z",
+ "paymentType": "credited",
+ "amount": {
+ "currency": "USD",
+ "value": 2.00
+ },
+ "paymentMethodFamily": "CreditCard",
+ "paymentMethodType": "visa"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/Invoice.json b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/Invoice.json
index a956b6a06d95..431057fff203 100644
--- a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/Invoice.json
+++ b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/Invoice.json
@@ -7,7 +7,7 @@
"responses": {
"200": {
"body": {
- "id": "providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/{invoiceName}",
+ "id": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/{invoiceName}",
"name": "{invoiceName}",
"type": "Microsoft.Billing/billingAccounts/invoices",
"properties": {
@@ -52,6 +52,7 @@
"billingProfileId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}",
"billingProfileDisplayName": "Contoso Operations Billing",
"purchaseOrderNumber": "123456",
+ "documentType": "Invoice",
"documents": [
{
"kind": "Invoice",
diff --git a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/InvoiceWithRebillDetails.json b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/InvoiceWithRebillDetails.json
new file mode 100644
index 000000000000..7d9962a235e2
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/InvoiceWithRebillDetails.json
@@ -0,0 +1,93 @@
+{
+ "parameters": {
+ "api-version": "2020-05-01",
+ "billingAccountName": "{billingAccountName}",
+ "invoiceName": "{invoiceName}"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/{invoiceName}",
+ "name": "{invoiceName}",
+ "type": "Microsoft.Billing/billingAccounts/invoices",
+ "properties": {
+ "dueDate": "2018-01-16T17:32:28Z",
+ "invoiceDate": "2018-01-01T17:32:28Z",
+ "status": "Due",
+ "amountDue": {
+ "currency": "USD",
+ "value": 16.53
+ },
+ "billedAmount": {
+ "currency": "USD",
+ "value": 33.99
+ },
+ "azurePrepaymentApplied": {
+ "currency": "USD",
+ "value": 15.46
+ },
+ "creditAmount": {
+ "currency": "USD",
+ "value": 2.00
+ },
+ "freeAzureCreditApplied": {
+ "currency": "USD",
+ "value": 0.00
+ },
+ "subTotal": {
+ "currency": "USD",
+ "value": 33.99
+ },
+ "taxAmount": {
+ "currency": "USD",
+ "value": 0.00
+ },
+ "totalAmount": {
+ "currency": "USD",
+ "value": 16.53
+ },
+ "invoicePeriodStartDate": "2018-01-01T17:32:28Z",
+ "invoicePeriodEndDate": "2018-01-15T17:32:28Z",
+ "isMonthlyInvoice": false,
+ "billingProfileId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}",
+ "billingProfileDisplayName": "Contoso Operations Billing",
+ "purchaseOrderNumber": "123456",
+ "documentType": "Invoice",
+ "documents": [
+ {
+ "kind": "Invoice",
+ "url": "https://microsoft.com/invoice.pdf",
+ "source": "DRS"
+ },
+ {
+ "kind": "TaxReceipt",
+ "url": "https://microsoft.com/taxDoc.pdf",
+ "source": "DRS"
+ }
+ ],
+ "payments": [
+ {
+ "date": "2018-01-14T17:32:28Z",
+ "paymentType": "credited",
+ "amount": {
+ "currency": "USD",
+ "value": 2.00
+ },
+ "paymentMethodFamily": "CreditCard",
+ "paymentMethodType": "visa"
+ }
+ ],
+ "rebillDetails": {
+ "creditNoteDocumentId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/CreditNote2",
+ "invoiceDocumentId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/I000002",
+ "rebillDetails": {
+ "creditNoteDocumentId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/CreditNote1",
+ "invoiceDocumentId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/I000001",
+ "rebillDetails": null
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/InvoicesListByBillingProfile.json b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/InvoicesListByBillingProfile.json
index f2dd0ffc9c42..c3300eaa6ae8 100644
--- a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/InvoicesListByBillingProfile.json
+++ b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/InvoicesListByBillingProfile.json
@@ -56,6 +56,7 @@
"billingProfileId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}",
"billingProfileDisplayName": "Contoso Operations Billing",
"purchaseOrderNumber": "123456",
+ "documentType": "Invoice",
"documents": [
{
"kind": "Invoice",
@@ -128,6 +129,7 @@
"billingProfileId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}",
"billingProfileDisplayName": "Contoso Operations Billing",
"purchaseOrderNumber": "123456",
+ "documentType": "Invoice",
"documents": [
{
"kind": "Invoice",
diff --git a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/InvoicesListByBillingProfileWithRebillDetails.json b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/InvoicesListByBillingProfileWithRebillDetails.json
new file mode 100644
index 000000000000..e86609b85ef8
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/InvoicesListByBillingProfileWithRebillDetails.json
@@ -0,0 +1,172 @@
+{
+ "parameters": {
+ "api-version": "2020-05-01",
+ "billingAccountName": "{billingAccountName}",
+ "billingProfileName": "{billingProfileName}",
+ "periodStartDate": "2018-01-01",
+ "periodEndDate": "2018-06-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/I000003",
+ "name": "I000003",
+ "type": "Microsoft.Billing/billingAccounts/invoices",
+ "properties": {
+ "dueDate": "2018-01-16T17:32:28Z",
+ "invoiceDate": "2018-01-01T17:32:28Z",
+ "status": "Due",
+ "amountDue": {
+ "currency": "USD",
+ "value": 8.53
+ },
+ "billedAmount": {
+ "currency": "USD",
+ "value": 33.99
+ },
+ "azurePrepaymentApplied": {
+ "currency": "USD",
+ "value": 25.46
+ },
+ "creditAmount": {
+ "currency": "USD",
+ "value": 1.00
+ },
+ "freeAzureCreditApplied": {
+ "currency": "USD",
+ "value": 0.00
+ },
+ "subTotal": {
+ "currency": "USD",
+ "value": 33.99
+ },
+ "taxAmount": {
+ "currency": "USD",
+ "value": 0.00
+ },
+ "totalAmount": {
+ "currency": "USD",
+ "value": 7.53
+ },
+ "invoicePeriodStartDate": "2018-01-01T17:32:28Z",
+ "invoicePeriodEndDate": "2018-01-15T17:32:28Z",
+ "isMonthlyInvoice": false,
+ "billingProfileId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}",
+ "billingProfileDisplayName": "Contoso Operations Billing",
+ "purchaseOrderNumber": "123456",
+ "documentType": "Invoice",
+ "documents": [
+ {
+ "kind": "Invoice",
+ "url": "https://microsoft.com/invoice.pdf",
+ "source": "DRS"
+ },
+ {
+ "kind": "TaxReceipt",
+ "url": "https://microsoft.com/taxDoc.pdf",
+ "source": "DRS"
+ }
+ ],
+ "payments": [
+ {
+ "date": "2018-01-14T17:32:28Z",
+ "paymentType": "credited",
+ "amount": {
+ "currency": "USD",
+ "value": 1.00
+ },
+ "paymentMethodFamily": "CreditCard",
+ "paymentMethodType": "visa"
+ }
+ ],
+ "rebillDetails": {
+ "creditNoteDocumentId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/CreditNote2",
+ "invoiceDocumentId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/I000002",
+ "rebillDetails": {
+ "creditNoteDocumentId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/CreditNote1",
+ "invoiceDocumentId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/I000001",
+ "rebillDetails": null
+ }
+ }
+ }
+ },
+ {
+ "id": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/1383724",
+ "name": "1383724",
+ "type": "Microsoft.Billing/billingAccounts/invoices",
+ "properties": {
+ "dueDate": "2018-03-01T17:32:28Z",
+ "invoiceDate": "2018-01-01T17:32:28Z",
+ "status": "Due",
+ "amountDue": {
+ "currency": "USD",
+ "value": 16.53
+ },
+ "billedAmount": {
+ "currency": "USD",
+ "value": 33.99
+ },
+ "azurePrepaymentApplied": {
+ "currency": "USD",
+ "value": 15.46
+ },
+ "creditAmount": {
+ "currency": "USD",
+ "value": 2.00
+ },
+ "freeAzureCreditApplied": {
+ "currency": "USD",
+ "value": 0.00
+ },
+ "subTotal": {
+ "currency": "USD",
+ "value": 33.99
+ },
+ "taxAmount": {
+ "currency": "USD",
+ "value": 0.00
+ },
+ "totalAmount": {
+ "currency": "USD",
+ "value": 16.53
+ },
+ "invoicePeriodStartDate": "2018-02-01T17:32:28Z",
+ "invoicePeriodEndDate": "2018-02-28T17:32:28Z",
+ "isMonthlyInvoice": true,
+ "billingProfileId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}",
+ "billingProfileDisplayName": "Contoso Operations Billing",
+ "purchaseOrderNumber": "123456",
+ "documentType": "Invoice",
+ "documents": [
+ {
+ "kind": "Invoice",
+ "url": "https://microsoft.com/invoice.pdf",
+ "source": "DRS"
+ },
+ {
+ "kind": "TaxReceipt",
+ "url": "https://microsoft.com/taxDoc.pdf",
+ "source": "DRS"
+ }
+ ],
+ "payments": [
+ {
+ "date": "2018-01-14T17:32:28Z",
+ "paymentType": "credited",
+ "amount": {
+ "currency": "USD",
+ "value": 2.00
+ },
+ "paymentMethodFamily": "CreditCard",
+ "paymentMethodType": "visa"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/InvoiceDownload.json b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/ModernInvoiceDownload.json
similarity index 83%
rename from specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/InvoiceDownload.json
rename to specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/ModernInvoiceDownload.json
index 9bf994a947cb..38774eb60736 100644
--- a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/InvoiceDownload.json
+++ b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/ModernInvoiceDownload.json
@@ -8,7 +8,7 @@
"responses": {
"202": {
"headers": {
- "Location": "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/{invoiceName}/operationResults/invoiceDownload_11000000-0000-0000-0000-000000000000?api-version=2020-05-01",
+ "Location": "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/{invoiceName}/operationResults/invoiceDownload_{operationId}?api-version=2020-05-01",
"Retry-After": "10"
}
},
diff --git a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/MultipleBillingSubscriptionInvoiceDownload.json b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/MultipleBillingSubscriptionInvoiceDownload.json
new file mode 100644
index 000000000000..00c11b106f6a
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/MultipleBillingSubscriptionInvoiceDownload.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "api-version": "2020-05-01",
+ "subscriptionId": "{subscriptionId}",
+ "downloadUrls": [
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/{subscriptionId}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2020-05-01",
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/{subscriptionId}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2020-05-01",
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/{subscriptionId}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2020-05-01"
+ ]
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Location": "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/default/billingSubscriptions/{subscriptionId}/operationResults/invoiceDownload_{operationId}?api-version=2020-05-01",
+ "Retry-After": "10"
+ }
+ },
+ "200": {
+ "body": {
+ "url": "https://myaccount.blob.core.windows.net/invoices/1383724.pdf?sv=2019-02-02&sr=b&sp=r"
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/MultipleModernInvoiceDownload.json b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/MultipleModernInvoiceDownload.json
new file mode 100644
index 000000000000..209820727664
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/MultipleModernInvoiceDownload.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "api-version": "2020-05-01",
+ "billingAccountName": "{billingAccountName}",
+ "downloadUrls": [
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2020-05-01",
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2020-05-01",
+ "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/{invoiceName}/download?downloadToken={downloadToken}&useCache=True&api-version=2020-05-01"
+ ]
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Location": "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/operationResults/invoiceDownload_{operationId}?api-version=2020-05-01",
+ "Retry-After": "10"
+ }
+ },
+ "200": {
+ "body": {
+ "url": "https://myaccount.blob.core.windows.net/invoices/1383724.pdf?sv=2019-02-02&sr=b&sp=r"
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/VoidInvoice.json b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/VoidInvoice.json
new file mode 100644
index 000000000000..30e3f1b71cbe
--- /dev/null
+++ b/specification/billing/resource-manager/Microsoft.Billing/stable/2020-05-01/examples/VoidInvoice.json
@@ -0,0 +1,85 @@
+{
+ "parameters": {
+ "api-version": "2020-05-01",
+ "billingAccountName": "{billingAccountName}",
+ "invoiceName": "{invoiceName}"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/{invoiceName}",
+ "name": "{invoiceName}",
+ "type": "Microsoft.Billing/billingAccounts/invoices",
+ "properties": {
+ "dueDate": "2018-01-16T17:32:28Z",
+ "invoiceDate": "2018-01-01T17:32:28Z",
+ "status": "Void",
+ "amountDue": {
+ "currency": "USD",
+ "value": 16.53
+ },
+ "billedAmount": {
+ "currency": "USD",
+ "value": 33.99
+ },
+ "azurePrepaymentApplied": {
+ "currency": "USD",
+ "value": 15.46
+ },
+ "creditAmount": {
+ "currency": "USD",
+ "value": 2.00
+ },
+ "freeAzureCreditApplied": {
+ "currency": "USD",
+ "value": 0.00
+ },
+ "subTotal": {
+ "currency": "USD",
+ "value": 33.99
+ },
+ "taxAmount": {
+ "currency": "USD",
+ "value": 0.00
+ },
+ "totalAmount": {
+ "currency": "USD",
+ "value": 16.53
+ },
+ "invoicePeriodStartDate": "2018-01-01T17:32:28Z",
+ "invoicePeriodEndDate": "2018-01-15T17:32:28Z",
+ "isMonthlyInvoice": false,
+ "billingProfileId": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}",
+ "billingProfileDisplayName": "Contoso Operations Billing",
+ "purchaseOrderNumber": "123456",
+ "documentType": "Invoice",
+ "billedDocumentId": "providers/Microsoft.Billing/billingAccounts/{billingAccountName}/invoices/I000002",
+ "documents": [
+ {
+ "kind": "Invoice",
+ "url": "https://microsoft.com/invoice.pdf",
+ "source": "DRS"
+ },
+ {
+ "kind": "TaxReceipt",
+ "url": "https://microsoft.com/taxDoc.pdf",
+ "source": "DRS"
+ }
+ ],
+ "payments": [
+ {
+ "date": "2018-01-14T17:32:28Z",
+ "paymentType": "credited",
+ "amount": {
+ "currency": "USD",
+ "value": 2.00
+ },
+ "paymentMethodFamily": "CreditCard",
+ "paymentMethodType": "visa"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/billing/resource-manager/readme.azureresourceschema.md b/specification/billing/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..e7e163b7b60e
--- /dev/null
+++ b/specification/billing/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,85 @@
+## 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 0fcef38b70b7..f6bf507cb97e 100644
--- a/specification/billing/resource-manager/readme.go.md
+++ b/specification/billing/resource-manager/readme.go.md
@@ -26,7 +26,7 @@ These settings apply only when `--tag=package-2020-05 --go` is specified on the
Please also specify `--go-sdk-folder=`.
``` yaml $(tag) == 'package-2020-05' && $(go)
-output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-05-01/$(namespace)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-05-01-preview/$(namespace)
```
### Tag: package-2018-11-preview and go
diff --git a/specification/billing/resource-manager/readme.md b/specification/billing/resource-manager/readme.md
index f2031f4bbc94..133322e3dbd8 100644
--- a/specification/billing/resource-manager/readme.md
+++ b/specification/billing/resource-manager/readme.md
@@ -104,6 +104,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_billing']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js billing/resource-manager
```
@@ -231,33 +234,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Billing/stable/2020-05-01/billing.json
- - $(this-folder)/Microsoft.Billing/preview/2018-03-01-preview/billingV2.json
- - $(this-folder)/Microsoft.Billing/preview/2019-10-01-preview/billing.json
- - $(this-folder)/Microsoft.Billing/preview/2018-11-01-preview/billing.json
- - $(this-folder)/Microsoft.Billing/preview/2018-03-01-preview/billing.json
- - $(this-folder)/Microsoft.Billing/preview/2017-04-24-preview/billing.json
- - $(this-folder)/Microsoft.Billing/preview/2017-02-27-preview/billing.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/blockchain/resource-manager/readme.azureresourceschema.md b/specification/blockchain/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..01c28ae04c95
--- /dev/null
+++ b/specification/blockchain/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-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 806fc6ac3e2d..ebea104cb0f2 100644
--- a/specification/blockchain/resource-manager/readme.md
+++ b/specification/blockchain/resource-manager/readme.md
@@ -59,6 +59,9 @@ swagger-to-sdk:
after_scripts:
- 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#
@@ -86,27 +89,7 @@ See configuration in [readme.node.md](./readme.node.md)
See configuration in [readme.ruby.md](./readme.ruby.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Blockchain/preview/2018-06-01-preview/blockchain.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/blueprint/resource-manager/readme.azureresourceschema.md b/specification/blueprint/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..4e9a1ed8e02a
--- /dev/null
+++ b/specification/blueprint/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,39 @@
+## 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 5fbee9859aa1..e133f1b7ed9f 100644
--- a/specification/blueprint/resource-manager/readme.md
+++ b/specification/blueprint/resource-manager/readme.md
@@ -63,6 +63,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-sdk-for-python
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js blueprint/resource-manager
```
@@ -131,31 +134,7 @@ directive:
reason: OperationsAPI for Microsoft.Management is out of scope.
```
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Blueprint/preview/2017-11-11-preview/blueprintDefinition.json
- - $(this-folder)/Microsoft.Blueprint/preview/2017-11-11-preview/blueprintAssignment.json
- - $(this-folder)/Microsoft.Blueprint/preview/2018-11-01-preview/blueprintDefinition.json
- - $(this-folder)/Microsoft.Blueprint/preview/2018-11-01-preview/blueprintAssignment.json
- - $(this-folder)/Microsoft.Blueprint/preview/2018-11-01-preview/assignmentOperation.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/botservice/resource-manager/readme.azureresourceschema.md b/specification/botservice/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..3e03a113a69a
--- /dev/null
+++ b/specification/botservice/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,48 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - 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-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.md b/specification/botservice/resource-manager/readme.md
index de1dff1bfa0b..b94651179da3 100644
--- a/specification/botservice/resource-manager/readme.md
+++ b/specification/botservice/resource-manager/readme.md
@@ -96,6 +96,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-net
- repo: azure-sdk-for-python
- repo: azure-sdk-for-go
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js botservice/resource-manager
```
## C#
@@ -124,28 +127,7 @@ See configuration in [readme.java.md](./readme.java.md)
See readme.python.md file.
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.BotService/stable/2020-06-02/botservice.json
- - $(this-folder)/Microsoft.BotService/preview/2018-07-12/botservice.json
- - $(this-folder)/Microsoft.BotService/preview/2017-12-01/botservice.json
-
-```
-
-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/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 e3ccabfbb2ca..0f457026f106 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
@@ -2557,7 +2557,6 @@
"description": "Defines the parameters for RemoteAddress match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -2604,7 +2603,6 @@
"description": "Defines the parameters for RequestMethod match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -2651,7 +2649,6 @@
"description": "Defines the parameters for QueryString match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -2704,8 +2701,6 @@
"description": "Defines the parameters for PostArgs match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -2762,7 +2757,6 @@
"description": "Defines the parameters for RequestUri match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -2815,8 +2809,6 @@
"description": "Defines the parameters for RequestHeader match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -2873,7 +2865,6 @@
"description": "Defines the parameters for RequestBody match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -2926,7 +2917,6 @@
"description": "Defines the parameters for RequestScheme match conditions ",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -2964,7 +2954,6 @@
"description": "Defines the parameters for UrlPath match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3018,7 +3007,6 @@
"description": "Defines the parameters for UrlFileExtension match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3071,7 +3059,6 @@
"description": "Defines the parameters for UrlFilename match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3124,7 +3111,6 @@
"description": "Defines the parameters for HttpVersion match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3162,8 +3148,6 @@
"description": "Defines the parameters for Cookies match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -3220,7 +3204,6 @@
"description": "Defines the parameters for IsDevice match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
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 e2b319a2e9d7..ce3c308a19ca 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
@@ -2567,7 +2567,6 @@
"description": "Defines the parameters for RemoteAddress match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -2614,7 +2613,6 @@
"description": "Defines the parameters for RequestMethod match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -2661,7 +2659,6 @@
"description": "Defines the parameters for QueryString match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -2714,8 +2711,6 @@
"description": "Defines the parameters for PostArgs match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -2772,7 +2767,6 @@
"description": "Defines the parameters for RequestUri match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -2825,8 +2819,6 @@
"description": "Defines the parameters for RequestHeader match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -2883,7 +2875,6 @@
"description": "Defines the parameters for RequestBody match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -2936,7 +2927,6 @@
"description": "Defines the parameters for RequestScheme match conditions ",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -2974,7 +2964,6 @@
"description": "Defines the parameters for UrlPath match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3028,7 +3017,6 @@
"description": "Defines the parameters for UrlFileExtension match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3081,7 +3069,6 @@
"description": "Defines the parameters for UrlFilename match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3134,7 +3121,6 @@
"description": "Defines the parameters for HttpVersion match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3172,8 +3158,6 @@
"description": "Defines the parameters for Cookies match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -3230,7 +3214,6 @@
"description": "Defines the parameters for IsDevice match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
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 4282327a5c0a..47e1d60caf9a 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
@@ -3037,7 +3037,6 @@
"description": "Defines the parameters for RemoteAddress match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3084,7 +3083,6 @@
"description": "Defines the parameters for RequestMethod match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3131,7 +3129,6 @@
"description": "Defines the parameters for QueryString match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3184,8 +3181,6 @@
"description": "Defines the parameters for PostArgs match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -3242,7 +3237,6 @@
"description": "Defines the parameters for RequestUri match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3295,8 +3289,6 @@
"description": "Defines the parameters for RequestHeader match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -3353,7 +3345,6 @@
"description": "Defines the parameters for RequestBody match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3406,7 +3397,6 @@
"description": "Defines the parameters for RequestScheme match conditions ",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3444,7 +3434,6 @@
"description": "Defines the parameters for UrlPath match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3498,7 +3487,6 @@
"description": "Defines the parameters for UrlFileExtension match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3551,7 +3539,6 @@
"description": "Defines the parameters for UrlFilename match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3604,7 +3591,6 @@
"description": "Defines the parameters for HttpVersion match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3642,8 +3628,6 @@
"description": "Defines the parameters for Cookies match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -3700,7 +3684,6 @@
"description": "Defines the parameters for IsDevice match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
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 40bda7fa0c28..45c077e9ec15 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
@@ -3054,7 +3054,6 @@
"description": "Defines the parameters for RemoteAddress match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3101,7 +3100,6 @@
"description": "Defines the parameters for RequestMethod match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3148,7 +3146,6 @@
"description": "Defines the parameters for QueryString match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3201,8 +3198,6 @@
"description": "Defines the parameters for PostArgs match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -3259,7 +3254,6 @@
"description": "Defines the parameters for RequestUri match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3312,8 +3306,6 @@
"description": "Defines the parameters for RequestHeader match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -3370,7 +3362,6 @@
"description": "Defines the parameters for RequestBody match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3423,7 +3414,6 @@
"description": "Defines the parameters for RequestScheme match conditions ",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3461,7 +3451,6 @@
"description": "Defines the parameters for UrlPath match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3515,7 +3504,6 @@
"description": "Defines the parameters for UrlFileExtension match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3568,7 +3556,6 @@
"description": "Defines the parameters for UrlFilename match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3621,7 +3608,6 @@
"description": "Defines the parameters for HttpVersion match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3659,8 +3645,6 @@
"description": "Defines the parameters for Cookies match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -3717,7 +3701,6 @@
"description": "Defines the parameters for IsDevice match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
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 2fcd9a9690c9..5276a6090bc1 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
@@ -3054,7 +3054,6 @@
"description": "Defines the parameters for RemoteAddress match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3101,7 +3100,6 @@
"description": "Defines the parameters for RequestMethod match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3148,7 +3146,6 @@
"description": "Defines the parameters for QueryString match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3201,8 +3198,6 @@
"description": "Defines the parameters for PostArgs match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -3259,7 +3254,6 @@
"description": "Defines the parameters for RequestUri match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3312,8 +3306,6 @@
"description": "Defines the parameters for RequestHeader match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -3370,7 +3362,6 @@
"description": "Defines the parameters for RequestBody match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3423,7 +3414,6 @@
"description": "Defines the parameters for RequestScheme match conditions ",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3461,7 +3451,6 @@
"description": "Defines the parameters for UrlPath match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3515,7 +3504,6 @@
"description": "Defines the parameters for UrlFileExtension match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3568,7 +3556,6 @@
"description": "Defines the parameters for UrlFilename match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3621,7 +3608,6 @@
"description": "Defines the parameters for HttpVersion match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
@@ -3659,8 +3645,6 @@
"description": "Defines the parameters for Cookies match conditions",
"required": [
"operator",
- "matchValues",
- "selector",
"@odata.type"
],
"properties": {
@@ -3717,7 +3701,6 @@
"description": "Defines the parameters for IsDevice match conditions",
"required": [
"operator",
- "matchValues",
"@odata.type"
],
"properties": {
diff --git a/specification/cdn/resource-manager/readme.azureresourceschema.md b/specification/cdn/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..b4b719cb1979
--- /dev/null
+++ b/specification/cdn/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,135 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - 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-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.go.md b/specification/cdn/resource-manager/readme.go.md
index b53dccbfb0c7..a660c2a5dd61 100644
--- a/specification/cdn/resource-manager/readme.go.md
+++ b/specification/cdn/resource-manager/readme.go.md
@@ -29,7 +29,7 @@ These settings apply only when `--tag=package-2020-04 --go` is specified on the
Please also specify `--go-sdk-folder=`.
``` yaml $(tag) == 'package-2020-04' && $(go)
-output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-04-15/$(namespace)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-04-15/$(namespace)
```
### Tag: package-2019-04 and go
diff --git a/specification/cdn/resource-manager/readme.md b/specification/cdn/resource-manager/readme.md
index 25bcc654b0cc..d7f99a1c0370 100644
--- a/specification/cdn/resource-manager/readme.md
+++ b/specification/cdn/resource-manager/readme.md
@@ -148,6 +148,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
- repo: azure-sdk-for-ruby
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js cdn/resource-manager
```
@@ -175,39 +178,7 @@ See configuration in [readme.node.md](./readme.node.md)
See configuration in [readme.ruby.md](./readme.ruby.md)
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Cdn/stable/2020-04-15/cdn.json
- - $(this-folder)/Microsoft.Cdn/stable/2020-04-15/cdnwebapplicationfirewall.json
- - $(this-folder)/Microsoft.Cdn/stable/2019-12-31/cdn.json
- - $(this-folder)/Microsoft.Cdn/stable/2019-06-15/cdn.json
- - $(this-folder)/Microsoft.Cdn/stable/2019-06-15/cdnwebapplicationfirewall.json
- - $(this-folder)/Microsoft.Cdn/preview/2019-06-15-preview/cdn.json
- - $(this-folder)/Microsoft.Cdn/preview/2019-06-15-preview/cdnwebapplicationfirewall.json
- - $(this-folder)/Microsoft.Cdn/stable/2019-04-15/cdn.json
- - $(this-folder)/Microsoft.Cdn/stable/2017-10-12/cdn.json
- - $(this-folder)/Microsoft.Cdn/stable/2017-04-02/cdn.json
- - $(this-folder)/Microsoft.Cdn/stable/2016-10-02/cdn.json
- - $(this-folder)/Microsoft.Cdn/stable/2016-04-02/cdn.json
- - $(this-folder)/Microsoft.Cdn/stable/2015-06-01/cdn.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+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
new file mode 100644
index 000000000000..1ff06754928a
--- /dev/null
+++ b/specification/changeanalysis/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-changeanalysis-2020-04-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### 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 82bb9acfa298..d8cc3055ec39 100644
--- a/specification/changeanalysis/resource-manager/readme.md
+++ b/specification/changeanalysis/resource-manager/readme.md
@@ -57,6 +57,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
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
@@ -114,27 +117,7 @@ directive:
}
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.ChangeAnalysis/preview/2020-04-01-preview/changeanalysis.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+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
new file mode 100644
index 000000000000..6f76c466351e
--- /dev/null
+++ b/specification/cloudshell/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-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 76ac94994ab1..d1f360640baa 100644
--- a/specification/cloudshell/resource-manager/readme.md
+++ b/specification/cloudshell/resource-manager/readme.md
@@ -56,6 +56,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
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
@@ -146,27 +149,7 @@ csharp:
namespace: Microsoft.CloudShell
output-folder: $(csharp-sdks-folder)/CloudShell/management/Microsoft.CloudShell/GeneratedProtocol
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Portal/stable/2018-10-01/CloudShell.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.0/AnomalyDetector.json b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.0/AnomalyDetector.json
index ac5d89494132..3c12b4188bed 100644
--- a/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.0/AnomalyDetector.json
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/preview/v1.0/AnomalyDetector.json
@@ -31,7 +31,7 @@
"post": {
"summary": "Detect anomalies for the entire series in batch.",
"description": "This operation generates a model using 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": "EntireDetect",
+ "operationId": "DetectEntireSeries",
"parameters": [
{
"name": "body",
@@ -39,7 +39,7 @@
"description": "Time series points and period if needed. Advanced model parameters can also be set in the request.",
"required": true,
"schema": {
- "$ref": "#/definitions/Request"
+ "$ref": "#/definitions/DetectRequest"
}
}
],
@@ -59,7 +59,7 @@
"default": {
"description": "Error response.",
"schema": {
- "$ref": "#/definitions/APIError"
+ "$ref": "#/definitions/AnomalyDetectorError"
}
}
},
@@ -74,7 +74,7 @@
"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": "LastDetect",
+ "operationId": "DetectLastPoint",
"parameters": [
{
"name": "body",
@@ -82,7 +82,7 @@
"description": "Time series points and period if needed. Advanced model parameters can also be set in the request.",
"required": true,
"schema": {
- "$ref": "#/definitions/Request"
+ "$ref": "#/definitions/DetectRequest"
}
}
],
@@ -102,7 +102,7 @@
"default": {
"description": "Error response.",
"schema": {
- "$ref": "#/definitions/APIError"
+ "$ref": "#/definitions/AnomalyDetectorError"
}
}
},
@@ -113,11 +113,11 @@
}
}
},
- "/timeseries/changePoint/detect": {
+ "/timeseries/changepoint/detect": {
"post": {
"summary": "Detect change point for the entire series",
"description": "Evaluate change point score of every series point",
- "operationId": "ChangePointDetect",
+ "operationId": "DetectChangePoint",
"parameters": [
{
"name": "body",
@@ -145,7 +145,7 @@
"default": {
"description": "Error response.",
"schema": {
- "$ref": "#/definitions/APIError"
+ "$ref": "#/definitions/AnomalyDetectorError"
}
}
},
@@ -158,7 +158,7 @@
}
},
"definitions": {
- "APIError": {
+ "AnomalyDetectorError": {
"type": "object",
"description": "Error information returned by the API.",
"properties": {
@@ -186,13 +186,38 @@
}
}
},
- "Granularity": {
+ "TimeGranularity": {
"type": "string",
"description": "Can only be one of yearly, monthly, weekly, daily, hourly, minutely or secondly. Granularity is used for verify whether input series is valid.",
"x-nullable": false,
"x-ms-enum": {
- "name": "Granularity",
- "modelAsString": false
+ "name": "TimeGranularity",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "yearly"
+ },
+ {
+ "value": "monthly"
+ },
+ {
+ "value": "weekly"
+ },
+ {
+ "value": "daily"
+ },
+ {
+ "value": "hourly"
+ },
+ {
+ "name": "perMinute",
+ "value": "minutely"
+ },
+ {
+ "name": "perSecond",
+ "value": "secondly"
+ }
+ ]
},
"enum": [
"yearly",
@@ -210,7 +235,7 @@
"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}."
},
- "Request": {
+ "DetectRequest": {
"type": "object",
"required": [
"granularity",
@@ -221,11 +246,11 @@
"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/Point"
+ "$ref": "#/definitions/TimeSeriesPoint"
}
},
"granularity": {
- "$ref": "#/definitions/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}.",
@@ -248,7 +273,7 @@
}
}
},
- "Point": {
+ "TimeSeriesPoint": {
"type": "object",
"required": [
"timestamp",
@@ -400,11 +425,11 @@
"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/Point"
+ "$ref": "#/definitions/TimeSeriesPoint"
}
},
"granularity": {
- "$ref": "#/definitions/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": {
diff --git a/specification/cognitiveservices/data-plane/AnomalyDetector/readme.python.md b/specification/cognitiveservices/data-plane/AnomalyDetector/readme.python.md
index 29770127847f..f02d74f86624 100644
--- a/specification/cognitiveservices/data-plane/AnomalyDetector/readme.python.md
+++ b/specification/cognitiveservices/data-plane/AnomalyDetector/readme.python.md
@@ -4,24 +4,23 @@ These settings apply only when `--python` is specified on the command line.
Please also specify `--python-sdks-folder=`.
Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
-``` yaml $(python)
+``` yaml
python-mode: create
-python:
- license-header: MICROSOFT_MIT_NO_VERSION
- add-credentials: true
- payload-flattening-threshold: 2
- namespace: azure.cognitiveservices.anomalydetector
- package-name: azure-cognitiveservices-anomalydetector
- package-version: 0.2.0
- clear-output-folder: true
+license-header: MICROSOFT_MIT_NO_VERSION
+add-credentials: true
+credential-default-policy-type: AzureKeyCredentialPolicy
+credential-key-header-name: Ocp-Apim-Subscription-Key
+payload-flattening-threshold: 1
+namespace: azure.ai.anomalydetector
+package-name: azure-ai-anomalydetector
+package-version: 0.2.0
+clear-output-folder: true
```
-``` yaml $(python) && $(python-mode) == 'update'
-python:
- no-namespace-folders: true
- output-folder: $(python-sdks-folder)/cognitiveservices/azure-cognitiveservices-anomalydetector/azure/cognitiveservices/anomalydetector
+``` yaml $(python-mode) == 'update'
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/anomalydetector/azure-ai-anomalydetector/azure/ai/anomalydetector
```
-``` yaml $(python) && $(python-mode) == 'create'
-python:
- basic-setup-py: true
- output-folder: $(python-sdks-folder)/cognitiveservices/azure-cognitiveservices-anomalydetector
+``` yaml $(python-mode) == 'create'
+basic-setup-py: true
+output-folder: $(python-sdks-folder)/anomalydetector/azure-ai-anomalydetector
```
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/preview/v3.1-preview.2/Ocr.json b/specification/cognitiveservices/data-plane/ComputerVision/preview/v3.1-preview.2/Ocr.json
new file mode 100644
index 000000000000..2cd2d43ed37c
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/preview/v3.1-preview.2/Ocr.json
@@ -0,0 +1,500 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "3.1-preview.2",
+ "title": "Computer Vision Client",
+ "description": "The Computer Vision API provides state-of-the-art algorithms to process images and return information. For example, it can be used to determine if an image contains mature content, or it can be used to find all the faces in an image. It also has other features like estimating dominant and accent colors, categorizing the content of images, and describing an image with complete English sentences. Additionally, it can also intelligently generate images thumbnails for displaying large images effectively."
+ },
+ "securityDefinitions": {
+ "apim_key": {
+ "type": "apiKey",
+ "name": "Ocp-Apim-Subscription-Key",
+ "in": "header"
+ }
+ },
+ "security": [
+ {
+ "apim_key": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{Endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ },
+ "host": "westcentralus.api.cognitive.microsoft.com",
+ "basePath": "/vision/v3.1-preview.2",
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/read/analyze": {
+ "post": {
+ "description": "Use this interface to get the result of a Read operation, employing the state-of-the-art Optical Character Recognition (OCR) algorithms optimized for text-heavy documents. When you use the Read interface, the response contains a field called 'Operation-Location'. The 'Operation-Location' field contains the URL that you must use for your 'GetReadResult' operation to access OCR results.",
+ "operationId": "Read",
+ "parameters": [
+ {
+ "$ref": "#/parameters/OcrDetectionLanguage"
+ },
+ {
+ "$ref": "#/parameters/ImageUrl"
+ },
+ {
+ "$ref": "#/parameters/Pages"
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "202": {
+ "description": "The service has accepted the request and will start processing later.",
+ "headers": {
+ "Operation-Location": {
+ "description": "URL to query for status of the operation. The operation ID will expire in 48 hours. ",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Analyze request": {
+ "$ref": "./examples/SuccessfulReadWithUrl.json"
+ }
+ }
+ }
+ },
+ "/read/analyzeResults/{operationId}": {
+ "get": {
+ "description": "This interface is used for getting OCR results of Read operation. The URL to this interface should be retrieved from 'Operation-Location' field returned from Read interface.",
+ "operationId": "GetReadResult",
+ "parameters": [
+ {
+ "name": "operationId",
+ "in": "path",
+ "description": "Id of read operation returned in the response of the 'Read' interface.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns the read operation status.",
+ "schema": {
+ "$ref": "#/definitions/ReadOperationResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Get Read Result request": {
+ "$ref": "./examples/SuccessfulGetReadResult.json"
+ }
+ }
+ }
+ }
+ },
+ "x-ms-paths": {
+ "/read/analyze?overload=stream": {
+ "post": {
+ "description": "Use this interface to get the result of a Read operation, employing the state-of-the-art Optical Character Recognition (OCR) algorithms optimized for text-heavy documents. When you use the Read interface, the response contains a field called 'Operation-Location'. The 'Operation-Location' field contains the URL that you must use for your 'GetReadResult' operation to access OCR results.",
+ "operationId": "ReadInStream",
+ "parameters": [
+ {
+ "$ref": "#/parameters/OcrDetectionLanguage"
+ },
+ {
+ "$ref": "#/parameters/ImageStream"
+ },
+ {
+ "$ref": "#/parameters/Pages"
+ }
+ ],
+ "consumes": [
+ "application/octet-stream"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "202": {
+ "description": "The service has accepted the request and will start processing later.",
+ "headers": {
+ "Operation-Location": {
+ "description": "URL to query for status of the operation. The operation ID will expire in 48 hours. ",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Analyze request": {
+ "$ref": "./examples/SuccessfulReadWithStream.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ReadOperationResult": {
+ "type": "object",
+ "description": "OCR result of the read operation.",
+ "properties": {
+ "status": {
+ "description": "Status of the read operation.",
+ "$ref": "#/definitions/OperationStatus"
+ },
+ "createdDateTime": {
+ "type": "string",
+ "description": "Get UTC date time the batch operation was submitted.",
+ "x-nullable": false
+ },
+ "lastUpdatedDateTime": {
+ "type": "string",
+ "description": "Get last updated UTC date time of this batch operation.",
+ "x-nullable": false
+ },
+ "analyzeResult": {
+ "description": "Analyze batch operation result.",
+ "type": "object",
+ "$ref": "#/definitions/analyzeResults"
+ }
+ }
+ },
+ "OperationStatus": {
+ "type": "string",
+ "description": "Status code of the text operation.",
+ "enum": [
+ "notStarted",
+ "running",
+ "failed",
+ "succeeded"
+ ],
+ "x-ms-enum": {
+ "name": "OperationStatusCodes",
+ "modelAsString": false
+ },
+ "x-nullable": false
+ },
+ "ReadResult": {
+ "description": "Text extracted from a page in the input document.",
+ "type": "object",
+ "required": [
+ "page",
+ "angle",
+ "width",
+ "height",
+ "unit",
+ "lines"
+ ],
+ "properties": {
+ "page": {
+ "description": "The 1-based page number of the recognition result.",
+ "type": "integer"
+ },
+ "language": {
+ "description": "The BCP-47 language code of the recognized text page.",
+ "type": "string"
+ },
+ "angle": {
+ "description": "The orientation of the image in degrees in the clockwise direction. Range between [-180, 180).",
+ "type": "number"
+ },
+ "width": {
+ "description": "The width of the image in pixels or the PDF in inches.",
+ "type": "number"
+ },
+ "height": {
+ "description": "The height of the image in pixels or the PDF in inches.",
+ "type": "number"
+ },
+ "unit": {
+ "description": "The unit used in the Width, Height and BoundingBox. For images, the unit is 'pixel'. For PDF, the unit is 'inch'.",
+ "type": "string",
+ "enum": [
+ "pixel",
+ "inch"
+ ],
+ "x-ms-enum": {
+ "name": "TextRecognitionResultDimensionUnit",
+ "modelAsString": false
+ },
+ "x-nullable": false
+ },
+ "lines": {
+ "description": "A list of recognized text lines.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Line"
+ }
+ }
+ }
+ },
+ "analyzeResults": {
+ "description": "Analyze batch 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"
+ }
+ }
+ }
+ },
+ "Line": {
+ "description": "An object representing a recognized text line.",
+ "type": "object",
+ "required": [
+ "boundingBox",
+ "text",
+ "words"
+ ],
+ "properties": {
+ "language": {
+ "description": "The BCP-47 language code of the recognized text line. Only provided where the language of the line differs from the page's.",
+ "type": "string"
+ },
+ "boundingBox": {
+ "description": "Bounding box of a recognized line.",
+ "$ref": "#/definitions/BoundingBox"
+ },
+ "appearance": {
+ "description": "Style and styleConfidence of the text line.",
+ "type": "object",
+ "$ref": "#/definitions/Appearance"
+ },
+ "text": {
+ "description": "The text content of the line.",
+ "type": "string"
+ },
+ "words": {
+ "description": "List of words in the text line.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Word"
+ }
+ }
+ }
+ },
+ "Word": {
+ "description": "An object representing a recognized word.",
+ "type": "object",
+ "required": [
+ "boundingBox",
+ "text",
+ "confidence"
+ ],
+ "properties": {
+ "boundingBox": {
+ "description": "Bounding box of a recognized word.",
+ "$ref": "#/definitions/BoundingBox"
+ },
+ "text": {
+ "description": "The text content of the word.",
+ "type": "string"
+ },
+ "confidence": {
+ "description": "Qualitative confidence measure.",
+ "type": "number",
+ "format": "float"
+ }
+ }
+ },
+ "BoundingBox": {
+ "description": "Quadrangle bounding box, with coordinates in original image. The eight numbers represent the four points (x-coordinate, y-coordinate from the left-top corner of the image) of the detected rectangle from the left-top corner in the clockwise direction. For images, coordinates are in pixels. For PDF, coordinates are in inches.",
+ "type": "array",
+ "items": {
+ "type": "number",
+ "x-nullable": false
+ }
+ },
+ "Appearance": {
+ "description": "An object representing the style and styleConfidence.",
+ "type": "object",
+ "required": [
+ "style",
+ "styleConfidence"
+ ],
+ "properties": {
+ "style": {
+ "description": "The text line style.",
+ "type": "string",
+ "enum": [
+ "handwriting",
+ "print"
+ ]
+ },
+ "styleConfidence": {
+ "description": "The confidence of text line style.",
+ "type": "number",
+ "format": "float"
+ }
+ }
+ },
+ "ComputerVisionError": {
+ "description": "Details about the API request error.",
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The error code.",
+ "enum": [
+ "InvalidImageFormat",
+ "UnsupportedMediaType",
+ "InvalidImageUrl",
+ "NotSupportedFeature",
+ "NotSupportedImage",
+ "Timeout",
+ "InternalServerError",
+ "InvalidImageSize",
+ "BadArgument",
+ "DetectFaceError",
+ "NotSupportedLanguage",
+ "InvalidThumbnailSize",
+ "InvalidDetails",
+ "InvalidModel",
+ "CancelledRequest",
+ "NotSupportedVisualFeature",
+ "FailedToProcess",
+ "Unspecified",
+ "StorageException",
+ "InvalidPageRange"
+ ],
+ "x-ms-enum": {
+ "name": "ComputerVisionErrorCodes",
+ "modelAsString": true
+ }
+ },
+ "message": {
+ "description": "A message explaining the error reported by the service.",
+ "type": "string"
+ },
+ "requestId": {
+ "description": "A unique request identifier.",
+ "type": "string"
+ }
+ }
+ },
+ "ImageUrl": {
+ "type": "object",
+ "required": [
+ "url"
+ ],
+ "properties": {
+ "url": {
+ "description": "Publicly reachable URL of an image.",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "OcrDetectionLanguage": {
+ "name": "language",
+ "in": "query",
+ "description": "The BCP-47 language code of the text in the document. Currently, only English ('en'), Dutch ('nl'), French ('fr'), German ('de'), Italian ('it'), Portuguese ('pt'), and Spanish ('es') are supported. Read 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,
+ "default": "en",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "x-ms-enum": {
+ "name": "OcrDetectionLanguage",
+ "modelAsString": true
+ },
+ "enum": [
+ "en",
+ "es",
+ "fr",
+ "de",
+ "it",
+ "nl",
+ "pt"
+ ]
+ },
+ "ImageUrl": {
+ "name": "ImageUrl",
+ "in": "body",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "x-ms-client-flatten": true,
+ "description": "A JSON document with a URL pointing to the image that is to be analyzed.",
+ "schema": {
+ "$ref": "#/definitions/ImageUrl"
+ }
+ },
+ "ImageStream": {
+ "name": "Image",
+ "in": "body",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "description": "An image stream.",
+ "schema": {
+ "type": "object",
+ "format": "file"
+ }
+ },
+ "Endpoint": {
+ "name": "Endpoint",
+ "description": "Supported Cognitive Services endpoints.",
+ "x-ms-parameter-location": "client",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ },
+ "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 or space.",
+ "required": false,
+ "x-ms-parameter-location": "method",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "(^[0-9]+-[0-9]+$)|(^[0-9]+$)"
+ },
+ "collectionFormat": "csv"
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/preview/v3.1-preview.2/examples/SuccessfulGetReadResult.json b/specification/cognitiveservices/data-plane/ComputerVision/preview/v3.1-preview.2/examples/SuccessfulGetReadResult.json
new file mode 100644
index 000000000000..a6ad36931547
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/preview/v3.1-preview.2/examples/SuccessfulGetReadResult.json
@@ -0,0 +1,385 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "operationId": "e56ffa6e-1ee4-4042-bc07-993db706c95f"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "status": "succeeded",
+ "createdDateTime": "2019-10-03T14:32:04.236Z",
+ "lastUpdatedDateTime": "2019-10-03T14:38:14.852Z",
+ "analyzeResult": {
+ "version": "v3.1",
+ "readResults": [
+ {
+ "page": 1,
+ "language": "en",
+ "angle": 49.59,
+ "width": 600,
+ "height": 400,
+ "unit": "pixel",
+ "lines": [
+ {
+ "boundingBox": [
+ 202,
+ 618,
+ 2047,
+ 643,
+ 2046,
+ 840,
+ 200,
+ 813
+ ],
+ "appearance": {
+ "style": "print",
+ "styleConfidence": 0.995
+ },
+ "text": "Our greatest glory is not",
+ "words": [
+ {
+ "boundingBox": [
+ 204,
+ 627,
+ 481,
+ 628,
+ 481,
+ 830,
+ 204,
+ 829
+ ],
+ "text": "Our",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 519,
+ 628,
+ 1057,
+ 630,
+ 1057,
+ 832,
+ 518,
+ 830
+ ],
+ "text": "greatest",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 1114,
+ 630,
+ 1549,
+ 631,
+ 1548,
+ 833,
+ 1114,
+ 832
+ ],
+ "text": "glory",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 1586,
+ 631,
+ 1785,
+ 632,
+ 1784,
+ 834,
+ 1586,
+ 833
+ ],
+ "text": "is",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 1822,
+ 632,
+ 2115,
+ 633,
+ 2115,
+ 835,
+ 1822,
+ 834
+ ],
+ "text": "not",
+ "confidence": 0.164
+ }
+ ]
+ },
+ {
+ "boundingBox": [
+ 420,
+ 1273,
+ 2954,
+ 1250,
+ 2958,
+ 1488,
+ 422,
+ 1511
+ ],
+ "appearance": {
+ "style": "handwriting",
+ "styleConfidence": 0.985
+ },
+ "text": "but in rising every time we fall",
+ "words": [
+ {
+ "boundingBox": [
+ 423,
+ 1269,
+ 634,
+ 1268,
+ 635,
+ 1507,
+ 424,
+ 1508
+ ],
+ "text": "but",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 667,
+ 1268,
+ 808,
+ 1268,
+ 809,
+ 1506,
+ 668,
+ 1507
+ ],
+ "text": "in",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 874,
+ 1267,
+ 1289,
+ 1265,
+ 1290,
+ 1504,
+ 875,
+ 1506
+ ],
+ "text": "rising",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 1331,
+ 1265,
+ 1771,
+ 1263,
+ 1772,
+ 1502,
+ 1332,
+ 1504
+ ],
+ "text": "every",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 1812,
+ 1263,
+ 2178,
+ 1261,
+ 2179,
+ 1500,
+ 1813,
+ 1502
+ ],
+ "text": "time",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 2219,
+ 1261,
+ 2510,
+ 1260,
+ 2511,
+ 1498,
+ 2220,
+ 1500
+ ],
+ "text": "we",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 2551,
+ 1260,
+ 3016,
+ 1258,
+ 3017,
+ 1496,
+ 2552,
+ 1498
+ ],
+ "text": "fall",
+ "confidence": 0.164
+ }
+ ]
+ },
+ {
+ "language": "es",
+ "boundingBox": [
+ 1612,
+ 903,
+ 2744,
+ 935,
+ 2738,
+ 1139,
+ 1607,
+ 1107
+ ],
+ "appearance": {
+ "style": "print",
+ "styleConfidence": 0.995
+ },
+ "text": "Viva la vida",
+ "words": [
+ {
+ "boundingBox": [
+ 323,
+ 454,
+ 416,
+ 449,
+ 418,
+ 494,
+ 325,
+ 501
+ ],
+ "text": "Viva",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 92,
+ 550,
+ 429,
+ 541,
+ 430,
+ 591,
+ 94,
+ 600
+ ],
+ "text": "la",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 58,
+ 466,
+ 268,
+ 458,
+ 270,
+ 505,
+ 161,
+ 512
+ ],
+ "text": "vida",
+ "confidence": 0.164
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "page": 2,
+ "language": "en",
+ "angle": 1.32,
+ "width": 600,
+ "height": 400,
+ "unit": "pixel",
+ "lines": [
+ {
+ "boundingBox": [
+ 1612,
+ 903,
+ 2744,
+ 935,
+ 2738,
+ 1139,
+ 1607,
+ 1107
+ ],
+ "appearance": {
+ "style": "handwriting",
+ "styleConfidence": 0.855
+ },
+ "text": "in never failing ,",
+ "words": [
+ {
+ "boundingBox": [
+ 1611,
+ 934,
+ 1707,
+ 933,
+ 1708,
+ 1147,
+ 1613,
+ 1147
+ ],
+ "text": "in",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 1753,
+ 933,
+ 2132,
+ 930,
+ 2133,
+ 1144,
+ 1754,
+ 1146
+ ],
+ "text": "never",
+ "confidence": 0.999
+ },
+ {
+ "boundingBox": [
+ 2162,
+ 930,
+ 2673,
+ 927,
+ 2674,
+ 1140,
+ 2164,
+ 1144
+ ],
+ "text": "failing",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 2703,
+ 926,
+ 2788,
+ 926,
+ 2790,
+ 1139,
+ 2705,
+ 1140
+ ],
+ "text": ",",
+ "confidence": 0.164
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/preview/v3.1-preview.2/examples/SuccessfulReadWithStream.json b/specification/cognitiveservices/data-plane/ComputerVision/preview/v3.1-preview.2/examples/SuccessfulReadWithStream.json
new file mode 100644
index 000000000000..dc0a4f1675a1
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/preview/v3.1-preview.2/examples/SuccessfulReadWithStream.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "language": "en",
+ "Image": "{binary}",
+ "Pages": [
+ "2",
+ "3"
+ ]
+ },
+ "responses": {
+ "202": {
+ "header": {
+ "location": "https://{domain}/vision/v3.1/read/e56ffa6e-1ee4-4042-bc07-993db706c95f"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/preview/v3.1-preview.2/examples/SuccessfulReadWithUrl.json b/specification/cognitiveservices/data-plane/ComputerVision/preview/v3.1-preview.2/examples/SuccessfulReadWithUrl.json
new file mode 100644
index 000000000000..a8d69fc50abe
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/preview/v3.1-preview.2/examples/SuccessfulReadWithUrl.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "language": "en",
+ "ImageUrl": {
+ "url": "{url}"
+ },
+ "Pages": [
+ "2",
+ "3"
+ ]
+ },
+ "responses": {
+ "202": {
+ "header": {
+ "Operation-Location": "https://{domain}/vision/v3.1/read/e56ffa6e-1ee4-4042-bc07-993db706c95f"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/readme.go.md b/specification/cognitiveservices/data-plane/ComputerVision/readme.go.md
index 8fb795822422..1386894f71a3 100644
--- a/specification/cognitiveservices/data-plane/ComputerVision/readme.go.md
+++ b/specification/cognitiveservices/data-plane/ComputerVision/readme.go.md
@@ -16,6 +16,7 @@ batch:
- tag: release_2_0
- tag: release_2_1
- tag: release_3_0
+ - tag: release_3_1
```
### Tag: release_2_0 and go
@@ -43,4 +44,22 @@ Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'release_3_1_preview_2' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/cognitiveservices/v3.1-preview.2/$(namespace)
+```
+
+### Tag: release_3_1 and go
+
+These settings apply only when `--tag=release_3_1 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'release_3_1' && $(go)
+output-folder: $(go-sdk-folder)/services/cognitiveservices/v3.1/$(namespace)
```
\ No newline at end of file
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/readme.md b/specification/cognitiveservices/data-plane/ComputerVision/readme.md
index 020fca003e1d..aa285d970a63 100644
--- a/specification/cognitiveservices/data-plane/ComputerVision/readme.md
+++ b/specification/cognitiveservices/data-plane/ComputerVision/readme.md
@@ -4,11 +4,11 @@
Configuration for generating Computer Vision SDK.
-The current release is `release_3_0`.
+The current release is `release_3_1`.
``` yaml
-tag: release_3_0
+tag: release_3_1
add-credentials: true
openapi-type: data-plane
```
@@ -49,6 +49,23 @@ input-file:
- stable/v3.0/Ocr.json
```
+### Release 3.1-preview.2
+These settings apply only when `--tag=release_3_1_preview_2` is specified on the command line.
+
+``` yaml $(tag) == 'release_3_1_preview_2'
+input-file:
+ - preview/v3.1-preview.2/Ocr.json
+```
+
+### Release 3.1
+These settings apply only when `--tag=release_3_1` is specified on the command line.
+
+``` yaml $(tag) == 'release_3_1'
+input-file:
+ - stable/v3.1/ComputerVision.json
+ - stable/v3.1/Ocr.json
+```
+
## Swagger to SDK
This section describes what SDK should be generated by the automatic system.
@@ -166,6 +183,7 @@ input-file:
- $(this-folder)/preview/v3.0-preview/Ocr.json
- $(this-folder)/stable/v3.0/ComputerVision.json
- $(this-folder)/stable/v3.0/Ocr.json
+ - $(this-folder)/preview/v3.1-preview.2/Ocr.json
```
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/readme.ruby.md b/specification/cognitiveservices/data-plane/ComputerVision/readme.ruby.md
index 019525023fad..b93a320d0992 100644
--- a/specification/cognitiveservices/data-plane/ComputerVision/readme.ruby.md
+++ b/specification/cognitiveservices/data-plane/ComputerVision/readme.ruby.md
@@ -41,4 +41,15 @@ Please also specify `--ruby-sdks-folder=`.
+
+``` yaml $(tag) == 'release_3_1' && $(ruby)
+namespace: "Azure::CognitiveServices::ComputerVision::V3_1"
+output-folder: $(ruby-sdks-folder)/data/azure_cognitiveservices_computervision/lib
+title: "ComputerVisionClient"
```
\ No newline at end of file
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/ComputerVision.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/ComputerVision.json
new file mode 100644
index 000000000000..35ef27a5a632
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/ComputerVision.json
@@ -0,0 +1,1840 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "3.1",
+ "title": "Computer Vision Client",
+ "description": "The Computer Vision API provides state-of-the-art algorithms to process images and return information. For example, it can be used to determine if an image contains mature content, or it can be used to find all the faces in an image. It also has other features like estimating dominant and accent colors, categorizing the content of images, and describing an image with complete English sentences. Additionally, it can also intelligently generate images thumbnails for displaying large images effectively."
+ },
+ "securityDefinitions": {
+ "apim_key": {
+ "type": "apiKey",
+ "name": "Ocp-Apim-Subscription-Key",
+ "in": "header"
+ }
+ },
+ "security": [
+ {
+ "apim_key": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{Endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ },
+ "host": "westcentralus.api.cognitive.microsoft.com",
+ "basePath": "/vision/v3.1",
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/analyze": {
+ "post": {
+ "description": "This operation extracts a rich set of visual features based on the image content.\r\nTwo input methods are supported -- (1) Uploading an image or (2) specifying an image URL. Within your request, there is an optional parameter to allow you to choose which features to return. By default, image categories are returned in the response.\r\nA successful response will be returned in JSON. If the request failed, the response will contain an error code and a message to help understand what went wrong.",
+ "operationId": "AnalyzeImage",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/VisualFeatures"
+ },
+ {
+ "name": "details",
+ "in": "query",
+ "description": "A string indicating which domain-specific details to return. Multiple values should be comma-separated. Valid visual feature types include: Celebrities - identifies celebrities if detected in the image, Landmarks - identifies notable landmarks in the image.",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "Celebrities",
+ "Landmarks"
+ ],
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "Details",
+ "modelAsString": false
+ }
+ },
+ "collectionFormat": "csv",
+ "x-nullable": true
+ },
+ {
+ "$ref": "#/parameters/ServiceLanguage"
+ },
+ {
+ "$ref": "#/parameters/DescriptionExclude"
+ },
+ {
+ "$ref": "#/parameters/ImageUrl"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response include the extracted features in JSON format. Here is the definitions for enumeration types:\r\n ClipartType\r\n Non - clipart = 0, ambiguous = 1, normal - clipart = 2, good - clipart = 3. LineDrawingTypeNon - LineDrawing = 0, LineDrawing = 1.",
+ "schema": {
+ "$ref": "#/definitions/ImageAnalysis"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful AnalyzeImage request": {
+ "$ref": "./examples/SuccessfulAnalyzeImageWithUrl.json"
+ }
+ }
+ }
+ },
+ "/describe": {
+ "post": {
+ "description": "This operation generates a description of an image in human readable language with complete sentences. The description is based on a collection of content tags, which are also returned by the operation. More than one description can be generated for each image. Descriptions are ordered by their confidence score. Descriptions may include results from celebrity and landmark domain models, if applicable.\r\nTwo input methods are supported -- (1) Uploading an image or (2) specifying an image URL.\r\nA successful response will be returned in JSON. If the request failed, the response will contain an error code and a message to help understand what went wrong.",
+ "operationId": "DescribeImage",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "maxCandidates",
+ "in": "query",
+ "description": "Maximum number of candidate descriptions to be returned. The default is 1.",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 1,
+ "x-nullable": true
+ },
+ {
+ "$ref": "#/parameters/ServiceLanguage"
+ },
+ {
+ "$ref": "#/parameters/DescriptionExclude"
+ },
+ {
+ "$ref": "#/parameters/ImageUrl"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Image description object.",
+ "schema": {
+ "$ref": "#/definitions/ImageDescription"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful DescribeImage request": {
+ "$ref": "./examples/SuccessfulDescribeImageWithUrl.json"
+ }
+ }
+ }
+ },
+ "/detect": {
+ "post": {
+ "description": "Performs object detection on the specified image.\r\nTwo input methods are supported -- (1) Uploading an image or (2) specifying an image URL.\r\nA successful response will be returned in JSON. If the request failed, the response will contain an error code and a message to help understand what went wrong.",
+ "operationId": "DetectObjects",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ImageUrl"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response include the detected objects in JSON format.",
+ "schema": {
+ "$ref": "#/definitions/DetectResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful DetectObjects request": {
+ "$ref": "./examples/SuccessfulDetectObjectsWithUrl.json"
+ }
+ }
+ }
+ },
+ "/models": {
+ "get": {
+ "description": "This operation returns the list of domain-specific models that are supported by the Computer Vision API. Currently, the API supports following domain-specific models: celebrity recognizer, landmark recognizer.\r\nA successful response will be returned in JSON. If the request failed, the response will contain an error code and a message to help understand what went wrong.",
+ "operationId": "ListModels",
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "List of available domain models.",
+ "schema": {
+ "$ref": "#/definitions/ListModelsResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful ListModels request": {
+ "$ref": "./examples/SuccessfulListModels.json"
+ }
+ }
+ }
+ },
+ "/models/{model}/analyze": {
+ "post": {
+ "description": "This operation recognizes content within an image by applying a domain-specific model. The list of domain-specific models that are supported by the Computer Vision API can be retrieved using the /models GET request. Currently, the API provides following domain-specific models: celebrities, landmarks.\r\nTwo input methods are supported -- (1) Uploading an image or (2) specifying an image URL.\r\nA successful response will be returned in JSON.\r\nIf the request failed, the response will contain an error code and a message to help understand what went wrong.",
+ "operationId": "AnalyzeImageByDomain",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "model",
+ "in": "path",
+ "description": "The domain-specific content to recognize.",
+ "required": true,
+ "type": "string",
+ "x-nullable": true
+ },
+ {
+ "$ref": "#/parameters/ServiceLanguage"
+ },
+ {
+ "$ref": "#/parameters/ImageUrl"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Analysis result based on the domain model.",
+ "schema": {
+ "$ref": "#/definitions/DomainModelResults"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful AnalyzeImageByDomain request": {
+ "$ref": "./examples/SuccessfulAnalyzeImageByDomainWithUrl.json"
+ }
+ }
+ }
+ },
+ "/ocr": {
+ "post": {
+ "description": "Optical Character Recognition (OCR) detects text in an image and extracts the recognized characters into a machine-usable character stream.\r\nUpon success, the OCR results will be returned.\r\nUpon failure, the error code together with an error message will be returned. The error code can be one of InvalidImageUrl, InvalidImageFormat, InvalidImageSize, NotSupportedImage, NotSupportedLanguage, or InternalServerError.",
+ "operationId": "RecognizePrintedText",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/DetectOrientation"
+ },
+ {
+ "$ref": "#/parameters/OcrLanguage"
+ },
+ {
+ "$ref": "#/parameters/ImageUrl"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The OCR results in the hierarchy of region/line/word. The results include text, bounding box for regions, lines and words. The angle, in radians, of the detected text with respect to the closest horizontal or vertical direction. After rotating the input image clockwise by this angle, the recognized text lines become horizontal or vertical. In combination with the orientation property it can be used to overlay recognition results correctly on the original image, by rotating either the original image or recognition results by a suitable angle around the center of the original image. If the angle cannot be confidently detected, this property is not present. If the image contains text at different angles, only part of the text will be recognized correctly.",
+ "schema": {
+ "$ref": "#/definitions/OcrResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful RecognizePrintedText request": {
+ "$ref": "./examples/SuccessfulRecognizePrintedTextWithUrl.json"
+ }
+ }
+ }
+ },
+ "/tag": {
+ "post": {
+ "description": "This operation generates a list of words, or tags, that are relevant to the content of the supplied image. The Computer Vision API can return tags based on objects, living beings, scenery or actions found in images. Unlike categories, tags are not organized according to a hierarchical classification system, but correspond to image content. Tags may contain hints to avoid ambiguity or provide context, for example the tag \"ascomycete\" may be accompanied by the hint \"fungus\".\r\nTwo input methods are supported -- (1) Uploading an image or (2) specifying an image URL.\r\nA successful response will be returned in JSON. If the request failed, the response will contain an error code and a message to help understand what went wrong.",
+ "operationId": "TagImage",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ServiceLanguage"
+ },
+ {
+ "$ref": "#/parameters/ImageUrl"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Image tags object.",
+ "schema": {
+ "$ref": "#/definitions/TagResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful TagImage request": {
+ "$ref": "./examples/SuccessfulTagImageWithUrl.json"
+ }
+ }
+ }
+ },
+ "/generateThumbnail": {
+ "post": {
+ "description": "This operation generates a thumbnail image with the user-specified width and height. By default, the service analyzes the image, identifies the region of interest (ROI), and generates smart cropping coordinates based on the ROI. Smart cropping helps when you specify an aspect ratio that differs from that of the input image.\r\nA successful response contains the thumbnail image binary. If the request failed, the response contains an error code and a message to help determine what went wrong.\r\nUpon failure, the error code and an error message are returned. The error code could be one of InvalidImageUrl, InvalidImageFormat, InvalidImageSize, InvalidThumbnailSize, NotSupportedImage, FailedToProcess, Timeout, or InternalServerError.",
+ "operationId": "GenerateThumbnail",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/octet-stream"
+ ],
+ "parameters": [
+ {
+ "name": "width",
+ "in": "query",
+ "description": "Width of the thumbnail, in pixels. It must be between 1 and 1024. Recommended minimum of 50.",
+ "required": true,
+ "type": "integer",
+ "format": "int32",
+ "maximum": 1024,
+ "minimum": 1,
+ "x-nullable": false
+ },
+ {
+ "name": "height",
+ "in": "query",
+ "description": "Height of the thumbnail, in pixels. It must be between 1 and 1024. Recommended minimum of 50.",
+ "required": true,
+ "type": "integer",
+ "format": "int32",
+ "maximum": 1024,
+ "minimum": 1,
+ "x-nullable": false
+ },
+ {
+ "name": "smartCropping",
+ "in": "query",
+ "description": "Boolean flag for enabling smart cropping.",
+ "required": false,
+ "type": "boolean",
+ "default": false,
+ "x-nullable": true
+ },
+ {
+ "$ref": "#/parameters/ImageUrl"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The generated thumbnail in binary format.",
+ "schema": {
+ "type": "file"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GenerateThumbnail request": {
+ "$ref": "./examples/SuccessfulGenerateThumbnailWithUrl.json"
+ }
+ }
+ }
+ },
+ "/areaOfInterest": {
+ "post": {
+ "description": "This operation returns a bounding box around the most important area of the image.\r\nA successful response will be returned in JSON. If the request failed, the response contains an error code and a message to help determine what went wrong.\r\nUpon failure, the error code and an error message are returned. The error code could be one of InvalidImageUrl, InvalidImageFormat, InvalidImageSize, NotSupportedImage, FailedToProcess, Timeout, or InternalServerError.",
+ "operationId": "GetAreaOfInterest",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ImageUrl"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response includes the extracted area of interest in JSON format.",
+ "schema": {
+ "$ref": "#/definitions/AreaOfInterestResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetAreaOfInterest request": {
+ "$ref": "./examples/SuccessfulGetAreaOfInterestWithUrl.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ImageAnalysis": {
+ "description": "Result of AnalyzeImage operation.",
+ "type": "object",
+ "properties": {
+ "categories": {
+ "description": "An array indicating identified categories.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Category"
+ },
+ "x-nullable": true
+ },
+ "adult": {
+ "$ref": "#/definitions/AdultInfo",
+ "description": "An object describing whether the image contains adult-oriented content and/or is racy."
+ },
+ "color": {
+ "$ref": "#/definitions/ColorInfo",
+ "description": "An object providing additional metadata describing color attributes."
+ },
+ "imageType": {
+ "$ref": "#/definitions/ImageType",
+ "description": "An object providing possible image types and matching confidence levels."
+ },
+ "tags": {
+ "description": "A list of tags with confidence level.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageTag"
+ },
+ "x-nullable": true
+ },
+ "description": {
+ "$ref": "#/definitions/ImageDescriptionDetails",
+ "description": "A collection of content tags, along with a list of captions sorted by confidence level, and image metadata."
+ },
+ "faces": {
+ "description": "An array of possible faces within the image.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FaceDescription"
+ },
+ "x-nullable": true
+ },
+ "objects": {
+ "description": "Array of objects describing what was detected in the image.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DetectedObject"
+ },
+ "x-nullable": true
+ },
+ "brands": {
+ "description": "Array of brands detected in the image.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DetectedBrand"
+ },
+ "x-nullable": true
+ },
+ "requestId": {
+ "description": "Id of the REST API request.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/ImageMetadata"
+ }
+ },
+ "x-nullable": true
+ },
+ "Category": {
+ "description": "An object describing identified category.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the category.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "score": {
+ "format": "double",
+ "description": "Scoring of the category.",
+ "type": "number",
+ "x-nullable": false
+ },
+ "detail": {
+ "$ref": "#/definitions/CategoryDetail",
+ "description": "Details of the identified category."
+ }
+ },
+ "x-nullable": true
+ },
+ "AdultInfo": {
+ "description": "An object describing whether the image contains adult-oriented content and/or is racy.",
+ "type": "object",
+ "properties": {
+ "isAdultContent": {
+ "description": "A value indicating if the image contains adult-oriented content.",
+ "type": "boolean",
+ "x-nullable": false
+ },
+ "isRacyContent": {
+ "description": "A value indicating if the image is racy.",
+ "type": "boolean",
+ "x-nullable": false
+ },
+ "isGoryContent": {
+ "description": "A value indicating if the image is gory.",
+ "type": "boolean",
+ "x-nullable": false
+ },
+ "adultScore": {
+ "format": "double",
+ "description": "Score from 0 to 1 that indicates how much the content is considered adult-oriented within the image.",
+ "type": "number",
+ "x-nullable": false
+ },
+ "racyScore": {
+ "format": "double",
+ "description": "Score from 0 to 1 that indicates how suggestive is the image.",
+ "type": "number",
+ "x-nullable": false
+ },
+ "goreScore": {
+ "format": "double",
+ "description": "Score from 0 to 1 that indicates how gory is the image.",
+ "type": "number",
+ "x-nullable": false
+ }
+ },
+ "x-nullable": true
+ },
+ "ColorInfo": {
+ "description": "An object providing additional metadata describing color attributes.",
+ "type": "object",
+ "properties": {
+ "dominantColorForeground": {
+ "description": "Possible dominant foreground color.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "dominantColorBackground": {
+ "description": "Possible dominant background color.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "dominantColors": {
+ "description": "An array of possible dominant colors.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "x-nullable": true
+ },
+ "x-nullable": true
+ },
+ "accentColor": {
+ "description": "Possible accent color.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "isBWImg": {
+ "description": "A value indicating if the image is black and white.",
+ "type": "boolean",
+ "x-nullable": false
+ }
+ },
+ "x-nullable": true
+ },
+ "ImageType": {
+ "description": "An object providing possible image types and matching confidence levels.",
+ "type": "object",
+ "properties": {
+ "clipArtType": {
+ "format": "int32",
+ "description": "Confidence level that the image is a clip art.",
+ "type": "integer",
+ "x-nullable": false
+ },
+ "lineDrawingType": {
+ "format": "int32",
+ "description": "Confidence level that the image is a line drawing.",
+ "type": "integer",
+ "x-nullable": false
+ }
+ },
+ "x-nullable": true
+ },
+ "ImageTag": {
+ "description": "An entity observation in the image, along with the confidence score.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the entity.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "confidence": {
+ "format": "double",
+ "description": "The level of confidence that the entity was observed.",
+ "type": "number",
+ "x-nullable": false
+ },
+ "hint": {
+ "description": "Optional hint/details for this tag.",
+ "type": "string",
+ "x-nullable": true
+ }
+ },
+ "x-nullable": true
+ },
+ "ImageDescriptionDetails": {
+ "description": "A collection of content tags, along with a list of captions sorted by confidence level, and image metadata.",
+ "type": "object",
+ "properties": {
+ "tags": {
+ "description": "A collection of image tags.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "x-nullable": true
+ },
+ "x-nullable": true
+ },
+ "captions": {
+ "description": "A list of captions, sorted by confidence level.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageCaption"
+ },
+ "x-nullable": true
+ }
+ },
+ "x-nullable": true
+ },
+ "FaceDescription": {
+ "description": "An object describing a face identified in the image.",
+ "type": "object",
+ "properties": {
+ "age": {
+ "format": "int32",
+ "description": "Possible age of the face.",
+ "type": "integer",
+ "x-nullable": false
+ },
+ "gender": {
+ "description": "Possible gender of the face.",
+ "enum": [
+ "Male",
+ "Female"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "Gender",
+ "modelAsString": false
+ },
+ "x-nullable": true
+ },
+ "faceRectangle": {
+ "$ref": "#/definitions/FaceRectangle",
+ "description": "Rectangle in the image containing the identified face."
+ }
+ },
+ "x-nullable": true
+ },
+ "DetectedObject": {
+ "description": "An object detected in an image.",
+ "type": "object",
+ "properties": {
+ "rectangle": {
+ "$ref": "#/definitions/BoundingRect",
+ "description": "Approximate location of the detected object.",
+ "readOnly": true
+ },
+ "object": {
+ "description": "Label for the object.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "confidence": {
+ "format": "double",
+ "description": "Confidence score of having observed the object in the image, as a value ranging from 0 to 1.",
+ "type": "number",
+ "x-nullable": false
+ },
+ "parent": {
+ "$ref": "#/definitions/ObjectHierarchy",
+ "description": "The parent object, from a taxonomy perspective.\r\nThe parent object is a more generic form of this object. For example, a 'bulldog' would have a parent of 'dog'."
+ }
+ },
+ "x-nullable": true
+ },
+ "DetectedBrand": {
+ "description": "A brand detected in an image.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Label for the brand.",
+ "type": "string",
+ "readOnly": true,
+ "x-nullable": true
+ },
+ "confidence": {
+ "format": "double",
+ "description": "Confidence score of having observed the brand in the image, as a value ranging from 0 to 1.",
+ "type": "number",
+ "readOnly": true,
+ "x-nullable": false
+ },
+ "rectangle": {
+ "$ref": "#/definitions/BoundingRect",
+ "description": "Approximate location of the detected brand.",
+ "readOnly": true
+ }
+ },
+ "x-nullable": true
+ },
+ "ImageMetadata": {
+ "description": "Image metadata.",
+ "type": "object",
+ "properties": {
+ "width": {
+ "format": "int32",
+ "description": "Image width, in pixels.",
+ "type": "integer",
+ "x-nullable": false
+ },
+ "height": {
+ "format": "int32",
+ "description": "Image height, in pixels.",
+ "type": "integer",
+ "x-nullable": false
+ },
+ "format": {
+ "description": "Image format.",
+ "type": "string",
+ "x-nullable": true
+ }
+ },
+ "x-nullable": true
+ },
+ "CategoryDetail": {
+ "description": "An object describing additional category details.",
+ "type": "object",
+ "properties": {
+ "celebrities": {
+ "description": "An array of celebrities if any identified.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CelebritiesModel"
+ },
+ "x-nullable": true
+ },
+ "landmarks": {
+ "description": "An array of landmarks if any identified.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LandmarksModel"
+ },
+ "x-nullable": true
+ }
+ },
+ "x-nullable": true
+ },
+ "ImageCaption": {
+ "description": "An image caption, i.e. a brief description of what the image depicts.",
+ "type": "object",
+ "properties": {
+ "text": {
+ "description": "The text of the caption.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "confidence": {
+ "format": "double",
+ "description": "The level of confidence the service has in the caption.",
+ "type": "number",
+ "x-nullable": false
+ }
+ },
+ "x-nullable": true
+ },
+ "FaceRectangle": {
+ "description": "An object describing face rectangle.",
+ "type": "object",
+ "properties": {
+ "left": {
+ "format": "int32",
+ "description": "X-coordinate of the top left point of the face, in pixels.",
+ "type": "integer",
+ "x-nullable": false
+ },
+ "top": {
+ "format": "int32",
+ "description": "Y-coordinate of the top left point of the face, in pixels.",
+ "type": "integer",
+ "x-nullable": false
+ },
+ "width": {
+ "format": "int32",
+ "description": "Width measured from the top-left point of the face, in pixels.",
+ "type": "integer",
+ "x-nullable": false
+ },
+ "height": {
+ "format": "int32",
+ "description": "Height measured from the top-left point of the face, in pixels.",
+ "type": "integer",
+ "x-nullable": false
+ }
+ },
+ "x-nullable": true
+ },
+ "BoundingRect": {
+ "description": "A bounding box for an area inside an image.",
+ "type": "object",
+ "properties": {
+ "x": {
+ "format": "int32",
+ "description": "X-coordinate of the top left point of the area, in pixels.",
+ "type": "integer",
+ "x-nullable": false
+ },
+ "y": {
+ "format": "int32",
+ "description": "Y-coordinate of the top left point of the area, in pixels.",
+ "type": "integer",
+ "x-nullable": false
+ },
+ "w": {
+ "format": "int32",
+ "description": "Width measured from the top-left point of the area, in pixels.",
+ "type": "integer",
+ "x-nullable": false
+ },
+ "h": {
+ "format": "int32",
+ "description": "Height measured from the top-left point of the area, in pixels.",
+ "type": "integer",
+ "x-nullable": false
+ }
+ },
+ "x-nullable": false
+ },
+ "ObjectHierarchy": {
+ "description": "An object detected inside an image.",
+ "type": "object",
+ "properties": {
+ "object": {
+ "description": "Label for the object.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "confidence": {
+ "format": "double",
+ "description": "Confidence score of having observed the object in the image, as a value ranging from 0 to 1.",
+ "type": "number",
+ "x-nullable": false
+ },
+ "parent": {
+ "$ref": "#/definitions/ObjectHierarchy",
+ "description": "The parent object, from a taxonomy perspective.\r\nThe parent object is a more generic form of this object. For example, a 'bulldog' would have a parent of 'dog'."
+ }
+ },
+ "x-nullable": true
+ },
+ "CelebritiesModel": {
+ "description": "An object describing possible celebrity identification.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the celebrity.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "confidence": {
+ "format": "double",
+ "description": "Confidence level for the celebrity recognition as a value ranging from 0 to 1.",
+ "type": "number",
+ "x-nullable": false
+ },
+ "faceRectangle": {
+ "$ref": "#/definitions/FaceRectangle",
+ "description": "Location of the identified face in the image."
+ }
+ },
+ "x-nullable": true
+ },
+ "LandmarksModel": {
+ "description": "A landmark recognized in the image.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the landmark.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "confidence": {
+ "format": "double",
+ "description": "Confidence level for the landmark recognition as a value ranging from 0 to 1.",
+ "type": "number",
+ "x-nullable": false
+ }
+ },
+ "x-nullable": true
+ },
+ "ImageDescription": {
+ "description": "A collection of content tags, along with a list of captions sorted by confidence level, and image metadata.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "$ref": "#/definitions/ImageDescriptionDetails",
+ "description": "A collection of content tags, along with a list of captions sorted by confidence level, and image metadata.",
+ "x-ms-client-flatten": true
+ },
+ "requestId": {
+ "description": "Id of the REST API request.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/ImageMetadata"
+ }
+ },
+ "x-nullable": true
+ },
+ "DetectResult": {
+ "description": "Result of a DetectImage call.",
+ "type": "object",
+ "properties": {
+ "objects": {
+ "description": "An array of detected objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DetectedObject"
+ },
+ "readOnly": true,
+ "x-nullable": true
+ },
+ "requestId": {
+ "description": "Id of the REST API request.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/ImageMetadata"
+ }
+ },
+ "x-nullable": true
+ },
+ "ListModelsResult": {
+ "description": "Result of the List Domain Models operation.",
+ "type": "object",
+ "properties": {
+ "models": {
+ "description": "An array of supported models.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ModelDescription"
+ },
+ "readOnly": true,
+ "x-nullable": true
+ }
+ },
+ "x-nullable": true
+ },
+ "ModelDescription": {
+ "description": "An object describing supported model by name and categories.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the model.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "categories": {
+ "description": "Categories of the model.",
+ "type": "array",
+ "items": {
+ "type": "string",
+ "x-nullable": true
+ },
+ "x-nullable": true
+ }
+ },
+ "x-nullable": true
+ },
+ "DomainModelResults": {
+ "description": "Result of image analysis using a specific domain model including additional metadata.",
+ "type": "object",
+ "properties": {
+ "result": {
+ "description": "Model-specific response.",
+ "type": "object",
+ "x-ms-client-flatten": true
+ },
+ "requestId": {
+ "description": "Id of the REST API request.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/ImageMetadata"
+ }
+ },
+ "x-nullable": true
+ },
+ "OcrResult": {
+ "type": "object",
+ "properties": {
+ "language": {
+ "description": "The BCP-47 language code of the text in the image.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "textAngle": {
+ "format": "double",
+ "description": "The angle, in radians, of the detected text with respect to the closest horizontal or vertical direction. After rotating the input image clockwise by this angle, the recognized text lines become horizontal or vertical. In combination with the orientation property it can be used to overlay recognition results correctly on the original image, by rotating either the original image or recognition results by a suitable angle around the center of the original image. If the angle cannot be confidently detected, this property is not present. If the image contains text at different angles, only part of the text will be recognized correctly.",
+ "type": "number",
+ "x-nullable": false
+ },
+ "orientation": {
+ "description": "Orientation of the text recognized in the image, if requested. The value (up, down, left, or right) refers to the direction that the top of the recognized text is facing, after the image has been rotated around its center according to the detected text angle (see textAngle property).\r\nIf detection of the orientation was not requested, or no text is detected, the value is 'NotDetected'.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "regions": {
+ "description": "An array of objects, where each object represents a region of recognized text.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OcrRegion"
+ },
+ "x-nullable": true
+ }
+ },
+ "x-nullable": true
+ },
+ "OcrRegion": {
+ "description": "A region consists of multiple lines (e.g. a column of text in a multi-column document).",
+ "type": "object",
+ "properties": {
+ "boundingBox": {
+ "description": "Bounding box of a recognized region. The four integers represent the x-coordinate of the left edge, the y-coordinate of the top edge, width, and height of the bounding box, in the coordinate system of the input image, after it has been rotated around its center according to the detected text angle (see textAngle property), with the origin at the top-left corner, and the y-axis pointing down.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "lines": {
+ "description": "An array of recognized lines of text.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OcrLine"
+ },
+ "x-nullable": true
+ }
+ },
+ "x-nullable": true
+ },
+ "OcrLine": {
+ "description": "An object describing a single recognized line of text.",
+ "type": "object",
+ "properties": {
+ "boundingBox": {
+ "description": "Bounding box of a recognized line. The four integers represent the x-coordinate of the left edge, the y-coordinate of the top edge, width, and height of the bounding box, in the coordinate system of the input image, after it has been rotated around its center according to the detected text angle (see textAngle property), with the origin at the top-left corner, and the y-axis pointing down.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "words": {
+ "description": "An array of objects, where each object represents a recognized word.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OcrWord"
+ },
+ "x-nullable": true
+ }
+ },
+ "x-nullable": true
+ },
+ "OcrWord": {
+ "description": "Information on a recognized word.",
+ "type": "object",
+ "properties": {
+ "boundingBox": {
+ "description": "Bounding box of a recognized word. The four integers represent the x-coordinate of the left edge, the y-coordinate of the top edge, width, and height of the bounding box, in the coordinate system of the input image, after it has been rotated around its center according to the detected text angle (see textAngle property), with the origin at the top-left corner, and the y-axis pointing down.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "text": {
+ "description": "String value of a recognized word.",
+ "type": "string",
+ "x-nullable": true
+ }
+ },
+ "x-nullable": true
+ },
+ "TagResult": {
+ "description": "The results of a image tag operation, including any tags and image metadata.",
+ "type": "object",
+ "properties": {
+ "tags": {
+ "description": "A list of tags with confidence level.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageTag"
+ },
+ "x-nullable": true
+ },
+ "requestId": {
+ "description": "Id of the REST API request.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/ImageMetadata"
+ }
+ },
+ "x-nullable": true
+ },
+ "AreaOfInterestResult": {
+ "description": "Result of AreaOfInterest operation.",
+ "type": "object",
+ "properties": {
+ "areaOfInterest": {
+ "$ref": "#/definitions/BoundingRect",
+ "description": "A bounding box for an area of interest inside an image.",
+ "readOnly": true
+ },
+ "requestId": {
+ "description": "Id of the REST API request.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/ImageMetadata"
+ }
+ },
+ "x-nullable": true
+ },
+ "ImageUrl": {
+ "required": [
+ "url"
+ ],
+ "type": "object",
+ "properties": {
+ "url": {
+ "description": "Publicly reachable URL of an image.",
+ "type": "string"
+ }
+ }
+ },
+ "ComputerVisionError": {
+ "description": "Details about the API request error.",
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The error code.",
+ "enum": [
+ "InvalidImageFormat",
+ "UnsupportedMediaType",
+ "InvalidImageUrl",
+ "NotSupportedFeature",
+ "NotSupportedImage",
+ "Timeout",
+ "InternalServerError",
+ "InvalidImageSize",
+ "BadArgument",
+ "DetectFaceError",
+ "NotSupportedLanguage",
+ "InvalidThumbnailSize",
+ "InvalidDetails",
+ "InvalidModel",
+ "CancelledRequest",
+ "NotSupportedVisualFeature",
+ "FailedToProcess",
+ "Unspecified",
+ "StorageException"
+ ],
+ "x-ms-enum": {
+ "name": "ComputerVisionErrorCodes",
+ "modelAsString": true
+ }
+ },
+ "message": {
+ "description": "A message explaining the error reported by the service.",
+ "type": "string"
+ },
+ "requestId": {
+ "description": "A unique request identifier.",
+ "type": "string"
+ }
+ }
+ },
+ "LandmarkResults": {
+ "description": "Result of domain-specific classifications for the domain of landmarks.",
+ "type": "object",
+ "properties": {
+ "landmarks": {
+ "description": "List of landmarks recognized in the image.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LandmarksModel"
+ },
+ "x-nullable": true
+ },
+ "requestId": {
+ "description": "Id of the REST API request.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/ImageMetadata"
+ }
+ },
+ "x-nullable": true
+ },
+ "CelebrityResults": {
+ "description": "Result of domain-specific classifications for the domain of celebrities.",
+ "type": "object",
+ "properties": {
+ "celebrities": {
+ "description": "List of celebrities recognized in the image.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CelebritiesModel"
+ },
+ "x-nullable": true
+ },
+ "requestId": {
+ "description": "Id of the REST API request.",
+ "type": "string",
+ "x-nullable": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/ImageMetadata"
+ }
+ },
+ "x-nullable": true
+ }
+ },
+ "parameters": {
+ "Endpoint": {
+ "name": "Endpoint",
+ "in": "path",
+ "description": "Supported Cognitive Services endpoints.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "client",
+ "x-ms-skip-url-encoding": true
+ },
+ "ImageStream": {
+ "name": "Image",
+ "in": "body",
+ "description": "An image stream.",
+ "required": true,
+ "schema": {
+ "format": "file",
+ "type": "object"
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "ImageUrl": {
+ "name": "ImageUrl",
+ "in": "body",
+ "description": "A JSON document with a URL pointing to the image that is to be analyzed.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ImageUrl"
+ },
+ "x-ms-parameter-location": "method",
+ "x-ms-client-flatten": true
+ },
+ "ServiceLanguage": {
+ "name": "language",
+ "in": "query",
+ "description": "The desired language for output generation. If this parameter is not specified, the default value is "en".Supported languages:en - English, Default. es - Spanish, ja - Japanese, pt - Portuguese, zh - Simplified Chinese.",
+ "required": false,
+ "type": "string",
+ "default": "en",
+ "enum": [
+ "en",
+ "es",
+ "ja",
+ "pt",
+ "zh"
+ ],
+ "x-ms-parameter-location": "method",
+ "x-nullable": false
+ },
+ "DescriptionExclude": {
+ "name": "descriptionExclude",
+ "in": "query",
+ "description": "Turn off specified domain models when generating the description.",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "Celebrities",
+ "Landmarks"
+ ],
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "DescriptionExclude",
+ "modelAsString": false
+ }
+ },
+ "collectionFormat": "csv",
+ "x-nullable": true,
+ "x-ms-parameter-location": "method"
+ },
+ "OcrLanguage": {
+ "name": "language",
+ "in": "query",
+ "description": "The BCP-47 language code of the text to be detected in the image. The default value is 'unk'.",
+ "required": false,
+ "type": "string",
+ "default": "unk",
+ "enum": [
+ "unk",
+ "zh-Hans",
+ "zh-Hant",
+ "cs",
+ "da",
+ "nl",
+ "en",
+ "fi",
+ "fr",
+ "de",
+ "el",
+ "hu",
+ "it",
+ "ja",
+ "ko",
+ "nb",
+ "pl",
+ "pt",
+ "ru",
+ "es",
+ "sv",
+ "tr",
+ "ar",
+ "ro",
+ "sr-Cyrl",
+ "sr-Latn",
+ "sk"
+ ],
+ "x-ms-parameter-location": "method",
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "OcrLanguages",
+ "modelAsString": false
+ }
+ },
+ "VisualFeatures": {
+ "name": "visualFeatures",
+ "in": "query",
+ "description": "A string indicating what visual feature types to return. Multiple values should be comma-separated. Valid visual feature types include: Categories - categorizes image content according to a taxonomy defined in documentation. Tags - tags the image with a detailed list of words related to the image content. Description - describes the image content with a complete English sentence. Faces - detects if faces are present. If present, generate coordinates, gender and age. ImageType - detects if image is clipart or a line drawing. Color - determines the accent color, dominant color, and whether an image is black&white. Adult - detects if the image is pornographic in nature (depicts nudity or a sex act), or is gory (depicts extreme violence or blood). Sexually suggestive content (aka racy content) is also detected. Objects - detects various objects within an image, including the approximate location. The Objects argument is only available in English. Brands - detects various brands within an image, including the approximate location. The Brands argument is only available in English.",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "ImageType",
+ "Faces",
+ "Adult",
+ "Categories",
+ "Color",
+ "Tags",
+ "Description",
+ "Objects",
+ "Brands"
+ ],
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "VisualFeatureTypes",
+ "modelAsString": false
+ }
+ },
+ "collectionFormat": "csv",
+ "x-ms-parameter-location": "method"
+ },
+ "DetectOrientation": {
+ "name": "detectOrientation",
+ "in": "query",
+ "description": "Whether detect the text orientation in the image. With detectOrientation=true the OCR service tries to detect the image orientation and correct it before further processing (e.g. if it's upside-down).",
+ "required": true,
+ "type": "boolean",
+ "default": true,
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "x-ms-paths": {
+ "/analyze?overload=stream": {
+ "post": {
+ "description": "This operation extracts a rich set of visual features based on the image content.\r\nTwo input methods are supported -- (1) Uploading an image or (2) specifying an image URL. Within your request, there is an optional parameter to allow you to choose which features to return. By default, image categories are returned in the response.\r\nA successful response will be returned in JSON. If the request failed, the response will contain an error code and a message to help understand what went wrong.",
+ "operationId": "AnalyzeImageInStream",
+ "consumes": [
+ "application/octet-stream",
+ "multipart/form-data"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/VisualFeatures"
+ },
+ {
+ "name": "details",
+ "in": "query",
+ "description": "A string indicating which domain-specific details to return. Multiple values should be comma-separated. Valid visual feature types include: Celebrities - identifies celebrities if detected in the image, Landmarks - identifies notable landmarks in the image.",
+ "required": false,
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "Celebrities",
+ "Landmarks"
+ ],
+ "x-nullable": false,
+ "x-ms-enum": {
+ "name": "Details",
+ "modelAsString": false
+ }
+ },
+ "collectionFormat": "csv",
+ "x-nullable": true
+ },
+ {
+ "$ref": "#/parameters/ServiceLanguage"
+ },
+ {
+ "$ref": "#/parameters/DescriptionExclude"
+ },
+ {
+ "$ref": "#/parameters/ImageStream"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response include the extracted features in JSON format. Here is the definitions for enumeration types:\r\n ClipartType\r\n Non - clipart = 0, ambiguous = 1, normal - clipart = 2, good - clipart = 3. LineDrawingTypeNon - LineDrawing = 0, LineDrawing = 1.",
+ "schema": {
+ "$ref": "#/definitions/ImageAnalysis"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful AnalyzeImage request": {
+ "$ref": "./examples/SuccessfulAnalyzeImageWithStream.json"
+ }
+ }
+ }
+ },
+ "/areaOfInterest?overload=stream": {
+ "post": {
+ "description": "This operation returns a bounding box around the most important area of the image.\r\nA successful response will be returned in JSON. If the request failed, the response contains an error code and a message to help determine what went wrong.\r\nUpon failure, the error code and an error message are returned. The error code could be one of InvalidImageUrl, InvalidImageFormat, InvalidImageSize, NotSupportedImage, FailedToProcess, Timeout, or InternalServerError.",
+ "operationId": "GetAreaOfInterestInStream",
+ "consumes": [
+ "application/octet-stream",
+ "multipart/form-data"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ImageStream"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response includes the extracted area of interest in JSON format.",
+ "schema": {
+ "$ref": "#/definitions/AreaOfInterestResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GetAreaOfInterest request": {
+ "$ref": "./examples/SuccessfulGetAreaOfInterestWithStream.json"
+ }
+ }
+ }
+ },
+ "/describe?overload=stream": {
+ "post": {
+ "description": "This operation generates a description of an image in human readable language with complete sentences. The description is based on a collection of content tags, which are also returned by the operation. More than one description can be generated for each image. Descriptions are ordered by their confidence score. Descriptions may include results from celebrity and landmark domain models, if applicable.\r\nTwo input methods are supported -- (1) Uploading an image or (2) specifying an image URL.\r\nA successful response will be returned in JSON. If the request failed, the response will contain an error code and a message to help understand what went wrong.",
+ "operationId": "DescribeImageInStream",
+ "consumes": [
+ "application/octet-stream",
+ "multipart/form-data"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "maxCandidates",
+ "in": "query",
+ "description": "Maximum number of candidate descriptions to be returned. The default is 1.",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "default": 1,
+ "x-nullable": true
+ },
+ {
+ "$ref": "#/parameters/ServiceLanguage"
+ },
+ {
+ "$ref": "#/parameters/DescriptionExclude"
+ },
+ {
+ "$ref": "#/parameters/ImageStream"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Image description object.",
+ "schema": {
+ "$ref": "#/definitions/ImageDescription"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful DescribeImage request": {
+ "$ref": "./examples/SuccessfulDescribeImageWithStream.json"
+ }
+ }
+ }
+ },
+ "/detect?overload=stream": {
+ "post": {
+ "description": "Performs object detection on the specified image.\r\nTwo input methods are supported -- (1) Uploading an image or (2) specifying an image URL.\r\nA successful response will be returned in JSON. If the request failed, the response will contain an error code and a message to help understand what went wrong.",
+ "operationId": "DetectObjectsInStream",
+ "consumes": [
+ "application/octet-stream",
+ "multipart/form-data"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ImageStream"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response include the detected objects in JSON format.",
+ "schema": {
+ "$ref": "#/definitions/DetectResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful DetectObjects request": {
+ "$ref": "./examples/SuccessfulDetectObjectsWithStream.json"
+ }
+ }
+ }
+ },
+ "/generateThumbnail?overload=stream": {
+ "post": {
+ "description": "This operation generates a thumbnail image with the user-specified width and height. By default, the service analyzes the image, identifies the region of interest (ROI), and generates smart cropping coordinates based on the ROI. Smart cropping helps when you specify an aspect ratio that differs from that of the input image.\r\nA successful response contains the thumbnail image binary. If the request failed, the response contains an error code and a message to help determine what went wrong.\r\nUpon failure, the error code and an error message are returned. The error code could be one of InvalidImageUrl, InvalidImageFormat, InvalidImageSize, InvalidThumbnailSize, NotSupportedImage, FailedToProcess, Timeout, or InternalServerError.",
+ "operationId": "GenerateThumbnailInStream",
+ "consumes": [
+ "application/octet-stream",
+ "multipart/form-data"
+ ],
+ "produces": [
+ "application/octet-stream"
+ ],
+ "parameters": [
+ {
+ "name": "width",
+ "in": "query",
+ "description": "Width of the thumbnail, in pixels. It must be between 1 and 1024. Recommended minimum of 50.",
+ "required": true,
+ "type": "integer",
+ "format": "int32",
+ "maximum": 1024,
+ "minimum": 1,
+ "x-nullable": false
+ },
+ {
+ "name": "height",
+ "in": "query",
+ "description": "Height of the thumbnail, in pixels. It must be between 1 and 1024. Recommended minimum of 50.",
+ "required": true,
+ "type": "integer",
+ "format": "int32",
+ "maximum": 1024,
+ "minimum": 1,
+ "x-nullable": false
+ },
+ {
+ "name": "smartCropping",
+ "in": "query",
+ "description": "Boolean flag for enabling smart cropping.",
+ "required": false,
+ "type": "boolean",
+ "default": false,
+ "x-nullable": true
+ },
+ {
+ "$ref": "#/parameters/ImageStream"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The generated thumbnail in binary format.",
+ "schema": {
+ "type": "file"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful GenerateThumbnail request": {
+ "$ref": "./examples/SuccessfulGenerateThumbnailWithStream.json"
+ }
+ }
+ }
+ },
+ "/models/{model}/analyze?overload=stream": {
+ "post": {
+ "description": "This operation recognizes content within an image by applying a domain-specific model. The list of domain-specific models that are supported by the Computer Vision API can be retrieved using the /models GET request. Currently, the API provides following domain-specific models: celebrities, landmarks.\r\nTwo input methods are supported -- (1) Uploading an image or (2) specifying an image URL.\r\nA successful response will be returned in JSON.\r\nIf the request failed, the response will contain an error code and a message to help understand what went wrong.",
+ "operationId": "AnalyzeImageByDomainInStream",
+ "consumes": [
+ "application/octet-stream",
+ "multipart/form-data"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "model",
+ "in": "path",
+ "description": "The domain-specific content to recognize.",
+ "required": true,
+ "type": "string",
+ "x-nullable": true
+ },
+ {
+ "$ref": "#/parameters/ServiceLanguage"
+ },
+ {
+ "$ref": "#/parameters/ImageStream"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Analysis result based on the domain model.",
+ "schema": {
+ "$ref": "#/definitions/DomainModelResults"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful AnalyzeImageByDomain request": {
+ "$ref": "./examples/SuccessfulAnalyzeImageByDomainWithStream.json"
+ }
+ }
+ }
+ },
+ "/ocr?overload=stream": {
+ "post": {
+ "description": "Optical Character Recognition (OCR) detects text in an image and extracts the recognized characters into a machine-usable character stream.\r\nUpon success, the OCR results will be returned.\r\nUpon failure, the error code together with an error message will be returned. The error code can be one of InvalidImageUrl, InvalidImageFormat, InvalidImageSize, NotSupportedImage, NotSupportedLanguage, or InternalServerError.",
+ "operationId": "RecognizePrintedTextInStream",
+ "consumes": [
+ "application/octet-stream",
+ "multipart/form-data"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/DetectOrientation"
+ },
+ {
+ "$ref": "#/parameters/OcrLanguage"
+ },
+ {
+ "$ref": "#/parameters/ImageStream"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The OCR results in the hierarchy of region/line/word. The results include text, bounding box for regions, lines and words. The angle, in radians, of the detected text with respect to the closest horizontal or vertical direction. After rotating the input image clockwise by this angle, the recognized text lines become horizontal or vertical. In combination with the orientation property it can be used to overlay recognition results correctly on the original image, by rotating either the original image or recognition results by a suitable angle around the center of the original image. If the angle cannot be confidently detected, this property is not present. If the image contains text at different angles, only part of the text will be recognized correctly.",
+ "schema": {
+ "$ref": "#/definitions/OcrResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful RecognizePrintedText request": {
+ "$ref": "./examples/SuccessfulRecognizePrintedTextWithStream.json"
+ }
+ }
+ }
+ },
+ "/tag?overload=stream": {
+ "post": {
+ "description": "This operation generates a list of words, or tags, that are relevant to the content of the supplied image. The Computer Vision API can return tags based on objects, living beings, scenery or actions found in images. Unlike categories, tags are not organized according to a hierarchical classification system, but correspond to image content. Tags may contain hints to avoid ambiguity or provide context, for example the tag \"ascomycete\" may be accompanied by the hint \"fungus\".\r\nTwo input methods are supported -- (1) Uploading an image or (2) specifying an image URL.\r\nA successful response will be returned in JSON. If the request failed, the response will contain an error code and a message to help understand what went wrong.",
+ "operationId": "TagImageInStream",
+ "consumes": [
+ "application/octet-stream",
+ "multipart/form-data"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ServiceLanguage"
+ },
+ {
+ "$ref": "#/parameters/ImageStream"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Image tags object.",
+ "schema": {
+ "$ref": "#/definitions/TagResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful TagImage request": {
+ "$ref": "./examples/SuccessfulTagImageWithStream.json"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/Ocr.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/Ocr.json
new file mode 100644
index 000000000000..9d0e2df9700a
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/Ocr.json
@@ -0,0 +1,452 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "3.1",
+ "title": "Computer Vision Client",
+ "description": "The Computer Vision API provides state-of-the-art algorithms to process images and return information. For example, it can be used to determine if an image contains mature content, or it can be used to find all the faces in an image. It also has other features like estimating dominant and accent colors, categorizing the content of images, and describing an image with complete English sentences. Additionally, it can also intelligently generate images thumbnails for displaying large images effectively."
+ },
+ "securityDefinitions": {
+ "apim_key": {
+ "type": "apiKey",
+ "name": "Ocp-Apim-Subscription-Key",
+ "in": "header"
+ }
+ },
+ "security": [
+ {
+ "apim_key": []
+ }
+ ],
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{Endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ },
+ "host": "westcentralus.api.cognitive.microsoft.com",
+ "basePath": "/vision/v3.1",
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/read/analyze": {
+ "post": {
+ "description": "Use this interface to get the result of a Read operation, employing the state-of-the-art Optical Character Recognition (OCR) algorithms optimized for text-heavy documents. When you use the Read interface, the response contains a field called 'Operation-Location'. The 'Operation-Location' field contains the URL that you must use for your 'GetReadResult' operation to access OCR results.",
+ "operationId": "Read",
+ "parameters": [
+ {
+ "$ref": "#/parameters/OcrDetectionLanguage"
+ },
+ {
+ "$ref": "#/parameters/ImageUrl"
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "202": {
+ "description": "The service has accepted the request and will start processing later.",
+ "headers": {
+ "Operation-Location": {
+ "description": "URL to query for status of the operation. The operation ID will expire in 48 hours. ",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Analyze request": {
+ "$ref": "./examples/SuccessfulReadWithUrl.json"
+ }
+ }
+ }
+ },
+ "/read/analyzeResults/{operationId}": {
+ "get": {
+ "description": "This interface is used for getting OCR results of Read operation. The URL to this interface should be retrieved from 'Operation-Location' field returned from Read interface.",
+ "operationId": "GetReadResult",
+ "parameters": [
+ {
+ "name": "operationId",
+ "in": "path",
+ "description": "Id of read operation returned in the response of the 'Read' interface.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Returns the read operation status.",
+ "schema": {
+ "$ref": "#/definitions/ReadOperationResult"
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Get Read Result request": {
+ "$ref": "./examples/SuccessfulGetReadResult.json"
+ }
+ }
+ }
+ }
+ },
+ "x-ms-paths": {
+ "/read/analyze?overload=stream": {
+ "post": {
+ "description": "Use this interface to get the result of a Read operation, employing the state-of-the-art Optical Character Recognition (OCR) algorithms optimized for text-heavy documents. When you use the Read interface, the response contains a field called 'Operation-Location'. The 'Operation-Location' field contains the URL that you must use for your 'GetReadResult' operation to access OCR results.",
+ "operationId": "ReadInStream",
+ "parameters": [
+ {
+ "$ref": "#/parameters/OcrDetectionLanguage"
+ },
+ {
+ "$ref": "#/parameters/ImageStream"
+ }
+ ],
+ "consumes": [
+ "application/octet-stream"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "202": {
+ "description": "The service has accepted the request and will start processing later.",
+ "headers": {
+ "Operation-Location": {
+ "description": "URL to query for status of the operation. The operation ID will expire in 48 hours. ",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response.",
+ "schema": {
+ "$ref": "#/definitions/ComputerVisionError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Analyze request": {
+ "$ref": "./examples/SuccessfulReadWithStream.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ReadOperationResult": {
+ "type": "object",
+ "description": "OCR result of the read operation.",
+ "properties": {
+ "status": {
+ "description": "Status of the read operation.",
+ "$ref": "#/definitions/OperationStatus"
+ },
+ "createdDateTime": {
+ "type": "string",
+ "description": "Get UTC date time the batch operation was submitted.",
+ "x-nullable": false
+ },
+ "lastUpdatedDateTime": {
+ "type": "string",
+ "description": "Get last updated UTC date time of this batch operation.",
+ "x-nullable": false
+ },
+ "analyzeResult": {
+ "description": "Analyze batch operation result.",
+ "type": "object",
+ "$ref": "#/definitions/analyzeResults"
+ }
+ }
+ },
+ "OperationStatus": {
+ "type": "string",
+ "description": "Status code of the text operation.",
+ "enum": [
+ "notStarted",
+ "running",
+ "failed",
+ "succeeded"
+ ],
+ "x-ms-enum": {
+ "name": "OperationStatusCodes",
+ "modelAsString": false
+ },
+ "x-nullable": false
+ },
+ "ReadResult": {
+ "description": "Text extracted from a page in the input document.",
+ "type": "object",
+ "required": [
+ "page",
+ "angle",
+ "width",
+ "height",
+ "unit",
+ "lines"
+ ],
+ "properties": {
+ "page": {
+ "description": "The 1-based page number of the recognition result.",
+ "type": "integer"
+ },
+ "language": {
+ "description": "The BCP-47 language code of the recognized text page.",
+ "type": "string"
+ },
+ "angle": {
+ "description": "The orientation of the image in degrees in the clockwise direction. Range between [-180, 180).",
+ "type": "number"
+ },
+ "width": {
+ "description": "The width of the image in pixels or the PDF in inches.",
+ "type": "number"
+ },
+ "height": {
+ "description": "The height of the image in pixels or the PDF in inches.",
+ "type": "number"
+ },
+ "unit": {
+ "description": "The unit used in the Width, Height and BoundingBox. For images, the unit is 'pixel'. For PDF, the unit is 'inch'.",
+ "type": "string",
+ "enum": [
+ "pixel",
+ "inch"
+ ],
+ "x-ms-enum": {
+ "name": "TextRecognitionResultDimensionUnit",
+ "modelAsString": false
+ },
+ "x-nullable": false
+ },
+ "lines": {
+ "description": "A list of recognized text lines.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Line"
+ }
+ }
+ }
+ },
+ "analyzeResults": {
+ "description": "Analyze batch 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"
+ }
+ }
+ }
+ },
+ "Line": {
+ "description": "An object representing a recognized text line.",
+ "type": "object",
+ "required": [
+ "boundingBox",
+ "text",
+ "words"
+ ],
+ "properties": {
+ "language": {
+ "description": "The BCP-47 language code of the recognized text line. Only provided where the language of the line differs from the page's.",
+ "type": "string"
+ },
+ "boundingBox": {
+ "description": "Bounding box of a recognized line.",
+ "$ref": "#/definitions/BoundingBox"
+ },
+ "text": {
+ "description": "The text content of the line.",
+ "type": "string"
+ },
+ "words": {
+ "description": "List of words in the text line.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Word"
+ }
+ }
+ }
+ },
+ "Word": {
+ "description": "An object representing a recognized word.",
+ "type": "object",
+ "required": [
+ "boundingBox",
+ "text",
+ "confidence"
+ ],
+ "properties": {
+ "boundingBox": {
+ "description": "Bounding box of a recognized word.",
+ "$ref": "#/definitions/BoundingBox"
+ },
+ "text": {
+ "description": "The text content of the word.",
+ "type": "string"
+ },
+ "confidence": {
+ "description": "Qualitative confidence measure.",
+ "type": "number",
+ "format": "float"
+ }
+ }
+ },
+ "BoundingBox": {
+ "description": "Quadrangle bounding box, with coordinates in original image. The eight numbers represent the four points (x-coordinate, y-coordinate from the left-top corner of the image) of the detected rectangle from the left-top corner in the clockwise direction. For images, coordinates are in pixels. For PDF, coordinates are in inches.",
+ "type": "array",
+ "items": {
+ "type": "number",
+ "x-nullable": false
+ }
+ },
+ "ComputerVisionError": {
+ "description": "Details about the API request error.",
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The error code.",
+ "enum": [
+ "InvalidImageFormat",
+ "UnsupportedMediaType",
+ "InvalidImageUrl",
+ "NotSupportedFeature",
+ "NotSupportedImage",
+ "Timeout",
+ "InternalServerError",
+ "InvalidImageSize",
+ "BadArgument",
+ "DetectFaceError",
+ "NotSupportedLanguage",
+ "InvalidThumbnailSize",
+ "InvalidDetails",
+ "InvalidModel",
+ "CancelledRequest",
+ "NotSupportedVisualFeature",
+ "FailedToProcess",
+ "Unspecified",
+ "StorageException"
+ ],
+ "x-ms-enum": {
+ "name": "ComputerVisionErrorCodes",
+ "modelAsString": true
+ }
+ },
+ "message": {
+ "description": "A message explaining the error reported by the service.",
+ "type": "string"
+ },
+ "requestId": {
+ "description": "A unique request identifier.",
+ "type": "string"
+ }
+ }
+ },
+ "ImageUrl": {
+ "type": "object",
+ "required": [
+ "url"
+ ],
+ "properties": {
+ "url": {
+ "description": "Publicly reachable URL of an image.",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "OcrDetectionLanguage": {
+ "name": "language",
+ "in": "query",
+ "description": "The BCP-47 language code of the text in the document. Currently, only English ('en'), Dutch (‘nl’), French (‘fr’), German (‘de’), Italian (‘it’), Portuguese (‘pt), and Spanish ('es') are supported. Read 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,
+ "default": "en",
+ "x-ms-parameter-location": "method",
+ "type": "string",
+ "x-ms-enum": {
+ "name": "OcrDetectionLanguage",
+ "modelAsString": true
+ },
+ "enum": [
+ "en",
+ "es",
+ "fr",
+ "de",
+ "it",
+ "nl",
+ "pt"
+ ]
+ },
+ "ImageUrl": {
+ "name": "ImageUrl",
+ "in": "body",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "x-ms-client-flatten": true,
+ "description": "A JSON document with a URL pointing to the image that is to be analyzed.",
+ "schema": {
+ "$ref": "#/definitions/ImageUrl"
+ }
+ },
+ "ImageStream": {
+ "name": "Image",
+ "in": "body",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "description": "An image stream.",
+ "schema": {
+ "type": "object",
+ "format": "file"
+ }
+ },
+ "Endpoint": {
+ "name": "Endpoint",
+ "description": "Supported Cognitive Services endpoints.",
+ "x-ms-parameter-location": "client",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulAnalyzeImageByDomainWithStream.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulAnalyzeImageByDomainWithStream.json
new file mode 100644
index 000000000000..a3cd00555cc6
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulAnalyzeImageByDomainWithStream.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "model": "Celebrities",
+ "Image": "{binary}"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "requestId": "f0027b4b-dc0d-4082-9228-1545ed246b03",
+ "metadata": {
+ "width": 1500,
+ "height": 1000,
+ "format": "Jpeg"
+ },
+ "result": {
+ "celebrities": [
+ {
+ "name": "Satya Nadella",
+ "faceRectangle": {
+ "left": 597,
+ "top": 162,
+ "width": 248,
+ "height": 248
+ },
+ "confidence": 0.999028444
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulAnalyzeImageByDomainWithUrl.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulAnalyzeImageByDomainWithUrl.json
new file mode 100644
index 000000000000..92ead72b5f8f
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulAnalyzeImageByDomainWithUrl.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "model": "Celebrities",
+ "ImageUrl": {
+ "url": "{url}"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "requestId": "f0027b4b-dc0d-4082-9228-1545ed246b03",
+ "metadata": {
+ "width": 1500,
+ "height": 1000,
+ "format": "Jpeg"
+ },
+ "result": {
+ "celebrities": [
+ {
+ "name": "Satya Nadella",
+ "faceRectangle": {
+ "left": 597,
+ "top": 162,
+ "width": 248,
+ "height": 248
+ },
+ "confidence": 0.999028444
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulAnalyzeImageWithStream.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulAnalyzeImageWithStream.json
new file mode 100644
index 000000000000..ba86791a7e36
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulAnalyzeImageWithStream.json
@@ -0,0 +1,176 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "visualFeatures": [
+ "Categories",
+ "Adult",
+ "Tags",
+ "Description",
+ "Faces",
+ "Color",
+ "ImageType",
+ "Objects",
+ "Brands"
+ ],
+ "details": [
+ "Celebrities",
+ "Landmarks"
+ ],
+ "language": "en",
+ "Image": "{binary}"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "categories": [
+ {
+ "name": "abstract_",
+ "score": 0.00390625
+ },
+ {
+ "name": "people_",
+ "score": 0.83984375,
+ "detail": {
+ "celebrities": [
+ {
+ "name": "Satya Nadella",
+ "faceRectangle": {
+ "left": 597,
+ "top": 162,
+ "width": 248,
+ "height": 248
+ },
+ "confidence": 0.999028444
+ }
+ ],
+ "landmarks": [
+ {
+ "name": "Forbidden City",
+ "confidence": 0.9978346
+ }
+ ]
+ }
+ }
+ ],
+ "adult": {
+ "isAdultContent": false,
+ "isRacyContent": false,
+ "isGoryContent": false,
+ "adultScore": 0.0934349000453949,
+ "racyScore": 0.068613491952419281,
+ "goreScore": 0.012872257380997575
+ },
+ "tags": [
+ {
+ "name": "person",
+ "confidence": 0.98979085683822632
+ },
+ {
+ "name": "man",
+ "confidence": 0.94493889808654785
+ },
+ {
+ "name": "outdoor",
+ "confidence": 0.938492476940155
+ },
+ {
+ "name": "window",
+ "confidence": 0.89513939619064331
+ },
+ {
+ "name": "pangolin",
+ "confidence": 0.7250059783791661,
+ "hint": "mammal"
+ }
+ ],
+ "description": {
+ "tags": [
+ "person",
+ "man",
+ "outdoor",
+ "window",
+ "glasses"
+ ],
+ "captions": [
+ {
+ "text": "Satya Nadella sitting on a bench",
+ "confidence": 0.48293603002174407
+ }
+ ]
+ },
+ "requestId": "0dbec5ad-a3d3-4f7e-96b4-dfd57efe967d",
+ "metadata": {
+ "width": 1500,
+ "height": 1000,
+ "format": "Jpeg"
+ },
+ "faces": [
+ {
+ "age": 44,
+ "gender": "Male",
+ "faceRectangle": {
+ "left": 593,
+ "top": 160,
+ "width": 250,
+ "height": 250
+ }
+ }
+ ],
+ "color": {
+ "dominantColorForeground": "Brown",
+ "dominantColorBackground": "Brown",
+ "dominantColors": [
+ "Brown",
+ "Black"
+ ],
+ "accentColor": "873B59",
+ "isBWImg": false
+ },
+ "imageType": {
+ "clipArtType": 0,
+ "lineDrawingType": 0
+ },
+ "objects": [
+ {
+ "rectangle": {
+ "x": 0,
+ "y": 0,
+ "w": 50,
+ "h": 50
+ },
+ "object": "tree",
+ "confidence": 0.9,
+ "parent": {
+ "object": "plant",
+ "confidence": 0.95
+ }
+ }
+ ],
+ "brands": [
+ {
+ "name": "Pepsi",
+ "confidence": 0.857,
+ "rectangle": {
+ "x": 489,
+ "y": 79,
+ "w": 161,
+ "h": 177
+ }
+ },
+ {
+ "name": "Coca-Cola",
+ "confidence": 0.893,
+ "rectangle": {
+ "x": 216,
+ "y": 55,
+ "w": 171,
+ "h": 372
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulAnalyzeImageWithUrl.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulAnalyzeImageWithUrl.json
new file mode 100644
index 000000000000..be78226e0e16
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulAnalyzeImageWithUrl.json
@@ -0,0 +1,184 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "visualFeatures": [
+ "Categories",
+ "Adult",
+ "Tags",
+ "Description",
+ "Faces",
+ "Color",
+ "ImageType",
+ "Objects",
+ "Brands"
+ ],
+ "details": [
+ "Celebrities",
+ "Landmarks"
+ ],
+ "language": "en",
+ "ImageUrl": {
+ "url": "{url}"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "categories": [
+ {
+ "name": "abstract_",
+ "score": 0.00390625
+ },
+ {
+ "name": "people_",
+ "score": 0.83984375,
+ "detail": {
+ "celebrities": [
+ {
+ "name": "Satya Nadella",
+ "faceRectangle": {
+ "left": 597,
+ "top": 162,
+ "width": 248,
+ "height": 248
+ },
+ "confidence": 0.999028444
+ }
+ ]
+ }
+ },
+ {
+ "name": "building_",
+ "score": 0.984375,
+ "detail": {
+ "landmarks": [
+ {
+ "name": "Forbidden City",
+ "confidence": 0.98290169239044189
+ }
+ ]
+ }
+ }
+ ],
+ "adult": {
+ "isAdultContent": false,
+ "isRacyContent": false,
+ "isGoryContent": false,
+ "adultScore": 0.0934349000453949,
+ "racyScore": 0.068613491952419281,
+ "goreScore": 0.012872257380997575
+ },
+ "tags": [
+ {
+ "name": "person",
+ "confidence": 0.98979085683822632
+ },
+ {
+ "name": "man",
+ "confidence": 0.94493889808654785
+ },
+ {
+ "name": "outdoor",
+ "confidence": 0.938492476940155
+ },
+ {
+ "name": "window",
+ "confidence": 0.89513939619064331
+ },
+ {
+ "name": "pangolin",
+ "confidence": 0.7250059783791661,
+ "hint": "mammal"
+ }
+ ],
+ "description": {
+ "tags": [
+ "person",
+ "man",
+ "outdoor",
+ "window",
+ "glasses"
+ ],
+ "captions": [
+ {
+ "text": "Satya Nadella sitting on a bench",
+ "confidence": 0.48293603002174407
+ }
+ ]
+ },
+ "requestId": "0dbec5ad-a3d3-4f7e-96b4-dfd57efe967d",
+ "metadata": {
+ "width": 1500,
+ "height": 1000,
+ "format": "Jpeg"
+ },
+ "faces": [
+ {
+ "age": 44,
+ "gender": "Male",
+ "faceRectangle": {
+ "left": 593,
+ "top": 160,
+ "width": 250,
+ "height": 250
+ }
+ }
+ ],
+ "color": {
+ "dominantColorForeground": "Brown",
+ "dominantColorBackground": "Brown",
+ "dominantColors": [
+ "Brown",
+ "Black"
+ ],
+ "accentColor": "873B59",
+ "isBWImg": false
+ },
+ "imageType": {
+ "clipArtType": 0,
+ "lineDrawingType": 0
+ },
+ "objects": [
+ {
+ "rectangle": {
+ "x": 0,
+ "y": 0,
+ "w": 50,
+ "h": 50
+ },
+ "object": "tree",
+ "confidence": 0.9,
+ "parent": {
+ "object": "plant",
+ "confidence": 0.95
+ }
+ }
+ ],
+ "brands": [
+ {
+ "name": "Pepsi",
+ "confidence": 0.857,
+ "rectangle": {
+ "x": 489,
+ "y": 79,
+ "w": 161,
+ "h": 177
+ }
+ },
+ {
+ "name": "Coca-Cola",
+ "confidence": 0.893,
+ "rectangle": {
+ "x": 216,
+ "y": 55,
+ "w": 171,
+ "h": 372
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulDescribeImageWithStream.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulDescribeImageWithStream.json
new file mode 100644
index 000000000000..071248140600
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulDescribeImageWithStream.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "maxCandidates": 1,
+ "Image": "{binary}"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "description": {
+ "tags": [
+ "person",
+ "man",
+ "outdoor",
+ "window",
+ "glasses"
+ ],
+ "captions": [
+ {
+ "text": "Satya Nadella sitting on a bench",
+ "confidence": 0.48293603002174407
+ },
+ {
+ "text": "Satya Nadella is sitting on a bench",
+ "confidence": 0.40037006815422832
+ },
+ {
+ "text": "Satya Nadella sitting in front of a building",
+ "confidence": 0.38035155997373377
+ }
+ ]
+ },
+ "requestId": "ed2de1c6-fb55-4686-b0da-4da6e05d283f",
+ "metadata": {
+ "width": 1500,
+ "height": 1000,
+ "format": "Jpeg"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulDescribeImageWithUrl.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulDescribeImageWithUrl.json
new file mode 100644
index 000000000000..087ac0515231
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulDescribeImageWithUrl.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "maxCandidates": 1,
+ "ImageUrl": {
+ "url": "{url}"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "description": {
+ "tags": [
+ "person",
+ "man",
+ "outdoor",
+ "window",
+ "glasses"
+ ],
+ "captions": [
+ {
+ "text": "Satya Nadella sitting on a bench",
+ "confidence": 0.48293603002174407
+ },
+ {
+ "text": "Satya Nadella is sitting on a bench",
+ "confidence": 0.40037006815422832
+ },
+ {
+ "text": "Satya Nadella sitting in front of a building",
+ "confidence": 0.38035155997373377
+ }
+ ]
+ },
+ "requestId": "ed2de1c6-fb55-4686-b0da-4da6e05d283f",
+ "metadata": {
+ "width": 1500,
+ "height": 1000,
+ "format": "Jpeg"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulDetectObjectsWithStream.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulDetectObjectsWithStream.json
new file mode 100644
index 000000000000..8f4ad7fd73aa
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulDetectObjectsWithStream.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Image": "{binary}"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "objects": [
+ {
+ "rectangle": {
+ "x": 0,
+ "y": 0,
+ "w": 50,
+ "h": 50
+ },
+ "object": "tree",
+ "confidence": 0.9,
+ "parent": {
+ "object": "plant",
+ "confidence": 0.95
+ }
+ }
+ ],
+ "requestId": "1ad0e45e-b7b4-4be3-8042-53be96103337",
+ "metadata": {
+ "width": 100,
+ "height": 100,
+ "format": "Jpeg"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulDetectObjectsWithUrl.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulDetectObjectsWithUrl.json
new file mode 100644
index 000000000000..7ea387eb41be
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulDetectObjectsWithUrl.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "ImageUrl": {
+ "url": "{url}"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "objects": [
+ {
+ "rectangle": {
+ "x": 0,
+ "y": 0,
+ "w": 50,
+ "h": 50
+ },
+ "object": "tree",
+ "confidence": 0.9,
+ "parent": {
+ "object": "plant",
+ "confidence": 0.95
+ }
+ }
+ ],
+ "requestId": "1ad0e45e-b7b4-4be3-8042-53be96103337",
+ "metadata": {
+ "width": 100,
+ "height": 100,
+ "format": "Jpeg"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGenerateThumbnailWithStream.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGenerateThumbnailWithStream.json
new file mode 100644
index 000000000000..22d52fbe7644
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGenerateThumbnailWithStream.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "width": "500",
+ "height": "500",
+ "smartCropping": true,
+ "Image": "{binary}"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": "{binary}"
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGenerateThumbnailWithUrl.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGenerateThumbnailWithUrl.json
new file mode 100644
index 000000000000..28744179ecb8
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGenerateThumbnailWithUrl.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "width": "500",
+ "height": "500",
+ "smartCropping": true,
+ "ImageUrl": {
+ "url": "{url}"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": "{Binary}"
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGetAreaOfInterestWithStream.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGetAreaOfInterestWithStream.json
new file mode 100644
index 000000000000..ae32a21a551e
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGetAreaOfInterestWithStream.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Image": "{binary}"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "areaOfInterest": {
+ "h": 951,
+ "w": 950,
+ "x": 160,
+ "y": 0
+ },
+ "requestId": "ed2de1c6-fb55-4686-b0da-4da6e05d283f",
+ "metadata": {
+ "format": "Jpeg",
+ "height": 951,
+ "width": 1378
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGetAreaOfInterestWithUrl.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGetAreaOfInterestWithUrl.json
new file mode 100644
index 000000000000..7d6d08208836
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGetAreaOfInterestWithUrl.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "ImageUrl": {
+ "url": "{url}"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "areaOfInterest": {
+ "h": 951,
+ "w": 950,
+ "x": 160,
+ "y": 0
+ },
+ "requestId": "ed2de1c6-fb55-4686-b0da-4da6e05d283f",
+ "metadata": {
+ "format": "Jpeg",
+ "height": 951,
+ "width": 1378
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGetReadResult.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGetReadResult.json
new file mode 100644
index 000000000000..944e52b9d113
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulGetReadResult.json
@@ -0,0 +1,369 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "operationId": "e56ffa6e-1ee4-4042-bc07-993db706c95f"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "status": "succeeded",
+ "createdDateTime": "2019-10-03T14:32:04.236Z",
+ "lastUpdatedDateTime": "2019-10-03T14:38:14.852Z",
+ "analyzeResult": {
+ "version": "v3.1",
+ "readResults": [
+ {
+ "page": 1,
+ "language": "en",
+ "angle": 49.59,
+ "width": 600,
+ "height": 400,
+ "unit": "pixel",
+ "lines": [
+ {
+ "boundingBox": [
+ 202,
+ 618,
+ 2047,
+ 643,
+ 2046,
+ 840,
+ 200,
+ 813
+ ],
+ "text": "Our greatest glory is not",
+ "words": [
+ {
+ "boundingBox": [
+ 204,
+ 627,
+ 481,
+ 628,
+ 481,
+ 830,
+ 204,
+ 829
+ ],
+ "text": "Our",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 519,
+ 628,
+ 1057,
+ 630,
+ 1057,
+ 832,
+ 518,
+ 830
+ ],
+ "text": "greatest",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 1114,
+ 630,
+ 1549,
+ 631,
+ 1548,
+ 833,
+ 1114,
+ 832
+ ],
+ "text": "glory",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 1586,
+ 631,
+ 1785,
+ 632,
+ 1784,
+ 834,
+ 1586,
+ 833
+ ],
+ "text": "is",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 1822,
+ 632,
+ 2115,
+ 633,
+ 2115,
+ 835,
+ 1822,
+ 834
+ ],
+ "text": "not",
+ "confidence": 0.164
+ }
+ ]
+ },
+ {
+ "boundingBox": [
+ 420,
+ 1273,
+ 2954,
+ 1250,
+ 2958,
+ 1488,
+ 422,
+ 1511
+ ],
+ "text": "but in rising every time we fall",
+ "words": [
+ {
+ "boundingBox": [
+ 423,
+ 1269,
+ 634,
+ 1268,
+ 635,
+ 1507,
+ 424,
+ 1508
+ ],
+ "text": "but",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 667,
+ 1268,
+ 808,
+ 1268,
+ 809,
+ 1506,
+ 668,
+ 1507
+ ],
+ "text": "in",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 874,
+ 1267,
+ 1289,
+ 1265,
+ 1290,
+ 1504,
+ 875,
+ 1506
+ ],
+ "text": "rising",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 1331,
+ 1265,
+ 1771,
+ 1263,
+ 1772,
+ 1502,
+ 1332,
+ 1504
+ ],
+ "text": "every",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 1812,
+ 1263,
+ 2178,
+ 1261,
+ 2179,
+ 1500,
+ 1813,
+ 1502
+ ],
+ "text": "time",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 2219,
+ 1261,
+ 2510,
+ 1260,
+ 2511,
+ 1498,
+ 2220,
+ 1500
+ ],
+ "text": "we",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 2551,
+ 1260,
+ 3016,
+ 1258,
+ 3017,
+ 1496,
+ 2552,
+ 1498
+ ],
+ "text": "fall",
+ "confidence": 0.164
+ }
+ ]
+ },
+ {
+ "language": "es",
+ "boundingBox": [
+ 1612,
+ 903,
+ 2744,
+ 935,
+ 2738,
+ 1139,
+ 1607,
+ 1107
+ ],
+ "text": "Viva la vida",
+ "words": [
+ {
+ "boundingBox": [
+ 323,
+ 454,
+ 416,
+ 449,
+ 418,
+ 494,
+ 325,
+ 501
+ ],
+ "text": "Viva",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 92,
+ 550,
+ 429,
+ 541,
+ 430,
+ 591,
+ 94,
+ 600
+ ],
+ "text": "la",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 58,
+ 466,
+ 268,
+ 458,
+ 270,
+ 505,
+ 161,
+ 512
+ ],
+ "text": "vida",
+ "confidence": 0.164
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "page": 2,
+ "language": "en",
+ "angle": 1.32,
+ "width": 600,
+ "height": 400,
+ "unit": "pixel",
+ "lines": [
+ {
+ "boundingBox": [
+ 1612,
+ 903,
+ 2744,
+ 935,
+ 2738,
+ 1139,
+ 1607,
+ 1107
+ ],
+ "text": "in never failing ,",
+ "words": [
+ {
+ "boundingBox": [
+ 1611,
+ 934,
+ 1707,
+ 933,
+ 1708,
+ 1147,
+ 1613,
+ 1147
+ ],
+ "text": "in",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 1753,
+ 933,
+ 2132,
+ 930,
+ 2133,
+ 1144,
+ 1754,
+ 1146
+ ],
+ "text": "never",
+ "confidence": 0.999
+ },
+ {
+ "boundingBox": [
+ 2162,
+ 930,
+ 2673,
+ 927,
+ 2674,
+ 1140,
+ 2164,
+ 1144
+ ],
+ "text": "failing",
+ "confidence": 0.164
+ },
+ {
+ "boundingBox": [
+ 2703,
+ 926,
+ 2788,
+ 926,
+ 2790,
+ 1139,
+ 2705,
+ 1140
+ ],
+ "text": ",",
+ "confidence": 0.164
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulListModels.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulListModels.json
new file mode 100644
index 000000000000..54e72d376431
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulListModels.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "models": [
+ {
+ "name": "celebrities",
+ "categories": [
+ "people_"
+ ]
+ },
+ {
+ "name": "landmarks",
+ "categories": [
+ "building_"
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulReadWithStream.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulReadWithStream.json
new file mode 100644
index 000000000000..a9728b640867
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulReadWithStream.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "language": "en",
+ "Image": "{binary}"
+ },
+ "responses": {
+ "202": {
+ "header": {
+ "location": "https://{domain}/vision/v3.1/read/e56ffa6e-1ee4-4042-bc07-993db706c95f"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulReadWithUrl.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulReadWithUrl.json
new file mode 100644
index 000000000000..60c4dc56a96c
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulReadWithUrl.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "Endpoint": "{Endpoint}",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "language": "en",
+ "ImageUrl": {
+ "url": "{url}"
+ }
+ },
+ "responses": {
+ "202": {
+ "header": {
+ "Operation-Location": "https://{domain}/vision/v3.1/read/e56ffa6e-1ee4-4042-bc07-993db706c95f"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulRecognizePrintedTextWithStream.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulRecognizePrintedTextWithStream.json
new file mode 100644
index 000000000000..201d0fe48254
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulRecognizePrintedTextWithStream.json
@@ -0,0 +1,77 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "detectOrientation": "true",
+ "language": "en",
+ "Image": "{binary}"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "language": "en",
+ "textAngle": -2.0000000000000338,
+ "orientation": "Up",
+ "regions": [
+ {
+ "boundingBox": "462,379,497,258",
+ "lines": [
+ {
+ "boundingBox": "462,379,497,74",
+ "words": [
+ {
+ "boundingBox": "462,379,41,73",
+ "text": "A"
+ },
+ {
+ "boundingBox": "523,379,153,73",
+ "text": "GOAL"
+ },
+ {
+ "boundingBox": "694,379,265,74",
+ "text": "WITHOUT"
+ }
+ ]
+ },
+ {
+ "boundingBox": "565,471,289,74",
+ "words": [
+ {
+ "boundingBox": "565,471,41,73",
+ "text": "A"
+ },
+ {
+ "boundingBox": "626,471,150,73",
+ "text": "PLAN"
+ },
+ {
+ "boundingBox": "801,472,53,73",
+ "text": "IS"
+ }
+ ]
+ },
+ {
+ "boundingBox": "519,563,375,74",
+ "words": [
+ {
+ "boundingBox": "519,563,149,74",
+ "text": "JUST"
+ },
+ {
+ "boundingBox": "683,564,41,72",
+ "text": "A"
+ },
+ {
+ "boundingBox": "741,564,153,73",
+ "text": "WISH"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulRecognizePrintedTextWithUrl.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulRecognizePrintedTextWithUrl.json
new file mode 100644
index 000000000000..a0b8bc84e37b
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulRecognizePrintedTextWithUrl.json
@@ -0,0 +1,79 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "detectOrientation": "true",
+ "language": "en",
+ "ImageUrl": {
+ "url": "{url}"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "language": "en",
+ "textAngle": -2.0000000000000338,
+ "orientation": "Up",
+ "regions": [
+ {
+ "boundingBox": "462,379,497,258",
+ "lines": [
+ {
+ "boundingBox": "462,379,497,74",
+ "words": [
+ {
+ "boundingBox": "462,379,41,73",
+ "text": "A"
+ },
+ {
+ "boundingBox": "523,379,153,73",
+ "text": "GOAL"
+ },
+ {
+ "boundingBox": "694,379,265,74",
+ "text": "WITHOUT"
+ }
+ ]
+ },
+ {
+ "boundingBox": "565,471,289,74",
+ "words": [
+ {
+ "boundingBox": "565,471,41,73",
+ "text": "A"
+ },
+ {
+ "boundingBox": "626,471,150,73",
+ "text": "PLAN"
+ },
+ {
+ "boundingBox": "801,472,53,73",
+ "text": "IS"
+ }
+ ]
+ },
+ {
+ "boundingBox": "519,563,375,74",
+ "words": [
+ {
+ "boundingBox": "519,563,149,74",
+ "text": "JUST"
+ },
+ {
+ "boundingBox": "683,564,41,72",
+ "text": "A"
+ },
+ {
+ "boundingBox": "741,564,153,73",
+ "text": "WISH"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulTagImageWithStream.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulTagImageWithStream.json
new file mode 100644
index 000000000000..813a645d0086
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulTagImageWithStream.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Image": "{binary}"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "tags": [
+ {
+ "name": "grass",
+ "confidence": 0.9999997615814209
+ },
+ {
+ "name": "outdoor",
+ "confidence": 0.99997067451477051
+ },
+ {
+ "name": "sky",
+ "confidence": 0.99928975105285645
+ },
+ {
+ "name": "building",
+ "confidence": 0.99646323919296265
+ },
+ {
+ "name": "house",
+ "confidence": 0.99279803037643433
+ },
+ {
+ "name": "lawn",
+ "confidence": 0.82268029451370239
+ },
+ {
+ "name": "green",
+ "confidence": 0.64122253656387329
+ },
+ {
+ "name": "residential",
+ "confidence": 0.31403225660324097
+ }
+ ],
+ "requestId": "1ad0e45e-b7b4-4be3-8042-53be96103337",
+ "metadata": {
+ "width": 400,
+ "height": 400,
+ "format": "Jpeg"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulTagImageWithUrl.json b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulTagImageWithUrl.json
new file mode 100644
index 000000000000..0dcf0304a33a
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/ComputerVision/stable/v3.1/examples/SuccessfulTagImageWithUrl.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "Endpoint": "https://westus.api.cognitive.microsoft.com",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "ImageUrl": {
+ "url": "{url}"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "tags": [
+ {
+ "name": "grass",
+ "confidence": 0.9999997615814209
+ },
+ {
+ "name": "outdoor",
+ "confidence": 0.99997067451477051
+ },
+ {
+ "name": "sky",
+ "confidence": 0.99928975105285645
+ },
+ {
+ "name": "building",
+ "confidence": 0.99646323919296265
+ },
+ {
+ "name": "house",
+ "confidence": 0.99279803037643433
+ },
+ {
+ "name": "lawn",
+ "confidence": 0.82268029451370239
+ },
+ {
+ "name": "green",
+ "confidence": 0.64122253656387329
+ },
+ {
+ "name": "residential",
+ "confidence": 0.31403225660324097
+ }
+ ],
+ "requestId": "1ad0e45e-b7b4-4be3-8042-53be96103337",
+ "metadata": {
+ "width": 400,
+ "height": 400,
+ "format": "Jpeg"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/FormRecognizer.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/FormRecognizer.json
new file mode 100644
index 000000000000..9c401eb68afe
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/FormRecognizer.json
@@ -0,0 +1,1967 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2.1-preview.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-preview.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'. 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' or 'image/tiff'. 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"
+ ],
+ "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/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' or 'image/tiff'. 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"
+ ],
+ "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
+ },
+ {
+ "name": "locale",
+ "in": "query",
+ "description": "Locale of the business card. Supported locales include: en-AU, en-CA, en-GB, en-IN, en-US(default).",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "$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/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' or 'image/tiff'. 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"
+ ],
+ "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
+ },
+ {
+ "name": "locale",
+ "in": "query",
+ "description": "Locale of the receipt. Supported locales include: en-AU, en-CA, en-GB, en-IN, en-US(default).",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "$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' or 'image/tiff'. 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"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$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 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
+ },
+ "language": {
+ "description": "The detected language on the page overall.",
+ "$ref": "#/definitions/Language"
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "Language": {
+ "description": "Language code",
+ "type": "string",
+ "enum": [
+ "en",
+ "es"
+ ],
+ "x-ms-enum": {
+ "name": "Language",
+ "modelAsString": true
+ },
+ "x-nullable": false
+ },
+ "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"
+ },
+ "language": {
+ "description": "The detected language of this line, if different from the overall page language.",
+ "$ref": "#/definitions/Language"
+ },
+ "words": {
+ "description": "List of words in the text line.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TextWord"
+ }
+ }
+ }
+ },
+ "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"
+ ],
+ "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"
+ }
+ }
+ }
+ },
+ "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
+ },
+ "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"
+ ],
+ "x-ms-enum": {
+ "name": "FieldValueType",
+ "modelAsString": false
+ },
+ "x-nullable": false
+ },
+ "Confidence": {
+ "description": "Confidence value.",
+ "type": "number",
+ "minimum": 0,
+ "maximum": 1,
+ "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
+ },
+ "FileStream": {
+ "name": "fileStream",
+ "description": ".json, .pdf, .jpg, .png or .tiff type file stream.",
+ "x-ms-parameter-location": "method",
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/SourcePath"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/AnalyzeBatch.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/AnalyzeBatch.json
new file mode 100644
index 000000000000..01eb4730ed08
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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-preview.1/custom/models/{modelId}/analyzeResults/{resultId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/AnalyzeOperationResult.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/AnalyzeOperationResult.json
new file mode 100644
index 000000000000..5b8a65ac0a6b
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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/preview/v2.1-preview.1/examples/BusinessCardBatch.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/BusinessCardBatch.json
new file mode 100644
index 000000000000..6521a5fa2244
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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-preview.1/prebuilt/businessCard/analyzeResults/{resultId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/BusinessCardBatchResult.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/BusinessCardBatchResult.json
new file mode 100644
index 000000000000..2cf7aa15db22
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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/preview/v2.1-preview.1/examples/ComposeModels.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/ComposeModels.json
new file mode 100644
index 000000000000..0fecac98f79b
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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-preview.1/custom/models/{modelId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/CopyModel.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/CopyModel.json
new file mode 100644
index 000000000000..34d6aacb688e
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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": 637190189980000000
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Operation-Location": "{endpoint}/formrecognizer/v2.1-preview.1/custom/models/{modelId}/copyResults/{resultId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/CopyModelAuthorization.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/CopyModelAuthorization.json
new file mode 100644
index 000000000000..2acc95b1fce5
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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-preview.1/custom/models/{modelId}"
+ },
+ "body": {
+ "modelId": "{modelId}",
+ "accessToken": "{accessToken}",
+ "expirationDateTimeTicks": 637190189980000000
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/CopyOperationResult.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/CopyOperationResult.json
new file mode 100644
index 000000000000..f7b7b1163884
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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/preview/v2.1-preview.1/examples/CopyOperationResultWithErrors.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/CopyOperationResultWithErrors.json
new file mode 100644
index 000000000000..853dd73e595e
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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/preview/v2.1-preview.1/examples/DeleteModel.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/DeleteModel.json
new file mode 100644
index 000000000000..c945ec953dd4
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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/preview/v2.1-preview.1/examples/GetModel.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/GetModel.json
new file mode 100644
index 000000000000..df1c4b66b252
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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/preview/v2.1-preview.1/examples/GetModels.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/GetModels.json
new file mode 100644
index 000000000000..36ee11465e4f
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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/preview/v2.1-preview.1/examples/GetModelsSummary.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/GetModelsSummary.json
new file mode 100644
index 000000000000..507495b78206
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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/preview/v2.1-preview.1/examples/LayoutBatch.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/LayoutBatch.json
new file mode 100644
index 000000000000..1495017a7252
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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-preview.1/layout/analyzeResults/{resultId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/LayoutBatchResult.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/LayoutBatchResult.json
new file mode 100644
index 000000000000..2a258bfe71bc
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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/preview/v2.1-preview.1/examples/ReceiptsBatch.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/ReceiptsBatch.json
new file mode 100644
index 000000000000..0790699b3fac
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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-preview.1/prebuilt/receipt/analyzeResults/{resultId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/ReceiptsBatchResult.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/ReceiptsBatchResult.json
new file mode 100644
index 000000000000..2cf7aa15db22
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.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/preview/v2.1-preview.1/examples/TrainBatch.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/TrainBatch.json
new file mode 100644
index 000000000000..b67143b72085
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/TrainBatch.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {},
+ "trainRequest": {
+ "source": "/input/data1"
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "Location": "{endpoint}/formrecognizer/v2.1-preview.1/custom/models/{modelId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/TrainBatchWithSubFolders.json b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/TrainBatchWithSubFolders.json
new file mode 100644
index 000000000000..ec88bff4f0d5
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/preview/v2.1-preview.1/examples/TrainBatchWithSubFolders.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "endpoint": "{endpoint}",
+ "Content-Type": "application/json",
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "body": {},
+ "trainRequest": {
+ "source": "/input/data1",
+ "sourceFilter": {
+ "prefix": "",
+ "includeSubFolders": false
+ },
+ "useLabelFile": false
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "Location": "{endpoint}/formrecognizer/v2.1-preview.1/custom/models/{modelId}"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/FormRecognizer/readme.go.md b/specification/cognitiveservices/data-plane/FormRecognizer/readme.go.md
index 1f5392f74b54..a3f839b98e64 100644
--- a/specification/cognitiveservices/data-plane/FormRecognizer/readme.go.md
+++ b/specification/cognitiveservices/data-plane/FormRecognizer/readme.go.md
@@ -1,4 +1,4 @@
-## Go
+### Go
These settings apply only when `--go` is specified on the command line.
@@ -23,4 +23,4 @@ Please also specify `--go-sdk-folder=here.",
"maxLength": 100,
"minLength": 1
}
diff --git a/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/QnAMakerRuntime.json b/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/QnAMakerRuntime.json
index 843426973bd1..04490d47590a 100644
--- a/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/QnAMakerRuntime.json
+++ b/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/QnAMakerRuntime.json
@@ -339,7 +339,7 @@
},
"userId": {
"type": "string",
- "description": "Unique identifier for the user."
+ "description": "Unique identifier for the user. Optional parameter for telemetry. For more information, refer Analytics and Telemetry."
},
"isTest": {
"type": "boolean",
diff --git a/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/examples/SuccessfulRepKb.json b/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/examples/SuccessfulRepKb.json
index 640d3f21dc32..fd6ba1224539 100644
--- a/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/examples/SuccessfulRepKb.json
+++ b/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/examples/SuccessfulRepKb.json
@@ -5,7 +5,7 @@
"Ocp-Apim-Subscription-Key": "{API key}",
"kbId": "9d091697-fb8c-4ed5-9ac0-35bf8273bfff",
"replaceKb": {
- "qnaList": [
+ "qnAList": [
{
"id": 0,
"answer": "You can change the default message if you use the QnAMakerDialog. See this for details: https://docs.botframework.com/en-us/azure-bot-service/templates/qnamaker/#navtitle",
diff --git a/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/examples/SuccessfulSetEpSettings.json b/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/examples/SuccessfulSetEpSettings.json
index a12bd163bd89..468c0b59680a 100644
--- a/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/examples/SuccessfulSetEpSettings.json
+++ b/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/examples/SuccessfulSetEpSettings.json
@@ -10,9 +10,6 @@
}
},
"responses": {
- "200": {
- "headers": {},
- "body": "Successfully updated endpoint settings"
- }
+ "204": {}
}
}
diff --git a/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/examples/SuccessfulUpdKb.json b/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/examples/SuccessfulUpdKb.json
index 0a767648beb6..3c717ca27123 100644
--- a/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/examples/SuccessfulUpdKb.json
+++ b/specification/cognitiveservices/data-plane/QnAMaker/stable/v4.0/examples/SuccessfulUpdKb.json
@@ -48,9 +48,6 @@
"add": [],
"delete": []
},
- "alternateQuestionClusters": {
- "delete": []
- },
"context": {
"isContextOnly": false,
"promptsToAdd": [
@@ -65,7 +62,6 @@
"How can I add prompts?"
],
"metadata": [],
- "alternateQuestionClusters": [],
"context": {
"isContextOnly": false,
"prompts": []
@@ -84,7 +80,6 @@
"How can I delete delete prompts?"
],
"metadata": [],
- "alternateQuestionClusters": [],
"context": {
"isContextOnly": false,
"prompts": []
@@ -126,9 +121,6 @@
}
]
},
- "alternateQuestionClusters": {
- "delete": []
- },
"context": {
"isContextOnly": false,
"promptsToAdd": [
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.0-preview.1/TextAnalytics.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.0-preview.1/TextAnalytics.json
index ce0e51fa4b86..8b30ef934161 100644
--- a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.0-preview.1/TextAnalytics.json
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.0-preview.1/TextAnalytics.json
@@ -80,7 +80,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -138,7 +138,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -196,7 +196,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -254,7 +254,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -312,7 +312,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -370,7 +370,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -440,6 +440,19 @@
}
}
},
+ "ErrorResponse": {
+ "type": "object",
+ "required": [
+ "error"
+ ],
+ "properties": {
+ "error": {
+ "type": "object",
+ "description": "Document Error.",
+ "$ref": "#/definitions/TextAnalyticsError"
+ }
+ }
+ },
"TextAnalyticsError": {
"type": "object",
"required": [
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.1/TextAnalytics.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.1/TextAnalytics.json
index be6c1a405786..d60fb072603e 100644
--- a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.1/TextAnalytics.json
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.1/TextAnalytics.json
@@ -47,27 +47,16 @@
],
"parameters": [
{
- "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. ",
- "required": false,
- "type": "string"
+ "$ref": "#/parameters/ModelVersion"
},
{
- "name": "showStats",
- "in": "query",
- "description": "(Optional) if set to true, response will contain input and document level statistics.",
- "type": "boolean",
- "required": false
+ "$ref": "#/parameters/ShowStats"
},
{
- "in": "body",
- "name": "input",
- "description": "Collection of documents to analyze.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/MultiLanguageBatchInput"
- }
+ "$ref": "#/parameters/MultiLanguageInput"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
}
],
"responses": {
@@ -80,7 +69,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -107,16 +96,10 @@
],
"parameters": [
{
- "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"
+ "$ref": "#/parameters/ModelVersion"
},
{
- "name": "showStats",
- "in": "query",
- "description": "(Optional) if set to true, response will contain input and document level statistics.",
- "type": "boolean"
+ "$ref": "#/parameters/ShowStats"
},
{
"name": "domain",
@@ -125,13 +108,10 @@
"type": "string"
},
{
- "in": "body",
- "name": "input",
- "description": "Collection of documents to analyze.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/MultiLanguageBatchInput"
- }
+ "$ref": "#/parameters/MultiLanguageInput"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
}
],
"responses": {
@@ -144,7 +124,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -171,25 +151,16 @@
],
"parameters": [
{
- "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"
+ "$ref": "#/parameters/ModelVersion"
},
{
- "name": "showStats",
- "in": "query",
- "description": "(Optional) if set to true, response will contain input and document level statistics.",
- "type": "boolean"
+ "$ref": "#/parameters/ShowStats"
},
{
- "in": "body",
- "name": "input",
- "description": "Collection of documents to analyze.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/MultiLanguageBatchInput"
- }
+ "$ref": "#/parameters/MultiLanguageInput"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
}
],
"responses": {
@@ -202,7 +173,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -229,25 +200,13 @@
],
"parameters": [
{
- "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"
+ "$ref": "#/parameters/ModelVersion"
},
{
- "name": "showStats",
- "in": "query",
- "description": "(Optional) if set to true, response will contain input and document level statistics.",
- "type": "boolean"
+ "$ref": "#/parameters/ShowStats"
},
{
- "in": "body",
- "name": "input",
- "description": "Collection of documents to analyze. Documents can now contain a language field to indicate the text language",
- "required": true,
- "schema": {
- "$ref": "#/definitions/MultiLanguageBatchInput"
- }
+ "$ref": "#/parameters/MultiLanguageInput"
}
],
"responses": {
@@ -260,7 +219,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -287,25 +246,13 @@
],
"parameters": [
{
- "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"
+ "$ref": "#/parameters/ModelVersion"
},
{
- "name": "showStats",
- "in": "query",
- "description": "(Optional) if set to true, response will contain input and document level statistics.",
- "type": "boolean"
+ "$ref": "#/parameters/ShowStats"
},
{
- "in": "body",
- "name": "input",
- "description": "Collection of documents to analyze.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/LanguageBatchInput"
- }
+ "$ref": "#/parameters/LanguageInput"
}
],
"responses": {
@@ -318,7 +265,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -345,16 +292,10 @@
],
"parameters": [
{
- "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"
+ "$ref": "#/parameters/ModelVersion"
},
{
- "name": "showStats",
- "in": "query",
- "description": "(Optional) if set to true, response will contain input and document level statistics.",
- "type": "boolean"
+ "$ref": "#/parameters/ShowStats"
},
{
"name": "opinionMining",
@@ -363,13 +304,10 @@
"type": "boolean"
},
{
- "in": "body",
- "name": "input",
- "description": "Collection of documents to analyze.",
- "required": true,
- "schema": {
- "$ref": "#/definitions/MultiLanguageBatchInput"
- }
+ "$ref": "#/parameters/MultiLanguageInput"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
}
],
"responses": {
@@ -382,7 +320,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -452,6 +390,19 @@
}
}
},
+ "ErrorResponse": {
+ "type": "object",
+ "required": [
+ "error"
+ ],
+ "properties": {
+ "error": {
+ "type": "object",
+ "description": "Document Error.",
+ "$ref": "#/definitions/TextAnalyticsError"
+ }
+ }
+ },
"TextAnalyticsError": {
"type": "object",
"required": [
@@ -462,14 +413,14 @@
"code": {
"type": "string",
"enum": [
- "invalidRequest",
- "invalidArgument",
- "internalServerError",
- "serviceUnavailable"
+ "InvalidRequest",
+ "InvalidArgument",
+ "InternalServerError",
+ "ServiceUnavailable"
],
"x-ms-enum": {
"name": "ErrorCodeValue",
- "modelAsString": false
+ "modelAsString": true
},
"description": "Error code."
},
@@ -509,7 +460,7 @@
],
"x-ms-enum": {
"name": "WarningCodeValue",
- "modelAsString": false
+ "modelAsString": true
},
"description": "Error code."
},
@@ -533,19 +484,19 @@
"code": {
"type": "string",
"enum": [
- "invalidParameterValue",
- "invalidRequestBodyFormat",
- "emptyRequest",
- "missingInputRecords",
- "invalidDocument",
- "modelVersionIncorrect",
- "invalidDocumentBatch",
- "unsupportedLanguageCode",
- "invalidCountryHint"
+ "InvalidParameterValue",
+ "InvalidRequestBodyFormat",
+ "EmptyRequest",
+ "MissingInputRecords",
+ "InvalidDocument",
+ "ModelVersionIncorrect",
+ "InvalidDocumentBatch",
+ "UnsupportedLanguageCode",
+ "InvalidCountryHint"
],
"x-ms-enum": {
"name": "InnerErrorCodeValue",
- "modelAsString": false
+ "modelAsString": true
},
"description": "Error code."
},
@@ -802,6 +753,10 @@
"mixed",
"negative"
],
+ "x-ms-enum": {
+ "name": "TokenSentimentValue",
+ "modelAsString": false
+ },
"description": "Aspect level sentiment for the aspect in the sentence."
},
"confidenceScores": {
@@ -849,6 +804,10 @@
"mixed",
"negative"
],
+ "x-ms-enum": {
+ "name": "TokenSentimentValue",
+ "modelAsString": false
+ },
"description": "Opinion level sentiment for the aspect in the sentence."
},
"confidenceScores": {
@@ -888,6 +847,10 @@
"opinion",
"aspect"
],
+ "x-ms-enum": {
+ "name": "AspectRelationType",
+ "modelAsString": false
+ },
"description": "The type related to the aspect."
},
"ref": {
@@ -1337,6 +1300,73 @@
"type": "string",
"in": "path",
"x-ms-skip-url-encoding": true
+ },
+ "StringIndexType": {
+ "name": "stringIndexType",
+ "in": "query",
+ "type": "string",
+ "description": "(Optional) Specifies the method used to interpret string offsets. Defaults to Text Elements (Graphemes) according to Unicode v8.0.0. For additional information see https://aka.ms/text-analytics-offsets",
+ "default": "TextElements_v8",
+ "enum": [
+ "TextElements_v8",
+ "UnicodeCodePoint",
+ "Utf16CodeUnit"
+ ],
+ "x-ms-enum": {
+ "name": "StringIndexType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "TextElements_v8",
+ "description": "Returned offset and length values will correspond to TextElements (Graphemes and Grapheme clusters) confirming to the Unicode 8.0.0 standard. Use this option if your application is written in .Net Framework or .Net Core and you will be using StringInfo."
+ },
+ {
+ "value": "UnicodeCodePoint",
+ "description": "Returned offset and length values will correspond to Unicode code points. Use this option if your application is written in a language that support Unicode, for example Python."
+ },
+ {
+ "value": "Utf16CodeUnit",
+ "description": "Returned offset and length values will correspond to UTF-16 code units. Use this option if your application is written in a language that support Unicode, for example Java, JavaScript."
+ }
+ ]
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "ShowStats": {
+ "name": "showStats",
+ "in": "query",
+ "description": "(Optional) if set to true, response will contain request and document level statistics.",
+ "type": "boolean",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "ModelVersion": {
+ "name": "model-version",
+ "in": "query",
+ "description": "(Optional) This value indicates which model will be used for scoring. If a model-version is not specified, the API should default to the latest, non-preview version. ",
+ "type": "string",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "MultiLanguageInput": {
+ "in": "body",
+ "name": "input",
+ "description": "Collection of documents to analyze.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MultiLanguageBatchInput"
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "LanguageInput": {
+ "in": "body",
+ "name": "input",
+ "description": "Collection of documents to analyze for language endpoint.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/LanguageBatchInput"
+ },
+ "x-ms-parameter-location": "method"
}
}
}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/TextAnalytics.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/TextAnalytics.json
new file mode 100644
index 000000000000..fcb470b19c05
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/TextAnalytics.json
@@ -0,0 +1,1444 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "v3.1-preview.2",
+ "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 text analytics web 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. No training data is needed to use this API; just bring your text data. This API uses advanced natural language processing techniques to deliver best in class predictions. 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.2",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ },
+ "paths": {
+ "/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/MultiLanguageInput"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call results in a list of recognized entities returned for each valid document.",
+ "schema": {
+ "$ref": "#/definitions/EntitiesResult"
+ }
+ },
+ "default": {
+ "description": "Error Response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Entities request": {
+ "$ref": ".//examples//SuccessfulEntitiesRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/entities/recognition/pii": {
+ "post": {
+ "summary": "Entities containing personal information",
+ "description": "The API returns a list of entities with personal information (\\\"SSN\\\", \\\"Bank Account\\\" etc) in the document. For the list of supported entity types, check Supported Entity Types in Text Analytics API. See the Supported languages in Text Analytics API for the list of enabled languages.\n",
+ "operationId": "EntitiesRecognitionPii",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "name": "domain",
+ "in": "query",
+ "description": "(Optional) if set to 'PHI', response will contain only PHI entities.",
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call results in a list of entities containing personal information returned for each valid document",
+ "schema": {
+ "$ref": "#/definitions/PiiEntitiesResult"
+ }
+ },
+ "default": {
+ "description": "Error Response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "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/MultiLanguageInput"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
+ }
+ ],
+ "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"
+ }
+ },
+ "default": {
+ "description": "Error Response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Entity Linking request": {
+ "$ref": ".//examples//SuccessfulEntityLinkingRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/keyPhrases": {
+ "post": {
+ "summary": "Key Phrases",
+ "description": "The API returns a list of strings denoting the key phrases in the input text. See the Supported languages in Text Analytics API for the list of enabled languages.",
+ "operationId": "KeyPhrases",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful response results in 0 or more key phrases identified in each valid document",
+ "schema": {
+ "$ref": "#/definitions/KeyPhraseResult"
+ }
+ },
+ "default": {
+ "description": "Error Response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Key Phrase request": {
+ "$ref": ".//examples//SuccessfulKeyPhrasesRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/languages": {
+ "post": {
+ "summary": "Detect Language",
+ "description": "The API returns the detected language and a numeric score between 0 and 1. Scores close to 1 indicate 100% certainty that the identified language is true. See the Supported languages in Text Analytics API for the list of enabled languages.",
+ "operationId": "Languages",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "$ref": "#/parameters/LanguageInput"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "A successful call results in the detected language with the highest probability for each valid document",
+ "schema": {
+ "$ref": "#/definitions/LanguageResult"
+ }
+ },
+ "default": {
+ "description": "Error Response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Detect Language request": {
+ "$ref": ".//examples//SuccessfulLanguagesRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/sentiment": {
+ "post": {
+ "summary": "Sentiment",
+ "description": "The API returns a detailed sentiment analysis for the input text. The analysis is done in multiple levels of granularity, start from the a document level, down to sentence and key terms (aspects) and opinions.",
+ "operationId": "Sentiment",
+ "consumes": [
+ "application/json",
+ "text/json"
+ ],
+ "produces": [
+ "application/json",
+ "text/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ModelVersion"
+ },
+ {
+ "$ref": "#/parameters/ShowStats"
+ },
+ {
+ "name": "opinionMining",
+ "in": "query",
+ "description": "(Optional) if set to true, response will contain input and document level statistics including aspect-based sentiment analysis results.",
+ "type": "boolean"
+ },
+ {
+ "$ref": "#/parameters/MultiLanguageInput"
+ },
+ {
+ "$ref": "#/parameters/StringIndexType"
+ }
+ ],
+ "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"
+ }
+ },
+ "default": {
+ "description": "Error Response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Successful Sentiment request": {
+ "$ref": ".//examples//SuccessfulSentimentRequest.json"
+ }
+ },
+ "deprecated": false
+ }
+ }
+ },
+ "definitions": {
+ "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"
+ ],
+ "x-ms-enum": {
+ "name": "ErrorCodeValue",
+ "modelAsString": true
+ },
+ "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."
+ }
+ }
+ },
+ "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."
+ }
+ }
+ },
+ "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."
+ }
+ }
+ },
+ "DocumentSentiment": {
+ "type": "object",
+ "required": [
+ "id",
+ "sentiment",
+ "confidenceScores",
+ "sentences",
+ "warnings"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Unique, non-empty document identifier."
+ },
+ "sentiment": {
+ "type": "string",
+ "description": "Predicted sentiment for document (Negative, Neutral, Positive, or Mixed).",
+ "enum": [
+ "positive",
+ "neutral",
+ "negative",
+ "mixed"
+ ],
+ "x-ms-enum": {
+ "name": "DocumentSentimentValue",
+ "modelAsString": false
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/DocumentStatistics"
+ },
+ "confidenceScores": {
+ "description": "Document level sentiment confidence scores between 0 and 1 for each sentiment class.",
+ "$ref": "#/definitions/SentimentConfidenceScorePerLabel"
+ },
+ "sentences": {
+ "type": "array",
+ "description": "Sentence level sentiment analysis.",
+ "items": {
+ "$ref": "#/definitions/SentenceSentiment"
+ }
+ },
+ "warnings": {
+ "type": "array",
+ "description": "Warnings encountered while processing document.",
+ "items": {
+ "$ref": "#/definitions/TextAnalyticsWarning"
+ }
+ }
+ }
+ },
+ "RequestStatistics": {
+ "type": "object",
+ "required": [
+ "documentsCount",
+ "validDocumentsCount",
+ "erroneousDocumentsCount",
+ "transactionsCount"
+ ],
+ "properties": {
+ "documentsCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of documents submitted in the request."
+ },
+ "validDocumentsCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of valid documents. This excludes empty, over-size limit or non-supported languages documents."
+ },
+ "erroneousDocumentsCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of invalid documents. This includes empty, over-size limit or non-supported languages documents."
+ },
+ "transactionsCount": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Number of transactions for the request."
+ }
+ },
+ "description": "if showStats=true was specified in the request this field will contain information about the request payload."
+ },
+ "DocumentStatistics": {
+ "type": "object",
+ "required": [
+ "charactersCount",
+ "transactionsCount"
+ ],
+ "properties": {
+ "charactersCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of text elements recognized in the document."
+ },
+ "transactionsCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of transactions for the document."
+ }
+ },
+ "description": "if showStats=true was specified in the request this field will contain information about the document payload."
+ },
+ "SentimentConfidenceScorePerLabel": {
+ "type": "object",
+ "required": [
+ "positive",
+ "neutral",
+ "negative"
+ ],
+ "properties": {
+ "positive": {
+ "type": "number",
+ "format": "double"
+ },
+ "neutral": {
+ "type": "number",
+ "format": "double"
+ },
+ "negative": {
+ "type": "number",
+ "format": "double"
+ }
+ },
+ "description": "Represents the confidence scores between 0 and 1 across all sentiment classes: positive, neutral, negative."
+ },
+ "SentenceSentiment": {
+ "type": "object",
+ "required": [
+ "text",
+ "sentiment",
+ "confidenceScores",
+ "offset",
+ "length"
+ ],
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "The sentence text."
+ },
+ "sentiment": {
+ "type": "string",
+ "description": "The predicted Sentiment for the sentence.",
+ "enum": [
+ "positive",
+ "neutral",
+ "negative"
+ ],
+ "x-ms-enum": {
+ "name": "SentenceSentimentValue",
+ "modelAsString": false
+ }
+ },
+ "confidenceScores": {
+ "description": "The sentiment confidence score between 0 and 1 for the sentence for all classes.",
+ "$ref": "#/definitions/SentimentConfidenceScorePerLabel"
+ },
+ "offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The sentence offset from the start of the document."
+ },
+ "length": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The length of the sentence."
+ },
+ "aspects": {
+ "type": "array",
+ "description": "The array of aspect object for the sentence.",
+ "items": {
+ "$ref": "#/definitions/SentenceAspect"
+ }
+ },
+ "opinions": {
+ "type": "array",
+ "description": "The array of opinion object for the sentence.",
+ "items": {
+ "$ref": "#/definitions/SentenceOpinion"
+ }
+ }
+ }
+ },
+ "SentenceAspect": {
+ "type": "object",
+ "required": [
+ "confidenceScores",
+ "length",
+ "offset",
+ "relations",
+ "sentiment",
+ "text"
+ ],
+ "properties": {
+ "sentiment": {
+ "type": "string",
+ "enum": [
+ "positive",
+ "mixed",
+ "negative"
+ ],
+ "x-ms-enum": {
+ "name": "TokenSentimentValue",
+ "modelAsString": false
+ },
+ "description": "Aspect level sentiment for the aspect in the sentence."
+ },
+ "confidenceScores": {
+ "description": "Aspect level sentiment confidence scores for the aspect in the sentence.",
+ "$ref": "#/definitions/AspectConfidenceScoreLabel"
+ },
+ "offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The aspect offset from the start of the sentence."
+ },
+ "length": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The length of the aspect."
+ },
+ "text": {
+ "type": "string",
+ "description": "The aspect text detected."
+ },
+ "relations": {
+ "type": "array",
+ "description": "The array of either opinion or aspect object which is related to the aspect.",
+ "items": {
+ "$ref": "#/definitions/AspectRelation"
+ }
+ }
+ }
+ },
+ "SentenceOpinion": {
+ "type": "object",
+ "required": [
+ "confidenceScores",
+ "isNegated",
+ "length",
+ "offset",
+ "sentiment",
+ "text"
+ ],
+ "properties": {
+ "sentiment": {
+ "type": "string",
+ "enum": [
+ "positive",
+ "mixed",
+ "negative"
+ ],
+ "x-ms-enum": {
+ "name": "TokenSentimentValue",
+ "modelAsString": false
+ },
+ "description": "Opinion level sentiment for the aspect in the sentence."
+ },
+ "confidenceScores": {
+ "description": "Opinion level sentiment confidence scores for the aspect in the sentence.",
+ "$ref": "#/definitions/AspectConfidenceScoreLabel"
+ },
+ "offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The opinion offset from the start of the sentence."
+ },
+ "length": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The length of the opinion."
+ },
+ "text": {
+ "type": "string",
+ "description": "The aspect text detected."
+ },
+ "isNegated": {
+ "type": "boolean",
+ "description": "The indicator representing if the opinion is negated."
+ }
+ }
+ },
+ "AspectRelation": {
+ "type": "object",
+ "required": [
+ "ref",
+ "relationType"
+ ],
+ "properties": {
+ "relationType": {
+ "type": "string",
+ "enum": [
+ "opinion",
+ "aspect"
+ ],
+ "x-ms-enum": {
+ "name": "AspectRelationType",
+ "modelAsString": false
+ },
+ "description": "The type related to the aspect."
+ },
+ "ref": {
+ "type": "string",
+ "description": "The JSON pointer indicating the linked object."
+ }
+ }
+ },
+ "AspectConfidenceScoreLabel": {
+ "type": "object",
+ "required": [
+ "negative",
+ "positive"
+ ],
+ "properties": {
+ "positive": {
+ "type": "number",
+ "format": "double"
+ },
+ "negative": {
+ "type": "number",
+ "format": "double"
+ }
+ },
+ "description": "Represents the confidence scores across all sentiment classes: positive, neutral, negative."
+ },
+ "EntitiesResult": {
+ "type": "object",
+ "required": [
+ "documents",
+ "errors",
+ "modelVersion"
+ ],
+ "properties": {
+ "documents": {
+ "type": "array",
+ "description": "Response by document",
+ "items": {
+ "$ref": "#/definitions/DocumentEntities"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "description": "Errors by document id.",
+ "items": {
+ "$ref": "#/definitions/DocumentError"
+ }
+ },
+ "statistics": {
+ "$ref": "#/definitions/RequestStatistics"
+ },
+ "modelVersion": {
+ "type": "string",
+ "description": "This field indicates which model is used for scoring."
+ }
+ }
+ },
+ "PiiEntitiesResult": {
+ "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."
+ }
+ }
+ },
+ "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",
+ "entities",
+ "warnings",
+ "redactedText"
+ ],
+ "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"
+ },
+ "redactedText": {
+ "type": "string",
+ "description": "Returns redacted text."
+ }
+ }
+ },
+ "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, such as Person/Location/Org/SSN etc"
+ },
+ "subcategory": {
+ "type": "string",
+ "description": "Entity sub type, such as Age/Year/TimeRange etc"
+ },
+ "offset": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Start position for the entity text."
+ },
+ "length": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Length for the entity text."
+ },
+ "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"
+ }
+ }
+ },
+ "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 unique identifier of the recognized entity. Use in conjunction with the Bing Entity Search API to fetch additional relevant information."
+ }
+ }
+ },
+ "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."
+ }
+ }
+ },
+ "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"
+ }
+ }
+ },
+ "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"
+ }
+ }
+ },
+ "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."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "Endpoint": {
+ "name": "Endpoint",
+ "description": "Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus.api.cognitive.microsoft.com).",
+ "x-ms-parameter-location": "client",
+ "required": true,
+ "type": "string",
+ "in": "path",
+ "x-ms-skip-url-encoding": true
+ },
+ "StringIndexType": {
+ "name": "stringIndexType",
+ "in": "query",
+ "type": "string",
+ "description": "(Optional) Specifies the method used to interpret string offsets. Defaults to Text Elements (Graphemes) according to Unicode v8.0.0. For additional information see https://aka.ms/text-analytics-offsets",
+ "default": "TextElements_v8",
+ "enum": [
+ "TextElements_v8",
+ "UnicodeCodePoint",
+ "Utf16CodeUnit"
+ ],
+ "x-ms-enum": {
+ "name": "StringIndexType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "TextElements_v8",
+ "description": "Returned offset and length values will correspond to TextElements (Graphemes and Grapheme clusters) confirming to the Unicode 8.0.0 standard. Use this option if your application is written in .Net Framework or .Net Core and you will be using StringInfo."
+ },
+ {
+ "value": "UnicodeCodePoint",
+ "description": "Returned offset and length values will correspond to Unicode code points. Use this option if your application is written in a language that support Unicode, for example Python."
+ },
+ {
+ "value": "Utf16CodeUnit",
+ "description": "Returned offset and length values will correspond to UTF-16 code units. Use this option if your application is written in a language that support Unicode, for example Java, JavaScript."
+ }
+ ]
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "ShowStats": {
+ "name": "showStats",
+ "in": "query",
+ "description": "(Optional) if set to true, response will contain request and document level statistics.",
+ "type": "boolean",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "ModelVersion": {
+ "name": "model-version",
+ "in": "query",
+ "description": "(Optional) This value indicates which model will be used for scoring. If a model-version is not specified, the API should default to the latest, non-preview version. ",
+ "type": "string",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "MultiLanguageInput": {
+ "in": "body",
+ "name": "input",
+ "description": "Collection of documents to analyze.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MultiLanguageBatchInput"
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "LanguageInput": {
+ "in": "body",
+ "name": "input",
+ "description": "Collection of documents to analyze for language endpoint.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/LanguageBatchInput"
+ },
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulEntitiesRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulEntitiesRequest.json
new file mode 100644
index 000000000000..75b4489dcb2d
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulEntitiesRequest.json
@@ -0,0 +1,91 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "language": "en",
+ "id": "1",
+ "text": "I had a wonderful trip to Seattle last week."
+ },
+ {
+ "language": "en",
+ "id": "2",
+ "text": "I work at Microsoft."
+ },
+ {
+ "language": "en",
+ "id": "3",
+ "text": "I visited Space Needle 2 times."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "id": "1",
+ "entities": [
+ {
+ "text": "Seattle",
+ "category": "Location",
+ "offset": 26,
+ "length": 7,
+ "confidenceScore": 0.80
+ },
+ {
+ "text": "last week",
+ "category": "DateTime",
+ "subcategory": "DateRange",
+ "offset": 34,
+ "length": 9,
+ "confidenceScore": 0.8
+ }
+ ],
+ "warnings": []
+ },
+ {
+ "id": "2",
+ "entities": [
+ {
+ "text": "Microsoft",
+ "category": "Organization",
+ "offset": 10,
+ "length": 9,
+ "confidenceScore": 0.99
+ }
+ ],
+ "warnings": []
+ },
+ {
+ "id": "3",
+ "entities": [
+ {
+ "text": "Space Needle",
+ "category": "Organization",
+ "offset": 10,
+ "length": 12,
+ "confidenceScore": 0.75
+ },
+ {
+ "text": "2",
+ "category": "Quantity",
+ "subcategory": "Number",
+ "offset": 23,
+ "length": 1,
+ "confidenceScore": 0.8
+ }
+ ],
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2019-10-01"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulEntityLinkingRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulEntityLinkingRequest.json
new file mode 100644
index 000000000000..2ad23b9ad32c
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulEntityLinkingRequest.json
@@ -0,0 +1,101 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "language": "en",
+ "id": "1",
+ "text": "I had a wonderful trip to Seattle last week."
+ },
+ {
+ "language": "en",
+ "id": "2",
+ "text": "I work at Microsoft."
+ },
+ {
+ "language": "en",
+ "id": "3",
+ "text": "I visited Space Needle 2 times."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "id": "1",
+ "entities": [
+ {
+ "name": "Seattle",
+ "matches": [
+ {
+ "text": "Seattle",
+ "offset": 26,
+ "length": 7,
+ "confidenceScore": 0.15
+ }
+ ],
+ "language": "en",
+ "id": "Seattle",
+ "url": "https://en.wikipedia.org/wiki/Seattle",
+ "dataSource": "Wikipedia",
+ "bingId": "39d000e8-389d-22a3-4309-ffffc115d00e"
+ }
+ ],
+ "warnings": []
+ },
+ {
+ "id": "2",
+ "entities": [
+ {
+ "name": "Microsoft",
+ "matches": [
+ {
+ "text": "Microsoft",
+ "offset": 10,
+ "length": 9,
+ "confidenceScore": 0.18
+ }
+ ],
+ "language": "en",
+ "id": "Microsoft",
+ "url": "https://en.wikipedia.org/wiki/Microsoft",
+ "dataSource": "Wikipedia",
+ "bingId": "39d000e8-389d-22a3-4309-ffffc115d00f"
+ }
+ ],
+ "warnings": []
+ },
+ {
+ "id": "3",
+ "entities": [
+ {
+ "name": "Space Needle",
+ "matches": [
+ {
+ "text": "Space Needle",
+ "offset": 10,
+ "length": 12,
+ "confidenceScore": 0.15
+ }
+ ],
+ "language": "en",
+ "id": "Space Needle",
+ "url": "https://en.wikipedia.org/wiki/Space_Needle",
+ "dataSource": "Wikipedia"
+ }
+ ],
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2019-10-01"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulEntityPIIRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulEntityPIIRequest.json
new file mode 100644
index 000000000000..90d2ea58bd29
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulEntityPIIRequest.json
@@ -0,0 +1,81 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "language": "en",
+ "id": "0",
+ "text": "Microsoft employee with ssn 859-98-0987 is using our awesome API's."
+ },
+ {
+ "language": "en",
+ "id": "1",
+ "text": "Your ABA number - 111000025 - is the first 9 digits in the lower left hand corner of your personal check."
+ },
+ {
+ "language": "en",
+ "id": "2",
+ "text": "Is 998.214.865-68 your Brazilian CPF number?"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "id": "0",
+ "entities": [
+ {
+ "text": "859-98-0987",
+ "category": "U.S. Social Security Number (SSN)",
+ "subcategory": "",
+ "offset": 28,
+ "length": 11,
+ "confidenceScore": 0.65
+ }
+ ],
+ "redactedText": "Microsoft employee with ssn ******** is using our awesome API's.",
+ "warnings": []
+ },
+ {
+ "id": "1",
+ "entities": [
+ {
+ "text": "111000025",
+ "category": "ABA Routing Number",
+ "subcategory": "",
+ "offset": 18,
+ "length": 9,
+ "confidenceScore": 0.75
+ }
+ ],
+ "redactedText": "Your ABA number - ******** - is the first 9 digits in the lower left hand corner of your personal check.",
+ "warnings": []
+ },
+ {
+ "id": "2",
+ "entities": [
+ {
+ "text": "998.214.865-68",
+ "category": "Brazil CPF Number",
+ "subcategory": "",
+ "offset": 3,
+ "length": 14,
+ "confidenceScore": 0.85
+ }
+ ],
+ "redactedText": "Is ******** your Brazilian CPF number?",
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2019-10-01"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulKeyPhrasesRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulKeyPhrasesRequest.json
new file mode 100644
index 000000000000..12ff0ccce583
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulKeyPhrasesRequest.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "language": "en",
+ "id": "1",
+ "text": "Hello world. This is some input text that I love."
+ },
+ {
+ "language": "fr",
+ "id": "2",
+ "text": "Bonjour tout le monde"
+ },
+ {
+ "language": "es",
+ "id": "3",
+ "text": "La carretera estaba atascada. Había mucho tráfico el día de ayer."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "id": "1",
+ "keyPhrases": [
+ "world",
+ "input text"
+ ],
+ "warnings": []
+ },
+ {
+ "id": "2",
+ "keyPhrases": [
+ "monde"
+ ],
+ "warnings": []
+ },
+ {
+ "id": "3",
+ "keyPhrases": [
+ "carretera",
+ "tráfico",
+ "día"
+ ],
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2019-10-01"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulLanguagesRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulLanguagesRequest.json
new file mode 100644
index 000000000000..a74d7155c8e0
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulLanguagesRequest.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "countryHint": "US",
+ "id": "1",
+ "text": "Hello world"
+ },
+ {
+ "id": "2",
+ "text": "Bonjour tout le monde"
+ },
+ {
+ "id": "3",
+ "text": "La carretera estaba atascada. Había mucho tráfico el día de ayer."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "id": "1",
+ "detectedLanguage": {
+ "name": "English",
+ "iso6391Name": "en",
+ "confidenceScore": 1
+ },
+ "warnings": []
+ },
+ {
+ "id": "2",
+ "detectedLanguage": {
+ "name": "French",
+ "iso6391Name": "fr",
+ "confidenceScore": 1
+ },
+ "warnings": []
+ },
+ {
+ "id": "3",
+ "detectedLanguage": {
+ "name": "Spanish",
+ "iso6391Name": "es",
+ "confidenceScore": 1
+ },
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2019-10-01"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulSentimentRequest.json b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulSentimentRequest.json
new file mode 100644
index 000000000000..ad3fc48d2cae
--- /dev/null
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/preview/v3.1-preview.2/examples/SuccessfulSentimentRequest.json
@@ -0,0 +1,323 @@
+{
+ "parameters": {
+ "Ocp-Apim-Subscription-Key": "{API key}",
+ "Endpoint": "{Endpoint}",
+ "input": {
+ "documents": [
+ {
+ "language": "en",
+ "id": "1",
+ "text": "Great atmosphere. Close to plenty of restaurants, hotels, and transit! Staff are friendly and helpful."
+ },
+ {
+ "language": "en",
+ "id": "2",
+ "text": "Bad atmosphere. Not close to plenty of restaurants, hotels, and transit! Staff are not friendly and helpful."
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "documents": [
+ {
+ "id": "1",
+ "sentiment": "positive",
+ "confidenceScores": {
+ "positive": 1.0,
+ "neutral": 0.0,
+ "negative": 0.0
+ },
+ "sentences": [
+ {
+ "text": "Great atmosphere.",
+ "sentiment": "positive",
+ "confidenceScores": {
+ "positive": 1.0,
+ "neutral": 0.0,
+ "negative": 0.0
+ },
+ "offset": 0,
+ "length": 17,
+ "aspects": [
+ {
+ "sentiment": "positive",
+ "confidenceScores": {
+ "positive": 1.0,
+ "negative": 0.0
+ },
+ "offset": 6,
+ "length": 10,
+ "text": "atmosphere",
+ "relations": [
+ {
+ "relationType": "opinion",
+ "ref": "#/documents/0/sentences/0/opinions/0"
+ }
+ ]
+ }
+ ],
+ "opinions": [
+ {
+ "sentiment": "positive",
+ "confidenceScores": {
+ "positive": 1.0,
+ "negative": 0.0
+ },
+ "offset": 0,
+ "length": 5,
+ "text": "great",
+ "isNegated": false
+ }
+ ]
+ },
+ {
+ "text": "Close to plenty of restaurants, hotels, and transit!",
+ "sentiment": "neutral",
+ "confidenceScores": {
+ "positive": 0.13,
+ "neutral": 0.86,
+ "negative": 0.01
+ },
+ "offset": 18,
+ "length": 52,
+ "aspects": [
+ {
+ "sentiment": "positive",
+ "confidenceScores": {
+ "positive": 0.99,
+ "negative": 0.01
+ },
+ "offset": 37,
+ "length": 11,
+ "text": "restaurants",
+ "relations": [
+ {
+ "relationType": "opinion",
+ "ref": "#/documents/0/sentences/1/opinions/0"
+ }
+ ]
+ },
+ {
+ "sentiment": "positive",
+ "confidenceScores": {
+ "positive": 0.99,
+ "negative": 0.01
+ },
+ "offset": 50,
+ "length": 6,
+ "text": "hotels",
+ "relations": [
+ {
+ "relationType": "opinion",
+ "ref": "#/documents/0/sentences/1/opinions/0"
+ }
+ ]
+ }
+ ],
+ "opinions": [
+ {
+ "sentiment": "positive",
+ "confidenceScores": {
+ "positive": 0.99,
+ "negative": 0.01
+ },
+ "offset": 18,
+ "length": 15,
+ "text": "close to plenty",
+ "isNegated": false
+ }
+ ]
+ },
+ {
+ "text": "Staff are friendly and helpful.",
+ "sentiment": "positive",
+ "confidenceScores": {
+ "positive": 1.0,
+ "neutral": 0.0,
+ "negative": 0.0
+ },
+ "offset": 71,
+ "length": 31,
+ "aspects": [
+ {
+ "sentiment": "positive",
+ "confidenceScores": {
+ "positive": 1.0,
+ "negative": 0.0
+ },
+ "offset": 71,
+ "length": 5,
+ "text": "Staff",
+ "relations": [
+ {
+ "relationType": "opinion",
+ "ref": "#/documents/0/sentences/2/opinions/0"
+ }
+ ]
+ }
+ ],
+ "opinions": [
+ {
+ "sentiment": "positive",
+ "confidenceScores": {
+ "positive": 1.0,
+ "negative": 0.0
+ },
+ "offset": 81,
+ "length": 8,
+ "text": "friendly",
+ "isNegated": false
+ }
+ ]
+ }
+ ],
+ "warnings": []
+ },
+ {
+ "id": "2",
+ "sentiment": "negative",
+ "confidenceScores": {
+ "positive": 0.01,
+ "neutral": 0.14,
+ "negative": 0.85
+ },
+ "sentences": [
+ {
+ "text": "Bad atmosphere.",
+ "sentiment": "negative",
+ "confidenceScores": {
+ "positive": 0.0,
+ "neutral": 0.0,
+ "negative": 1.0
+ },
+ "offset": 8,
+ "length": 15,
+ "aspects": [
+ {
+ "sentiment": "negative",
+ "confidenceScores": {
+ "positive": 0.01,
+ "negative": 0.99
+ },
+ "offset": 4,
+ "length": 10,
+ "text": "atmosphere",
+ "relations": [
+ {
+ "relationType": "opinion",
+ "ref": "#/documents/1/sentences/0/opinions/0"
+ }
+ ]
+ }
+ ],
+ "opinions": [
+ {
+ "sentiment": "negative",
+ "confidenceScores": {
+ "positive": 0.01,
+ "negative": 0.99
+ },
+ "offset": 0,
+ "length": 3,
+ "text": "bad",
+ "isNegated": false
+ }
+ ]
+ },
+ {
+ "text": "Not close to plenty of restaurants, hotels, and transit!",
+ "sentiment": "negative",
+ "confidenceScores": {
+ "positive": 0.02,
+ "neutral": 0.44,
+ "negative": 0.54
+ },
+ "offset": 16,
+ "length": 56,
+ "aspects": [
+ {
+ "sentiment": "negative",
+ "confidenceScores": {
+ "positive": 0.03,
+ "negative": 0.97
+ },
+ "offset": 39,
+ "length": 11,
+ "text": "restaurants",
+ "relations": [
+ {
+ "relationType": "opinion",
+ "ref": "#/documents/1/sentences/1/opinions/0"
+ }
+ ]
+ }
+ ],
+ "opinions": [
+ {
+ "sentiment": "negative",
+ "confidenceScores": {
+ "positive": 0.03,
+ "negative": 0.97
+ },
+ "offset": 20,
+ "length": 5,
+ "text": "close",
+ "isNegated": true
+ }
+ ]
+ },
+ {
+ "text": "Staff are not friendly and helpful.",
+ "sentiment": "negative",
+ "confidenceScores": {
+ "positive": 0.0,
+ "neutral": 0.0,
+ "negative": 1.0
+ },
+ "offset": 73,
+ "length": 35,
+ "aspects": [
+ {
+ "sentiment": "negative",
+ "confidenceScores": {
+ "positive": 0.0,
+ "negative": 1.0
+ },
+ "offset": 73,
+ "length": 5,
+ "text": "Staff",
+ "relations": [
+ {
+ "relationType": "opinion",
+ "ref": "#/documents/1/sentences/2/opinions/0"
+ }
+ ]
+ }
+ ],
+ "opinions": [
+ {
+ "sentiment": "negative",
+ "confidenceScores": {
+ "positive": 0.0,
+ "negative": 1.0
+ },
+ "offset": 87,
+ "length": 8,
+ "text": "friendly",
+ "isNegated": true
+ }
+ ]
+ }
+ ],
+ "warnings": []
+ }
+ ],
+ "errors": [],
+ "modelVersion": "2020-04-01"
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/readme.md b/specification/cognitiveservices/data-plane/TextAnalytics/readme.md
index 3cad53b7f8b5..441e055ee4d0 100644
--- a/specification/cognitiveservices/data-plane/TextAnalytics/readme.md
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/readme.md
@@ -170,6 +170,14 @@ These settings apply only when `--tag=release_3_1_preview.1` is specified on the
input-file: preview/v3.1-preview.1/TextAnalytics.json
```
+### Release 3.1-Preview.2
+
+These settings apply only when `--tag=release_3_1_preview.2` is specified on the command line.
+
+``` yaml $(tag) == 'release_3_1_preview.2'
+input-file: preview/v3.1-preview.2/TextAnalytics.json
+```
+
## Swagger to SDK
This section describes what SDK should be generated by the automatic system.
@@ -268,6 +276,7 @@ input-file:
- $(this-folder)/preview/v3.0-preview.1/TextAnalytics.json
- $(this-folder)/stable/v3.0/TextAnalytics.json
- $(this-folder)/preview/v3.1-preview.1/TextAnalytics.json
+ - $(this-folder)/preview/v3.1-preview.2/TextAnalytics.json
```
diff --git a/specification/cognitiveservices/data-plane/TextAnalytics/stable/v3.0/TextAnalytics.json b/specification/cognitiveservices/data-plane/TextAnalytics/stable/v3.0/TextAnalytics.json
index 2d566abbda19..7cb1299f0de4 100644
--- a/specification/cognitiveservices/data-plane/TextAnalytics/stable/v3.0/TextAnalytics.json
+++ b/specification/cognitiveservices/data-plane/TextAnalytics/stable/v3.0/TextAnalytics.json
@@ -80,7 +80,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -138,7 +138,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -196,7 +196,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -254,7 +254,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -312,7 +312,7 @@
"default": {
"description": "Error Response",
"schema": {
- "$ref": "#/definitions/TextAnalyticsError"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -382,6 +382,19 @@
}
}
},
+ "ErrorResponse": {
+ "type": "object",
+ "required": [
+ "error"
+ ],
+ "properties": {
+ "error": {
+ "type": "object",
+ "description": "Document Error.",
+ "$ref": "#/definitions/TextAnalyticsError"
+ }
+ }
+ },
"TextAnalyticsError": {
"type": "object",
"required": [
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 abdf5f8a1425..a335724dfb36 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
@@ -824,7 +824,7 @@
"type": "object",
"properties": {
"sourceUrl": {
- "description": "Location of the folder / container with your documents",
+ "description": "Location of the folder / container or single file with your documents",
"type": "string",
"example": "https://myblob.blob.core.windows.net/Container/"
},
@@ -900,6 +900,14 @@
}
}
},
+ "StorageInputType": {
+ "description": "Storage type of the input documents source string",
+ "enum": [
+ "Folder",
+ "File"
+ ],
+ "type": "string"
+ },
"BatchRequest": {
"description": "Definition for the input batch translation request",
"required": [
@@ -917,6 +925,9 @@
"items": {
"$ref": "#/definitions/TargetInput"
}
+ },
+ "storageType": {
+ "$ref": "#/definitions/StorageInputType"
}
}
},
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2017-04-18/cognitiveservices.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2017-04-18/cognitiveservices.json
index 6fafff2877ff..4413c8ecc9ef 100644
--- a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2017-04-18/cognitiveservices.json
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2017-04-18/cognitiveservices.json
@@ -641,6 +641,48 @@
}
}
},
+ "/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/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved private endpoint connections.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}": {
"get": {
"tags": [
@@ -1009,6 +1051,26 @@
"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."
@@ -1658,6 +1720,18 @@
},
"description": "The user owned storage for Cognitive Services account."
},
+ "PrivateEndpointConnectionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "Array of private endpoint connections",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ }
+ },
+ "description": "A list of private endpoint connections"
+ },
"PrivateEndpointConnection": {
"properties": {
"properties": {
diff --git a/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2017-04-18/examples/ListPrivateEndpointConnections.json b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2017-04-18/examples/ListPrivateEndpointConnections.json
new file mode 100644
index 000000000000..54f2f6a453fc
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2017-04-18/examples/ListPrivateEndpointConnections.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "res6977",
+ "accountName": "sto2527",
+ "api-version": "2019-06-01"
+ },
+ "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",
+ "actionRequired": "None"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cognitiveservices/resource-manager/readme.azureresourceschema.md b/specification/cognitiveservices/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..b39fda607747
--- /dev/null
+++ b/specification/cognitiveservices/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,36 @@
+## 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.md b/specification/cognitiveservices/resource-manager/readme.md
index 5e1afb8546f0..6a6be724ecc5 100644
--- a/specification/cognitiveservices/resource-manager/readme.md
+++ b/specification/cognitiveservices/resource-manager/readme.md
@@ -70,6 +70,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
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
```
@@ -141,28 +144,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.CognitiveServices/stable/2017-04-18/cognitiveservices.json
- - $(this-folder)/Microsoft.CognitiveServices/preview/2016-02-01-preview/cognitiveservices.json
-
-```
+## AzureResourceSchema
-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
-```
+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
new file mode 100644
index 000000000000..10ddf94097fb
--- /dev/null
+++ b/specification/commerce/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-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 1726ab907cca..c8a7045b2f89 100644
--- a/specification/commerce/resource-manager/readme.md
+++ b/specification/commerce/resource-manager/readme.md
@@ -51,6 +51,8 @@ This is not used by Autorest itself.
``` yaml $(swagger-to-sdk)
swagger-to-sdk:
- repo: azure-sdk-for-python
+ after_scripts:
+ - python ./scripts/multiapi_init_gen.py azure-mgmt-commerce
- repo: azure-sdk-for-java
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
@@ -58,6 +60,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
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
```
@@ -76,16 +81,29 @@ python:
namespace: azure.mgmt.commerce
package-name: azure-mgmt-commerce
clear-output-folder: true
-```
-``` yaml $(python) && $(python-mode) == 'update'
-python:
no-namespace-folders: true
- output-folder: $(python-sdks-folder)/commerce/azure-mgmt-commerce/azure/mgmt/commerce
```
-``` yaml $(python) && $(python-mode) == 'create'
+
+### Python multi-api
+
+Generate all API versions currently shipped for this package
+
+```yaml $(python) && $(multiapi)
+batch:
+ - tag: package-2015-06-preview
+```
+
+### Tag: package-2015-06-preview and python
+
+These settings apply only when `--tag=package-2015-06-preview --python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2015-06-preview' && $(python)
+namespace: azure.mgmt.commerce.v2015_06_01_preview
+output-folder: $(python-sdks-folder)/commerce/azure-mgmt-commerce/azure/mgmt/commerce/v2015_06_01_preview
python:
- basic-setup-py: true
- output-folder: $(python-sdks-folder)/commerce/azure-mgmt-commerce
+ namespace: azure.mgmt.commerce.v2015_06_01_preview
+ output-folder: $(python-sdks-folder)/commerce/azure-mgmt-commerce/azure/mgmt/commerce/v2015_06_01_preview
```
## Go
@@ -128,27 +146,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
+## AzureResourceSchema
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Commerce/preview/2015-06-01-preview/commerce.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
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
new file mode 100644
index 000000000000..84d87cd2c9b0
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/communicationservicesadministration.json
@@ -0,0 +1,2056 @@
+{
+ "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
new file mode 100644
index 000000000000..0d393b557bc5
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/CancelSearchAsync.json
@@ -0,0 +1,10 @@
+{
+ "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
new file mode 100644
index 000000000000..d95a9053bddb
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/ConfigurePhoneNumberAsync.json
@@ -0,0 +1,16 @@
+{
+ "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
new file mode 100644
index 000000000000..b1c75ce1facd
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/CreateReleaseAsync.json
@@ -0,0 +1,19 @@
+{
+ "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
new file mode 100644
index 000000000000..2e253c17abc1
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/CreateSearchAsync.json
@@ -0,0 +1,29 @@
+{
+ "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
new file mode 100644
index 000000000000..3ad4280fe83a
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAcquiredPhoneNumbersAsync.json
@@ -0,0 +1,42 @@
+{
+ "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
new file mode 100644
index 000000000000..29a8ddb4979e
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAllReleasesAsync.json
@@ -0,0 +1,24 @@
+{
+ "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
new file mode 100644
index 000000000000..29a8ddb4979e
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAllSearchesAsync.json
@@ -0,0 +1,24 @@
+{
+ "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
new file mode 100644
index 000000000000..1288173209cc
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetAreaCodesAsync.json
@@ -0,0 +1,22 @@
+{
+ "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
new file mode 100644
index 000000000000..fe4dbb0b999f
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetCountriesAsync.json
@@ -0,0 +1,28 @@
+{
+ "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
new file mode 100644
index 000000000000..b551fa840089
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetLocationOptionsAsync.json
@@ -0,0 +1,66 @@
+{
+ "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
new file mode 100644
index 000000000000..11949cff84a3
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetNumberCapabilitiesUpdateAsync.json
@@ -0,0 +1,26 @@
+{
+ "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
new file mode 100644
index 000000000000..573d697b2934
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetNumberConfigurationAsync.json
@@ -0,0 +1,20 @@
+{
+ "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
new file mode 100644
index 000000000000..f418ffd2ff23
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetPhonePlanGroupsAsync.json
@@ -0,0 +1,37 @@
+{
+ "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
new file mode 100644
index 000000000000..88ed446f84e8
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetPhonePlansAsync.json
@@ -0,0 +1,29 @@
+{
+ "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
new file mode 100644
index 000000000000..10813ab35c36
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetReleaseByIdAsync.json
@@ -0,0 +1,15 @@
+{
+ "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
new file mode 100644
index 000000000000..a0e892008493
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/GetSearchByIdAsync.json
@@ -0,0 +1,26 @@
+{
+ "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
new file mode 100644
index 000000000000..0d393b557bc5
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/PurchaseSearchAsync.json
@@ -0,0 +1,10 @@
+{
+ "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
new file mode 100644
index 000000000000..e8da11cf3109
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/UnconfigurePhoneNumberAsync.json
@@ -0,0 +1,12 @@
+{
+ "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
new file mode 100644
index 000000000000..612b5f2b2740
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/examples/UpdateNumberCapabilitiesAsync.json
@@ -0,0 +1,32 @@
+{
+ "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.CommunicationServicesChat/preview/2020-09-21-preview2/communicationserviceschat.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/communicationserviceschat.json
new file mode 100644
index 000000000000..73e83b57a414
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/communicationserviceschat.json
@@ -0,0 +1,1617 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Communication Chat Service",
+ "description": "Azure Communication Chat Service",
+ "contact": {
+ "email": "acsdevexdisc@microsoft.com"
+ },
+ "version": "2020-09-21-preview2"
+ },
+ "paths": {
+ "/chat/threads/{chatThreadId}/readreceipts": {
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets read receipts for a thread.",
+ "operationId": "ListChatReadReceipts",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to get the read receipts for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns the requested `ReadReceipt` resources.",
+ "schema": {
+ "$ref": "#/definitions/ReadReceiptsCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get thread read receipts": {
+ "$ref": "./examples/Conversations_ListChatReadReceipts.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": "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": "body",
+ "description": "Read receipt details.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SendReadReceiptRequest"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "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": "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": "body",
+ "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/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "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": "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 ISO8601 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/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "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": "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/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get Message": {
+ "$ref": "./examples/Messages_GetChatMessage.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Updates a message.",
+ "operationId": "UpdateChatMessage",
+ "consumes": [
+ "application/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": "body",
+ "description": "Details of the request to update the message.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateChatMessageRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Message is successfully updated."
+ },
+ "401": {
+ "description": "Unauthorized",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Update message content": {
+ "$ref": "./examples/Messages_UpdateChatMessage.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Messages"
+ ],
+ "summary": "Deletes a message.",
+ "operationId": "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/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "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": "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/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Post typing event to a thread": {
+ "$ref": "./examples/Messages_SendTypingNotification.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/members": {
+ "get": {
+ "tags": [
+ "ThreadMembers"
+ ],
+ "summary": "Gets the members of a thread.",
+ "operationId": "ListChatThreadMembers",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to get members for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns the members of a thread.",
+ "schema": {
+ "$ref": "#/definitions/ChatThreadMembersCollection"
+ }
+ },
+ "401": {
+ "description": "Unauthorized",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get thread members": {
+ "$ref": "./examples/ThreadMembers_ListChatThreadMembers.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink",
+ "itemName": "value"
+ }
+ },
+ "post": {
+ "tags": [
+ "ThreadMembers"
+ ],
+ "summary": "Adds thread members to a thread. If members already exist, no change occurs.",
+ "operationId": "AddChatThreadMembers",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Id of the thread to add members to.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "Thread members to be added to the thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AddChatThreadMembersRequest"
+ }
+ }
+ ],
+ "responses": {
+ "207": {
+ "description": "Multi status response, containing the status for the thread member addition operations."
+ },
+ "401": {
+ "description": "Unauthorized",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Add thread members": {
+ "$ref": "./examples/ThreadMembers_AddChatThreadMembers.json"
+ }
+ }
+ }
+ },
+ "/chat/threads/{chatThreadId}/members/{chatMemberId}": {
+ "delete": {
+ "tags": [
+ "ThreadMembers"
+ ],
+ "summary": "Remove a member from a thread.",
+ "operationId": "RemoveChatThreadMember",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to remove the member from.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "path",
+ "name": "chatMemberId",
+ "description": "Id of the thread member to remove from the thread.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Remove thread member": {
+ "$ref": "./examples/ThreadMembers_RemoveChatThreadMember.json"
+ }
+ }
+ }
+ },
+ "/chat/threads": {
+ "post": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Creates a chat thread.",
+ "operationId": "CreateChatThread",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "Request payload for creating a chat thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CreateChatThreadRequest"
+ }
+ }
+ ],
+ "responses": {
+ "207": {
+ "description": "Multi status response, containing the status for the thread creation and the thread member addition operations.\r\nIf the thread was created successfully, `Location` header would contain the URL for the newly created thread.",
+ "schema": {
+ "$ref": "#/definitions/MultiStatusResponse"
+ }
+ },
+ "401": {
+ "description": "Unauthorized",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Create chat thread": {
+ "$ref": "./examples/Threads_CreateChatThread.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Gets the list of chat threads of a user.",
+ "operationId": "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 ISO8601 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/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "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": "UpdateChatThread",
+ "consumes": [
+ "application/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": "body",
+ "description": "Request payload for updating a chat thread.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/UpdateChatThreadRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Thread was successfully updated."
+ },
+ "401": {
+ "description": "Unauthorized",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "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": "GetChatThread",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to get.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Request successful. The action returns a `Thread` resource.",
+ "schema": {
+ "$ref": "#/definitions/ChatThread"
+ }
+ },
+ "401": {
+ "description": "Unauthorized",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Get chat thread": {
+ "$ref": "./examples/Threads_GetChatThread.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Threads"
+ ],
+ "summary": "Deletes a thread.",
+ "operationId": "DeleteChatThread",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "chatThreadId",
+ "description": "Thread id to delete.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful."
+ },
+ "401": {
+ "description": "Unauthorized",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "403": {
+ "description": "Forbidden",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "429": {
+ "description": "Too many requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ },
+ "503": {
+ "description": "Service unavailable",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ },
+ "x-ms-error-response": true
+ }
+ },
+ "x-ms-examples": {
+ "Delete chat thread": {
+ "$ref": "./examples/Threads_DeleteChatThread.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ReadReceipt": {
+ "description": "A read receipt indicates the time a chat message was read by a recipient.",
+ "type": "object",
+ "properties": {
+ "senderId": {
+ "description": "Read receipt sender id.",
+ "type": "string",
+ "readOnly": true,
+ "example": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ },
+ "chatMessageId": {
+ "description": "Id for the chat message that has been read. This id is generated by the server.",
+ "type": "string",
+ "readOnly": true,
+ "example": "1591137790240"
+ },
+ "readOn": {
+ "format": "date-time",
+ "description": "Read receipt timestamp. The timestamp is in ISO8601 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "readOnly": true,
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ReadReceiptsCollection": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of read receipts.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReadReceipt"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "If there are more read receipts that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "type": "string",
+ "readOnly": true
+ },
+ "target": {
+ "type": "string",
+ "readOnly": true
+ },
+ "innerErrors": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Error"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "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"
+ }
+ }
+ },
+ "ChatMessagePriority": {
+ "description": "The chat message priority.",
+ "enum": [
+ "Normal",
+ "High"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ChatMessagePriority",
+ "modelAsString": true
+ }
+ },
+ "SendChatMessageRequest": {
+ "description": "Details of the message to send.",
+ "required": [
+ "content"
+ ],
+ "type": "object",
+ "properties": {
+ "priority": {
+ "$ref": "#/definitions/ChatMessagePriority"
+ },
+ "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"
+ }
+ }
+ },
+ "SendChatMessageResult": {
+ "description": "Result of the send message operation.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "A server-generated message id.",
+ "type": "string",
+ "readOnly": true,
+ "example": "123456789"
+ }
+ }
+ },
+ "ChatMessage": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The id of the chat message. This id is server generated.",
+ "type": "string",
+ "readOnly": true,
+ "example": "123456789"
+ },
+ "type": {
+ "description": "Type of the chat message.\r\n \r\nPossible values:\r\n - Text\r\n - ThreadActivity/TopicUpdate\r\n - ThreadActivity/AddMember\r\n - ThreadActivity/DeleteMember",
+ "type": "string",
+ "example": "Text"
+ },
+ "priority": {
+ "$ref": "#/definitions/ChatMessagePriority"
+ },
+ "version": {
+ "description": "Version of the chat message.",
+ "type": "string",
+ "readOnly": true
+ },
+ "content": {
+ "description": "Content of the chat message.",
+ "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": "Jane"
+ },
+ "createdOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat message arrived at the server. The timestamp is in ISO8601 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "readOnly": true,
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "senderId": {
+ "description": "The id of the chat message sender.",
+ "type": "string",
+ "readOnly": true,
+ "example": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ },
+ "deletedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat message was deleted. The timestamp is in ISO8601 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "editedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the chat message was edited. The timestamp is in ISO8601 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.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat messages.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatMessage"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "If there are more chat messages that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UpdateChatMessageRequest": {
+ "type": "object",
+ "properties": {
+ "content": {
+ "description": "Chat message content.",
+ "type": "string",
+ "example": "Let's go for lunch together."
+ },
+ "priority": {
+ "$ref": "#/definitions/ChatMessagePriority"
+ }
+ }
+ },
+ "ChatThreadMember": {
+ "description": "A member of the chat thread.",
+ "required": [
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The id of the chat thread member in the format `8:acs:ResourceId_AcsUserId`.",
+ "type": "string",
+ "example": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ },
+ "displayName": {
+ "description": "Display name for the chat thread member.",
+ "type": "string",
+ "example": "Bob"
+ },
+ "shareHistoryTime": {
+ "format": "date-time",
+ "description": "Time from which the chat history is shared with the member. The timestamp is in ISO8601 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatThreadMembersCollection": {
+ "description": "Collection of thread members belong to a particular thread.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Chat thread members.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatThreadMember"
+ }
+ },
+ "nextLink": {
+ "description": "If there are more chat threads that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "AddChatThreadMembersRequest": {
+ "description": "Thread members to be added to the thread.",
+ "required": [
+ "members"
+ ],
+ "type": "object",
+ "properties": {
+ "members": {
+ "description": "Members to add to a chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatThreadMember"
+ }
+ }
+ }
+ },
+ "CreateChatThreadRequest": {
+ "description": "Request payload for creating a chat thread.",
+ "required": [
+ "members",
+ "topic"
+ ],
+ "type": "object",
+ "properties": {
+ "topic": {
+ "description": "The chat thread topic.",
+ "type": "string",
+ "example": "Lunch Thread"
+ },
+ "members": {
+ "description": "Members to be added to the chat thread.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatThreadMember"
+ }
+ }
+ }
+ },
+ "IndividualStatusResponse": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Identifies the resource to which the individual status corresponds.",
+ "type": "string",
+ "readOnly": true
+ },
+ "statusCode": {
+ "format": "int32",
+ "description": "The status code of the resource operation.\r\n \r\nPossible values include:\r\n 200 for a successful update or delete,\r\n 201 for successful creation,\r\n 400 for a malformed input,\r\n 403 for lacking permission to execute the operation,\r\n 404 for resource not found.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "message": {
+ "description": "The message explaining why the operation failed for the resource identified by the key; null if the operation succeeded.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "Identifies the type of the resource to which the individual status corresponds.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "MultiStatusResponse": {
+ "type": "object",
+ "properties": {
+ "multipleStatus": {
+ "description": "The list of status information for each resource in the request.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IndividualStatusResponse"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "ChatThreadInfo": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Chat thread id.",
+ "type": "string",
+ "readOnly": true,
+ "example": "19:uni01_uy5ucb66ugp3lrhe7pxso6xx4hsmm3dl6eyjfefv2n6x3rrurpea@thread.v2"
+ },
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Chat thread"
+ },
+ "isDeleted": {
+ "description": "Flag if a chat thread is soft deleted.",
+ "type": "boolean",
+ "example": false
+ },
+ "lastMessageReceivedOn": {
+ "format": "date-time",
+ "description": "The timestamp when the last message arrived at the server. The timestamp is in ISO8601 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "readOnly": true,
+ "example": "2020-10-30T10:50:50Z"
+ }
+ }
+ },
+ "ChatThreadsInfoCollection": {
+ "description": "Collection of chat threads.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Collection of chat threads.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatThreadInfo"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "If there are more chat threads that can be retrieved, the next link will be populated.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UpdateChatThreadRequest": {
+ "type": "object",
+ "properties": {
+ "topic": {
+ "description": "Chat thread topic.",
+ "type": "string",
+ "example": "Lunch Thread"
+ }
+ }
+ },
+ "ChatThread": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Chat thread id.",
+ "type": "string",
+ "readOnly": true,
+ "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 ISO8601 format: `yyyy-MM-ddTHH:mm:ssZ`.",
+ "type": "string",
+ "readOnly": true,
+ "example": "2020-10-30T10:50:50Z"
+ },
+ "createdBy": {
+ "description": "Id of the chat thread owner.",
+ "type": "string",
+ "readOnly": true,
+ "example": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ },
+ "members": {
+ "description": "Chat thread members.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ChatThreadMember"
+ }
+ }
+ }
+ }
+ },
+ "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-09-21-preview2/examples/Conversations_ListChatReadReceipts.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Conversations_ListChatReadReceipts.json
new file mode 100644
index 000000000000..44d3ad9bd31e
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Conversations_ListChatReadReceipts.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "chatThreadId": "19:uni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "senderId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "chatMessageId": "1591137790240",
+ "readOn": "2020-06-06T05:55:41.6460000Z"
+ },
+ {
+ "senderId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c00a",
+ "chatMessageId": "1591768249318",
+ "readOn": "2020-06-06T05:55:41.6460000Z"
+ }
+ ],
+ "nextLink": null
+ }
+ },
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Conversations_SendChatReadReceipt.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Conversations_SendChatReadReceipt.json
new file mode 100644
index 000000000000..45ab2f0680bb
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Conversations_SendChatReadReceipt.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "chatThreadId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "body": {
+ "chatMessageId": "1591137790240"
+ }
+ },
+ "responses": {
+ "201": {},
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_DeleteChatMessage.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_DeleteChatMessage.json
new file mode 100644
index 000000000000..00551b5f9d65
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_DeleteChatMessage.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "chatThreadId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "chatMessageId": "1591768249318"
+ },
+ "responses": {
+ "204": {},
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_GetChatMessage.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_GetChatMessage.json
new file mode 100644
index 000000000000..70d7dacb2aac
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_GetChatMessage.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "chatThreadId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "chatMessageId": "1591768249318"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "1591768249318",
+ "type": "Text",
+ "version": "1599016601134",
+ "priority": "Normal",
+ "content": "Let's head out for lunch in 15 minutes.",
+ "senderDisplayName": "Jane",
+ "createdOn": "2020-06-10T05:50:49.3180000Z",
+ "senderId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ }
+ },
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_ListChatMessagesWithPageSize.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_ListChatMessagesWithPageSize.json
new file mode 100644
index 000000000000..0323cbabc954
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_ListChatMessagesWithPageSize.json
@@ -0,0 +1,89 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "chatThreadId": "19:453dafb77b26481ea2e73bcada0324af@thread.v2",
+ "maxPageSize": 5
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "1593107077690",
+ "type": "Text",
+ "priority": "Normal",
+ "version": "1593107077683",
+ "content": "So where should we get lunch from today?",
+ "senderDisplayName": "Jane",
+ "createdOn": "2020-06-25T17:44:37.6830000Z",
+ "senderId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ },
+ {
+ "id": "1593107077683",
+ "type": "Text",
+ "priority": "Normal",
+ "version": "1593107077683",
+ "content": "Let's use this chat to decide what to get for lunch today.",
+ "senderDisplayName": "Jane",
+ "createdOn": "2020-06-25T17:44:37.6830000Z",
+ "senderId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ },
+ {
+ "id": "1593107046498",
+ "type": "Text",
+ "priority": "Normal",
+ "version": "1593107046498",
+ "content": "Good morning everyone!",
+ "senderDisplayName": "Jane",
+ "createdOn": "2020-06-25T17:44:06.4980000Z",
+ "senderId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
+ },
+ {
+ "id": "1593106976785",
+ "type": "ThreadActivity/TopicUpdate",
+ "priority": "Normal",
+ "version": "1593106976785",
+ "content": "15931069767858:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10bLunch",
+ "createdOn": "2020-06-25T17:42:56.7850000Z",
+ "senderId": "19:453dafb77b26481ea2e73bcada0324af@thread.v2"
+ },
+ {
+ "id": "1593106976753",
+ "type": "ThreadActivity/AddMember",
+ "priority": "Normal",
+ "version": "1593106976753",
+ "content": "15931069767538:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b15931069765668:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b8:acs:29d8ac59-6011-44dc-87c0-1f9f93dbc713_2a711a-6c8ffcdc418:acs:29d8ac59-6011-44dc-87c0-1f9f93dbc713_2a711a-6c8ffcdc418:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c",
+ "createdOn": "2020-06-25T17:42:56.7530000Z",
+ "senderId": "19:453dafb77b26481ea2e73bcada0324af@thread.v2"
+ }
+ ],
+ "nextLink": "https://contoso.westus.communications.azure.com/chat/threads/19:453dafb77b26481ea2e73bcada0324af@thread.v2/messages?syncState=3e4700000031393a756e6930315f7a626e68336e74326466756666657a6333736f7837646f67377766686b36793571653272776c6e66686c68647a69726968647071407468726561642e763201451fe6e77201000004357fea72010000&startTime=0&maxPageSize=5&api-version=2020-09-21-preview2"
+ }
+ },
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_SendChatMessage.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_SendChatMessage.json
new file mode 100644
index 000000000000..df0395bea381
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_SendChatMessage.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "chatThreadId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "body": {
+ "priority": "Normal",
+ "content": "Let's head out for lunch in 15 minutes.",
+ "senderDisplayName": "Jane"
+ }
+ },
+ "responses": {
+ "201": {
+ "headers": {
+ "Location": "https://contoso.westus.communications.azure.com/chat/threads/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/messages/1593072104708"
+ },
+ "body": {
+ "id": "1593072104708"
+ }
+ },
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_SendTypingNotification.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_SendTypingNotification.json
new file mode 100644
index 000000000000..6435d0e29153
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_SendTypingNotification.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "x-skypetoken": "token",
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "chatThreadId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345"
+ },
+ "responses": {
+ "200": {},
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_UpdateChatMessage.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_UpdateChatMessage.json
new file mode 100644
index 000000000000..f77e9c5e8dd9
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Messages_UpdateChatMessage.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "chatThreadId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "chatMessageId": "1591768249318",
+ "body": {
+ "content": "Updated message content"
+ }
+ },
+ "responses": {
+ "200": {},
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_AddChatThreadMembers.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_AddChatThreadMembers.json
new file mode 100644
index 000000000000..17cc78cfb022
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_AddChatThreadMembers.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "chatThreadId": "19:f2167429acf6482880c6b7790a9086c1@thread.v2",
+ "body": {
+ "members": [
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "displayName": "Alex",
+ "shareHistoryTime": "2020-06-06T05:55:41Z"
+ },
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "displayName": "Peter",
+ "shareHistoryTime": "2020-06-06T05:55:41Z"
+ },
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c",
+ "displayName": "Rama",
+ "shareHistoryTime": "2020-06-06T05:55:41Z"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "207": {
+ "multipleStatus": [
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "statusCode": 403,
+ "message": "Permissions check failed"
+ },
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "statusCode": 201
+ },
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c",
+ "statusCode": 201
+ }
+ ]
+ },
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_ListChatThreadMembers.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_ListChatThreadMembers.json
new file mode 100644
index 000000000000..2f7522e9e0a1
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_ListChatThreadMembers.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "chatThreadId": "19:f2167429acf6482880c6b7790a9086c1@thread.v2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "displayName": "Jane",
+ "shareHistoryTime": "2020-06-06T05:55:41Z"
+ },
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "displayName": "Alex",
+ "shareHistoryTime": "2020-06-06T05:55:41Z"
+ }
+ ],
+ "nextLink": null
+ }
+ },
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_RemoveChatThreadMember.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_RemoveChatThreadMember.json
new file mode 100644
index 000000000000..e4f34c5ab80d
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/ThreadMembers_RemoveChatThreadMember.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "chatThreadId": "19:f2167429acf6482880c6b7790a9086c1@thread.v2",
+ "chatMemberId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a"
+ },
+ "responses": {
+ "204": {},
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_CreateChatThread.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_CreateChatThread.json
new file mode 100644
index 000000000000..f2e8c4bb469c
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_CreateChatThread.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "body": {
+ "topic": "Lunch",
+ "members": [
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "displayName": "Jane"
+ },
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "displayName": "Alex"
+ },
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c",
+ "displayName": "Bob"
+ },
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "displayName": "Peter"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "207": {
+ "headers": {
+ "Location": "https://contoso.westus.communications.azure.com/chat/threads/19%3Auni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2"
+ },
+ "body": {
+ "multipleStatus": [
+ {
+ "id": "19:b355e41860604e7dacd072d586f47818@thread.v2",
+ "statusCode": 201
+ },
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "statusCode": 201
+ },
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "statusCode": 201
+ },
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10c",
+ "statusCode": 201
+ },
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "statusCode": 403,
+ "message": "Permissions check failed"
+ }
+ ]
+ }
+ },
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_DeleteChatThread.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_DeleteChatThread.json
new file mode 100644
index 000000000000..8d2b13efb17a
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_DeleteChatThread.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "chatThreadId": "19:9525281ac1f947fc884bcee1a9f983c2@thread.v2"
+ },
+ "responses": {
+ "204": {},
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_GetChatThread.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_GetChatThread.json
new file mode 100644
index 000000000000..2bcaff7565cb
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_GetChatThread.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "chatThreadId": "19:uni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "19:uni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2",
+ "topic": "Lunch",
+ "createdOn": "2020-06-06T05:55:41.6460000Z",
+ "createdBy": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "members": [
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10a",
+ "shareHistoryTime": "2020-06-06T05:55:41Z"
+ },
+ {
+ "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
+ "shareHistoryTime": "2020-06-06T05:55:41Z"
+ }
+ ]
+ }
+ },
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_ListChatThreadsWithPageSize.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_ListChatThreadsWithPageSize.json
new file mode 100644
index 000000000000..07a5dc602c3d
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_ListChatThreadsWithPageSize.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "maxmaxPageSize": 5
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "19:uni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2",
+ "topic": "Chat with Samantha",
+ "isDeleted": false,
+ "lastMessageReceivedOn": "2020-06-06T05:55:41.6460000Z"
+ },
+ {
+ "id": "19:a0dfe5fc10e04a7f8d8a64d455f4196d@thread.v2",
+ "topic": "Presentation Brainstorming",
+ "isDeleted": false,
+ "lastMessageReceivedOn": "2020-06-06T05:55:41.6460000Z"
+ },
+ {
+ "id": "19:uni01_n242d2bzammtwxiib7pbjtozeevjqzavzn654ku3dajocexfo2na@thread.v2",
+ "topic": "Chat with Alex",
+ "isDeleted": false,
+ "lastMessageReceivedOn": "2020-06-06T05:55:41.6460000Z"
+ },
+ {
+ "id": "19:0062022a28be4e0983734f7e45cd8566@thread.v2",
+ "topic": "Lunch",
+ "isDeleted": false,
+ "lastMessageReceivedOn": "2020-06-06T05:55:41.6460000Z"
+ },
+ {
+ "id": "19:uni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpe@thread.v2",
+ "topic": "Chat with Bob",
+ "isDeleted": false,
+ "lastMessageReceivedOn": "2020-06-06T05:55:41.6460000Z"
+ }
+ ],
+ "nextLink": "https://contoso.westus.communications.azure.com/chat/threads?syncState=W3sic3RhcnQiOiIyMDIwLTA2LTIzVDIzOjMyOjQ3LjMwNSswMDowMCIsImVuZCI6IjIwMjAtMDYtMjVUMDY6NTY6MjMuNjk2KzAwOjAwIn0seyJzdGFydCI6IjE5NzAtMDEtMDFUMDA6MDA6MDArMDA6MDAiLCJlbmQiOiIxOTcwLTAxLTAxVDAwOjAwOjAwKzAwOjAwIn1d&api-version=2020-09-21-preview2&maxmaxPageSize=5"
+ }
+ },
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_UpdateChatThreadTopic.json b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_UpdateChatThreadTopic.json
new file mode 100644
index 000000000000..fc22cf010c46
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/examples/Threads_UpdateChatThreadTopic.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "endpoint": "https://contoso.westus.communications.azure.com",
+ "api-version": "2020-09-21-preview2",
+ "chatThreadId": "19:uni01_zbnh3nt2dfuffezc3sox7dog7wfhk6y5qe2rwlnfhlhdzirihdpq@thread.v2",
+ "body": {
+ "topic": "Updated Thread Topic"
+ }
+ },
+ "responses": {
+ "200": {},
+ "401": {
+ "body": {
+ "code": "Unauthorized",
+ "message": "Request is not authorized."
+ }
+ },
+ "403": {
+ "body": {
+ "code": "Forbidden",
+ "message": "User is not allowed to perform specified action."
+ }
+ },
+ "429": {
+ "body": {
+ "code": "TooManyRequests",
+ "message": "Rate limit exceeded."
+ }
+ },
+ "503": {
+ "body": {
+ "code": "ServiceUnavailable",
+ "message": "The server is currently unable to handle the request."
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/CommunicationIdentity.json b/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/CommunicationIdentity.json
new file mode 100644
index 000000000000..c87ad2bfe5c3
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/CommunicationIdentity.json
@@ -0,0 +1,264 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "CommunicationIdentityClient",
+ "description": "Azure Communication Identity Service",
+ "contact": {
+ "email": "acsdevexdisc@microsoft.com"
+ },
+ "version": "2020-07-20-preview2"
+ },
+ "paths": {
+ "/identities": {
+ "post": {
+ "tags": [
+ "Identity"
+ ],
+ "summary": "Create a new identity.",
+ "operationId": "CommunicationIdentity_Create",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "query",
+ "name": "api-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK - Returns the created identity.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentity"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create Identity": {
+ "$ref": "./examples/CreateIdentity.json"
+ }
+ }
+ }
+ },
+ "/identities/{id}": {
+ "delete": {
+ "tags": [
+ "Identity"
+ ],
+ "summary": "Delete the identity, revoke all tokens of the identity and delete all associated data.",
+ "operationId": "CommunicationIdentity_Delete",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "id",
+ "description": "Identifier of the identity to be deleted.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ }
+ },
+ "x-ms-examples": {
+ "Delete Identity": {
+ "$ref": "./examples/DeleteIdentity.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Identity"
+ ],
+ "summary": "Update an Identity.",
+ "operationId": "CommunicationIdentity_Update",
+ "consumes": [
+ "application/merge-patch+json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "id",
+ "description": "Identifier of the identity.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "The properties of the identity to be updated.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityUpdateRequest"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Success"
+ }
+ },
+ "x-ms-examples": {
+ "Update Identity": {
+ "$ref": "./examples/UpdateIdentity.json"
+ }
+ }
+ }
+ },
+ "/identities/{id}/token": {
+ "post": {
+ "tags": [
+ "Token"
+ ],
+ "summary": "Generate a new token for an identity.",
+ "operationId": "CommunicationIdentity_IssueToken",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "path",
+ "name": "id",
+ "description": "Identifier of the identity to issue token for.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "query",
+ "name": "api-version",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "in": "body",
+ "name": "body",
+ "description": "Requesting scopes for the new token.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CommunicationTokenRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/CommunicationIdentityToken"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Issue Token": {
+ "$ref": "./examples/IssueToken.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CommunicationIdentity": {
+ "description": "A communication identity.",
+ "required": [
+ "id"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Identifier of the identity.",
+ "type": "string"
+ }
+ }
+ },
+ "CommunicationIdentityUpdateRequest": {
+ "type": "object",
+ "properties": {
+ "tokensValidFrom": {
+ "format": "date-time",
+ "description": "All tokens that are issued prior to this time will be revoked.",
+ "type": "string"
+ }
+ }
+ },
+ "CommunicationTokenRequest": {
+ "required": [
+ "scopes"
+ ],
+ "type": "object",
+ "properties": {
+ "scopes": {
+ "description": "List of scopes attached to the token.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "CommunicationIdentityToken": {
+ "required": [
+ "expiresOn",
+ "id",
+ "token"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Identifier of the identity owning the token.",
+ "type": "string"
+ },
+ "token": {
+ "description": "The token issued for the identity.",
+ "type": "string"
+ },
+ "expiresOn": {
+ "format": "date-time",
+ "description": "The expiry time of the token.",
+ "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": "Auth and Identity endpoint",
+ "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/2020-07-20-preview2/examples/CreateIdentity.json b/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/CreateIdentity.json
new file mode 100644
index 000000000000..a7a69a592539
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/CreateIdentity.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-20-preview2",
+ "content-type": "application/json",
+ "endpoint": "https://contoso.communication.azure.com/identities"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "8:acs:2dee53b4-368b-45b4-ab52-8493fb117652_00000005-14a2-493b-8a72-5a3a0d000081"
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/DeleteIdentity.json b/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/DeleteIdentity.json
new file mode 100644
index 000000000000..1a7eec13edb8
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/DeleteIdentity.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "api-version": "2020-07-20-preview2",
+ "content-type": "application/json",
+ "id": "8:acs:2dee53b4-368b-45b4-ab52-8493fb117652_00000005-14a2-493b-8a72-5a3a0d000081",
+ "endpoint": "https://contoso.communication.azure.com/identities"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/IssueToken.json b/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/IssueToken.json
new file mode 100644
index 000000000000..b63e6b9c2264
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/IssueToken.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2020-07-20-preview2",
+ "content-type": "application/merge-patch+json",
+ "id": "8:acs:2dee53b4-368b-45b4-ab52-8493fb117652_00000005-14a2-493b-8a72-5a3a0d000081",
+ "body": {
+ "scopes": [
+ "chat"
+ ]
+ },
+ "endpoint": "https://contoso.communication.azure.com/identities/"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "8:acs:2dee53b4-368b-45b4-ab52-8493fb117652_00000005-14a2-493b-8a72-5a3a0d000081",
+ "token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwMl9pbnQiLCJ0eXAiOiJKV1QifQ.eyJza3lwZWlkIjoiYWNzOjJkZWU1M2I0LTM2OGItNDViNC1hYjUyLTg0OTNmYjExNzY1Ml8wMDAwMDAwNS0xNGIwLWIwM2QtY2NjYy1iYWExZTEzYzAwMDEiLCJzY3AiOjE3OTIsImNzaSI6IjE1OTk2ODc1NzkiLCJpYXQiOjE1OTk2ODc1NzksImV4cCI6MTU5OTc3Mzk3OSwiYWNzU2NvcGUiOiJjaGF0IiwicmVzb3VyY2VJZCI6IjJkZWU1M2I0LTM2OGItNDViNC1hYjUyLTg0OTNmYjExNzY1MiJ9.S8Pryk7MVe0L8_KcTOjsGaU_6FXmcupVS8X73kJ2FW1CAotyJZb0YUoft_iXkbnTpJ3XK01SyhaXHcT48tXTsi1NcvyUqDk9u4rVKZkheA2F4ddLKYckO-RBw4mCHxlwsuiALNesR0MruhgiOSE1F0h_djDn6oKewSkyfd1FTWVqReeY1oIY4U0yi7_B8u3zNPiEFlv-Aqe4y1ISqi0009lt2u3EApjQ6pOIP8Jk9HAqbINwi2_lN5VAxUgK1XqvMBsiBmiB7fEfh-dNxB9tgH-tTGZQfRSprkjg6_KBVdYY7DTSr80J7Qez4JjoHwQ22DYKF8mleuFOysbTlLD0AA",
+ "expiresOn": "2020-09-10T21:39:39.3244584+00:00"
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/UpdateIdentity.json b/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/UpdateIdentity.json
new file mode 100644
index 000000000000..c6ee654739d9
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/examples/UpdateIdentity.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "api-version": "2020-07-20-preview2",
+ "content-type": "application/merge-patch+json",
+ "id": "8:acs:2dee53b4-368b-45b4-ab52-8493fb117652_00000005-14a2-493b-8a72-5a3a0d000081",
+ "endpoint": "https://contoso.communication.azure.com/identities/",
+ "body": {
+ "tokensValidFrom": "2017-04-17T05:04:18.070Z"
+ }
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesSms/preview/2020-07-20-preview1/communicationservicessms.json b/specification/communication/data-plane/Microsoft.CommunicationServicesSms/preview/2020-07-20-preview1/communicationservicessms.json
new file mode 100644
index 000000000000..0d989bdbeee6
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesSms/preview/2020-07-20-preview1/communicationservicessms.json
@@ -0,0 +1,145 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Communication SMS Service",
+ "description": "Azure Communication SMS Service",
+ "contact": {
+ "email": "acsdevexdisc@microsoft.com"
+ },
+ "version": "2020-07-20-preview1"
+ },
+ "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": {
+ "/sms": {
+ "post": {
+ "tags": [
+ "Sms"
+ ],
+ "summary": "Sends a SMS message from a phone number that belongs to the authenticated account.",
+ "operationId": "Sms_Send",
+ "x-ms-examples": {
+ "SuccessfulSend": {
+ "$ref": "./examples/send.json"
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "SendMessageRequest",
+ "description": "Represents the body of the send message request.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SendMessageRequest"
+ }
+ },
+ {
+ "name": "api-version",
+ "in": "query",
+ "description": "Version of API to invoke.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "SMS message is successfully scheduled for sending.",
+ "schema": {
+ "$ref": "#/definitions/SendSmsResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "SendSmsOptions": {
+ "description": "Optional configuration for sending SMS messages",
+ "type": "object",
+ "properties": {
+ "enableDeliveryReport": {
+ "description": "Enable this flag to receive a delivery report for this message on the Azure Resource EventGrid",
+ "type": "boolean"
+ }
+ }
+ },
+ "SendMessageRequest": {
+ "description": "Represents the properties of a send message request.",
+ "required": [
+ "message",
+ "to",
+ "from"
+ ],
+ "type": "object",
+ "properties": {
+ "from": {
+ "description": "The sender's phone number in E.164 format that is owned by the authenticated account.",
+ "type": "string"
+ },
+ "to": {
+ "description": "The recipients' phone number in E.164 format. In this version, only one recipient in the list is supported.",
+ "maxLength": 1,
+ "minLength": 1,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "message": {
+ "description": "The contents of the message that will be sent to the recipient. The allowable content is defined by RFC 5724.",
+ "maxLength": 2048,
+ "minLength": 0,
+ "type": "string"
+ },
+ "sendSmsOptions": {
+ "$ref": "#/definitions/SendSmsOptions"
+ }
+ }
+ },
+ "SendSmsResponse": {
+ "description": "Response for a successful send Sms request.",
+ "type": "object",
+ "properties": {
+ "messageId": {
+ "description": "The identifier of the outgoing SMS message",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "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"
+ }
+ },
+ "x-ms-parameterized-host": {
+ "hostTemplate": "{endpoint}",
+ "useSchemePrefix": false,
+ "parameters": [
+ {
+ "$ref": "#/parameters/Endpoint"
+ }
+ ]
+ }
+}
diff --git a/specification/communication/data-plane/Microsoft.CommunicationServicesSms/preview/2020-07-20-preview1/examples/send.json b/specification/communication/data-plane/Microsoft.CommunicationServicesSms/preview/2020-07-20-preview1/examples/send.json
new file mode 100644
index 000000000000..306feda3416f
--- /dev/null
+++ b/specification/communication/data-plane/Microsoft.CommunicationServicesSms/preview/2020-07-20-preview1/examples/send.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "SendMessageRequest": {
+ "from": "+18001110000",
+ "to": [
+ "+18002220000"
+ ],
+ "message": "Hello world!",
+ "sendSmsOptions": {
+ "enableDeliveryReport": true
+ }
+ },
+ "api-version": "2020-07-20-preview1",
+ "endpoint": "https://contoso.communication.azure.com/"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "messageId": "Outgoing_20200610203725bfd4ba70-70bf-4f77-925d-c0bdb5161bb3"
+ }
+ }
+ }
+}
diff --git a/specification/communication/data-plane/readme.csharp.md b/specification/communication/data-plane/readme.csharp.md
new file mode 100644
index 000000000000..2efd3715cdc3
--- /dev/null
+++ b/specification/communication/data-plane/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.CommunicationServices
+ output-folder: $(csharp-sdks-folder)/communicationservices/management/Microsoft.CommunicationServices/GeneratedProtocol
+```
diff --git a/specification/communication/data-plane/readme.md b/specification/communication/data-plane/readme.md
new file mode 100644
index 000000000000..32387d6d037d
--- /dev/null
+++ b/specification/communication/data-plane/readme.md
@@ -0,0 +1,92 @@
+# 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:
+ - Microsoft.CommunicationServicesAdministration/preview/2020-07-20-preview1/communicationservicesadministration.json
+ - Microsoft.CommunicationServicesSms/preview/2020-07-20-preview1/communicationservicessms.json
+title:
+ Azure Communication Services
+```
+
+```yaml
+openapi-type: data-plane
+tag: package-2020-09-21-preview2
+```
+
+### 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:
+ - Microsoft.CommunicationServicesChat/preview/2020-09-21-preview2/communicationserviceschat.json
+title:
+ Azure Communication Services
+```
+
+### 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:
+ - Microsoft.CommunicationServicesIdentity/preview/2020-07-20-preview2/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/readme.python.md b/specification/communication/data-plane/readme.python.md
new file mode 100644
index 000000000000..f7f55ff2159b
--- /dev/null
+++ b/specification/communication/data-plane/readme.python.md
@@ -0,0 +1,21 @@
+## Python
+
+These settings apply only when `--python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+```yaml $(python)
+python:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 2
+ namespace: Microsoft.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/readme.ruby.md b/specification/communication/data-plane/readme.ruby.md
new file mode 100644
index 000000000000..f521ab44dbf5
--- /dev/null
+++ b/specification/communication/data-plane/readme.ruby.md
@@ -0,0 +1,19 @@
+## Ruby
+
+These settings apply only when `--ruby` is specified on the command line.
+
+```yaml
+package-name: azure_mgmt_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/readme.typescript.md b/specification/communication/data-plane/readme.typescript.md
new file mode 100644
index 000000000000..be9f877fd1c2
--- /dev/null
+++ b/specification/communication/data-plane/readme.typescript.md
@@ -0,0 +1,13 @@
+## TypeScript
+
+These settings apply only when `--typescript` is specified on the command line.
+Please also specify `--typescript-sdks-folder=`.
+
+```yaml $(typescript)
+typescript:
+ azure-arm: true
+ package-name: "communicationservices"
+ output-folder: "$(typescript-sdks-folder)/packages/communicationservices"
+ payload-flattening-threshold: 1
+ generate-metadata: true
+```
diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/CommunicationService.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/CommunicationService.json
new file mode 100644
index 000000000000..6e840a1d9a20
--- /dev/null
+++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/CommunicationService.json
@@ -0,0 +1,1088 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Communication Services Management API",
+ "version": "2020-08-20-preview",
+ "description": "REST API for Azure Communication Services"
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "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.Communication/operations": {
+ "get": {
+ "description": "Lists all of the available REST API operations of the Microsoft.Communication provider.",
+ "operationId": "Operations_List",
+ "summary": "List Operations",
+ "tags": [
+ "Operations"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of operations.",
+ "schema": {
+ "$ref": "#/definitions/OperationList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Communication/communicationServices/{communicationServiceName}/linkNotificationHub": {
+ "post": {
+ "description": "Links an Azure Notification Hub to this communication service.",
+ "operationId": "CommunicationService_LinkNotificationHub",
+ "summary": "Link Notification Hub",
+ "tags": [
+ "CommunicationService"
+ ],
+ "parameters": [
+ {
+ "name": "linkNotificationHubParameters",
+ "in": "body",
+ "schema": {
+ "$ref": "#/definitions/LinkNotificationHubParameters"
+ },
+ "description": "Parameters supplied to the operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/CommunicationServiceName"
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The notification hub has been linked.",
+ "schema": {
+ "$ref": "#/definitions/LinkedNotificationHub"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Link notification hub": {
+ "$ref": "./examples/linkNotificationHub.json"
+ }
+ }
+ }
+ },
+ "/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": "#/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": "#/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.",
+ "operationId": "CommunicationService_ListBySubscription",
+ "summary": "List By Subscription",
+ "tags": [
+ "CommunicationService"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of CommunicationServices in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationServiceResourceList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List by subscription": {
+ "$ref": "./examples/listBySubscription.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Communication/communicationServices": {
+ "get": {
+ "description": "Handles requests to list all resources in a resource group.",
+ "operationId": "CommunicationService_ListByResourceGroup",
+ "summary": "List By Resource Group",
+ "tags": [
+ "CommunicationService"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes the list of CommunicationServices in a resourceGroup.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationServiceResourceList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "List by resource group": {
+ "$ref": "./examples/listByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Communication/communicationServices/{communicationServiceName}": {
+ "patch": {
+ "description": "Operation to update an existing CommunicationService.",
+ "operationId": "CommunicationService_Update",
+ "summary": "Update",
+ "tags": [
+ "CommunicationService"
+ ],
+ "parameters": [
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "Parameters for the update operation",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/TaggedResource"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/CommunicationServiceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The update request was successful",
+ "schema": {
+ "$ref": "#/definitions/CommunicationServiceResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Update resource": {
+ "$ref": "./examples/update.json"
+ }
+ }
+ },
+ "get": {
+ "description": "Get the CommunicationService and its properties.",
+ "operationId": "CommunicationService_Get",
+ "summary": "Get",
+ "tags": [
+ "CommunicationService"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/CommunicationServiceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describe the corresponding CommunicationService service.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationServiceResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Get resource": {
+ "$ref": "./examples/get.json"
+ }
+ }
+ },
+ "put": {
+ "description": "Create a new CommunicationService or update an existing CommunicationService.",
+ "operationId": "CommunicationService_CreateOrUpdate",
+ "summary": "Create Or Update",
+ "tags": [
+ "CommunicationService"
+ ],
+ "parameters": [
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "Parameters for the create or update operation",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/CommunicationServiceResource"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/CommunicationServiceName"
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "The create or update request was completed successfully",
+ "schema": {
+ "$ref": "#/definitions/CommunicationServiceResource"
+ }
+ },
+ "201": {
+ "description": "The create or update request was accepted",
+ "headers": {
+ "Azure-AsyncOperation": {
+ "description": "URL to query for status of the operation.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "#/definitions/CommunicationServiceResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create or update resource": {
+ "$ref": "./examples/createOrUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "description": "Operation to delete a CommunicationService.",
+ "operationId": "CommunicationService_Delete",
+ "summary": "Delete",
+ "tags": [
+ "CommunicationService"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/CommunicationServiceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The delete operation was successful."
+ },
+ "202": {
+ "description": "The delete operation is being performed in the background.",
+ "headers": {
+ "location": {
+ "description": "URL to query for status of the operation.",
+ "type": "string"
+ }
+ }
+ },
+ "204": {
+ "description": "The resource did not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete resource": {
+ "$ref": "./examples/delete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Communication/communicationServices/{communicationServiceName}/listKeys": {
+ "post": {
+ "description": "Get the access keys of the CommunicationService resource.",
+ "operationId": "CommunicationService_ListKeys",
+ "summary": "List Keys",
+ "tags": [
+ "CommunicationService"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/CommunicationServiceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success. The response describes CommunicationService access keys.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationServiceKeys"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "List keys": {
+ "$ref": "./examples/listKeys.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Communication/communicationServices/{communicationServiceName}/regenerateKey": {
+ "post": {
+ "description": "Regenerate CommunicationService access key. PrimaryKey and SecondaryKey cannot be regenerated at the same time.",
+ "operationId": "CommunicationService_RegenerateKey",
+ "summary": "Regenerate Key",
+ "tags": [
+ "CommunicationService"
+ ],
+ "parameters": [
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "Parameter that describes the Regenerate Key Operation.",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/RegenerateKeyParameters"
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupParameter"
+ },
+ {
+ "$ref": "#/parameters/CommunicationServiceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Created. The response contains the new key.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationServiceKeys"
+ }
+ },
+ "201": {
+ "description": "Created and an async operation is executing in background to make the new key take effect. The response contains new keys and an Azure-AsyncOperation header to query the async operation result.",
+ "schema": {
+ "$ref": "#/definitions/CommunicationServiceKeys"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-examples": {
+ "Regenerate key": {
+ "$ref": "./examples/regenerateKey.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ErrorResponse": {
+ "description": "Error response indicating why the requested operation could not be performed.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "description": "The error",
+ "properties": {
+ "code": {
+ "description": "Error code.",
+ "type": "string"
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "OperationList": {
+ "description": "Result of the request to list REST API operations. It contains a list of operations.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of operations supported by the resource provider.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ }
+ },
+ "nextLink": {
+ "description": "The URL the client should use to fetch the next page (per server side paging).\r\nIt's null for now, added for future use.",
+ "type": "string"
+ }
+ }
+ },
+ "Operation": {
+ "description": "REST API operation supported by CommunicationService resource provider.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the operation with format: {provider}/{resource}/{operation}",
+ "type": "string"
+ },
+ "display": {
+ "$ref": "#/definitions/OperationDisplay",
+ "description": "The object that describes the operation."
+ },
+ "origin": {
+ "description": "Optional. The intended executor of the operation; governs the display of the operation in the RBAC UX and the audit logs UX.",
+ "type": "string"
+ },
+ "properties": {
+ "$ref": "#/definitions/OperationProperties",
+ "description": "Extra properties for the operation.",
+ "x-ms-client-flatten": false
+ }
+ }
+ },
+ "OperationDisplay": {
+ "description": "The object that describes a operation.",
+ "type": "object",
+ "properties": {
+ "provider": {
+ "description": "Friendly name of the resource provider",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource type on which the operation is performed.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "The localized friendly name for the operation.",
+ "type": "string"
+ },
+ "description": {
+ "description": "The localized friendly description for the operation",
+ "type": "string"
+ }
+ }
+ },
+ "OperationProperties": {
+ "description": "Extra Operation properties.",
+ "type": "object",
+ "properties": {
+ "serviceSpecification": {
+ "$ref": "#/definitions/ServiceSpecification",
+ "description": "The service specifications."
+ }
+ }
+ },
+ "ServiceSpecification": {
+ "description": "An object that describes a specification.",
+ "type": "object",
+ "properties": {
+ "metricSpecifications": {
+ "description": "Specifications of the Metrics for Azure Monitoring.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricSpecification"
+ }
+ }
+ }
+ },
+ "MetricSpecification": {
+ "description": "Specifications of the Metrics for Azure Monitoring.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the metric.",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized friendly display name of the metric.",
+ "type": "string"
+ },
+ "displayDescription": {
+ "description": "Localized friendly description of the metric.",
+ "type": "string"
+ },
+ "unit": {
+ "description": "The unit that makes sense for the metric.",
+ "type": "string"
+ },
+ "aggregationType": {
+ "description": "The method for aggregating the metric.",
+ "type": "string",
+ "enum": [
+ "Average",
+ "Minimum",
+ "Maximum",
+ "Total",
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "AggregationType",
+ "modelAsString": true
+ }
+ },
+ "fillGapWithZero": {
+ "description": "Optional. If set to true, then zero will be returned for time duration where no metric is emitted/published. \r\nEx. a metric that returns the number of times a particular error code was emitted. The error code may not appear \r\noften, instead of the RP publishing 0, Shoebox can auto fill in 0s for time periods where nothing was emitted.",
+ "type": "string"
+ },
+ "category": {
+ "description": "The name of the metric category that the metric belongs to. A metric can only belong to a single category.",
+ "type": "string"
+ },
+ "dimensions": {
+ "description": "The dimensions of the metrics.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Dimension"
+ }
+ }
+ }
+ },
+ "Dimension": {
+ "description": "Specifications of the Dimension of metrics.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The public facing name of the dimension.",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Localized friendly display name of the dimension.",
+ "type": "string"
+ },
+ "internalName": {
+ "description": "Name of the dimension as it appears in MDM.",
+ "type": "string"
+ },
+ "toBeExportedForShoebox": {
+ "description": "A Boolean flag indicating whether this dimension should be included for the shoebox export scenario.",
+ "type": "boolean"
+ }
+ }
+ },
+ "LinkNotificationHubParameters": {
+ "description": "Description of an Azure Notification Hub to link to the communication service",
+ "required": [
+ "resourceId",
+ "connectionString"
+ ],
+ "type": "object",
+ "properties": {
+ "resourceId": {
+ "description": "The resource ID of the notification hub",
+ "type": "string"
+ },
+ "connectionString": {
+ "description": "Connection string for the notification hub",
+ "type": "string"
+ }
+ }
+ },
+ "LinkedNotificationHub": {
+ "description": "A notification hub that has been linked to the communication service",
+ "type": "object",
+ "properties": {
+ "resourceId": {
+ "description": "The resource ID of the notification hub",
+ "type": "string"
+ }
+ }
+ },
+ "OperationStatus": {
+ "description": "The current status of an async operation",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The operation Id.",
+ "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": "#/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",
+ "properties": {
+ "value": {
+ "description": "List of CommunicationService",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CommunicationServiceResource"
+ }
+ },
+ "nextLink": {
+ "description": "The URL the client should use to fetch the next page (per server side paging).\r\nIt's null for now, added for future use.",
+ "type": "string"
+ }
+ }
+ },
+ "CommunicationServiceResource": {
+ "description": "A class representing a CommunicationService resource.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ },
+ {
+ "$ref": "#/definitions/LocationResource"
+ },
+ {
+ "$ref": "#/definitions/TaggedResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/CommunicationServiceProperties",
+ "description": "The properties of the service.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "Resource": {
+ "description": "The core properties of ARM resources.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Fully qualified resource ID for the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "The name of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "The type of the service - e.g. \"Microsoft.Communication/CommunicationServices\"",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "LocationResource": {
+ "description": "An ARM resource with its own location (not a global or an inherited location).",
+ "type": "object",
+ "properties": {
+ "location": {
+ "description": "The Azure location where the CommunicationService is running.",
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ }
+ }
+ },
+ "TaggedResource": {
+ "description": "An ARM resource with that can accept tags",
+ "type": "object",
+ "properties": {
+ "tags": {
+ "description": "Tags of the service which is a list of key value pairs that describe the resource.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "x-ms-mutability": [
+ "read",
+ "create",
+ "update"
+ ]
+ }
+ }
+ },
+ "CommunicationServiceProperties": {
+ "description": "A class that describes the properties of the CommunicationService.",
+ "required": [
+ "dataLocation"
+ ],
+ "type": "object",
+ "properties": {
+ "provisioningState": {
+ "description": "Provisioning state of the resource.",
+ "enum": [
+ "Unknown",
+ "Succeeded",
+ "Failed",
+ "Canceled",
+ "Running",
+ "Creating",
+ "Updating",
+ "Deleting",
+ "Moving"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "hostName": {
+ "description": "FQDN of the CommunicationService instance.",
+ "type": "string",
+ "readOnly": true
+ },
+ "dataLocation": {
+ "description": "The location where the communication service stores its data at rest.",
+ "type": "string",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "notificationHubId": {
+ "description": "Resource ID of an Azure Notification Hub linked to this resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "version": {
+ "description": "Version of the CommunicationService resource. Probably you need the same or higher version of client SDKs.",
+ "type": "string",
+ "readOnly": true
+ },
+ "immutableResourceId": {
+ "description": "The immutable resource Id of the communication service.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "CommunicationServiceKeys": {
+ "description": "A class representing the access keys of a CommunicationService.",
+ "type": "object",
+ "properties": {
+ "primaryKey": {
+ "description": "The primary access key.",
+ "type": "string"
+ },
+ "secondaryKey": {
+ "description": "The secondary access key.",
+ "type": "string"
+ },
+ "primaryConnectionString": {
+ "description": "CommunicationService connection string constructed via the primaryKey",
+ "type": "string"
+ },
+ "secondaryConnectionString": {
+ "description": "CommunicationService connection string constructed via the secondaryKey",
+ "type": "string"
+ }
+ }
+ },
+ "RegenerateKeyParameters": {
+ "description": "Parameters describes the request to regenerate access keys",
+ "type": "object",
+ "properties": {
+ "keyType": {
+ "description": "The keyType to regenerate. Must be either 'primary' or 'secondary'(case-insensitive).",
+ "enum": [
+ "Primary",
+ "Secondary"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "KeyType",
+ "modelAsString": false
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "description": "Client Api Version.",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "2020-08-20-preview"
+ ]
+ },
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "Gets subscription ID which uniquely identifies the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
+ "required": true,
+ "type": "string"
+ },
+ "ResourceGroupParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "description": "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "CommunicationServiceName": {
+ "name": "communicationServiceName",
+ "in": "path",
+ "description": "The name of the CommunicationService resource.",
+ "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/preview/2020-08-20-preview/examples/createOrUpdate.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/createOrUpdate.json
new file mode 100644
index 000000000000..aafec77cf065
--- /dev/null
+++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/createOrUpdate.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "12345",
+ "resourceGroupName": "MyResourceGroup",
+ "communicationServiceName": "MyCommunicationResource",
+ "api-version": "2020-08-20-preview",
+ "parameters": {
+ "location": "Global",
+ "properties": {
+ "dataLocation": "United States"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345/resourceGroups/MyResourceGroup/providers/Microsoft.Communication/CommunicationServices/MyCommunicationResource",
+ "name": "MyCommunicationResource",
+ "type": "Microsoft.Communication/CommunicationServices",
+ "location": "Global",
+ "properties": {
+ "dataLocation": "United States",
+ "provisioningState": "Succeeded",
+ "hostName": "mycommunicationresource.communications.azure.com"
+ }
+ }
+ },
+ "201": {
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.Communication/locations/westus/operationStatuses/ed5d502c-acaa-42ec-ad61-0d8488a9fd1d"
+ },
+ "body": {
+ "id": "/subscriptions/12345/resourceGroups/MyResourceGroup/providers/Microsoft.Communication/CommunicationServices/MyCommunicationResource",
+ "name": "MyCommunicationResource",
+ "type": "Microsoft.Communication/CommunicationServices",
+ "location": "Global",
+ "properties": {
+ "dataLocation": "United States",
+ "provisioningState": "Accepted"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/delete.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/delete.json
new file mode 100644
index 000000000000..5bb01a4d2773
--- /dev/null
+++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/delete.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "subscriptionId": "12345",
+ "resourceGroupName": "MyResourceGroup",
+ "communicationServiceName": "MyCommunicationResource",
+ "api-version": "2020-08-20-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "headers": {
+ "Location": "https://management.azure.com/providers/Microsoft.Communication/locations/westus/operationStatuses/ed5d502c-acaa-42ec-ad61-0d8488a9fd1d"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/get.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/get.json
new file mode 100644
index 000000000000..ea4bdc176b41
--- /dev/null
+++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/get.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "12345",
+ "resourceGroupName": "MyResourceGroup",
+ "communicationServiceName": "MyCommunicationResource",
+ "api-version": "2020-08-20-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345/resourceGroups/MyResourceGroup/providers/Microsoft.Communication/CommunicationServices/MyCommunicationResource",
+ "name": "MyCommunicationResource",
+ "type": "Microsoft.Communication/CommunicationServices",
+ "location": "Global",
+ "properties": {
+ "dataLocation": "United States",
+ "provisioningState": "Running",
+ "hostName": "mycommunicationservice.comms.azure.net",
+ "version": "0.2.0"
+ }
+ }
+ },
+ "default": {
+ "body": {
+ "error": {
+ "code": "ResourceNotFound",
+ "message": "The requested resource was not found"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/getOperationStatus.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/getOperationStatus.json
new file mode 100644
index 000000000000..caa62830d1e7
--- /dev/null
+++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/getOperationStatus.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "location": "westus2",
+ "operationId": "db5f291f-284d-46e9-9152-d5c83f7c14b8",
+ "api-version": "2020-08-20-preview"
+ },
+ "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/Microsoft.Communication/preview/2020-08-20-preview/examples/linkNotificationHub.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/linkNotificationHub.json
new file mode 100644
index 000000000000..1f39fc5fecc3
--- /dev/null
+++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/linkNotificationHub.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "12345",
+ "resourceGroupName": "MyResourceGroup",
+ "communicationServiceName": "MyCommunicationResource",
+ "api-version": "2020-08-20-preview",
+ "linkNotificationHubParameters": {
+ "resourceId": "/subscriptions/12345/resourceGroups/MyOtherResourceGroup/providers/Microsoft.NotificationHubs/namespaces/MyNamespace/notificationHubs/MyHub",
+ "connectionString": "Endpoint=sb://MyNamespace.servicebus.windows.net/;SharedAccessKey=abcd1234"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "resourceId": "/subscriptions/12345/resourceGroups/MyOtherResourceGroup/providers/Microsoft.NotificationHubs/namespaces/MyNamespace/notificationHubs/MyHub"
+ }
+ },
+ "default": {
+ "body": {
+ "error": {
+ "code": "WrongSubscription",
+ "message": "The notification hub must be in the same subscription as the communication service"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listByResourceGroup.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listByResourceGroup.json
new file mode 100644
index 000000000000..139e7f6cf04f
--- /dev/null
+++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listByResourceGroup.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "subscriptionId": "12345",
+ "resourceGroupName": "MyResourceGroup",
+ "api-version": "2020-08-20-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "provisioningState": "Running",
+ "dataLocation": "United States",
+ "hostName": "mycommunicationservice.comms.azure.net",
+ "version": "0.2.0"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listBySubscription.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listBySubscription.json
new file mode 100644
index 000000000000..8300a9f55093
--- /dev/null
+++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listBySubscription.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "subscriptionId": "12345",
+ "api-version": "2020-08-20-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "provisioningState": "Running",
+ "dataLocation": "United States",
+ "hostName": "mycommunicationservice.comms.azure.net",
+ "version": "0.2.0"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listKeys.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listKeys.json
new file mode 100644
index 000000000000..ee092cda96e0
--- /dev/null
+++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listKeys.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "subscriptionId": "12345",
+ "resourceGroupName": "MyResourceGroup",
+ "communicationServiceName": "MyCommunicationResource",
+ "api-version": "2020-08-20-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "primaryKey": "1234",
+ "secondaryKey": "ABCD"
+ }
+ }
+ }
+}
diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/regenerateKey.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/regenerateKey.json
new file mode 100644
index 000000000000..72ba59e10b8f
--- /dev/null
+++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/regenerateKey.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "subscriptionId": "12345",
+ "resourceGroupName": "MyResourceGroup",
+ "communicationServiceName": "MyCommunicationResource",
+ "api-version": "2020-08-20-preview",
+ "parameters": {
+ "keyType": "Primary"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "primaryKey": "1234",
+ "primaryConnectionString": "endpoint=http://example.com;accesskey=1234"
+ }
+ },
+ "201": {
+ "body": {}
+ }
+ }
+}
diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/update.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/update.json
new file mode 100644
index 000000000000..a441c4f0546c
--- /dev/null
+++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/update.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "12345",
+ "resourceGroupName": "MyResourceGroup",
+ "communicationServiceName": "MyCommunicationResource",
+ "api-version": "2020-08-20-preview",
+ "parameters": {
+ "tags": {
+ "newTag": "newVal"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/12345/resourceGroups/MyResourceGroup/providers/Microsoft.Communication/CommunicationServices/MyCommunicationResource",
+ "name": "MyCommunicationResource",
+ "type": "Microsoft.Communication/CommunicationServices",
+ "location": "Global",
+ "tags": {
+ "newTag": "newVal"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "dataLocation": "United States",
+ "hostName": "mycommunicationresource.communications.azure.com",
+ "version": "0.2.0"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/communication/resource-manager/readme.csharp.md b/specification/communication/resource-manager/readme.csharp.md
new file mode 100644
index 000000000000..f1aed9643153
--- /dev/null
+++ b/specification/communication/resource-manager/readme.csharp.md
@@ -0,0 +1,15 @@
+## C#
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+```yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 1
+ clear-output-folder: true
+ client-side-validation: false
+ namespace: Microsoft.Azure.Management.Communication
+ output-folder: $(csharp-sdks-folder)/communication/Microsoft.Azure.Management.Communication/src/Generated
+```
diff --git a/specification/communication/resource-manager/readme.go.md b/specification/communication/resource-manager/readme.go.md
new file mode 100644
index 000000000000..1434d5fd3791
--- /dev/null
+++ b/specification/communication/resource-manager/readme.go.md
@@ -0,0 +1,26 @@
+## Go
+
+These settings apply only when `--go` is specified on the command line.
+
+``` yaml $(go)
+go:
+ license-header: MICROSOFT_APACHE_NO_VERSION
+ namespace: communication
+ clear-output-folder: true
+```
+
+### Go multi-api
+
+``` yaml $(go) && $(multiapi)
+batch:
+ - tag: package-2020-08-20-preview
+```
+
+### Tag: package-2020-08-20-preview and go
+
+These settings apply only when `--tag=package-2020-08-20-preview --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-08-20-preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-08-20-preview/$(namespace)
+```
diff --git a/specification/communication/resource-manager/readme.md b/specification/communication/resource-manager/readme.md
new file mode 100644
index 000000000000..2191f6dd16bf
--- /dev/null
+++ b/specification/communication/resource-manager/readme.md
@@ -0,0 +1,70 @@
+# vsonline
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for Azure Communication Services.
+
+---
+
+## Getting Started
+
+To build the SDKs for Azure Communication Services, simply [Install AutoRest](https://aka.ms/autorest/install) or via `npm` (`npm install -g autorest`) and in this folder run:
+
+> `autorest`
+
+To see additional help and options, run:
+
+> `autorest --help`
+
+---
+
+## Configuration
+
+### Basic Information
+
+These are the global settings for the Azure Communication Services API.
+
+```yaml
+title: CommunicationServiceManagementClient
+openapi-type: arm
+openapi-subtype: rpaas
+tag: package-2020-08-20-preview
+```
+
+### Tag: package-2020-08-20-preview
+
+These settings apply only when `--tag=package-2020-08-20-preview` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-08-20-preview'
+input-file:
+ - Microsoft.Communication/preview/2020-08-20-preview/CommunicationService.json
+```
+
+# Code Generation
+
+## Swagger to SDK
+
+This section describes what SDK should be generated by the automatic system.
+This is not used by Autorest itself.
+
+```yaml $(swagger-to-sdk)
+swagger-to-sdk:
+ - repo: azure-sdk-for-net
+ - repo: azure-sdk-for-python
+ - repo: azure-sdk-for-python-track2
+ - repo: azure-sdk-for-go
+ after_scripts:
+ - bundle install && rake arm:regen_all_profiles['azure_mgmt_vsonline']
+```
+
+## CSharp
+
+See configuration in [readme.csharp.md](./readme.csharp.md)
+
+## Python
+
+See configuration in [readme.python.md](./readme.python.md)
+
+## Go
+
+See configuration in [readme.go.md](./readme.go.md)
diff --git a/specification/communication/resource-manager/readme.python.md b/specification/communication/resource-manager/readme.python.md
new file mode 100644
index 000000000000..18112d3b5145
--- /dev/null
+++ b/specification/communication/resource-manager/readme.python.md
@@ -0,0 +1,44 @@
+## Python
+
+These settings apply only when `--python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
+
+
+``` yaml !$(track2)
+python-mode: create
+python:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 2
+ namespace: azure.mgmt.communication
+ package-name: azure-mgmt-communication
+ package-version: 1.0.0rc1
+ clear-output-folder: true
+```
+
+These settings apply only when `--track2` is specified on the command line.
+
+``` yaml $(track2)
+azure-arm: true
+license-header: MICROSOFT_MIT_NO_VERSION
+package-name: azure-mgmt-communication
+no-namespace-folders: true
+package-version: 1.0.0rc1
+```
+
+```yaml $(python) && $(python-mode) == 'update'
+python:
+ no-namespace-folders: true
+ output-folder: $(python-sdks-folder)/communication/azure-mgmt-communication/azure/mgmt/communication
+no-namespace-folders: true
+output-folder: $(python-sdks-folder)/communication/azure-mgmt-communication/azure/mgmt/communication
+```
+
+```yaml $(python) && $(python-mode) == 'create'
+python:
+ basic-setup-py: true
+ output-folder: $(python-sdks-folder)/communication/azure-mgmt-communication
+basic-setup-py: true
+output-folder: $(python-sdks-folder)/communication/azure-mgmt-communication
+```
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/AddToSharingProfileInAGallery.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/AddToSharingProfileInAGallery.json
new file mode 100644
index 000000000000..2b58d146d876
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/AddToSharingProfileInAGallery.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "sharingUpdate": {
+ "operationType": "Add",
+ "groups": [
+ {
+ "type": "Subscriptions",
+ "ids": [
+ "34a4ab42-0d72-47d9-bd1a-aed207386dac",
+ "380fd389-260b-41aa-bad9-0a83108c370b"
+ ]
+ },
+ {
+ "type": "AADTenants",
+ "ids": [
+ "c24c76aa-8897-4027-9b03-8f7928b54ff6"
+ ]
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "operationType": "Add",
+ "groups": [
+ {
+ "type": "Subscriptions",
+ "ids": [
+ "34a4ab42-0d72-47d9-bd1a-aed207386dac",
+ "380fd389-260b-41aa-bad9-0a83108c370b"
+ ]
+ },
+ {
+ "type": "AADTenants",
+ "ids": [
+ "c24c76aa-8897-4027-9b03-8f7928b54ff6"
+ ]
+ }
+ ]
+ }
+ },
+ "202": {
+ "body": {
+ "operationType": "Add",
+ "groups": [
+ {
+ "type": "Subscriptions",
+ "ids": [
+ "34a4ab42-0d72-47d9-bd1a-aed207386dac",
+ "380fd389-260b-41aa-bad9-0a83108c370b"
+ ]
+ },
+ {
+ "type": "AADTenants",
+ "ids": [
+ "c24c76aa-8897-4027-9b03-8f7928b54ff6"
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGallery.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGallery.json
new file mode 100644
index 000000000000..be3c726713ed
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGallery.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "gallery": {
+ "location": "West US",
+ "properties": {
+ "description": "This is the gallery description."
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "description": "This is the gallery description.",
+ "identifier": {
+ "uniqueName": "{subscription-id}-MYGALLERYNAME"
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myGalleryName"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "description": "This is the gallery description.",
+ "identifier": {
+ "uniqueName": "{subscription-id}-MYGALLERYNAME"
+ },
+ "provisioningState": "Creating"
+ },
+ "location": "West US",
+ "name": "myGalleryName"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "description": "This is the gallery description.",
+ "identifier": {
+ "uniqueName": "{subscription-id}-MYGALLERYNAME"
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myGalleryName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryApplication.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryApplication.json
new file mode 100644
index 000000000000..d4f969d2d11e
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryApplication.json
@@ -0,0 +1,66 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryApplicationName": "myGalleryApplicationName",
+ "galleryApplication": {
+ "location": "West US",
+ "properties": {
+ "description": "This is the gallery application description.",
+ "eula": "This is the gallery application EULA.",
+ "privacyStatementUri": "myPrivacyStatementUri}",
+ "releaseNoteUri": "myReleaseNoteUri",
+ "supportedOSType": "Windows"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "description": "This is the gallery application description.",
+ "eula": "This is the gallery application EULA.",
+ "privacyStatementUri": "myPrivacyStatementUri}",
+ "releaseNoteUri": "myReleaseNoteUri",
+ "supportedOSType": "Windows"
+ },
+ "location": "West US",
+ "name": "myGalleryApplicationName",
+ "type": "Microsoft.Compute/galleries",
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications/myGalleryApplicationName"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "description": "This is the gallery application description.",
+ "eula": "This is the gallery application EULA.",
+ "privacyStatementUri": "myPrivacyStatementUri}",
+ "releaseNoteUri": "myReleaseNoteUri",
+ "supportedOSType": "Windows"
+ },
+ "location": "West US",
+ "name": "myGalleryApplicationName",
+ "type": "Microsoft.Compute/galleries",
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications/myGalleryApplicationName"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "description": "This is the gallery application description.",
+ "eula": "This is the gallery application EULA.",
+ "privacyStatementUri": "myPrivacyStatementUri}",
+ "releaseNoteUri": "myReleaseNoteUri",
+ "supportedOSType": "Windows"
+ },
+ "location": "West US",
+ "name": "myGalleryApplicationName",
+ "type": "Microsoft.Compute/galleries",
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications/myGalleryApplicationName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryApplicationVersion.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryApplicationVersion.json
new file mode 100644
index 000000000000..6942466a93b3
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryApplicationVersion.json
@@ -0,0 +1,123 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryApplicationName": "myGalleryApplicationName",
+ "galleryApplicationVersionName": "1.0.0",
+ "galleryApplicationVersion": {
+ "location": "West US",
+ "properties": {
+ "publishingProfile": {
+ "source": {
+ "fileName": "package.zip",
+ "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
+ },
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "replicaCount": 1,
+ "endOfLifeDate": "2019-07-01T07:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "West US",
+ "name": "1.0.0",
+ "type": "Microsoft.Compute/galleries/applications/versions",
+ "id": "/subscriptions/01523d7c-60da-455e-adef-521b547922c4/resourceGroups/galleryPsTestRg98/providers/Microsoft.Compute/galleries/galleryPsTestGallery6165/applications/galleryPsTestGalleryApplication7825/versions/1.0.0",
+ "properties": {
+ "publishingProfile": {
+ "source": {
+ "fileName": "package.zip",
+ "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
+ },
+ "enableHealthCheck": false,
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "replicaCount": 1,
+ "excludeFromLatest": false,
+ "publishedDate": "2019-06-21T17:13:57.5972568+00:00",
+ "endOfLifeDate": "2019-07-01T07:00:00+00:00",
+ "storageAccountType": "Standard_LRS"
+ },
+ "provisioningState": "Updating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "location": "West US",
+ "name": "1.0.0",
+ "type": "Microsoft.Compute/galleries/applications/versions",
+ "id": "/subscriptions/01523d7c-60da-455e-adef-521b547922c4/resourceGroups/galleryPsTestRg98/providers/Microsoft.Compute/galleries/galleryPsTestGallery6165/applications/galleryPsTestGalleryApplication7825/versions/1.0.0",
+ "properties": {
+ "publishingProfile": {
+ "source": {
+ "fileName": "package.zip",
+ "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
+ },
+ "enableHealthCheck": false,
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "replicaCount": 1,
+ "excludeFromLatest": false,
+ "publishedDate": "2019-06-21T17:13:57.5972568+00:00",
+ "endOfLifeDate": "2019-07-01T07:00:00+00:00",
+ "storageAccountType": "Standard_LRS"
+ },
+ "provisioningState": "Creating"
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "location": "West US",
+ "name": "1.0.0",
+ "type": "Microsoft.Compute/galleries/applications/versions",
+ "id": "/subscriptions/01523d7c-60da-455e-adef-521b547922c4/resourceGroups/galleryPsTestRg98/providers/Microsoft.Compute/galleries/galleryPsTestGallery6165/applications/galleryPsTestGalleryApplication7825/versions/1.0.0",
+ "properties": {
+ "publishingProfile": {
+ "source": {
+ "fileName": "package.zip",
+ "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
+ },
+ "enableHealthCheck": false,
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "replicaCount": 1,
+ "excludeFromLatest": false,
+ "publishedDate": "2019-06-21T17:13:57.5972568+00:00",
+ "endOfLifeDate": "2019-07-01T07:00:00+00:00",
+ "storageAccountType": "Standard_LRS"
+ },
+ "provisioningState": "Updating"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryImage.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryImage.json
new file mode 100644
index 000000000000..13f9b61d3641
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryImage.json
@@ -0,0 +1,75 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryImageName": "myGalleryImageName",
+ "galleryImage": {
+ "location": "West US",
+ "properties": {
+ "osType": "Windows",
+ "osState": "Generalized",
+ "hyperVGeneration": "V1",
+ "identifier": {
+ "publisher": "myPublisherName",
+ "offer": "myOfferName",
+ "sku": "mySkuName"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "osType": "Windows",
+ "osState": "Generalized",
+ "hyperVGeneration": "V1",
+ "identifier": {
+ "publisher": "myPublisherName",
+ "offer": "myOfferName",
+ "sku": "mySkuName"
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myGalleryImageName"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "osType": "Windows",
+ "osState": "Generalized",
+ "hyperVGeneration": "V1",
+ "identifier": {
+ "publisher": "myPublisherName",
+ "offer": "myOfferName",
+ "sku": "mySkuName"
+ },
+ "provisioningState": "Creating"
+ },
+ "location": "West US",
+ "name": "myGalleryImageName"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "osType": "Windows",
+ "osState": "Generalized",
+ "hyperVGeneration": "V1",
+ "identifier": {
+ "publisher": "myPublisherName",
+ "offer": "myOfferName",
+ "sku": "mySkuName"
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myGalleryImageName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryImageVersion.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryImageVersion.json
new file mode 100644
index 000000000000..a3353dfdd97e
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryImageVersion.json
@@ -0,0 +1,221 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryImageName": "myGalleryImageName",
+ "galleryImageVersionName": "1.0.0",
+ "galleryImageVersion": {
+ "location": "West US",
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 0,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet"
+ },
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_ZRS"
+ }
+ ]
+ },
+ "storageProfile": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 0,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet"
+ },
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_ZRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}"
+ },
+ "osDiskImage": {
+ "sizeInGB": 10,
+ "hostCaching": "ReadOnly"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "sizeInGB": 10,
+ "hostCaching": "None"
+ }
+ ]
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 0,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet"
+ },
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_ZRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}"
+ },
+ "osDiskImage": {
+ "sizeInGB": 10,
+ "hostCaching": "ReadOnly"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "sizeInGB": 10,
+ "hostCaching": "None"
+ }
+ ]
+ },
+ "provisioningState": "Creating"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 0,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet"
+ },
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_ZRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}"
+ },
+ "osDiskImage": {
+ "sizeInGB": 10,
+ "hostCaching": "ReadOnly"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "sizeInGB": 10,
+ "hostCaching": "None"
+ }
+ ]
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryImageVersionWithSnapshotsAsSource.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryImageVersionWithSnapshotsAsSource.json
new file mode 100644
index 000000000000..d3e4274210ce
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryImageVersionWithSnapshotsAsSource.json
@@ -0,0 +1,226 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryImageName": "myGalleryImageName",
+ "galleryImageVersionName": "1.0.0",
+ "galleryImageVersion": {
+ "location": "West US",
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet",
+ "lun": 1
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_ZRS"
+ }
+ ]
+ },
+ "storageProfile": {
+ "osDiskImage": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{snapshotName}"
+ },
+ "hostCaching": "ReadOnly"
+ },
+ "dataDiskImages": [
+ {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{diskSnapshotName}"
+ },
+ "lun": 1,
+ "hostCaching": "None"
+ }
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_ZRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "osDiskImage": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{osSnapshotName}"
+ },
+ "sizeInGB": 10,
+ "hostCaching": "ReadOnly"
+ },
+ "dataDiskImages": [
+ {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{diskSnapshotName}"
+ },
+ "lun": 1,
+ "sizeInGB": 10,
+ "hostCaching": "None"
+ }
+ ]
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_ZRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "osDiskImage": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{osSnapshotName}"
+ },
+ "sizeInGB": 10,
+ "hostCaching": "ReadOnly"
+ },
+ "dataDiskImages": [
+ {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{diskSnapshotName}"
+ },
+ "lun": 1,
+ "sizeInGB": 10,
+ "hostCaching": "None"
+ }
+ ]
+ },
+ "provisioningState": "Creating"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_ZRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "osDiskImage": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{osSnapshotName}"
+ },
+ "sizeInGB": 10,
+ "hostCaching": "ReadOnly"
+ },
+ "dataDiskImages": [
+ {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{diskSnapshotName}"
+ },
+ "lun": 1,
+ "sizeInGB": 10,
+ "hostCaching": "None"
+ }
+ ]
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryImageVersionWithVHD.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryImageVersionWithVHD.json
new file mode 100644
index 000000000000..e2b1b504c1ff
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryImageVersionWithVHD.json
@@ -0,0 +1,176 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryImageName": "myGalleryImageName",
+ "galleryImageVersionName": "1.0.0",
+ "galleryImageVersion": {
+ "location": "West US",
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet",
+ "lun": 1
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_ZRS"
+ }
+ ]
+ },
+ "storageProfile": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccount}",
+ "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_ZRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccount}",
+ "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd"
+ }
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_ZRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccount}",
+ "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd"
+ }
+ },
+ "provisioningState": "Creating"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_ZRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccount}",
+ "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd"
+ }
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryWithSharingProfile.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryWithSharingProfile.json
new file mode 100644
index 000000000000..b9852f7f8548
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/CreateOrUpdateASimpleGalleryWithSharingProfile.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "gallery": {
+ "location": "West US",
+ "properties": {
+ "description": "This is the gallery description.",
+ "sharingProfile": {
+ "permissions": "Groups"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "description": "This is the gallery description.",
+ "identifier": {
+ "uniqueName": "{subscription-id}-MYGALLERYNAME"
+ },
+ "provisioningState": "Updating",
+ "sharingProfile": {
+ "permissions": "Groups"
+ }
+ },
+ "location": "West US",
+ "name": "myGalleryName"
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "description": "This is the gallery description.",
+ "identifier": {
+ "uniqueName": "{subscription-id}-MYGALLERYNAME"
+ },
+ "provisioningState": "Creating",
+ "sharingProfile": {
+ "permissions": "Groups"
+ }
+ },
+ "location": "West US",
+ "name": "myGalleryName"
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "description": "This is the gallery description.",
+ "identifier": {
+ "uniqueName": "{subscription-id}-MYGALLERYNAME"
+ },
+ "provisioningState": "Updating",
+ "sharingProfile": {
+ "permissions": "Groups"
+ }
+ },
+ "location": "West US",
+ "name": "myGalleryName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGallery.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGallery.json
new file mode 100644
index 000000000000..2abe4517a561
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGallery.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGalleryApplication.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGalleryApplication.json
new file mode 100644
index 000000000000..f1014e7b7f78
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGalleryApplication.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryApplicationName": "myGalleryApplicationName"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGalleryApplicationVersion.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGalleryApplicationVersion.json
new file mode 100644
index 000000000000..e4a43f69b126
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGalleryApplicationVersion.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryApplicationName": "myGalleryApplicationName",
+ "galleryApplicationVersionName": "1.0.0"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGalleryImage.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGalleryImage.json
new file mode 100644
index 000000000000..6d760641d7b4
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGalleryImage.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryImageName": "myGalleryImageName"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGalleryImageVersion.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGalleryImageVersion.json
new file mode 100644
index 000000000000..76001cffb9b2
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/DeleteAGalleryImageVersion.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryImageName": "myGalleryImageName",
+ "galleryImageVersionName": "1.0.0"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGallery.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGallery.json
new file mode 100644
index 000000000000..7ef46189bfcc
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGallery.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "description": "This is the gallery description.",
+ "identifier": {
+ "uniqueName": "{subscription-id}-MYGALLERYNAME"
+ },
+ "provisioningState": "Succeeded"
+ },
+ "location": "West US",
+ "name": "myGalleryName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplication.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplication.json
new file mode 100644
index 000000000000..37c4d1d42a00
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplication.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryApplicationName": "myGalleryApplicationName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "description": "This is the gallery application description.",
+ "eula": "This is the gallery application EULA.",
+ "privacyStatementUri": "myPrivacyStatementUri}",
+ "releaseNoteUri": "myReleaseNoteUri",
+ "supportedOSType": "Windows"
+ },
+ "location": "West US",
+ "name": "myGalleryApplicationName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplicationVersion.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplicationVersion.json
new file mode 100644
index 000000000000..ca16dd2d6f84
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplicationVersion.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryApplicationName": "myGalleryApplicationName",
+ "galleryApplicationVersionName": "1.0.0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "West US",
+ "name": "1.0.0",
+ "type": "Microsoft.Compute/galleries/applications/versions",
+ "id": "/subscriptions/01523d7c-60da-455e-adef-521b547922c4/resourceGroups/galleryPsTestRg98/providers/Microsoft.Compute/galleries/galleryPsTestGallery6165/applications/galleryPsTestGalleryApplication7825/versions/1.0.0",
+ "properties": {
+ "publishingProfile": {
+ "source": {
+ "fileName": "package.zip",
+ "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
+ },
+ "enableHealthCheck": false,
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "replicaCount": 1,
+ "excludeFromLatest": false,
+ "publishedDate": "2019-06-21T17:13:57.5972568+00:00",
+ "endOfLifeDate": "2019-07-01T07:00:00+00:00",
+ "storageAccountType": "Standard_LRS"
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplicationVersionWithReplicationStatus.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplicationVersionWithReplicationStatus.json
new file mode 100644
index 000000000000..e3d246d4bf3e
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryApplicationVersionWithReplicationStatus.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryApplicationName": "myGalleryApplicationName",
+ "galleryApplicationVersionName": "1.0.0",
+ "$expand": "ReplicationStatus"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "source": {
+ "fileName": "package.zip",
+ "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
+ },
+ "enableHealthCheck": false,
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "replicaCount": 1,
+ "excludeFromLatest": false,
+ "publishedDate": "2019-06-21T17:13:57.5972568+00:00",
+ "endOfLifeDate": "2019-07-01T07:00:00+00:00",
+ "storageAccountType": "Standard_LRS"
+ },
+ "replicationStatus": {
+ "aggregatedState": "Completed",
+ "summary": [
+ {
+ "region": "West US",
+ "state": "Completed",
+ "details": "",
+ "progress": 100
+ }
+ ]
+ },
+ "provisioningState": "Succeeded"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImage.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImage.json
new file mode 100644
index 000000000000..8e4305e0148c
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImage.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryImageName": "myGalleryImageName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "osType": "Windows",
+ "osState": "Generalized",
+ "hyperVGeneration": "V1",
+ "identifier": {
+ "publisher": "myPublisherName",
+ "offer": "myOfferName",
+ "sku": "mySkuName"
+ },
+ "provisioningState": "Succeeded"
+ },
+ "location": "West US",
+ "name": "myGalleryImageName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImageVersion.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImageVersion.json
new file mode 100644
index 000000000000..c65d0cc43058
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImageVersion.json
@@ -0,0 +1,69 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryImageName": "myGalleryImageName",
+ "galleryImageVersionName": "1.0.0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 0,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet"
+ },
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}"
+ },
+ "osDiskImage": {
+ "sizeInGB": 10,
+ "hostCaching": "ReadOnly"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "sizeInGB": 10,
+ "hostCaching": "None"
+ }
+ ]
+ },
+ "provisioningState": "Succeeded"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImageVersionWithReplicationStatus.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImageVersionWithReplicationStatus.json
new file mode 100644
index 000000000000..7462407b0222
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImageVersionWithReplicationStatus.json
@@ -0,0 +1,87 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryImageName": "myGalleryImageName",
+ "galleryImageVersionName": "1.0.0",
+ "$expand": "ReplicationStatus"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 0,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet"
+ },
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}"
+ },
+ "osDiskImage": {
+ "sizeInGB": 10,
+ "hostCaching": "ReadOnly"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "sizeInGB": 10,
+ "hostCaching": "None"
+ }
+ ]
+ },
+ "replicationStatus": {
+ "aggregatedState": "Completed",
+ "summary": [
+ {
+ "region": "West US",
+ "state": "Completed",
+ "details": "",
+ "progress": 100
+ },
+ {
+ "region": "East US",
+ "state": "Completed",
+ "details": "",
+ "progress": 100
+ }
+ ]
+ },
+ "provisioningState": "Succeeded"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImageVersionWithSnapshotsAsSource.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImageVersionWithSnapshotsAsSource.json
new file mode 100644
index 000000000000..a0184d882337
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImageVersionWithSnapshotsAsSource.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryImageName": "myGalleryImageName",
+ "galleryImageVersionName": "1.0.0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "osDiskImage": {
+ "source": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{snapshotName}",
+ "sizeInGB": 10,
+ "hostCaching": "ReadOnly"
+ },
+ "dataDiskImages": [
+ {
+ "source": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{diskSnapshotName}",
+ "lun": 1,
+ "sizeInGB": 10,
+ "hostCaching": "None"
+ }
+ ]
+ },
+ "provisioningState": "Succeeded"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImageVersionWithVhdAsSource.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImageVersionWithVhdAsSource.json
new file mode 100644
index 000000000000..d92d3c77540d
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryImageVersionWithVhdAsSource.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryImageName": "myGalleryImageName",
+ "galleryImageVersionName": "1.0.0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccount}",
+ "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd"
+ }
+ },
+ "provisioningState": "Succeeded"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryWithSelectPermissions.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryWithSelectPermissions.json
new file mode 100644
index 000000000000..b58ca89c0bc1
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetAGalleryWithSelectPermissions.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "$select": "Permissions"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "sharingProfile": {
+ "permissions": "Groups",
+ "groups": [
+ {
+ "type": "Subscriptions",
+ "ids": [
+ "34a4ab42-0d72-47d9-bd1a-aed207386dac",
+ "380fd389-260b-41aa-bad9-0a83108c370b"
+ ]
+ },
+ {
+ "type": "AADTenants",
+ "ids": [
+ "c24c76aa-8897-4027-9b03-8f7928b54ff6"
+ ]
+ }
+ ]
+ }
+ },
+ "location": "West US",
+ "name": "myGalleryName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetASharedGallery.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetASharedGallery.json
new file mode 100644
index 000000000000..9615b8456462
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetASharedGallery.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "location": "myLocation",
+ "api-version": "2020-09-30",
+ "galleryUniqueName": "galleryUniqueName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "myLocation",
+ "name": "myGalleryName",
+ "identifier": {
+ "uniqueId": "/SharedGalleries/galleryUniqueName"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetASharedGalleryImage.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetASharedGalleryImage.json
new file mode 100644
index 000000000000..ab78ae46c4f0
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetASharedGalleryImage.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "location": "myLocation",
+ "api-version": "2020-09-30",
+ "galleryUniqueName": "galleryUniqueName",
+ "galleryImageName": "myGalleryImageName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "osType": "Windows",
+ "osState": "Generalized",
+ "hyperVGeneration": "V1",
+ "identifier": {
+ "publisher": "myPublisherName",
+ "offer": "myOfferName",
+ "sku": "mySkuName"
+ }
+ },
+ "location": "myLocation",
+ "name": "myGalleryImageName",
+ "identifier": {
+ "uniqueId": "/SharedGalleries/galleryUniqueName/Images/myGalleryImageName"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetASharedGalleryImageVersion.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetASharedGalleryImageVersion.json
new file mode 100644
index 000000000000..7e20e0f45d65
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/GetASharedGalleryImageVersion.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "location": "myLocation",
+ "api-version": "2020-09-30",
+ "galleryUniqueName": "galleryUniqueName",
+ "galleryImageName": "myGalleryImageName",
+ "galleryImageVersionName": "myGalleryImageVersionName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "publishedDate": "2018-03-20T09:12:28Z",
+ "endOfLifeDate": "2022-03-20T09:12:28Z"
+ },
+ "location": "myLocation",
+ "name": "myGalleryImageVersionName",
+ "identifier": {
+ "uniqueId": "/SharedGalleries/galleryUniqueName/Images/myGalleryImageName/Versions/myGalleryImageVersionName"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleriesInAResourceGroup.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleriesInAResourceGroup.json
new file mode 100644
index 000000000000..756c512dd1fe
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleriesInAResourceGroup.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "description": "This is the gallery description.",
+ "identifier": {
+ "uniqueName": "{subscription-id}-MYGALLERYNAME"
+ },
+ "provisioningState": "Succeeded"
+ },
+ "location": "West US",
+ "name": "myGalleryName",
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName"
+ }
+ ],
+ "nextLink": "http://svchost:99/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries?$skiptoken={token}/Subscriptions/{subscriptionId}/ResourceGroups/myResourceGroup/galleries/myGalleryName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleriesInASubscription.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleriesInASubscription.json
new file mode 100644
index 000000000000..280325678dd3
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleriesInASubscription.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "api-version": "2020-09-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "description": "This is the gallery description.",
+ "identifier": {
+ "uniqueName": "{subscription-id}-MYGALLERYNAME"
+ },
+ "provisioningState": "Succeeded"
+ },
+ "location": "West US",
+ "name": "myGalleryName",
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName"
+ }
+ ],
+ "nextLink": "http://svchost:99/subscriptions/{subscriptionId}/providers/Microsoft.Compute/galleries?$skiptoken={token}/Subscriptions/{subscriptionId}/ResourceGroups/myResourceGroup/galleries/myGalleryName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryApplicationVersionsInAGalleryApplication.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryApplicationVersionsInAGalleryApplication.json
new file mode 100644
index 000000000000..0899c17bfafe
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryApplicationVersionsInAGalleryApplication.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryApplicationName": "myGalleryApplicationName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "location": "West US",
+ "name": "1.0.0",
+ "type": "Microsoft.Compute/galleries/applications/versions",
+ "id": "/subscriptions/01523d7c-60da-455e-adef-521b547922c4/resourceGroups/galleryPsTestRg98/providers/Microsoft.Compute/galleries/galleryPsTestGallery6165/applications/galleryPsTestGalleryApplication7825/versions/1.0.0",
+ "properties": {
+ "publishingProfile": {
+ "source": {
+ "fileName": "package.zip",
+ "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
+ },
+ "enableHealthCheck": false,
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "replicaCount": 1,
+ "excludeFromLatest": false,
+ "publishedDate": "2019-06-21T17:13:57.5972568+00:00",
+ "endOfLifeDate": "2019-07-01T07:00:00+00:00",
+ "storageAccountType": "Standard_LRS"
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "nextLink": "http://svchost:99/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications/myGalleryApplicationName/versions?$skiptoken={token}/Subscriptions/{subscriptionId}/ResourceGroups/myResourceGroup/galleries/myGalleryName/applications/myGalleryApplicationName/versions/myGalleryApplicationVersionName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryApplicationsInAGallery.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryApplicationsInAGallery.json
new file mode 100644
index 000000000000..d21b58c493ff
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryApplicationsInAGallery.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "description": "This is the gallery application description.",
+ "eula": "This is the gallery application EULA.",
+ "privacyStatementUri": "myPrivacyStatementUri}",
+ "releaseNoteUri": "myReleaseNoteUri",
+ "supportedOSType": "Windows"
+ },
+ "location": "West US",
+ "name": "myGalleryApplicationName"
+ }
+ ],
+ "nextLink": "http://svchost:99/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications?$skiptoken={token}/Subscriptions/{subscriptionId}/ResourceGroups/myResourceGroup/galleries/myGalleryName/applications/myGalleryApplicationName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryImageVersionsInAGalleryImage.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryImageVersionsInAGalleryImage.json
new file mode 100644
index 000000000000..499ad4e6366f
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryImageVersionsInAGalleryImage.json
@@ -0,0 +1,73 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryImageName": "myGalleryImageName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 0,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet"
+ },
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}"
+ },
+ "osDiskImage": {
+ "sizeInGB": 10,
+ "hostCaching": "ReadOnly"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "sizeInGB": 10,
+ "hostCaching": "None"
+ }
+ ]
+ },
+ "provisioningState": "Succeeded"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ ],
+ "nextLink": "http://svchost:99/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/images/myGalleryImageName/versions?$skiptoken={token}/Subscriptions/{subscriptionId}/ResourceGroups/myResourceGroup/galleries/myGalleryName/images/myGalleryImageName/versions/myGalleryImageVersionName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryImagesInAGallery.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryImagesInAGallery.json
new file mode 100644
index 000000000000..570fc0e39b6f
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListGalleryImagesInAGallery.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "osType": "Windows",
+ "osState": "Generalized",
+ "hyperVGeneration": "V1",
+ "identifier": {
+ "publisher": "myPublisherName",
+ "offer": "myOfferName",
+ "sku": "mySkuName"
+ },
+ "provisioningState": "Succeeded"
+ },
+ "location": "West US",
+ "name": "myGalleryImageName"
+ }
+ ],
+ "nextLink": "http://svchost:99/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/images?$skiptoken={token}/Subscriptions/{subscriptionId}/ResourceGroups/myResourceGroup/galleries/myGalleryName/images/myGalleryImageName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListSharedGalleries.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListSharedGalleries.json
new file mode 100644
index 000000000000..baebdfed7d93
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListSharedGalleries.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "location": "myLocation",
+ "api-version": "2020-09-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "location": "myLocation",
+ "name": "galleryUniqueName",
+ "identifier": {
+ "uniqueId": "/SharedGalleries/galleryUniqueName"
+ }
+ }
+ ],
+ "nextLink": "http://svchost:99/subscriptions/{subscriptionId}/providers/Microsoft.Compute/sharedGalleries?$skiptoken={token}/Subscriptions/{subscriptionId}/galleries/galleryUniqueName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListSharedGalleryImageVersions.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListSharedGalleryImageVersions.json
new file mode 100644
index 000000000000..95baa0b1144f
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListSharedGalleryImageVersions.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "location": "myLocation",
+ "api-version": "2020-09-30",
+ "galleryUniqueName": "galleryUniqueName",
+ "galleryImageName": "myGalleryImageName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "publishedDate": "2018-03-20T09:12:28Z",
+ "endOfLifeDate": "2022-03-20T09:12:28Z"
+ },
+ "location": "myLocation",
+ "name": "myGalleryImageVersionName",
+ "identifier": {
+ "uniqueId": "/SharedGalleries/galleryUniqueName/Images/myGalleryImageName/Versions/myGalleryImageVersionName"
+ }
+ }
+ ],
+ "nextLink": "http://svchost:99/subscriptions/{subscription-Id}/providers/Microsoft.Compute/sharedGalleries/galleryUniqueName/images/myGalleryImageName/versions?$skiptoken={token}/Subscriptions/{subscription-Id}/galleries/galleryUniqueName/images/myGalleryImageName/versions/myGalleryImageVersionName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListSharedGalleryImages.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListSharedGalleryImages.json
new file mode 100644
index 000000000000..47a2b4ac926a
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ListSharedGalleryImages.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "location": "myLocation",
+ "api-version": "2020-09-30",
+ "galleryUniqueName": "galleryUniqueName"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "osType": "Windows",
+ "osState": "Generalized",
+ "hyperVGeneration": "V1",
+ "identifier": {
+ "publisher": "myPublisherName",
+ "offer": "myOfferName",
+ "sku": "mySkuName"
+ }
+ },
+ "location": "myLocation",
+ "name": "myGalleryImageName",
+ "identifier": {
+ "uniqueId": "/SharedGalleries/galleryUniqueName/Images/myGalleryImageName"
+ }
+ }
+ ],
+ "nextLink": "http://svchost:99/subscriptions/{subscription-Id}/providers/Microsoft.Compute/sharedGalleries/galleryUniqueName/images?$skiptoken={token}/Subscriptions/{subscription-Id}/galleries/galleryUniqueName/images/myGalleryImageName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ResetSharingProfileInAGallery.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ResetSharingProfileInAGallery.json
new file mode 100644
index 000000000000..98c4a29b2a29
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/ResetSharingProfileInAGallery.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "sharingUpdate": {
+ "operationType": "Reset"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "operationType": "Reset"
+ }
+ },
+ "202": {
+ "body": {
+ "operationType": "Reset"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGallery.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGallery.json
new file mode 100644
index 000000000000..d3618117f15c
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGallery.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "gallery": {
+ "properties": {
+ "description": "This is the gallery description."
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "description": "This is the gallery description.",
+ "identifier": {
+ "uniqueName": "{subscription-id}-MYGALLERYNAME"
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myGalleryName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryApplication.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryApplication.json
new file mode 100644
index 000000000000..0bb889c29a26
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryApplication.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryApplicationName": "myGalleryApplicationName",
+ "galleryApplication": {
+ "properties": {
+ "description": "This is the gallery application description.",
+ "eula": "This is the gallery application EULA.",
+ "privacyStatementUri": "myPrivacyStatementUri}",
+ "releaseNoteUri": "myReleaseNoteUri",
+ "supportedOSType": "Windows"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "description": "This is the gallery application description.",
+ "eula": "This is the gallery application EULA.",
+ "privacyStatementUri": "myPrivacyStatementUri}",
+ "releaseNoteUri": "myReleaseNoteUri",
+ "supportedOSType": "Windows"
+ },
+ "location": "West US",
+ "name": "myGalleryApplicationName",
+ "type": "Microsoft.Compute/galleries",
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications/myGalleryApplicationName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryApplicationVersion.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryApplicationVersion.json
new file mode 100644
index 000000000000..8d473b578024
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryApplicationVersion.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryApplicationName": "myGalleryApplicationName",
+ "galleryApplicationVersionName": "1.0.0",
+ "galleryApplicationVersion": {
+ "properties": {
+ "publishingProfile": {
+ "source": {
+ "fileName": "package.zip",
+ "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
+ },
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "replicaCount": 1,
+ "endOfLifeDate": "2019-07-01T07:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "location": "West US",
+ "name": "1.0.0",
+ "type": "Microsoft.Compute/galleries/applications/versions",
+ "id": "/subscriptions/01523d7c-60da-455e-adef-521b547922c4/resourceGroups/galleryPsTestRg98/providers/Microsoft.Compute/galleries/galleryPsTestGallery6165/applications/galleryPsTestGalleryApplication7825/versions/1.0.0",
+ "properties": {
+ "publishingProfile": {
+ "source": {
+ "fileName": "package.zip",
+ "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}"
+ },
+ "enableHealthCheck": false,
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS"
+ }
+ ],
+ "replicaCount": 1,
+ "excludeFromLatest": false,
+ "publishedDate": "2019-06-21T17:13:57.5972568+00:00",
+ "endOfLifeDate": "2019-07-01T07:00:00+00:00",
+ "storageAccountType": "Standard_LRS"
+ },
+ "provisioningState": "Updating"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryImage.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryImage.json
new file mode 100644
index 000000000000..ebfd473f7e95
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryImage.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryImageName": "myGalleryImageName",
+ "galleryImage": {
+ "properties": {
+ "osType": "Windows",
+ "osState": "Generalized",
+ "hyperVGeneration": "V1",
+ "identifier": {
+ "publisher": "myPublisherName",
+ "offer": "myOfferName",
+ "sku": "mySkuName"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "osType": "Windows",
+ "osState": "Generalized",
+ "hyperVGeneration": "V1",
+ "identifier": {
+ "publisher": "myPublisherName",
+ "offer": "myOfferName",
+ "sku": "mySkuName"
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myGalleryImageName"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryImageVersion.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryImageVersion.json
new file mode 100644
index 000000000000..5cf4547abad1
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/examples/UpdateASimpleGalleryImageVersion.json
@@ -0,0 +1,87 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-30",
+ "galleryName": "myGalleryName",
+ "galleryImageName": "myGalleryImageName",
+ "galleryImageVersionName": "1.0.0",
+ "galleryImageVersion": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_ZRS"
+ }
+ ]
+ },
+ "storageProfile": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "publishingProfile": {
+ "targetRegions": [
+ {
+ "name": "West US",
+ "regionalReplicaCount": 1,
+ "storageAccountType": "Standard_LRS",
+ "encryption": {
+ "osDiskImage": {
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet"
+ }
+ ]
+ }
+ },
+ {
+ "name": "East US",
+ "regionalReplicaCount": 2,
+ "storageAccountType": "Standard_ZRS"
+ }
+ ],
+ "replicaCount": 1,
+ "publishedDate": "2018-01-01T00:00:00Z",
+ "storageAccountType": "Standard_LRS"
+ },
+ "storageProfile": {
+ "source": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}"
+ },
+ "osDiskImage": {
+ "sizeInGB": 10,
+ "hostCaching": "ReadOnly"
+ },
+ "dataDiskImages": [
+ {
+ "lun": 1,
+ "sizeInGB": 10,
+ "hostCaching": "None"
+ }
+ ]
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "1.0.0"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/gallery.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/gallery.json
new file mode 100644
index 000000000000..b5e64bcf9dde
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/gallery.json
@@ -0,0 +1,2846 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "SharedImageGalleryServiceClient",
+ "description": "Shared Image Gallery Service Client.",
+ "version": "2020-09-30"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}": {
+ "put": {
+ "tags": [
+ "Galleries"
+ ],
+ "operationId": "Galleries_CreateOrUpdate",
+ "description": "Create or update a Shared Image Gallery.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery. The allowed characters are alphabets and numbers with dots and periods allowed in the middle. The maximum length is 80 characters."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "gallery",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Gallery"
+ },
+ "description": "Parameters supplied to the create or update Shared Image Gallery operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Gallery"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/Gallery"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/Gallery"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create or update a simple gallery.": {
+ "$ref": "./examples/CreateOrUpdateASimpleGallery.json"
+ },
+ "Create or update a simple gallery with sharing profile.": {
+ "$ref": "./examples/CreateOrUpdateASimpleGalleryWithSharingProfile.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Galleries"
+ ],
+ "operationId": "Galleries_Update",
+ "description": "Update a Shared Image Gallery.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery. The allowed characters are alphabets and numbers with dots and periods allowed in the middle. The maximum length is 80 characters."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "gallery",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GalleryUpdate"
+ },
+ "description": "Parameters supplied to the update Shared Image Gallery operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Gallery"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update a simple gallery.": {
+ "$ref": "./examples/UpdateASimpleGallery.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Galleries"
+ ],
+ "operationId": "Galleries_Get",
+ "description": "Retrieves information about a Shared Image Gallery.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "$select",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The select expression to apply on the operation.",
+ "enum": [
+ "Permissions"
+ ],
+ "x-ms-enum": {
+ "name": "Permissions",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Gallery"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a gallery.": {
+ "$ref": "./examples/GetAGallery.json"
+ },
+ "Get a gallery with select permissions.": {
+ "$ref": "./examples/GetAGalleryWithSelectPermissions.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Galleries"
+ ],
+ "operationId": "Galleries_Delete",
+ "description": "Delete a Shared Image Gallery.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery to be deleted."
+ },
+ {
+ "$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,
+ "x-ms-examples": {
+ "Delete a gallery.": {
+ "$ref": "./examples/DeleteAGallery.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{galleryImageName}": {
+ "put": {
+ "tags": [
+ "GalleryImages"
+ ],
+ "operationId": "GalleryImages_CreateOrUpdate",
+ "description": "Create or update a gallery image definition.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery in which the Image Definition is to be created."
+ },
+ {
+ "name": "galleryImageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery image definition to be created or updated. The allowed characters are alphabets and numbers with dots, dashes, and periods allowed in the middle. The maximum length is 80 characters."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "galleryImage",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GalleryImage"
+ },
+ "description": "Parameters supplied to the create or update gallery image operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryImage"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/GalleryImage"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/GalleryImage"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create or update a simple gallery image.": {
+ "$ref": "./examples/CreateOrUpdateASimpleGalleryImage.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "GalleryImages"
+ ],
+ "operationId": "GalleryImages_Update",
+ "description": "Update a gallery image definition.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery in which the Image Definition is to be updated."
+ },
+ {
+ "name": "galleryImageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery image definition to be updated. The allowed characters are alphabets and numbers with dots, dashes, and periods allowed in the middle. The maximum length is 80 characters."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "galleryImage",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GalleryImageUpdate"
+ },
+ "description": "Parameters supplied to the update gallery image operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryImage"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update a simple gallery image.": {
+ "$ref": "./examples/UpdateASimpleGalleryImage.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "GalleryImages"
+ ],
+ "operationId": "GalleryImages_Get",
+ "description": "Retrieves information about a gallery image definition.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery from which the Image Definitions are to be retrieved."
+ },
+ {
+ "name": "galleryImageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery image definition to be retrieved."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryImage"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a gallery image.": {
+ "$ref": "./examples/GetAGalleryImage.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "GalleryImages"
+ ],
+ "operationId": "GalleryImages_Delete",
+ "description": "Delete a gallery image.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery in which the Image Definition is to be deleted."
+ },
+ {
+ "name": "galleryImageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery image definition to be deleted."
+ },
+ {
+ "$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,
+ "x-ms-examples": {
+ "Delete a gallery image.": {
+ "$ref": "./examples/DeleteAGalleryImage.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{galleryImageName}/versions/{galleryImageVersionName}": {
+ "put": {
+ "tags": [
+ "GalleryImageVersions"
+ ],
+ "operationId": "GalleryImageVersions_CreateOrUpdate",
+ "description": "Create or update a gallery image version.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery in which the Image Definition resides."
+ },
+ {
+ "name": "galleryImageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery image definition in which the Image Version is to be created."
+ },
+ {
+ "name": "galleryImageVersionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery image version to be created. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: .."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "galleryImageVersion",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GalleryImageVersion"
+ },
+ "description": "Parameters supplied to the create or update gallery image version operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryImageVersion"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/GalleryImageVersion"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/GalleryImageVersion"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create or update a simple Gallery Image Version (Managed Image as source).": {
+ "$ref": "./examples/CreateOrUpdateASimpleGalleryImageVersion.json"
+ },
+ "Create or update a simple Gallery Image Version using snapshots as a source.": {
+ "$ref": "./examples/CreateOrUpdateASimpleGalleryImageVersionWithSnapshotsAsSource.json"
+ },
+ "Create or update a simple Gallery Image Version using vhd as a source.": {
+ "$ref": "./examples/CreateOrUpdateASimpleGalleryImageVersionWithVHD.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "GalleryImageVersions"
+ ],
+ "operationId": "GalleryImageVersions_Update",
+ "description": "Update a gallery image version.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery in which the Image Definition resides."
+ },
+ {
+ "name": "galleryImageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery image definition in which the Image Version is to be updated."
+ },
+ {
+ "name": "galleryImageVersionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery image version to be updated. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: .."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "galleryImageVersion",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GalleryImageVersionUpdate"
+ },
+ "description": "Parameters supplied to the update gallery image version operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryImageVersion"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update a simple Gallery Image Version (Managed Image as source).": {
+ "$ref": "./examples/UpdateASimpleGalleryImageVersion.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "GalleryImageVersions"
+ ],
+ "operationId": "GalleryImageVersions_Get",
+ "description": "Retrieves information about a gallery image version.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery in which the Image Definition resides."
+ },
+ {
+ "name": "galleryImageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery image definition in which the Image Version resides."
+ },
+ {
+ "name": "galleryImageVersionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery image version to be retrieved."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation.",
+ "enum": [
+ "ReplicationStatus"
+ ],
+ "x-ms-enum": {
+ "name": "ReplicationStatusTypes",
+ "modelAsString": true
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryImageVersion"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a gallery image version.": {
+ "$ref": "./examples/GetAGalleryImageVersion.json"
+ },
+ "Get a gallery image version with replication status.": {
+ "$ref": "./examples/GetAGalleryImageVersionWithReplicationStatus.json"
+ },
+ "Get a gallery image version with snapshots as a source.": {
+ "$ref": "./examples/GetAGalleryImageVersionWithSnapshotsAsSource.json"
+ },
+ "Get a gallery image version with vhd as a source.": {
+ "$ref": "./examples/GetAGalleryImageVersionWithVhdAsSource.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "GalleryImageVersions"
+ ],
+ "operationId": "GalleryImageVersions_Delete",
+ "description": "Delete a gallery image version.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery in which the Image Definition resides."
+ },
+ {
+ "name": "galleryImageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery image definition in which the Image Version resides."
+ },
+ {
+ "name": "galleryImageVersionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery image version to be deleted."
+ },
+ {
+ "$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,
+ "x-ms-examples": {
+ "Delete a gallery image version.": {
+ "$ref": "./examples/DeleteAGalleryImageVersion.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}": {
+ "put": {
+ "tags": [
+ "GalleryApplications"
+ ],
+ "operationId": "GalleryApplications_CreateOrUpdate",
+ "description": "Create or update a gallery Application Definition.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Application Gallery in which the Application Definition is to be created."
+ },
+ {
+ "name": "galleryApplicationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery Application Definition to be created or updated. The allowed characters are alphabets and numbers with dots, dashes, and periods allowed in the middle. The maximum length is 80 characters."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "galleryApplication",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GalleryApplication"
+ },
+ "description": "Parameters supplied to the create or update gallery Application operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryApplication"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/GalleryApplication"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/GalleryApplication"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create or update a simple gallery Application.": {
+ "$ref": "./examples/CreateOrUpdateASimpleGalleryApplication.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "GalleryApplications"
+ ],
+ "operationId": "GalleryApplications_Update",
+ "description": "Update a gallery Application Definition.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Application Gallery in which the Application Definition is to be updated."
+ },
+ {
+ "name": "galleryApplicationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery Application Definition to be updated. The allowed characters are alphabets and numbers with dots, dashes, and periods allowed in the middle. The maximum length is 80 characters."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "galleryApplication",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GalleryApplicationUpdate"
+ },
+ "description": "Parameters supplied to the update gallery Application operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryApplication"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update a simple gallery Application.": {
+ "$ref": "./examples/UpdateASimpleGalleryApplication.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "GalleryApplications"
+ ],
+ "operationId": "GalleryApplications_Get",
+ "description": "Retrieves information about a gallery Application Definition.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Application Gallery from which the Application Definitions are to be retrieved."
+ },
+ {
+ "name": "galleryApplicationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery Application Definition to be retrieved."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryApplication"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a gallery Application.": {
+ "$ref": "./examples/GetAGalleryApplication.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "GalleryApplications"
+ ],
+ "operationId": "GalleryApplications_Delete",
+ "description": "Delete a gallery Application.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Application Gallery in which the Application Definition is to be deleted."
+ },
+ {
+ "name": "galleryApplicationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery Application Definition to be deleted."
+ },
+ {
+ "$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,
+ "x-ms-examples": {
+ "Delete a gallery Application.": {
+ "$ref": "./examples/DeleteAGalleryApplication.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}/versions/{galleryApplicationVersionName}": {
+ "put": {
+ "tags": [
+ "GalleryApplicationVersions"
+ ],
+ "operationId": "GalleryApplicationVersions_CreateOrUpdate",
+ "description": "Create or update a gallery Application Version.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Application Gallery in which the Application Definition resides."
+ },
+ {
+ "name": "galleryApplicationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery Application Definition in which the Application Version is to be created."
+ },
+ {
+ "name": "galleryApplicationVersionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery Application Version to be created. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: .."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "galleryApplicationVersion",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GalleryApplicationVersion"
+ },
+ "description": "Parameters supplied to the create or update gallery Application Version operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryApplicationVersion"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/GalleryApplicationVersion"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/GalleryApplicationVersion"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create or update a simple gallery Application Version.": {
+ "$ref": "./examples/CreateOrUpdateASimpleGalleryApplicationVersion.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "GalleryApplicationVersions"
+ ],
+ "operationId": "GalleryApplicationVersions_Update",
+ "description": "Update a gallery Application Version.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Application Gallery in which the Application Definition resides."
+ },
+ {
+ "name": "galleryApplicationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery Application Definition in which the Application Version is to be updated."
+ },
+ {
+ "name": "galleryApplicationVersionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery Application Version to be updated. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: .."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "galleryApplicationVersion",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GalleryApplicationVersionUpdate"
+ },
+ "description": "Parameters supplied to the update gallery Application Version operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryApplicationVersion"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update a simple gallery Application Version.": {
+ "$ref": "./examples/UpdateASimpleGalleryApplicationVersion.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "GalleryApplicationVersions"
+ ],
+ "operationId": "GalleryApplicationVersions_Get",
+ "description": "Retrieves information about a gallery Application Version.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Application Gallery in which the Application Definition resides."
+ },
+ {
+ "name": "galleryApplicationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery Application Definition in which the Application Version resides."
+ },
+ {
+ "name": "galleryApplicationVersionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery Application Version to be retrieved."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation.",
+ "enum": [
+ "ReplicationStatus"
+ ],
+ "x-ms-enum": {
+ "name": "ReplicationStatusTypes",
+ "modelAsString": true
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryApplicationVersion"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a gallery Application Version.": {
+ "$ref": "./examples/GetAGalleryApplicationVersion.json"
+ },
+ "Get a gallery Application Version with replication status.": {
+ "$ref": "./examples/GetAGalleryApplicationVersionWithReplicationStatus.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "GalleryApplicationVersions"
+ ],
+ "operationId": "GalleryApplicationVersions_Delete",
+ "description": "Delete a gallery Application Version.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Application Gallery in which the Application Definition resides."
+ },
+ {
+ "name": "galleryApplicationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery Application Definition in which the Application Version resides."
+ },
+ {
+ "name": "galleryApplicationVersionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery Application Version to be deleted."
+ },
+ {
+ "$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,
+ "x-ms-examples": {
+ "Delete a gallery Application Version.": {
+ "$ref": "./examples/DeleteAGalleryApplicationVersion.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries": {
+ "get": {
+ "tags": [
+ "Galleries"
+ ],
+ "operationId": "Galleries_ListByResourceGroup",
+ "description": "List galleries under a resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List galleries in a resource group.": {
+ "$ref": "./examples/ListGalleriesInAResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/galleries": {
+ "get": {
+ "tags": [
+ "Galleries"
+ ],
+ "operationId": "Galleries_List",
+ "description": "List galleries under a subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List galleries in a subscription.": {
+ "$ref": "./examples/ListGalleriesInASubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images": {
+ "get": {
+ "tags": [
+ "GalleryImages"
+ ],
+ "operationId": "GalleryImages_ListByGallery",
+ "description": "List gallery image definitions in a gallery.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery from which Image Definitions are to be listed."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryImageList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List gallery images in a gallery.": {
+ "$ref": "./examples/ListGalleryImagesInAGallery.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{galleryImageName}/versions": {
+ "get": {
+ "tags": [
+ "GalleryImageVersions"
+ ],
+ "operationId": "GalleryImageVersions_ListByGalleryImage",
+ "description": "List gallery image versions in a gallery image definition.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery in which the Image Definition resides."
+ },
+ {
+ "name": "galleryImageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery Image Definition from which the Image Versions are to be listed."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryImageVersionList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List gallery image versions in a gallery image definition.": {
+ "$ref": "./examples/ListGalleryImageVersionsInAGalleryImage.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications": {
+ "get": {
+ "tags": [
+ "GalleryApplications"
+ ],
+ "operationId": "GalleryApplications_ListByGallery",
+ "description": "List gallery Application Definitions in a gallery.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Application Gallery from which Application Definitions are to be listed."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryApplicationList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List gallery Applications in a gallery.": {
+ "$ref": "./examples/ListGalleryApplicationsInAGallery.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}/versions": {
+ "get": {
+ "tags": [
+ "GalleryApplicationVersions"
+ ],
+ "operationId": "GalleryApplicationVersions_ListByGalleryApplication",
+ "description": "List gallery Application Versions in a gallery Application Definition.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Application Gallery in which the Application Definition resides."
+ },
+ {
+ "name": "galleryApplicationName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Application Gallery Application Definition from which the Application Versions are to be listed."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/GalleryApplicationVersionList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List gallery Application Versions in a gallery Application Definition.": {
+ "$ref": "./examples/ListGalleryApplicationVersionsInAGalleryApplication.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/share": {
+ "post": {
+ "tags": [
+ "GallerySharingUpdate"
+ ],
+ "operationId": "GallerySharingProfile_Update",
+ "description": "Update sharing profile of a gallery.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "name": "galleryName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Image Gallery."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "sharingUpdate",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SharingUpdate"
+ },
+ "description": "Parameters supplied to the update gallery sharing profile."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SharingUpdate"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/SharingUpdate"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Add sharing id to the sharing profile of a gallery.": {
+ "$ref": "./examples/AddToSharingProfileInAGallery.json"
+ },
+ "reset sharing profile of a gallery.": {
+ "$ref": "./examples/ResetSharingProfileInAGallery.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Gallery": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GalleryProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Specifies information about the Shared Image Gallery that you want to create or update."
+ },
+ "GalleryUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GalleryProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResourceDefinition"
+ }
+ ],
+ "description": "Specifies information about the Shared Image Gallery that you want to update."
+ },
+ "GalleryProperties": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "The description of this Shared Image Gallery resource. This property is updatable."
+ },
+ "identifier": {
+ "$ref": "#/definitions/GalleryIdentifier"
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "title": "The current state of the gallery.",
+ "description": "The provisioning state, which only appears in the response.",
+ "enum": [
+ "Creating",
+ "Updating",
+ "Failed",
+ "Succeeded",
+ "Deleting",
+ "Migrating"
+ ]
+ },
+ "sharingProfile": {
+ "$ref": "#/definitions/SharingProfile"
+ }
+ },
+ "description": "Describes the properties of a Shared Image Gallery."
+ },
+ "GalleryIdentifier": {
+ "properties": {
+ "uniqueName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The unique name of the Shared Image Gallery. This name is generated automatically by Azure."
+ }
+ },
+ "description": "Describes the gallery unique name."
+ },
+ "SharingProfile": {
+ "description": "Profile for gallery sharing to subscription or tenant",
+ "properties": {
+ "permissions": {
+ "type": "string",
+ "description": "This property allows you to specify the permission of sharing gallery.
Possible values are:
**Private**
**Groups**",
+ "enum": [
+ "Private",
+ "Groups"
+ ],
+ "x-ms-enum": {
+ "name": "GallerySharingPermissionTypes",
+ "modelAsString": true
+ }
+ },
+ "groups": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharingProfileGroup"
+ },
+ "description": "A list of sharing profile groups."
+ }
+ }
+ },
+ "SharingProfileGroup": {
+ "description": "Group of the gallery sharing profile",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "This property allows you to specify the type of sharing group.
Possible values are:
**Subscriptions**
**AADTenants**",
+ "enum": [
+ "Subscriptions",
+ "AADTenants"
+ ],
+ "x-ms-enum": {
+ "name": "SharingProfileGroupTypes",
+ "modelAsString": true
+ }
+ },
+ "ids": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of subscription/tenant ids the gallery is aimed to be shared to."
+ }
+ }
+ },
+ "GalleryApplication": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GalleryApplicationProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Specifies information about the gallery Application Definition that you want to create or update."
+ },
+ "GalleryApplicationUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GalleryApplicationProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResourceDefinition"
+ }
+ ],
+ "description": "Specifies information about the gallery Application Definition that you want to update."
+ },
+ "GalleryApplicationProperties": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "The description of this gallery Application Definition resource. This property is updatable."
+ },
+ "eula": {
+ "type": "string",
+ "description": "The Eula agreement for the gallery Application Definition."
+ },
+ "privacyStatementUri": {
+ "type": "string",
+ "description": "The privacy statement uri."
+ },
+ "releaseNoteUri": {
+ "type": "string",
+ "description": "The release note uri."
+ },
+ "endOfLifeDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The end of life date of the gallery Application Definition. This property can be used for decommissioning purposes. This property is updatable."
+ },
+ "supportedOSType": {
+ "type": "string",
+ "description": "This property allows you to specify the supported type of the OS that application is built for.
Possible values are:
**Windows**
**Linux**",
+ "enum": [
+ "Windows",
+ "Linux"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemTypes",
+ "modelAsString": false
+ }
+ }
+ },
+ "required": [
+ "supportedOSType"
+ ],
+ "description": "Describes the properties of a gallery Application Definition."
+ },
+ "GalleryApplicationVersion": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GalleryApplicationVersionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Specifies information about the gallery Application Version that you want to create or update."
+ },
+ "GalleryApplicationVersionUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GalleryApplicationVersionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResourceDefinition"
+ }
+ ],
+ "description": "Specifies information about the gallery Application Version that you want to update."
+ },
+ "GalleryApplicationVersionProperties": {
+ "properties": {
+ "publishingProfile": {
+ "$ref": "#/definitions/GalleryApplicationVersionPublishingProfile"
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "title": "The current state of the gallery Application Version.",
+ "description": "The provisioning state, which only appears in the response.",
+ "enum": [
+ "Creating",
+ "Updating",
+ "Failed",
+ "Succeeded",
+ "Deleting",
+ "Migrating"
+ ]
+ },
+ "replicationStatus": {
+ "readOnly": true,
+ "$ref": "#/definitions/ReplicationStatus"
+ }
+ },
+ "required": [
+ "publishingProfile"
+ ],
+ "description": "Describes the properties of a gallery image version."
+ },
+ "GalleryApplicationVersionPublishingProfile": {
+ "properties": {
+ "source": {
+ "$ref": "#/definitions/UserArtifactSource"
+ },
+ "contentType": {
+ "type": "string",
+ "description": "Optional. May be used to help process this file. The type of file contained in the source, e.g. zip, json, etc."
+ },
+ "enableHealthCheck": {
+ "type": "boolean",
+ "description": "Optional. Whether or not this application reports health."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/GalleryArtifactPublishingProfileBase"
+ }
+ ],
+ "required": [
+ "source"
+ ],
+ "description": "The publishing profile of a gallery image version."
+ },
+ "UserArtifactSource": {
+ "properties": {
+ "fileName": {
+ "type": "string",
+ "description": "Required. The fileName of the artifact."
+ },
+ "mediaLink": {
+ "type": "string",
+ "description": "Required. The mediaLink of the artifact, must be a readable storage blob."
+ }
+ },
+ "required": [
+ "fileName",
+ "mediaLink"
+ ],
+ "description": "The source image from which the Image Version is going to be created."
+ },
+ "GalleryImage": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GalleryImageProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Specifies information about the gallery image definition that you want to create or update."
+ },
+ "GalleryImageUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GalleryImageProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResourceDefinition"
+ }
+ ],
+ "description": "Specifies information about the gallery image definition that you want to update."
+ },
+ "GalleryImageProperties": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "The description of this gallery image definition resource. This property is updatable."
+ },
+ "eula": {
+ "type": "string",
+ "description": "The Eula agreement for the gallery image definition."
+ },
+ "privacyStatementUri": {
+ "type": "string",
+ "description": "The privacy statement uri."
+ },
+ "releaseNoteUri": {
+ "type": "string",
+ "description": "The release note uri."
+ },
+ "osType": {
+ "type": "string",
+ "description": "This property allows you to specify the type of the OS that is included in the disk when creating a VM from a managed image.
Possible values are:
**Windows**
**Linux**",
+ "enum": [
+ "Windows",
+ "Linux"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemTypes",
+ "modelAsString": false
+ }
+ },
+ "osState": {
+ "type": "string",
+ "description": "This property allows the user to specify whether the virtual machines created under this image are 'Generalized' or 'Specialized'.",
+ "enum": [
+ "Generalized",
+ "Specialized"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemStateTypes",
+ "modelAsString": false
+ }
+ },
+ "hyperVGeneration": {
+ "type": "string",
+ "description": "The hypervisor generation of the Virtual Machine. Applicable to OS disks only.",
+ "enum": [
+ "V1",
+ "V2"
+ ],
+ "x-ms-enum": {
+ "name": "HyperVGeneration",
+ "modelAsString": true
+ }
+ },
+ "features": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GalleryImageFeature"
+ },
+ "description": "A list of gallery image features."
+ },
+ "endOfLifeDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The end of life date of the gallery image definition. This property can be used for decommissioning purposes. This property is updatable."
+ },
+ "identifier": {
+ "$ref": "#/definitions/GalleryImageIdentifier"
+ },
+ "recommended": {
+ "$ref": "#/definitions/RecommendedMachineConfiguration"
+ },
+ "disallowed": {
+ "$ref": "#/definitions/Disallowed"
+ },
+ "purchasePlan": {
+ "$ref": "#/definitions/ImagePurchasePlan"
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "title": "The current state of the gallery image definition.",
+ "description": "The provisioning state, which only appears in the response.",
+ "enum": [
+ "Creating",
+ "Updating",
+ "Failed",
+ "Succeeded",
+ "Deleting",
+ "Migrating"
+ ]
+ }
+ },
+ "required": [
+ "osType",
+ "osState",
+ "identifier"
+ ],
+ "description": "Describes the properties of a gallery image definition."
+ },
+ "GalleryImageFeature": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the gallery image feature."
+ },
+ "value": {
+ "type": "string",
+ "description": "The value of the gallery image feature."
+ }
+ },
+ "description": "A feature for gallery image."
+ },
+ "GalleryImageIdentifier": {
+ "properties": {
+ "publisher": {
+ "type": "string",
+ "description": "The name of the gallery image definition publisher."
+ },
+ "offer": {
+ "type": "string",
+ "description": "The name of the gallery image definition offer."
+ },
+ "sku": {
+ "type": "string",
+ "description": "The name of the gallery image definition SKU."
+ }
+ },
+ "required": [
+ "publisher",
+ "offer",
+ "sku"
+ ],
+ "description": "This is the gallery image definition identifier."
+ },
+ "RecommendedMachineConfiguration": {
+ "properties": {
+ "vCPUs": {
+ "$ref": "#/definitions/ResourceRange"
+ },
+ "memory": {
+ "$ref": "#/definitions/ResourceRange"
+ }
+ },
+ "description": "The properties describe the recommended machine configuration for this Image Definition. These properties are updatable."
+ },
+ "ResourceRange": {
+ "properties": {
+ "min": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The minimum number of the resource."
+ },
+ "max": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of the resource."
+ }
+ },
+ "description": "Describes the resource range."
+ },
+ "Disallowed": {
+ "properties": {
+ "diskTypes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of disk types."
+ }
+ },
+ "description": "Describes the disallowed disk types."
+ },
+ "ImagePurchasePlan": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The plan ID."
+ },
+ "publisher": {
+ "type": "string",
+ "description": "The publisher ID."
+ },
+ "product": {
+ "type": "string",
+ "description": "The product ID."
+ }
+ },
+ "description": "Describes the gallery image definition purchase plan. This is used by marketplace images."
+ },
+ "GalleryImageVersion": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GalleryImageVersionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Specifies information about the gallery image version that you want to create or update."
+ },
+ "GalleryImageVersionUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/GalleryImageVersionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResourceDefinition"
+ }
+ ],
+ "description": "Specifies information about the gallery image version that you want to update."
+ },
+ "GalleryImageVersionProperties": {
+ "properties": {
+ "publishingProfile": {
+ "$ref": "#/definitions/GalleryImageVersionPublishingProfile"
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "title": "The current state of the gallery image version.",
+ "description": "The provisioning state, which only appears in the response.",
+ "enum": [
+ "Creating",
+ "Updating",
+ "Failed",
+ "Succeeded",
+ "Deleting",
+ "Migrating"
+ ]
+ },
+ "storageProfile": {
+ "$ref": "#/definitions/GalleryImageVersionStorageProfile"
+ },
+ "replicationStatus": {
+ "readOnly": true,
+ "$ref": "#/definitions/ReplicationStatus"
+ }
+ },
+ "required": [
+ "storageProfile"
+ ],
+ "description": "Describes the properties of a gallery image version."
+ },
+ "GalleryArtifactPublishingProfileBase": {
+ "properties": {
+ "targetRegions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TargetRegion"
+ },
+ "description": "The target regions where the Image Version is going to be replicated to. This property is updatable."
+ },
+ "replicaCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of replicas of the Image Version to be created per region. This property would take effect for a region when regionalReplicaCount is not specified. This property is updatable."
+ },
+ "excludeFromLatest": {
+ "type": "boolean",
+ "description": "If set to true, Virtual Machines deployed from the latest version of the Image Definition won't use this Image Version."
+ },
+ "publishedDate": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The timestamp for when the gallery image version is published."
+ },
+ "endOfLifeDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The end of life date of the gallery image version. This property can be used for decommissioning purposes. This property is updatable."
+ },
+ "storageAccountType": {
+ "type": "string",
+ "description": "Specifies the storage account type to be used to store the image. This property is not updatable.",
+ "enum": [
+ "Standard_LRS",
+ "Standard_ZRS",
+ "Premium_LRS"
+ ],
+ "x-ms-enum": {
+ "name": "StorageAccountType",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "Describes the basic gallery artifact publishing profile."
+ },
+ "TargetRegion": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the region."
+ },
+ "regionalReplicaCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of replicas of the Image Version to be created per region. This property is updatable."
+ },
+ "storageAccountType": {
+ "type": "string",
+ "description": "Specifies the storage account type to be used to store the image. This property is not updatable.",
+ "enum": [
+ "Standard_LRS",
+ "Standard_ZRS",
+ "Premium_LRS"
+ ],
+ "x-ms-enum": {
+ "name": "StorageAccountType",
+ "modelAsString": true
+ }
+ },
+ "encryption": {
+ "$ref": "#/definitions/EncryptionImages"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "description": "Describes the target region information."
+ },
+ "EncryptionImages": {
+ "properties": {
+ "osDiskImage": {
+ "$ref": "#/definitions/OSDiskImageEncryption"
+ },
+ "dataDiskImages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataDiskImageEncryption"
+ },
+ "description": "A list of encryption specifications for data disk images."
+ }
+ },
+ "description": "Optional. Allows users to provide customer managed keys for encrypting the OS and data disks in the gallery artifact."
+ },
+ "OSDiskImageEncryption": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/DiskImageEncryption"
+ }
+ ],
+ "description": "Contains encryption settings for an OS disk image."
+ },
+ "DataDiskImageEncryption": {
+ "properties": {
+ "lun": {
+ "type": "integer",
+ "format": "int32",
+ "description": "This property specifies the logical unit number of the data disk. This value is used to identify data disks within the Virtual Machine and therefore must be unique for each data disk attached to the Virtual Machine."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/DiskImageEncryption"
+ }
+ ],
+ "required": [
+ "lun"
+ ],
+ "description": "Contains encryption settings for a data disk image."
+ },
+ "DiskImageEncryption": {
+ "properties": {
+ "diskEncryptionSetId": {
+ "type": "string",
+ "description": "A relative URI containing the resource ID of the disk encryption set."
+ }
+ },
+ "description": "This is the disk image encryption base class."
+ },
+ "GalleryArtifactSource": {
+ "properties": {
+ "managedImage": {
+ "$ref": "#/definitions/ManagedArtifact"
+ }
+ },
+ "required": [
+ "managedImage"
+ ],
+ "description": "The source image from which the Image Version is going to be created."
+ },
+ "ManagedArtifact": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The managed artifact id."
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "description": "The managed artifact."
+ },
+ "GalleryImageVersionPublishingProfile": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/GalleryArtifactPublishingProfileBase"
+ }
+ ],
+ "description": "The publishing profile of a gallery image Version."
+ },
+ "GalleryImageVersionStorageProfile": {
+ "properties": {
+ "source": {
+ "$ref": "#/definitions/GalleryArtifactVersionSource"
+ },
+ "osDiskImage": {
+ "$ref": "#/definitions/GalleryOSDiskImage"
+ },
+ "dataDiskImages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GalleryDataDiskImage"
+ },
+ "description": "A list of data disk images."
+ }
+ },
+ "description": "This is the storage profile of a Gallery Image Version."
+ },
+ "GalleryArtifactVersionSource": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource."
+ },
+ "uri": {
+ "type": "string",
+ "description": "The uri of the gallery artifact version source. Currently used to specify vhd/blob source."
+ }
+ },
+ "description": "The gallery artifact version source."
+ },
+ "GalleryOSDiskImage": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/GalleryDiskImage"
+ }
+ ],
+ "description": "This is the OS disk image."
+ },
+ "GalleryDataDiskImage": {
+ "properties": {
+ "lun": {
+ "type": "integer",
+ "format": "int32",
+ "description": "This property specifies the logical unit number of the data disk. This value is used to identify data disks within the Virtual Machine and therefore must be unique for each data disk attached to the Virtual Machine."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/GalleryDiskImage"
+ }
+ ],
+ "required": [
+ "lun"
+ ],
+ "description": "This is the data disk image."
+ },
+ "GalleryDiskImage": {
+ "properties": {
+ "sizeInGB": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "This property indicates the size of the VHD to be created."
+ },
+ "hostCaching": {
+ "type": "string",
+ "description": "The host caching of the disk. Valid values are 'None', 'ReadOnly', and 'ReadWrite'",
+ "enum": [
+ "None",
+ "ReadOnly",
+ "ReadWrite"
+ ],
+ "x-ms-enum": {
+ "name": "HostCaching",
+ "modelAsString": false
+ }
+ },
+ "source": {
+ "$ref": "#/definitions/GalleryArtifactVersionSource"
+ }
+ },
+ "description": "This is the disk image base class."
+ },
+ "ReplicationStatus": {
+ "properties": {
+ "aggregatedState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "This is the aggregated replication status based on all the regional replication status flags.",
+ "enum": [
+ "Unknown",
+ "InProgress",
+ "Completed",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "AggregatedReplicationState",
+ "modelAsString": true
+ }
+ },
+ "summary": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RegionalReplicationStatus"
+ },
+ "description": "This is a summary of replication status for each region."
+ }
+ },
+ "description": "This is the replication status of the gallery image version."
+ },
+ "RegionalReplicationStatus": {
+ "properties": {
+ "region": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The region to which the gallery image version is being replicated to."
+ },
+ "state": {
+ "readOnly": true,
+ "type": "string",
+ "description": "This is the regional replication state.",
+ "enum": [
+ "Unknown",
+ "Replicating",
+ "Completed",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "ReplicationState",
+ "modelAsString": true
+ }
+ },
+ "details": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The details of the replication status."
+ },
+ "progress": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "It indicates progress of the replication job."
+ }
+ },
+ "description": "This is the regional replication status."
+ },
+ "GalleryList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Gallery"
+ },
+ "description": "A list of galleries."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of galleries. Call ListNext() with this to fetch the next page of galleries."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Galleries operation response."
+ },
+ "GalleryImageList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GalleryImage"
+ },
+ "description": "A list of Shared Image Gallery images."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of Image Definitions in the Shared Image Gallery. Call ListNext() with this to fetch the next page of gallery image definitions."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Gallery Images operation response."
+ },
+ "GalleryImageVersionList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GalleryImageVersion"
+ },
+ "description": "A list of gallery image versions."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of gallery image versions. Call ListNext() with this to fetch the next page of gallery image versions."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Gallery Image version operation response."
+ },
+ "GalleryApplicationList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GalleryApplication"
+ },
+ "description": "A list of Gallery Applications."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of Application Definitions in the Application Gallery. Call ListNext() with this to fetch the next page of gallery Application Definitions."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Gallery Applications operation response."
+ },
+ "GalleryApplicationVersionList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GalleryApplicationVersion"
+ },
+ "description": "A list of gallery Application Versions."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of gallery Application Versions. Call ListNext() with this to fetch the next page of gallery Application Versions."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Gallery Application version operation response."
+ },
+ "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."
+ },
+ "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."
+ },
+ "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
+ },
+ "UpdateResourceDefinition": {
+ "description": "The Update Resource model definition.",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource Id"
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource name"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "SharingUpdate": {
+ "description": "Specifies information about the gallery sharing profile update.",
+ "properties": {
+ "operationType": {
+ "type": "string",
+ "description": "This property allows you to specify the operation type of gallery sharing update.
Possible values are:
**Add**
**Remove**
**Reset**",
+ "enum": [
+ "Add",
+ "Remove",
+ "Reset"
+ ],
+ "x-ms-enum": {
+ "name": "SharingUpdateOperationTypes",
+ "modelAsString": true
+ }
+ },
+ "groups": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharingProfileGroup"
+ },
+ "description": "A list of sharing profile groups."
+ }
+ },
+ "required": [
+ "operationType"
+ ],
+ "x-ms-azure-resource": true
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method",
+ "description": "The name of the resource group."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/sharedGallery.json b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/sharedGallery.json
new file mode 100644
index 000000000000..c3d8a76c77d1
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/preview/2020-09-30/sharedGallery.json
@@ -0,0 +1,786 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "SharedGalleryServiceClient",
+ "description": "Shared Gallery Service Client.",
+ "version": "2020-09-30"
+ },
+ "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.Compute/locations/{location}/sharedGalleries": {
+ "get": {
+ "tags": [
+ "SharedGalleries"
+ ],
+ "operationId": "SharedGalleries_List",
+ "description": "List shared galleries by subscription id or tenant id.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/LocationNameParamter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "sharedTo",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The query parameter to decide what shared galleries to fetch when doing listing operations.",
+ "enum": [
+ "tenant"
+ ],
+ "x-ms-enum": {
+ "name": "SharedToValues",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SharedGalleryList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a gallery.": {
+ "$ref": "./examples/ListSharedGalleries.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/sharedGalleries/{galleryUniqueName}/images": {
+ "get": {
+ "tags": [
+ "SharedGalleryImages"
+ ],
+ "operationId": "SharedGalleryImages_List",
+ "description": "List shared gallery images by subscription id or tenant id.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/LocationNameParamter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "galleryUniqueName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The unique name of the Shared Gallery."
+ },
+ {
+ "name": "sharedTo",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The query parameter to decide what shared galleries to fetch when doing listing operations.",
+ "enum": [
+ "tenant"
+ ],
+ "x-ms-enum": {
+ "name": "SharedToValues",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SharedGalleryImageList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a gallery.": {
+ "$ref": "./examples/ListSharedGalleryImages.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/sharedGalleries/{galleryUniqueName}/images/{galleryImageName}/versions": {
+ "get": {
+ "tags": [
+ "SharedGalleryImageVersions"
+ ],
+ "operationId": "SharedGalleryImageVersions_List",
+ "description": "List shared gallery image versions by subscription id or tenant id.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/LocationNameParamter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "galleryUniqueName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The unique name of the Shared Gallery."
+ },
+ {
+ "name": "galleryImageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Gallery Image Definition from which the Image Versions are to be listed."
+ },
+ {
+ "name": "sharedTo",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The query parameter to decide what shared galleries to fetch when doing listing operations.",
+ "enum": [
+ "tenant"
+ ],
+ "x-ms-enum": {
+ "name": "SharedToValues",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SharedGalleryImageVersionList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a gallery.": {
+ "$ref": "./examples/ListSharedGalleryImageVersions.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/sharedGalleries/{galleryUniqueName}": {
+ "get": {
+ "tags": [
+ "SharedGalleries"
+ ],
+ "operationId": "SharedGalleries_Get",
+ "description": "Get a shared gallery by subscription id or tenant id.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/LocationNameParamter"
+ },
+ {
+ "name": "galleryUniqueName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The unique name of the Shared Gallery."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SharedGallery"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a gallery.": {
+ "$ref": "./examples/GetASharedGallery.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/sharedGalleries/{galleryUniqueName}/images/{galleryImageName}": {
+ "get": {
+ "tags": [
+ "SharedGalleryImages"
+ ],
+ "operationId": "SharedGalleryImages_Get",
+ "description": "Get a shared gallery image by subscription id or tenant id.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/LocationNameParamter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "galleryUniqueName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The unique name of the Shared Gallery."
+ },
+ {
+ "name": "galleryImageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Gallery Image Definition from which the Image Versions are to be listed."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SharedGalleryImage"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a gallery.": {
+ "$ref": "./examples/GetASharedGalleryImage.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/sharedGalleries/{galleryUniqueName}/images/{galleryImageName}/versions/{galleryImageVersionName}": {
+ "get": {
+ "tags": [
+ "SharedGalleryImageVersions"
+ ],
+ "operationId": "SharedGalleryImageVersions_Get",
+ "description": "Get a shared gallery image version by subscription id or tenant id.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/LocationNameParamter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "galleryUniqueName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The unique name of the Shared Gallery."
+ },
+ {
+ "name": "galleryImageName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Shared Gallery Image Definition from which the Image Versions are to be listed."
+ },
+ {
+ "name": "galleryImageVersionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the gallery image version to be created. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: .."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SharedGalleryImageVersion"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a gallery.": {
+ "$ref": "./examples/GetASharedGalleryImageVersion.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "PirResource": {
+ "description": "The Resource model definition.",
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource name"
+ },
+ "location": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource location"
+ }
+ }
+ },
+ "PirSharedGalleryResource": {
+ "properties": {
+ "identifier": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SharedGalleryIdentifier"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/PirResource"
+ }
+ ],
+ "description": "Base information about the shared gallery resource in pir."
+ },
+ "SharedGalleryIdentifier": {
+ "properties": {
+ "uniqueId": {
+ "type": "string",
+ "description": "The unique id of this shared gallery."
+ }
+ },
+ "description": "The identifier information of shared gallery."
+ },
+ "SharedGalleryList": {
+ "description": "The List Shared Galleries operation response.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharedGallery"
+ },
+ "description": "A list of shared galleries."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of shared galleries. Call ListNext() with this to fetch the next page of shared galleries."
+ }
+ },
+ "required": [
+ "value"
+ ]
+ },
+ "SharedGallery": {
+ "properties": {},
+ "allOf": [
+ {
+ "$ref": "#/definitions/PirSharedGalleryResource"
+ }
+ ],
+ "description": "Specifies information about the Shared Gallery that you want to create or update."
+ },
+ "SharedGalleryImageList": {
+ "description": "The List Shared Gallery Images operation response.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharedGalleryImage"
+ },
+ "description": "A list of shared gallery images."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of shared gallery images. Call ListNext() with this to fetch the next page of shared gallery images."
+ }
+ },
+ "required": [
+ "value"
+ ]
+ },
+ "SharedGalleryImage": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SharedGalleryImageProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/PirSharedGalleryResource"
+ }
+ ],
+ "description": "Specifies information about the gallery image definition that you want to create or update."
+ },
+ "SharedGalleryImageProperties": {
+ "properties": {
+ "osType": {
+ "type": "string",
+ "description": "This property allows you to specify the type of the OS that is included in the disk when creating a VM from a managed image.
Possible values are:
**Windows**
**Linux**",
+ "enum": [
+ "Windows",
+ "Linux"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemTypes",
+ "modelAsString": false
+ }
+ },
+ "osState": {
+ "type": "string",
+ "description": "This property allows the user to specify whether the virtual machines created under this image are 'Generalized' or 'Specialized'.",
+ "enum": [
+ "Generalized",
+ "Specialized"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemStateTypes",
+ "modelAsString": false
+ }
+ },
+ "endOfLifeDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The end of life date of the gallery image definition. This property can be used for decommissioning purposes. This property is updatable."
+ },
+ "identifier": {
+ "$ref": "#/definitions/GalleryImageIdentifier"
+ },
+ "recommended": {
+ "$ref": "#/definitions/RecommendedMachineConfiguration"
+ },
+ "disallowed": {
+ "$ref": "#/definitions/Disallowed"
+ },
+ "hyperVGeneration": {
+ "type": "string",
+ "description": "The hypervisor generation of the Virtual Machine. Applicable to OS disks only.",
+ "enum": [
+ "V1",
+ "V2"
+ ],
+ "x-ms-enum": {
+ "name": "HyperVGeneration",
+ "modelAsString": false
+ }
+ },
+ "features": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GalleryImageFeature"
+ },
+ "description": "A list of gallery image features."
+ },
+ "purchasePlan": {
+ "$ref": "#/definitions/ImagePurchasePlan"
+ }
+ },
+ "required": [
+ "osType",
+ "osState",
+ "identifier"
+ ],
+ "description": "Describes the properties of a gallery image definition."
+ },
+ "GalleryImageFeature": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the gallery image feature."
+ },
+ "value": {
+ "type": "string",
+ "description": "The value of the gallery image feature."
+ }
+ },
+ "description": "A feature for gallery image."
+ },
+ "GalleryImageIdentifier": {
+ "properties": {
+ "publisher": {
+ "type": "string",
+ "description": "The name of the gallery image definition publisher."
+ },
+ "offer": {
+ "type": "string",
+ "description": "The name of the gallery image definition offer."
+ },
+ "sku": {
+ "type": "string",
+ "description": "The name of the gallery image definition SKU."
+ }
+ },
+ "required": [
+ "publisher",
+ "offer",
+ "sku"
+ ],
+ "description": "This is the gallery image definition identifier."
+ },
+ "RecommendedMachineConfiguration": {
+ "properties": {
+ "vCPUs": {
+ "$ref": "#/definitions/ResourceRange"
+ },
+ "memory": {
+ "$ref": "#/definitions/ResourceRange"
+ }
+ },
+ "description": "The properties describe the recommended machine configuration for this Image Definition. These properties are updatable."
+ },
+ "ResourceRange": {
+ "properties": {
+ "min": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The minimum number of the resource."
+ },
+ "max": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of the resource."
+ }
+ },
+ "description": "Describes the resource range."
+ },
+ "Disallowed": {
+ "properties": {
+ "diskTypes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of disk types."
+ }
+ },
+ "description": "Describes the disallowed disk types."
+ },
+ "ImagePurchasePlan": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The plan ID."
+ },
+ "publisher": {
+ "type": "string",
+ "description": "The publisher ID."
+ },
+ "product": {
+ "type": "string",
+ "description": "The product ID."
+ }
+ },
+ "description": "Describes the gallery image definition purchase plan. This is used by marketplace images."
+ },
+ "SharedGalleryImageVersionList": {
+ "description": "The List Shared Gallery Image versions operation response.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharedGalleryImageVersion"
+ },
+ "description": "A list of shared gallery images versions."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of shared gallery image versions. Call ListNext() with this to fetch the next page of shared gallery image versions."
+ }
+ },
+ "required": [
+ "value"
+ ]
+ },
+ "SharedGalleryImageVersion": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SharedGalleryImageVersionProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/PirSharedGalleryResource"
+ }
+ ],
+ "description": "Specifies information about the gallery image version that you want to create or update."
+ },
+ "SharedGalleryImageVersionProperties": {
+ "properties": {
+ "publishedDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The published date of the gallery image version Definition. This property can be used for decommissioning purposes. This property is updatable."
+ },
+ "endOfLifeDate": {
+ "type": "string",
+ "format": "date-time",
+ "description": "The end of life date of the gallery image version Definition. This property can be used for decommissioning purposes. This property is updatable."
+ }
+ },
+ "description": "Describes the properties of a gallery image version."
+ },
+ "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."
+ },
+ "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."
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "LocationNameParamter": {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method",
+ "description": "Resource location."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2019-03-01/compute.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-03-01/compute.json
index d7d39de3f591..7c34a03be331 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2019-03-01/compute.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-03-01/compute.json
@@ -4380,7 +4380,7 @@
"VirtualMachineScaleSets"
],
"operationId": "VirtualMachineScaleSets_ConvertToSinglePlacementGroup",
- "description": "Converts SinglePlacementGroup property to false for a existing virtual machine scale set.",
+ "description": "Converts SinglePlacementGroup property to true for a existing virtual machine scale set.",
"parameters": [
{
"name": "resourceGroupName",
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2019-07-01/compute.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-07-01/compute.json
index f0df5077fd9c..cf7a3113540a 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2019-07-01/compute.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-07-01/compute.json
@@ -4535,7 +4535,7 @@
"VirtualMachineScaleSets"
],
"operationId": "VirtualMachineScaleSets_ConvertToSinglePlacementGroup",
- "description": "Converts SinglePlacementGroup property to false for a existing virtual machine scale set.",
+ "description": "Converts SinglePlacementGroup property to true for a existing virtual machine scale set.",
"parameters": [
{
"name": "resourceGroupName",
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2019-12-01/compute.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-12-01/compute.json
index 4e9f646b5399..338767d2b350 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2019-12-01/compute.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2019-12-01/compute.json
@@ -4877,7 +4877,7 @@
"VirtualMachineScaleSets"
],
"operationId": "VirtualMachineScaleSets_ConvertToSinglePlacementGroup",
- "description": "Converts SinglePlacementGroup property to false for a existing virtual machine scale set.",
+ "description": "Converts SinglePlacementGroup property to true for a existing virtual machine scale set.",
"parameters": [
{
"name": "resourceGroupName",
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json
index 0640865e3b27..7bd220c78877 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/compute.json
@@ -3542,7 +3542,7 @@
"VirtualMachines"
],
"operationId": "VirtualMachines_SimulateEviction",
- "description": "The operation to simulate the eviction of spot virtual machine. The eviction will occur within 30 minutes of calling the API",
+ "description": "The operation to simulate the eviction of spot virtual machine.",
"parameters": [
{
"name": "resourceGroupName",
@@ -6232,7 +6232,7 @@
"VirtualMachineScaleSetVMs"
],
"operationId": "VirtualMachineScaleSetVMs_SimulateEviction",
- "description": "The operation to simulate the eviction of spot virtual machine in a VM scale set. The eviction will occur within 30 minutes of calling the API",
+ "description": "The operation to simulate the eviction of spot virtual machine in a VM scale set.",
"parameters": [
{
"name": "resourceGroupName",
@@ -6739,7 +6739,6 @@
"type": "integer",
"format": "int32",
"minimum": 1,
- "maximum": 3,
"description": "Number of fault domains that the host group can span."
},
"hosts": {
@@ -6907,7 +6906,6 @@
"type": "integer",
"format": "int32",
"minimum": 0,
- "maximum": 2,
"description": "Fault domain of the dedicated host within a dedicated host group."
},
"autoReplaceOnFailure": {
@@ -8892,6 +8890,10 @@
"$ref": "#/definitions/InstanceViewStatus"
},
"description": "The resource status information."
+ },
+ "patchStatus": {
+ "$ref": "#/definitions/VirtualMachinePatchStatus",
+ "description": "The status of virtual machine patch operations."
}
},
"description": "The instance view of a virtual machine."
@@ -11549,7 +11551,7 @@
"properties": {
"patchMode": {
"type": "string",
- "description": "Specifies the mode of in-guest patching to IaaS virtual machine.
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 OS. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true ",
+ "description": "Specifies the mode of in-guest patching to IaaS virtual machine.
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",
@@ -11561,6 +11563,176 @@
}
}
}
+ },
+ "VirtualMachinePatchStatus": {
+ "properties": {
+ "availablePatchSummary": {
+ "$ref": "#/definitions/AvailablePatchSummary",
+ "description": "The available patch summary of the latest assessment operation for the virtual machine."
+ },
+ "lastPatchInstallationSummary": {
+ "$ref": "#/definitions/LastPatchInstallationSummary",
+ "description": "The installation summary of the latest installation operation for the virtual machine."
+ }
+ },
+ "description": "The status of virtual machine patch operations."
+ },
+ "AvailablePatchSummary": {
+ "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\", or \"CompletedWithWarnings.\"",
+ "enum": [
+ "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."
+ },
+ "startTime": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The UTC timestamp when the operation began."
+ },
+ "lastModifiedTime": {
+ "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": "Describes the properties of an virtual machine instance view for available patch summary."
+ },
+ "LastPatchInstallationSummary": {
+ "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\", or \"CompletedWithWarnings.\"",
+ "enum": [
+ "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."
+ },
+ "maintenanceWindowExceeded": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "Describes whether the operation ran out of time before it completed all its intended actions"
+ },
+ "rebootStatus": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The reboot status of the machine after the patch operation. It will be in \"NotNeeded\" status if reboot is not needed after the patch operation. \"Required\" will be the status once the patch is applied and machine is required to reboot. \"Started\" will be the reboot status when the machine has started to reboot. \"Failed\" will be the status if the machine is failed to reboot. \"Completed\" will be the status once the machine is rebooted successfully",
+ "enum": [
+ "NotNeeded",
+ "Required",
+ "Started",
+ "Failed",
+ "Completed"
+ ],
+ "x-ms-enum": {
+ "name": "RebootStatus",
+ "modelAsString": true
+ }
+ },
+ "notSelectedPatchCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The number of all available patches but not going to be installed because it didn't match a classification or inclusion list entry."
+ },
+ "excludedPatchCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The number of all available patches but excluded explicitly by a customer-specified exclusion list match."
+ },
+ "pendingPatchCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The number of all available patches expected to be installed over the course of the patch installation operation."
+ },
+ "installedPatchCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The count of patches that successfully installed."
+ },
+ "failedPatchCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "description": "The count of patches that failed installation."
+ },
+ "startTime": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The UTC timestamp when the operation began."
+ },
+ "lastModifiedTime": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The UTC timestamp when the operation began."
+ },
+ "startedBy": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The person or system account that started the operation"
+ },
+ "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 the last installed patch summary."
}
},
"parameters": {
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/GetVirtualMachineInstanceView.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/GetVirtualMachineInstanceView.json
index d01a86c4c1ab..bb17b5ad0c6c 100644
--- a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/GetVirtualMachineInstanceView.json
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-01/examples/GetVirtualMachineInstanceView.json
@@ -80,6 +80,31 @@
}
],
"hyperVGeneration": "V1",
+ "patchStatus": {
+ "availablePatchSummary": {
+ "status": "Succeeded",
+ "assessmentActivityId": "68f8b292-dfc2-4646-9781-33cc88631968",
+ "rebootPending": true,
+ "criticalAndSecurityPatchCount": 1,
+ "otherPatchCount": 2,
+ "startTime": "2020-04-24T21:02:04.2556154Z",
+ "error": null
+ },
+ "lastPatchInstallationSummary": {
+ "status": "Succeeded",
+ "maintenanceWindowExceeded": false,
+ "rebootStatus": "Completed",
+ "notSelectedPatchCount": 1,
+ "excludedPatchCount": 1,
+ "pendingPatchCount": 1,
+ "installedPatchCount": 1,
+ "failedPatchCount": 1,
+ "startTime": "2020-04-24T21:02:04.2556154Z",
+ "lastModifiedTime": "2020-04-24T21:02:04.2556154Z",
+ "startedBy": "platform",
+ "error": null
+ }
+ },
"statuses": [
{
"code": "ProvisioningState/succeeded",
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/disk.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/disk.json
new file mode 100644
index 000000000000..6c6f3836fb19
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/disk.json
@@ -0,0 +1,2754 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "DiskResourceProviderClient",
+ "description": "The Disk Resource Provider Client.",
+ "version": "2020-06-30"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/disks/{diskName}": {
+ "put": {
+ "tags": [
+ "Disks"
+ ],
+ "operationId": "Disks_CreateOrUpdate",
+ "description": "Creates or updates a disk.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "disk",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Disk"
+ },
+ "description": "Disk object supplied in the body of the Put disk operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Disk"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/Disk"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create an empty managed disk.": {
+ "$ref": "./examples/CreateAnEmptyManagedDisk.json"
+ },
+ "Create a managed disk from a platform image.": {
+ "$ref": "./examples/CreateAManagedDiskFromAPlatformImage.json"
+ },
+ "Create a managed disk from an existing managed disk in the same or different subscription.": {
+ "$ref": "./examples/CreateAManagedDiskFromAnExistingManagedDisk.json"
+ },
+ "Create a managed disk by importing an unmanaged blob from the same subscription.": {
+ "$ref": "./examples/CreateAManagedDiskByImportingAnUnmanagedBlobFromTheSameSubscription.json"
+ },
+ "Create a managed disk by importing an unmanaged blob from a different subscription.": {
+ "$ref": "./examples/CreateAManagedDiskByImportingAnUnmanagedBlobFromADifferentSubscription.json"
+ },
+ "Create a managed disk by copying a snapshot.": {
+ "$ref": "./examples/CreateAManagedDiskByCopyingASnapshot.json"
+ },
+ "Create a managed upload disk.": {
+ "$ref": "./examples/CreateAManagedUploadDisk.json"
+ },
+ "Create a managed disk and associate with disk access resource.": {
+ "$ref": "./examples/CreateAManagedDiskWithDiskAccess.json"
+ },
+ "Create a managed disk and associate with disk encryption set.": {
+ "$ref": "./examples/CreateAManagedDiskWithDiskEncryptionSet.json"
+ },
+ "Create an ultra managed disk with logicalSectorSize 512E": {
+ "$ref": "./examples/CreateAManagedDiskWithLogicalSectorSize.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "Disks"
+ ],
+ "operationId": "Disks_Update",
+ "description": "Updates (patches) a disk.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "disk",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DiskUpdate"
+ },
+ "description": "Disk object supplied in the body of the Patch disk operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Disk"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/Disk"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update managed disk to remove disk access resource association.": {
+ "$ref": "./examples/UpdateAManagedDiskToRemoveDiskAccess.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Disks"
+ ],
+ "operationId": "Disks_Get",
+ "description": "Gets information about a disk.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Disk"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get information about a managed disk.": {
+ "$ref": "./examples/GetInformationAboutAManagedDisk.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Disks"
+ ],
+ "operationId": "Disks_Delete",
+ "description": "Deletes a disk.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "If the disk is deleted, this is an expected error code."
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/disks": {
+ "get": {
+ "tags": [
+ "Disks"
+ ],
+ "operationId": "Disks_ListByResourceGroup",
+ "description": "Lists all the disks under a resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DiskList"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all managed disks in a resource group.": {
+ "$ref": "./examples/ListManagedDisksInAResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/disks": {
+ "get": {
+ "tags": [
+ "Disks"
+ ],
+ "operationId": "Disks_List",
+ "description": "Lists all the disks under a subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DiskList"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all managed disks in a subscription.": {
+ "$ref": "./examples/ListManagedDisksInASubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/disks/{diskName}/beginGetAccess": {
+ "post": {
+ "tags": [
+ "Disks"
+ ],
+ "operationId": "Disks_GrantAccess",
+ "description": "Grants access to a disk.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "grantAccessData",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GrantAccessData"
+ },
+ "description": "Access data object supplied in the body of the get disk access operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AccessUri"
+ }
+ },
+ "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/disks/{diskName}/endGetAccess": {
+ "post": {
+ "tags": [
+ "Disks"
+ ],
+ "operationId": "Disks_RevokeAccess",
+ "description": "Revokes access to a disk.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "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/snapshots/{snapshotName}": {
+ "put": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_CreateOrUpdate",
+ "description": "Creates or updates a snapshot.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SnapshotNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "snapshot",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Snapshot"
+ },
+ "description": "Snapshot object supplied in the body of the Put disk operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Snapshot"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/Snapshot"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create a snapshot from an existing snapshot in the same or a different subscription.": {
+ "$ref": "./examples/CreateASnapshotFromAnExistingSnapshot.json"
+ },
+ "Create a snapshot by importing an unmanaged blob from the same subscription.": {
+ "$ref": "./examples/CreateASnapshotByImportingAnUnmanagedBlobFromTheSameSubscription.json"
+ },
+ "Create a snapshot by importing an unmanaged blob from a different subscription.": {
+ "$ref": "./examples/CreateASnapshotByImportingAnUnmanagedBlobFromADifferentSubscription.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_Update",
+ "description": "Updates (patches) a snapshot.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SnapshotNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "snapshot",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SnapshotUpdate"
+ },
+ "description": "Snapshot object supplied in the body of the Patch snapshot operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Snapshot"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/Snapshot"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_Get",
+ "description": "Gets information about a snapshot.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SnapshotNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Snapshot"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get information about a snapshot.": {
+ "$ref": "./examples/GetInformationAboutASnapshot.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_Delete",
+ "description": "Deletes a snapshot.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SnapshotNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "If the snapshot is deleted, this is an expected error code."
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/snapshots": {
+ "get": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_ListByResourceGroup",
+ "description": "Lists snapshots under a resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SnapshotList"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all snapshots in a resource group.": {
+ "$ref": "./examples/ListSnapshotsInAResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/snapshots": {
+ "get": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_List",
+ "description": "Lists snapshots under a subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/SnapshotList"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all snapshots in a subscription.": {
+ "$ref": "./examples/ListSnapshotsInASubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/snapshots/{snapshotName}/beginGetAccess": {
+ "post": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_GrantAccess",
+ "description": "Grants access to a snapshot.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SnapshotNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "grantAccessData",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GrantAccessData"
+ },
+ "description": "Access data object supplied in the body of the get snapshot access operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AccessUri"
+ }
+ },
+ "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/snapshots/{snapshotName}/endGetAccess": {
+ "post": {
+ "tags": [
+ "Snapshots"
+ ],
+ "operationId": "Snapshots_RevokeAccess",
+ "description": "Revokes access to a snapshot.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/SnapshotNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "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/diskEncryptionSets/{diskEncryptionSetName}": {
+ "put": {
+ "tags": [
+ "DiskEncryptionSets"
+ ],
+ "operationId": "DiskEncryptionSets_CreateOrUpdate",
+ "description": "Creates or updates a disk encryption set",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskEncryptionSetNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "diskEncryptionSet",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DiskEncryptionSet"
+ },
+ "description": "disk encryption set object supplied in the body of the Put disk encryption set operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DiskEncryptionSet"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/DiskEncryptionSet"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create a disk encryption set.": {
+ "$ref": "./examples/CreateADiskEncryptionSet.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "DiskEncryptionSets"
+ ],
+ "operationId": "DiskEncryptionSets_Update",
+ "description": "Updates (patches) a disk encryption set.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskEncryptionSetNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "diskEncryptionSet",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DiskEncryptionSetUpdate"
+ },
+ "description": "disk encryption set object supplied in the body of the Patch disk encryption set operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DiskEncryptionSet"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/DiskEncryptionSet"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update a disk encryption set.": {
+ "$ref": "./examples/UpdateADiskEncryptionSet.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "DiskEncryptionSets"
+ ],
+ "operationId": "DiskEncryptionSets_Get",
+ "description": "Gets information about a disk encryption set.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskEncryptionSetNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DiskEncryptionSet"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get information about a disk encryption set.": {
+ "$ref": "./examples/GetInformationAboutADiskEncryptionSet.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DiskEncryptionSets"
+ ],
+ "operationId": "DiskEncryptionSets_Delete",
+ "description": "Deletes a disk encryption set.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskEncryptionSetNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "If the disk encryption set is already deleted, this is an expected error code."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete a disk encryption set.": {
+ "$ref": "./examples/DeleteADiskEncryptionSet.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets": {
+ "get": {
+ "tags": [
+ "DiskEncryptionSets"
+ ],
+ "operationId": "DiskEncryptionSets_ListByResourceGroup",
+ "description": "Lists all the disk encryption sets under a resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DiskEncryptionSetList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all disk encryption sets in a resource group.": {
+ "$ref": "./examples/ListDiskEncryptionSetsInAResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/diskEncryptionSets": {
+ "get": {
+ "tags": [
+ "DiskEncryptionSets"
+ ],
+ "operationId": "DiskEncryptionSets_List",
+ "description": "Lists all the disk encryption sets under a subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DiskEncryptionSetList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all disk encryption sets in a subscription.": {
+ "$ref": "./examples/ListDiskEncryptionSetsInASubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}/associatedResources": {
+ "get": {
+ "tags": [
+ "DiskEncryptionSets"
+ ],
+ "operationId": "DiskEncryptionSets_ListAssociatedResources",
+ "description": "Lists all resources that are encrypted with this disk encryption set.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskEncryptionSetNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ResourceUriList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all resources that are encrypted with this disk encryption set.": {
+ "$ref": "./examples/ListDiskEncryptionSetAssociatedResources.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskAccesses/{diskAccessName}": {
+ "put": {
+ "tags": [
+ "DiskAccesses"
+ ],
+ "operationId": "DiskAccesses_CreateOrUpdate",
+ "description": "Creates or updates a disk access resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskAccessNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "diskAccess",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DiskAccess"
+ },
+ "description": "disk access object supplied in the body of the Put disk access operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DiskAccess"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/DiskAccess"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create a disk access resource.": {
+ "$ref": "./examples/CreateADiskAccess.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "DiskAccesses"
+ ],
+ "operationId": "DiskAccesses_Update",
+ "description": "Updates (patches) a disk access resource.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskAccessNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "diskAccess",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DiskAccessUpdate"
+ },
+ "description": "disk access object supplied in the body of the Patch disk access operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DiskAccess"
+ }
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/DiskAccess"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update a disk access resource.": {
+ "$ref": "./examples/UpdateADiskAccess.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "DiskAccesses"
+ ],
+ "operationId": "DiskAccesses_Get",
+ "description": "Gets information about a disk access resource.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskAccessNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DiskAccess"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get information about a disk access resource.": {
+ "$ref": "./examples/GetInformationAboutADiskAccess.json"
+ },
+ "Get information about a disk access resource with private endpoints.": {
+ "$ref": "./examples/GetInformationAboutADiskAccessWithPrivateEndpoints.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DiskAccesses"
+ ],
+ "operationId": "DiskAccesses_Delete",
+ "description": "Deletes a disk access resource.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskAccessNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "If the disk access resource is already deleted, this is an expected error code."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete a disk access resource.": {
+ "$ref": "./examples/DeleteADiskAccess.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskAccesses": {
+ "get": {
+ "tags": [
+ "DiskAccesses"
+ ],
+ "operationId": "DiskAccesses_ListByResourceGroup",
+ "description": "Lists all the disk access resources under a resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DiskAccessList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all disk access resources in a resource group.": {
+ "$ref": "./examples/ListDiskAccessesInAResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/diskAccesses": {
+ "get": {
+ "tags": [
+ "DiskAccesses"
+ ],
+ "operationId": "DiskAccesses_List",
+ "description": "Lists all the disk access resources under a subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/DiskAccessList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all disk access resources in a subscription.": {
+ "$ref": "./examples/ListDiskAccessesInASubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskAccesses/{diskAccessName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "DiskAccesses"
+ ],
+ "operationId": "DiskAccesses_GetPrivateLinkResources",
+ "description": "Gets the private link resources possible under disk access resource",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DiskAccessNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResourceListResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List all possible private link resources under disk access resource.": {
+ "$ref": "./examples/GetDiskAccessPrivateLinkResources.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "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
+ },
+ "Disk": {
+ "properties": {
+ "managedBy": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A relative URI containing the ID of the VM that has the disk attached."
+ },
+ "managedByExtended": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of relative URIs containing the IDs of the VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs."
+ },
+ "sku": {
+ "$ref": "#/definitions/DiskSku"
+ },
+ "zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The Logical zone list for Disk."
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DiskProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Disk resource."
+ },
+ "DiskUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DiskUpdateProperties"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ },
+ "sku": {
+ "$ref": "#/definitions/DiskSku"
+ }
+ },
+ "description": "Disk update resource."
+ },
+ "DiskList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Disk"
+ },
+ "description": "A list of disks."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of disks. Call ListNext() with this to fetch the next page of disks."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Disks operation response."
+ },
+ "DiskSku": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "enum": [
+ "Standard_LRS",
+ "Premium_LRS",
+ "StandardSSD_LRS",
+ "UltraSSD_LRS"
+ ],
+ "x-ms-enum": {
+ "name": "DiskStorageAccountTypes",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Standard_LRS",
+ "description": "Standard HDD locally redundant storage. Best for backup, non-critical, and infrequent access."
+ },
+ {
+ "value": "Premium_LRS",
+ "description": "Premium SSD locally redundant storage. Best for production and performance sensitive workloads."
+ },
+ {
+ "value": "StandardSSD_LRS",
+ "description": "Standard SSD locally redundant storage. Best for web servers, lightly used enterprise applications and dev/test."
+ },
+ {
+ "value": "UltraSSD_LRS",
+ "description": "Ultra SSD locally redundant storage. Best for IO-intensive workloads such as SAP HANA, top tier databases (for example, SQL, Oracle), and other transaction-heavy workloads."
+ }
+ ]
+ },
+ "description": "The sku name."
+ },
+ "tier": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The sku tier."
+ }
+ },
+ "description": "The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, or UltraSSD_LRS."
+ },
+ "SnapshotSku": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "enum": [
+ "Standard_LRS",
+ "Premium_LRS",
+ "Standard_ZRS"
+ ],
+ "x-ms-enum": {
+ "name": "SnapshotStorageAccountTypes",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Standard_LRS",
+ "description": "Standard HDD locally redundant storage"
+ },
+ {
+ "value": "Premium_LRS",
+ "description": "Premium SSD locally redundant storage"
+ },
+ {
+ "value": "Standard_ZRS",
+ "description": "Standard zone redundant storage"
+ }
+ ]
+ },
+ "description": "The sku name."
+ },
+ "tier": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The sku tier."
+ }
+ },
+ "description": "The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS."
+ },
+ "DiskProperties": {
+ "properties": {
+ "timeCreated": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The time when the disk was created."
+ },
+ "osType": {
+ "type": "string",
+ "description": "The Operating System type.",
+ "enum": [
+ "Windows",
+ "Linux"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemTypes",
+ "modelAsString": false
+ }
+ },
+ "hyperVGeneration": {
+ "type": "string",
+ "description": "The hypervisor generation of the Virtual Machine. Applicable to OS disks only.",
+ "enum": [
+ "V1",
+ "V2"
+ ],
+ "x-ms-enum": {
+ "name": "HyperVGeneration",
+ "modelAsString": true
+ }
+ },
+ "creationData": {
+ "$ref": "#/definitions/CreationData",
+ "description": "Disk source information. CreationData information cannot be changed after the disk has been created."
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size."
+ },
+ "diskSizeBytes": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "The size of the disk in bytes. This field is read only."
+ },
+ "uniqueId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Unique Guid identifying the resource."
+ },
+ "encryptionSettingsCollection": {
+ "$ref": "#/definitions/EncryptionSettingsCollection",
+ "description": "Encryption settings collection used for Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The disk provisioning state."
+ },
+ "diskIOPSReadWrite": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes."
+ },
+ "diskMBpsReadWrite": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10."
+ },
+ "diskIOPSReadOnly": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The total number of IOPS that will be allowed across all VMs mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes."
+ },
+ "diskMBpsReadOnly": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The total throughput (MBps) that will be allowed across all VMs mounting the shared disk as ReadOnly. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10."
+ },
+ "diskState": {
+ "$ref": "#/definitions/DiskState",
+ "description": "The state of the disk."
+ },
+ "encryption": {
+ "$ref": "#/definitions/Encryption",
+ "description": "Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys."
+ },
+ "maxShares": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of VMs that can attach to the disk at the same time. Value greater than one indicates a disk that can be mounted on multiple VMs at the same time."
+ },
+ "shareInfo": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ShareInfoElement"
+ },
+ "description": "Details of the list of all VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs."
+ },
+ "networkAccessPolicy": {
+ "$ref": "#/definitions/NetworkAccessPolicy"
+ },
+ "diskAccessId": {
+ "type": "string",
+ "description": "ARM id of the DiskAccess resource for using private endpoints on disks."
+ },
+ "tier": {
+ "type": "string",
+ "description": "Performance tier of the disk (e.g, P4, S10) as described here: https://azure.microsoft.com/en-us/pricing/details/managed-disks/. Does not apply to Ultra disks."
+ }
+ },
+ "required": [
+ "creationData"
+ ],
+ "description": "Disk resource properties."
+ },
+ "SnapshotProperties": {
+ "properties": {
+ "timeCreated": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The time when the snapshot was created."
+ },
+ "osType": {
+ "type": "string",
+ "description": "The Operating System type.",
+ "enum": [
+ "Windows",
+ "Linux"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemTypes",
+ "modelAsString": false
+ }
+ },
+ "hyperVGeneration": {
+ "type": "string",
+ "description": "The hypervisor generation of the Virtual Machine. Applicable to OS disks only.",
+ "enum": [
+ "V1",
+ "V2"
+ ],
+ "x-ms-enum": {
+ "name": "HyperVGeneration",
+ "modelAsString": true
+ }
+ },
+ "creationData": {
+ "$ref": "#/definitions/CreationData",
+ "description": "Disk source information. CreationData information cannot be changed after the disk has been created."
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size."
+ },
+ "diskSizeBytes": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "The size of the disk in bytes. This field is read only."
+ },
+ "diskState": {
+ "$ref": "#/definitions/DiskState",
+ "description": "The state of the snapshot."
+ },
+ "uniqueId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Unique Guid identifying the resource."
+ },
+ "encryptionSettingsCollection": {
+ "$ref": "#/definitions/EncryptionSettingsCollection",
+ "description": "Encryption settings collection used be Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The disk provisioning state."
+ },
+ "incremental": {
+ "type": "boolean",
+ "description": "Whether a snapshot is incremental. Incremental snapshots on the same disk occupy less space than full snapshots and can be diffed."
+ },
+ "encryption": {
+ "$ref": "#/definitions/Encryption",
+ "description": "Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys."
+ },
+ "networkAccessPolicy": {
+ "$ref": "#/definitions/NetworkAccessPolicy"
+ },
+ "diskAccessId": {
+ "type": "string",
+ "description": "ARM id of the DiskAccess resource for using private endpoints on disks."
+ }
+ },
+ "required": [
+ "creationData"
+ ],
+ "description": "Snapshot resource properties."
+ },
+ "ShareInfoElement": {
+ "properties": {
+ "vmUri": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A relative URI containing the ID of the VM that has the disk attached."
+ }
+ }
+ },
+ "EncryptionSetProperties": {
+ "properties": {
+ "encryptionType": {
+ "$ref": "#/definitions/DiskEncryptionSetType"
+ },
+ "activeKey": {
+ "$ref": "#/definitions/KeyVaultAndKeyReference",
+ "description": "The key vault key which is currently used by this disk encryption set."
+ },
+ "previousKeys": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/KeyVaultAndKeyReference"
+ },
+ "description": "A readonly collection of key vault keys previously used by this disk encryption set while a key rotation is in progress. It will be empty if there is no ongoing key rotation."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The disk encryption set provisioning state."
+ }
+ }
+ },
+ "EncryptionSettingsCollection": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged."
+ },
+ "encryptionSettings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EncryptionSettingsElement"
+ },
+ "description": "A collection of encryption settings, one for each disk volume."
+ },
+ "encryptionSettingsVersion": {
+ "type": "string",
+ "description": "Describes what type of encryption is used for the disks. Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption with AAD app.'1.1' corresponds to Azure Disk Encryption."
+ }
+ },
+ "required": [
+ "enabled"
+ ],
+ "description": "Encryption settings for disk or snapshot"
+ },
+ "EncryptionSettingsElement": {
+ "properties": {
+ "diskEncryptionKey": {
+ "$ref": "#/definitions/KeyVaultAndSecretReference",
+ "description": "Key Vault Secret Url and vault id of the disk encryption key"
+ },
+ "keyEncryptionKey": {
+ "$ref": "#/definitions/KeyVaultAndKeyReference",
+ "description": "Key Vault Key Url and vault id of the key encryption key. KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key."
+ }
+ },
+ "description": "Encryption settings for one disk volume."
+ },
+ "KeyVaultAndSecretReference": {
+ "properties": {
+ "sourceVault": {
+ "$ref": "#/definitions/SourceVault",
+ "description": "Resource id of the KeyVault containing the key or secret"
+ },
+ "secretUrl": {
+ "type": "string",
+ "description": "Url pointing to a key or secret in KeyVault"
+ }
+ },
+ "required": [
+ "secretUrl",
+ "sourceVault"
+ ],
+ "description": "Key Vault Secret Url and vault id of the encryption key "
+ },
+ "KeyVaultAndKeyReference": {
+ "properties": {
+ "sourceVault": {
+ "$ref": "#/definitions/SourceVault",
+ "description": "Resource id of the KeyVault containing the key or secret"
+ },
+ "keyUrl": {
+ "type": "string",
+ "description": "Url pointing to a key or secret in KeyVault"
+ }
+ },
+ "required": [
+ "keyUrl",
+ "sourceVault"
+ ],
+ "description": "Key Vault Key Url and vault id of KeK, KeK is optional and when provided is used to unwrap the encryptionKey"
+ },
+ "SourceVault": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Resource Id"
+ }
+ },
+ "description": "The vault id is an Azure Resource Manager Resource id in the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}"
+ },
+ "EncryptionType": {
+ "type": "string",
+ "description": "The type of key used to encrypt the data of the disk.",
+ "enum": [
+ "EncryptionAtRestWithPlatformKey",
+ "EncryptionAtRestWithCustomerKey",
+ "EncryptionAtRestWithPlatformAndCustomerKeys"
+ ],
+ "x-ms-enum": {
+ "name": "EncryptionType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "EncryptionAtRestWithPlatformKey",
+ "description": "Disk is encrypted at rest with Platform managed key. It is the default encryption type. This is not a valid encryption type for disk encryption sets."
+ },
+ {
+ "value": "EncryptionAtRestWithCustomerKey",
+ "description": "Disk is encrypted at rest with Customer managed key that can be changed and revoked by a customer."
+ },
+ {
+ "value": "EncryptionAtRestWithPlatformAndCustomerKeys",
+ "description": "Disk is encrypted at rest with 2 layers of encryption. One of the keys is Customer managed and the other key is Platform managed."
+ }
+ ]
+ }
+ },
+ "DiskEncryptionSetType": {
+ "type": "string",
+ "description": "The type of key used to encrypt the data of the disk.",
+ "enum": [
+ "EncryptionAtRestWithCustomerKey",
+ "EncryptionAtRestWithPlatformAndCustomerKeys"
+ ],
+ "x-ms-enum": {
+ "name": "DiskEncryptionSetType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "EncryptionAtRestWithCustomerKey",
+ "description": "Resource using diskEncryptionSet would be encrypted at rest with Customer managed key that can be changed and revoked by a customer."
+ },
+ {
+ "value": "EncryptionAtRestWithPlatformAndCustomerKeys",
+ "description": "Resource using diskEncryptionSet would be encrypted at rest with two layers of encryption. One of the keys is Customer managed and the other key is Platform managed."
+ }
+ ]
+ }
+ },
+ "Encryption": {
+ "properties": {
+ "diskEncryptionSetId": {
+ "type": "string",
+ "description": "ResourceId of the disk encryption set to use for enabling encryption at rest."
+ },
+ "type": {
+ "$ref": "#/definitions/EncryptionType"
+ }
+ },
+ "description": "Encryption at rest settings for disk or snapshot"
+ },
+ "NetworkAccessPolicy": {
+ "type": "string",
+ "description": "Policy for accessing the disk via network.",
+ "enum": [
+ "AllowAll",
+ "AllowPrivate",
+ "DenyAll"
+ ],
+ "x-ms-enum": {
+ "name": "NetworkAccessPolicy",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "AllowAll",
+ "description": "The disk can be exported or uploaded to from any network."
+ },
+ {
+ "value": "AllowPrivate",
+ "description": "The disk can be exported or uploaded to using a DiskAccess resource's private endpoints."
+ },
+ {
+ "value": "DenyAll",
+ "description": "The disk cannot be exported."
+ }
+ ]
+ }
+ },
+ "DiskUpdateProperties": {
+ "properties": {
+ "osType": {
+ "type": "string",
+ "description": "the Operating System type.",
+ "enum": [
+ "Windows",
+ "Linux"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemTypes",
+ "modelAsString": false
+ }
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size."
+ },
+ "encryptionSettingsCollection": {
+ "$ref": "#/definitions/EncryptionSettingsCollection",
+ "description": "Encryption settings collection used be Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot."
+ },
+ "diskIOPSReadWrite": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes."
+ },
+ "diskMBpsReadWrite": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10."
+ },
+ "diskIOPSReadOnly": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The total number of IOPS that will be allowed across all VMs mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes."
+ },
+ "diskMBpsReadOnly": {
+ "type": "integer",
+ "format": "int64",
+ "description": "The total throughput (MBps) that will be allowed across all VMs mounting the shared disk as ReadOnly. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10."
+ },
+ "maxShares": {
+ "type": "integer",
+ "format": "int32",
+ "description": "The maximum number of VMs that can attach to the disk at the same time. Value greater than one indicates a disk that can be mounted on multiple VMs at the same time."
+ },
+ "encryption": {
+ "$ref": "#/definitions/Encryption",
+ "description": "Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys."
+ },
+ "networkAccessPolicy": {
+ "$ref": "#/definitions/NetworkAccessPolicy"
+ },
+ "diskAccessId": {
+ "type": "string",
+ "description": "ARM id of the DiskAccess resource for using private endpoints on disks."
+ },
+ "tier": {
+ "type": "string",
+ "description": "Performance tier of the disk (e.g, P4, S10) as described here: https://azure.microsoft.com/en-us/pricing/details/managed-disks/. Does not apply to Ultra disks."
+ }
+ },
+ "description": "Disk resource update properties."
+ },
+ "SnapshotUpdateProperties": {
+ "properties": {
+ "osType": {
+ "type": "string",
+ "description": "the Operating System type.",
+ "enum": [
+ "Windows",
+ "Linux"
+ ],
+ "x-ms-enum": {
+ "name": "OperatingSystemTypes",
+ "modelAsString": false
+ }
+ },
+ "diskSizeGB": {
+ "type": "integer",
+ "format": "int32",
+ "description": "If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size."
+ },
+ "encryptionSettingsCollection": {
+ "$ref": "#/definitions/EncryptionSettingsCollection",
+ "description": "Encryption settings collection used be Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot."
+ },
+ "encryption": {
+ "$ref": "#/definitions/Encryption",
+ "description": "Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys."
+ },
+ "networkAccessPolicy": {
+ "$ref": "#/definitions/NetworkAccessPolicy"
+ },
+ "diskAccessId": {
+ "type": "string",
+ "description": "ARM id of the DiskAccess resource for using private endpoints on disks."
+ }
+ },
+ "description": "Snapshot resource update properties."
+ },
+ "DiskEncryptionSetUpdateProperties": {
+ "properties": {
+ "encryptionType": {
+ "$ref": "#/definitions/DiskEncryptionSetType"
+ },
+ "activeKey": {
+ "$ref": "#/definitions/KeyVaultAndKeyReference"
+ }
+ },
+ "description": "disk encryption set resource update properties."
+ },
+ "DiskState": {
+ "type": "string",
+ "description": "This enumerates the possible state of the disk.",
+ "readOnly": true,
+ "enum": [
+ "Unattached",
+ "Attached",
+ "Reserved",
+ "ActiveSAS",
+ "ReadyToUpload",
+ "ActiveUpload"
+ ],
+ "x-ms-enum": {
+ "name": "DiskState",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Unattached",
+ "description": "The disk is not being used and can be attached to a VM."
+ },
+ {
+ "value": "Attached",
+ "description": "The disk is currently mounted to a running VM."
+ },
+ {
+ "value": "Reserved",
+ "description": "The disk is mounted to a stopped-deallocated VM"
+ },
+ {
+ "value": "ActiveSAS",
+ "description": "The disk currently has an Active SAS Uri associated with it."
+ },
+ {
+ "value": "ReadyToUpload",
+ "description": "A disk is ready to be created by upload by requesting a write token."
+ },
+ {
+ "value": "ActiveUpload",
+ "description": "A disk is created for upload and a write token has been issued for uploading to it."
+ }
+ ]
+ }
+ },
+ "CreationData": {
+ "properties": {
+ "createOption": {
+ "type": "string",
+ "enum": [
+ "Empty",
+ "Attach",
+ "FromImage",
+ "Import",
+ "Copy",
+ "Restore",
+ "Upload"
+ ],
+ "x-ms-enum": {
+ "name": "DiskCreateOption",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Empty",
+ "description": "Create an empty data disk of a size given by diskSizeGB."
+ },
+ {
+ "value": "Attach",
+ "description": "Disk will be attached to a VM."
+ },
+ {
+ "value": "FromImage",
+ "description": "Create a new disk from a platform image specified by the given imageReference or galleryImageReference."
+ },
+ {
+ "value": "Import",
+ "description": "Create a disk by importing from a blob specified by a sourceUri in a storage account specified by storageAccountId."
+ },
+ {
+ "value": "Copy",
+ "description": "Create a new disk or snapshot by copying from a disk or snapshot specified by the given sourceResourceId."
+ },
+ {
+ "value": "Restore",
+ "description": "Create a new disk by copying from a backup recovery point."
+ },
+ {
+ "value": "Upload",
+ "description": "Create a new disk by obtaining a write token and using it to directly upload the contents of the disk."
+ }
+ ]
+ },
+ "description": "This enumerates the possible sources of a disk's creation."
+ },
+ "storageAccountId": {
+ "type": "string",
+ "description": "Required if createOption is Import. The Azure Resource Manager identifier of the storage account containing the blob to import as a disk."
+ },
+ "imageReference": {
+ "$ref": "#/definitions/ImageDiskReference",
+ "description": "Disk source information."
+ },
+ "galleryImageReference": {
+ "$ref": "#/definitions/ImageDiskReference",
+ "description": "Required if creating from a Gallery Image. The id of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk."
+ },
+ "sourceUri": {
+ "type": "string",
+ "description": "If createOption is Import, this is the URI of a blob to be imported into a managed disk."
+ },
+ "sourceResourceId": {
+ "type": "string",
+ "description": "If createOption is Copy, this is the ARM id of the source snapshot or disk."
+ },
+ "sourceUniqueId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "If this field is set, this is the unique id identifying the source of this resource."
+ },
+ "uploadSizeBytes": {
+ "type": "integer",
+ "format": "int64",
+ "description": "If createOption is Upload, this is the size of the contents of the upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer)."
+ },
+ "logicalSectorSize": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default."
+ }
+ },
+ "required": [
+ "createOption"
+ ],
+ "description": "Data used when creating a disk."
+ },
+ "ImageDiskReference": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "A relative uri containing either a Platform Image Repository or user image reference."
+ },
+ "lun": {
+ "type": "integer",
+ "format": "int32",
+ "description": "If the disk is created from an image's data disk, this is an index that indicates which of the data disks in the image to use. For OS disks, this field is null."
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "description": "The source image used for creating the disk."
+ },
+ "GrantAccessData": {
+ "properties": {
+ "access": {
+ "type": "string",
+ "enum": [
+ "None",
+ "Read",
+ "Write"
+ ],
+ "x-ms-enum": {
+ "name": "AccessLevel",
+ "modelAsString": true
+ }
+ },
+ "durationInSeconds": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Time duration in seconds until the SAS access expires."
+ }
+ },
+ "required": [
+ "access",
+ "durationInSeconds"
+ ],
+ "description": "Data used for requesting a SAS."
+ },
+ "AccessUri": {
+ "properties": {
+ "accessSAS": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A SAS uri for accessing a disk."
+ }
+ },
+ "description": "A disk access SAS uri."
+ },
+ "Snapshot": {
+ "properties": {
+ "managedBy": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Unused. Always Null."
+ },
+ "sku": {
+ "$ref": "#/definitions/SnapshotSku"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SnapshotProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Snapshot resource."
+ },
+ "SnapshotUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SnapshotUpdateProperties"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ },
+ "sku": {
+ "$ref": "#/definitions/SnapshotSku"
+ }
+ },
+ "description": "Snapshot update resource."
+ },
+ "SnapshotList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Snapshot"
+ },
+ "description": "A list of snapshots."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of snapshots. Call ListNext() with this to fetch the next page of snapshots."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List Snapshots operation response."
+ },
+ "EncryptionSetIdentity": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "SystemAssigned"
+ ],
+ "x-ms-enum": {
+ "name": "DiskEncryptionSetIdentityType",
+ "modelAsString": true
+ },
+ "description": "The type of Managed Identity used by the DiskEncryptionSet. Only SystemAssigned is supported."
+ },
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The object id of the Managed Identity Resource. This will be sent to the RP from ARM via the x-ms-identity-principal-id header in the PUT request if the resource has a systemAssigned(implicit) identity"
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant id of the Managed Identity Resource. This will be sent to the RP from ARM via the x-ms-client-tenant-id header in the PUT request if the resource has a systemAssigned(implicit) identity"
+ }
+ },
+ "description": "The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks."
+ },
+ "DiskEncryptionSet": {
+ "properties": {
+ "identity": {
+ "$ref": "#/definitions/EncryptionSetIdentity"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/EncryptionSetProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "disk encryption set resource."
+ },
+ "DiskEncryptionSetUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DiskEncryptionSetUpdateProperties"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "description": "disk encryption set update resource."
+ },
+ "DiskEncryptionSetList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DiskEncryptionSet"
+ },
+ "description": "A list of disk encryption sets."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of disk encryption sets. Call ListNext() with this to fetch the next page of disk encryption sets."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List disk encryption set operation response."
+ },
+ "ResourceUriList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of IDs or Owner IDs of resources which are encrypted with the disk encryption set."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of encrypted resources. Call ListNext() with this to fetch the next page of encrypted resources."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List resources which are encrypted with the disk encryption set."
+ },
+ "PrivateEndpoint": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The ARM identifier for Private Endpoint"
+ }
+ },
+ "description": "The Private Endpoint resource."
+ },
+ "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
+ }
+ },
+ "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."
+ },
+ "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 DiskAccess and Virtual Network."
+ },
+ "provisioningState": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState",
+ "description": "The provisioning state of the private endpoint connection resource."
+ }
+ },
+ "required": [
+ "privateLinkServiceConnectionState"
+ ],
+ "description": "Properties of the PrivateEndpointConnectProperties."
+ },
+ "PrivateEndpointConnection": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "x-ms-client-flatten": true,
+ "description": "Resource properties."
+ },
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "private endpoint connection Id"
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "private endpoint connection name"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "private endpoint connection type"
+ }
+ },
+ "description": "The Private Endpoint Connection resource."
+ },
+ "DiskAccessProperties": {
+ "properties": {
+ "privateEndpointConnections": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "A readonly collection of private endpoint connections created on the disk. Currently only one endpoint connection is supported."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The disk access resource provisioning state."
+ },
+ "timeCreated": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The time when the disk access was created."
+ }
+ }
+ },
+ "DiskAccess": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/DiskAccessProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "disk access resource."
+ },
+ "DiskAccessList": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DiskAccess"
+ },
+ "description": "A list of disk access resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of disk access resources. Call ListNext() with this to fetch the next page of disk access resources."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List disk access operation response."
+ },
+ "DiskAccessUpdate": {
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "description": "Used for updating a disk access resource."
+ },
+ "PrivateLinkResource": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateLinkResourceProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ },
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "private link resource Id"
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "private link resource name"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "private link resource type"
+ }
+ },
+ "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 DNS zone name."
+ }
+ },
+ "description": "Properties of a private link resource."
+ },
+ "PrivateLinkResourceListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "Array of private link resources",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ }
+ }
+ },
+ "description": "A list of private link resources"
+ },
+ "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."
+ },
+ "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."
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group.",
+ "x-ms-parameter-location": "method"
+ },
+ "DiskNameParameter": {
+ "name": "diskName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters.",
+ "x-ms-parameter-location": "method"
+ },
+ "SnapshotNameParameter": {
+ "name": "snapshotName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the snapshot that is being created. The name can't be changed after the snapshot is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The max name length is 80 characters.",
+ "x-ms-parameter-location": "method"
+ },
+ "DiskEncryptionSetNameParameter": {
+ "name": "diskEncryptionSetName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the disk encryption set that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters.",
+ "x-ms-parameter-location": "method"
+ },
+ "DiskAccessNameParameter": {
+ "name": "diskAccessName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateADiskAccess.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateADiskAccess.json
new file mode 100644
index 000000000000..e0eb2d326d00
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateADiskAccess.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskAccessName": "myDiskAccess",
+ "diskAccess": {
+ "location": "West US"
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "name": "myDiskAccess",
+ "location": "West US",
+ "type": "Microsoft.Compute/diskAccesses"
+ }
+ },
+ "200": {
+ "body": {
+ "name": "myDiskAccess",
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourcegroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess",
+ "type": "Microsoft.Compute/diskAccesses",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "timeCreated": "2020-05-01T04:41:35.079872+00:00"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateADiskEncryptionSet.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateADiskEncryptionSet.json
new file mode 100644
index 000000000000..fbd1a70c3541
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateADiskEncryptionSet.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskEncryptionSetName": "myDiskEncryptionSet",
+ "diskEncryptionSet": {
+ "location": "West US",
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "activeKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ },
+ "encryptionType": "EncryptionAtRestWithCustomerKey"
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "name": "myDiskEncryptionSet",
+ "location": "West US",
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "activeKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ },
+ "encryptionType": "EncryptionAtRestWithCustomerKey",
+ "previousKeys": []
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "myDiskEncryptionSet",
+ "location": "West US",
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "activeKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ },
+ "encryptionType": "EncryptionAtRestWithCustomerKey",
+ "previousKeys": []
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskByCopyingASnapshot.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskByCopyingASnapshot.json
new file mode 100644
index 000000000000..f7e4e41bdd8c
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskByCopyingASnapshot.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskName": "myDisk",
+ "disk": {
+ "location": "West US",
+ "properties": {
+ "creationData": {
+ "createOption": "Copy",
+ "sourceResourceId": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "name": "myDisk",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Updating",
+ "creationData": {
+ "createOption": "Copy",
+ "sourceResourceId": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot"
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "myDisk",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Updating",
+ "creationData": {
+ "createOption": "Copy",
+ "sourceResourceId": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskByImportingAnUnmanagedBlobFromADifferentSubscription.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskByImportingAnUnmanagedBlobFromADifferentSubscription.json
new file mode 100644
index 000000000000..589a24e6fc0d
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskByImportingAnUnmanagedBlobFromADifferentSubscription.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskName": "myDisk",
+ "disk": {
+ "location": "West US",
+ "properties": {
+ "creationData": {
+ "createOption": "Import",
+ "storageAccountId": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
+ "sourceUri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "name": "myDisk",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Updating",
+ "creationData": {
+ "createOption": "Import",
+ "storageAccountId": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
+ "sourceUri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "myDisk",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Updating",
+ "creationData": {
+ "createOption": "Import",
+ "storageAccountId": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
+ "sourceUri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskByImportingAnUnmanagedBlobFromTheSameSubscription.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskByImportingAnUnmanagedBlobFromTheSameSubscription.json
new file mode 100644
index 000000000000..a3776d835c85
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskByImportingAnUnmanagedBlobFromTheSameSubscription.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskName": "myDisk",
+ "disk": {
+ "location": "West US",
+ "properties": {
+ "creationData": {
+ "createOption": "Import",
+ "sourceUri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "name": "myDisk",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Updating",
+ "creationData": {
+ "createOption": "Import",
+ "sourceUri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "myDisk",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Updating",
+ "creationData": {
+ "createOption": "Import",
+ "sourceUri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskFromAPlatformImage.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskFromAPlatformImage.json
new file mode 100644
index 000000000000..7a05366bc472
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskFromAPlatformImage.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskName": "myDisk",
+ "disk": {
+ "location": "West US",
+ "properties": {
+ "osType": "Windows",
+ "creationData": {
+ "createOption": "FromImage",
+ "imageReference": {
+ "id": "/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/uswest/Publishers/Microsoft/ArtifactTypes/VMImage/Offers/{offer}"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "name": "myDisk",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Updating",
+ "osType": "Windows",
+ "creationData": {
+ "createOption": "FromImage",
+ "imageReference": {
+ "id": "/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/uswest/Publishers/Microsoft/ArtifactTypes/VMImage/Offers/{offer}"
+ }
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "myDisk",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Updating",
+ "osType": "Windows",
+ "creationData": {
+ "createOption": "FromImage",
+ "imageReference": {
+ "id": "/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/uswest/Publishers/Microsoft/ArtifactTypes/VMImage/Offers/{offer}"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskFromAnExistingManagedDisk.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskFromAnExistingManagedDisk.json
new file mode 100644
index 000000000000..68922f429d08
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskFromAnExistingManagedDisk.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskName": "myDisk2",
+ "disk": {
+ "location": "West US",
+ "properties": {
+ "creationData": {
+ "createOption": "Copy",
+ "sourceResourceId": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myDisk1"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Copy",
+ "sourceResourceId": "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myDisk1"
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myDisk2"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Copy",
+ "sourceResourceId": "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myDisk1"
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myDisk2"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskWithDiskAccess.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskWithDiskAccess.json
new file mode 100644
index 000000000000..95857a36f193
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskWithDiskAccess.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskName": "myDisk",
+ "disk": {
+ "location": "West US",
+ "properties": {
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 200,
+ "networkAccessPolicy": "AllowPrivate",
+ "diskAccessId": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/{existing-diskAccess-name}"
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 200,
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myDisk"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 200,
+ "provisioningState": "Succeeded",
+ "networkAccessPolicy": "AllowPrivate",
+ "diskAccessId": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/{existing-diskAccess-name}"
+ },
+ "location": "West US",
+ "name": "myDisk"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskWithDiskEncryptionSet.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskWithDiskEncryptionSet.json
new file mode 100644
index 000000000000..934ee8105dae
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskWithDiskEncryptionSet.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskName": "myDisk",
+ "disk": {
+ "location": "West US",
+ "properties": {
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 200,
+ "encryption": {
+ "diskEncryptionSetId": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 200,
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myDisk"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 200,
+ "provisioningState": "Succeeded",
+ "encryption": {
+ "diskEncryptionSetId": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}"
+ }
+ },
+ "location": "West US",
+ "name": "myDisk"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskWithLogicalSectorSize.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskWithLogicalSectorSize.json
new file mode 100644
index 000000000000..ef1e7cffc76d
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedDiskWithLogicalSectorSize.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskName": "myDisk",
+ "disk": {
+ "location": "West US",
+ "sku": {
+ "name": "UltraSSD_LRS"
+ },
+ "properties": {
+ "creationData": {
+ "createOption": "Empty",
+ "logicalSectorSize": 512
+ },
+ "diskSizeGB": 200
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Empty",
+ "logicalSectorSize": 512
+ },
+ "diskSizeGB": 200,
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myDisk",
+ "sku": {
+ "name": "UltraSSD_LRS",
+ "tier": "Ultra"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Empty",
+ "logicalSectorSize": 512
+ },
+ "diskSizeGB": 200,
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myDisk",
+ "sku": {
+ "name": "UltraSSD_LRS",
+ "tier": "Ultra"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedUploadDisk.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedUploadDisk.json
new file mode 100644
index 000000000000..1f5a6c842eed
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAManagedUploadDisk.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskName": "myDisk",
+ "disk": {
+ "location": "West US",
+ "properties": {
+ "creationData": {
+ "createOption": "Upload",
+ "uploadSizeBytes": 10737418752
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Upload",
+ "uploadSizeBytes": 10737418752
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myDisk"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Upload",
+ "uploadSizeBytes": 10737418752
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myDisk"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateASnapshotByImportingAnUnmanagedBlobFromADifferentSubscription.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateASnapshotByImportingAnUnmanagedBlobFromADifferentSubscription.json
new file mode 100644
index 000000000000..4938448c4452
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateASnapshotByImportingAnUnmanagedBlobFromADifferentSubscription.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "snapshotName": "mySnapshot1",
+ "snapshot": {
+ "location": "West US",
+ "properties": {
+ "creationData": {
+ "createOption": "Import",
+ "storageAccountId": "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
+ "sourceUri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Import",
+ "storageAccountId": "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
+ "sourceUri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "mySnapshot1"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Import",
+ "storageAccountId": "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
+ "sourceUri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "mySnapshot1"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateASnapshotByImportingAnUnmanagedBlobFromTheSameSubscription.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateASnapshotByImportingAnUnmanagedBlobFromTheSameSubscription.json
new file mode 100644
index 000000000000..5a74852eb5e5
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateASnapshotByImportingAnUnmanagedBlobFromTheSameSubscription.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "snapshotName": "mySnapshot1",
+ "snapshot": {
+ "location": "West US",
+ "properties": {
+ "creationData": {
+ "createOption": "Import",
+ "sourceUri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Import",
+ "sourceUri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "mySnapshot1"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Import",
+ "sourceUri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"
+ },
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "mySnapshot1"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateASnapshotFromAnExistingSnapshot.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateASnapshotFromAnExistingSnapshot.json
new file mode 100644
index 000000000000..dad908891df8
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateASnapshotFromAnExistingSnapshot.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "snapshotName": "mySnapshot2",
+ "snapshot": {
+ "location": "West US",
+ "properties": {
+ "creationData": {
+ "createOption": "Copy",
+ "sourceResourceId": "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot1"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "name": "mySnapshot2",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Updating",
+ "creationData": {
+ "createOption": "Copy",
+ "sourceResourceId": "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot1"
+ }
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "mySnapshot2",
+ "location": "West US",
+ "properties": {
+ "provisioningState": "Updating",
+ "creationData": {
+ "createOption": "Copy",
+ "sourceResourceId": "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAnEmptyManagedDisk.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAnEmptyManagedDisk.json
new file mode 100644
index 000000000000..07b205ae4e1a
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/CreateAnEmptyManagedDisk.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskName": "myDisk",
+ "disk": {
+ "location": "West US",
+ "properties": {
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 200
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 200,
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myDisk"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 200,
+ "provisioningState": "Updating"
+ },
+ "location": "West US",
+ "name": "myDisk"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/DeleteADiskAccess.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/DeleteADiskAccess.json
new file mode 100644
index 000000000000..8b2a0672cdda
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/DeleteADiskAccess.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "diskAccessName": "myDiskAccess",
+ "api-version": "2020-06-30"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/DeleteADiskEncryptionSet.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/DeleteADiskEncryptionSet.json
new file mode 100644
index 000000000000..7110b2621858
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/DeleteADiskEncryptionSet.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "diskEncryptionSetName": "myDiskEncryptionSet",
+ "api-version": "2020-06-30"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetDiskAccessPrivateLinkResources.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetDiskAccessPrivateLinkResources.json
new file mode 100644
index 000000000000..81224cffb7dc
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetDiskAccessPrivateLinkResources.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskAccessName": "myDiskAccess"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess/privateLinkResources/disks",
+ "name": "disks",
+ "type": "Microsoft.Compute/diskAccesses/privateLinkResources",
+ "properties": {
+ "groupId": "disks",
+ "requiredMembers": [
+ "diskAccess_1"
+ ],
+ "requiredZoneNames": [
+ "privatelink.blob.core.windows.net"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutADiskAccess.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutADiskAccess.json
new file mode 100644
index 000000000000..241f0a434455
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutADiskAccess.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskAccessName": "myDiskAccess"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "timeCreated": "2020-05-01T04:41:35.079872+00:00"
+ },
+ "type": "Microsoft.Compute/diskAccesses",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "PrivateEndpoints"
+ },
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess",
+ "name": "myDiskAccess"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutADiskAccessWithPrivateEndpoints.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutADiskAccessWithPrivateEndpoints.json
new file mode 100644
index 000000000000..675516844252
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutADiskAccessWithPrivateEndpoints.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskAccessName": "myDiskAccess"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "timeCreated": "2020-05-01T04:41:35.079872+00:00",
+ "privateEndpointConnections": [
+ {
+ "name": "myDiskAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef",
+ "type": "Microsoft.Compute/diskAccesses/PrivateEndpointConnections",
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess/privateEndpoinConnections/myDiskAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "actionsRequired": "None",
+ "description": "Auto-Approved",
+ "status": "Approved"
+ }
+ }
+ }
+ ]
+ },
+ "type": "Microsoft.Compute/diskAccesses",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "PrivateEndpoints"
+ },
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess",
+ "name": "myDiskAccess"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutADiskEncryptionSet.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutADiskEncryptionSet.json
new file mode 100644
index 000000000000..096dbf8c6f25
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutADiskEncryptionSet.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskEncryptionSetName": "myDiskEncryptionSet"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "activeKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ },
+ "encryptionType": "EncryptionAtRestWithCustomerKey",
+ "previousKeys": [],
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/diskEncryptionSets",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "Encryption"
+ },
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/myDiskEncryptionSet",
+ "name": "myDiskEncryptionSet"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutAManagedDisk.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutAManagedDisk.json
new file mode 100644
index 000000000000..7b81ebdf8901
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutAManagedDisk.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskName": "myManagedDisk"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "managedBy": "/subscriptions/123caaa-123v-v211-a49f-f88ccac5bf88/resourceGroups/ResourceGroupName/providers/Microsoft.Compute/virtualMachines/TestVM414689371c88843d65ec",
+ "sku": {
+ "name": "Standard_LRS"
+ },
+ "properties": {
+ "osType": "Windows",
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 10,
+ "encryptionSettingsCollection": {
+ "enabled": true,
+ "encryptionSettings": [
+ {
+ "diskEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "secretUrl": "https://myvmvault.vault-int.azure-int.net/secrets/{secret}"
+ },
+ "keyEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ }
+ }
+ ]
+ },
+ "encryption": {
+ "type": "EncryptionAtRestWithPlatformKey"
+ },
+ "timeCreated": "2016-12-28T04:41:35.079872+00:00",
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/disks",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "ManagedDisks"
+ },
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk",
+ "name": "myManagedDisk"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutASnapshot.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutASnapshot.json
new file mode 100644
index 000000000000..be9a074a1295
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/GetInformationAboutASnapshot.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "snapshotName": "mySnapshot"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "osType": "Windows",
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 100,
+ "encryptionSettingsCollection": {
+ "enabled": true,
+ "encryptionSettings": [
+ {
+ "diskEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "secretUrl": "https://myvmvault.vault-int.azure-int.net/secrets/{secret}"
+ },
+ "keyEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ }
+ }
+ ]
+ },
+ "encryption": {
+ "type": "EncryptionAtRestWithPlatformKey"
+ },
+ "timeCreated": "2016-12-28T04:41:35.079872+00:00",
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/snapshots",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "Snapshots"
+ },
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot",
+ "name": "mySnapshot"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskAccessesInAResourceGroup.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskAccessesInAResourceGroup.json
new file mode 100644
index 000000000000..6b4fd51a4884
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskAccessesInAResourceGroup.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "timeCreated": "2020-05-01T04:41:35.079872+00:00"
+ },
+ "type": "Microsoft.Compute/diskAccesses",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "PrivateEndpoints"
+ },
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess",
+ "name": "myDiskAccess"
+ },
+ {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "timeCreated": "2020-05-01T04:41:35.079872+00:00",
+ "privateEndpointConnections": [
+ {
+ "name": "myDiskAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef",
+ "type": "Microsoft.Compute/diskAccesses/PrivateEndpointConnections",
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess2/privateEndpoinConnections/myDiskAccess2.d4914cfa-6bc2-4049-a57c-3d1f622d8eef",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint2"
+ },
+ "privateLinkServiceConnectionState": {
+ "actionsRequired": "None",
+ "description": "Auto-Approved",
+ "status": "Approved"
+ }
+ }
+ }
+ ]
+ },
+ "type": "Microsoft.Compute/diskAccesses",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "PrivateEndpoints"
+ },
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess2",
+ "name": "myDiskAccess2"
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Compute/diskAccesses?$skiptoken={token}"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskAccessesInASubscription.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskAccessesInASubscription.json
new file mode 100644
index 000000000000..61e8dc0b8396
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskAccessesInASubscription.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "api-version": "2020-06-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "timeCreated": "2020-05-01T04:41:35.079872+00:00"
+ },
+ "type": "Microsoft.Compute/diskAccesses",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "PrivateEndpoints"
+ },
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess",
+ "name": "myDiskAccess"
+ },
+ {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "timeCreated": "2020-05-01T04:41:35.079872+00:00",
+ "privateEndpointConnections": [
+ {
+ "name": "myDiskAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef",
+ "type": "Microsoft.Compute/diskAccesses/PrivateEndpointConnections",
+ "id": "/subscriptions/{subscription-id}/resourceGroups/mySecondResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess2/privateEndpoinConnections/myDiskAccess2.d4914cfa-6bc2-4049-a57c-3d1f622d8eef",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/mySecondResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint2"
+ },
+ "privateLinkServiceConnectionState": {
+ "actionsRequired": "None",
+ "description": "Auto-Approved",
+ "status": "Approved"
+ }
+ }
+ }
+ ]
+ },
+ "type": "Microsoft.Compute/diskAccesses",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "PrivateEndpoints"
+ },
+ "id": "/subscriptions/{subscription-id}/resourceGroups/mySecondResourceGroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess2",
+ "name": "myDiskAccess2"
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Compute/diskAccesses?$skiptoken={token}"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskEncryptionSetAssociatedResources.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskEncryptionSetAssociatedResources.json
new file mode 100644
index 000000000000..a6ce0eb683d7
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskEncryptionSetAssociatedResources.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskEncryptionSetName": "myDiskEncryptionSet"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk",
+ "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot"
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}/associatedResources?$skiptoken={token}"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskEncryptionSetsInAResourceGroup.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskEncryptionSetsInAResourceGroup.json
new file mode 100644
index 000000000000..6dfbba43554d
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskEncryptionSetsInAResourceGroup.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "activeKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ },
+ "encryptionType": "EncryptionAtRestWithCustomerKey",
+ "previousKeys": [],
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/diskEncryptionSets",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "Encryption"
+ },
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/myDiskEncryptionSet",
+ "name": "myDiskEncryptionSet"
+ },
+ {
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "activeKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault2"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ },
+ "encryptionType": "EncryptionAtRestWithCustomerKey",
+ "previousKeys": [],
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/diskEncryptionSets",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "Encryption"
+ },
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/myDiskEncryptionSet2",
+ "name": "myDiskEncryptionSet2"
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Compute/diskEncryptionSets?$skiptoken={token}"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskEncryptionSetsInASubscription.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskEncryptionSetsInASubscription.json
new file mode 100644
index 000000000000..00713b44d520
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListDiskEncryptionSetsInASubscription.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "api-version": "2020-06-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "activeKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ },
+ "encryptionType": "EncryptionAtRestWithCustomerKey",
+ "previousKeys": [],
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/diskEncryptionSets",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "Encryption"
+ },
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/myDiskEncryptionSet",
+ "name": "myDiskEncryptionSet"
+ },
+ {
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "activeKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/mySecondResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault2"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ },
+ "encryptionType": "EncryptionAtRestWithCustomerKey",
+ "previousKeys": [],
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/diskEncryptionSets",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "Encryption"
+ },
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/mySecondResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/myDiskEncryptionSet2",
+ "name": "myDiskEncryptionSet2"
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Compute/diskEncryptionSets?$skiptoken={token}"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListManagedDisksInAResourceGroup.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListManagedDisksInAResourceGroup.json
new file mode 100644
index 000000000000..f74e45c654c0
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListManagedDisksInAResourceGroup.json
@@ -0,0 +1,120 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "osType": "Windows",
+ "creationData": {
+ "createOption": "Copy",
+ "sourceResourceId": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk"
+ },
+ "diskSizeGB": 200,
+ "encryptionSettingsCollection": {
+ "enabled": true,
+ "encryptionSettings": [
+ {
+ "diskEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "secretUrl": "https://myvmvault.vault-int.azure-int.net/secrets/{secret}"
+ },
+ "keyEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ }
+ }
+ ]
+ },
+ "encryption": {
+ "type": "EncryptionAtRestWithPlatformKey"
+ },
+ "timeCreated": "2016-12-28T04:41:35.9278721+00:00",
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/disks",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "ManagedDisks"
+ },
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk",
+ "name": "myManagedDisk1"
+ },
+ {
+ "properties": {
+ "osType": "Windows",
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 10,
+ "encryption": {
+ "type": "EncryptionAtRestWithPlatformKey"
+ },
+ "timeCreated": "2016-12-28T04:41:36.872242+00:00",
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/disks",
+ "location": "westus",
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk",
+ "name": "myManagedDisk2"
+ },
+ {
+ "properties": {
+ "osType": "Windows",
+ "creationData": {
+ "createOption": "FromImage",
+ "imageReference": {
+ "id": "/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/uswest/Publishers/Microsoft/ArtifactTypes/VMImage/Offers/{offer}"
+ }
+ },
+ "diskSizeGB": 200,
+ "encryptionSettingsCollection": {
+ "enabled": true,
+ "encryptionSettings": [
+ {
+ "diskEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "secretUrl": "https://myvmvault.vault-int.azure-int.net/secrets/{secret}"
+ },
+ "keyEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ }
+ }
+ ]
+ },
+ "encryption": {
+ "type": "EncryptionAtRestWithPlatformKey"
+ },
+ "timeCreated": "2016-12-28T04:41:36.3973934+00:00",
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/disks",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "ManagedDisks"
+ },
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk",
+ "name": "myManagedDisk3"
+ }
+ ],
+ "nextLink": "http://disksvchost:99/subscriptions/{subscriptionId}/providers/Microsoft.Compute/disks?$skiptoken={token}/Subscriptions/{subscriptionId}/ResourceGroups/myResourceGroup/Disks/myManagedDisk"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListManagedDisksInASubscription.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListManagedDisksInASubscription.json
new file mode 100644
index 000000000000..459fe55fd6d9
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListManagedDisksInASubscription.json
@@ -0,0 +1,119 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "api-version": "2020-06-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "osType": "Windows",
+ "creationData": {
+ "createOption": "Copy",
+ "sourceResourceId": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk1"
+ },
+ "diskSizeGB": 200,
+ "encryptionSettingsCollection": {
+ "enabled": true,
+ "encryptionSettings": [
+ {
+ "diskEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "secretUrl": "https://myvmvault.vault-int.azure-int.net/secrets/{secret}"
+ },
+ "keyEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ }
+ }
+ ]
+ },
+ "encryption": {
+ "type": "EncryptionAtRestWithPlatformKey"
+ },
+ "timeCreated": "2016-12-28T04:41:35.9278721+00:00",
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/disks",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "ManagedDisks"
+ },
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk1",
+ "name": "myManagedDisk1"
+ },
+ {
+ "properties": {
+ "osType": "Windows",
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 10,
+ "encryption": {
+ "type": "EncryptionAtRestWithPlatformKey"
+ },
+ "timeCreated": "2016-12-28T04:41:36.872242+00:00",
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/disks",
+ "location": "westus",
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk2",
+ "name": "myManagedDisk2"
+ },
+ {
+ "properties": {
+ "osType": "Windows",
+ "creationData": {
+ "createOption": "FromImage",
+ "imageReference": {
+ "id": "/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/uswest/Publishers/Microsoft/ArtifactTypes/VMImage/Offers/{offer}"
+ }
+ },
+ "diskSizeGB": 200,
+ "encryptionSettingsCollection": {
+ "enabled": true,
+ "encryptionSettings": [
+ {
+ "diskEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "secretUrl": "https://myvmvault.vault-int.azure-int.net/secrets/{secret}"
+ },
+ "keyEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ }
+ }
+ ]
+ },
+ "encryption": {
+ "type": "EncryptionAtRestWithPlatformKey"
+ },
+ "timeCreated": "2016-12-28T04:41:36.3973934+00:00",
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/disks",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "ManagedDisks"
+ },
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk3",
+ "name": "myManagedDisk3"
+ }
+ ],
+ "nextLink": "http://disksvchost:99/subscriptions/{subscriptionId}/providers/Microsoft.Compute/disks?$skiptoken={token}/Subscriptions/{subscriptionId}/ResourceGroups/myResourceGroup/Disks/myManagedDisk"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListSnapshotsInAResourceGroup.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListSnapshotsInAResourceGroup.json
new file mode 100644
index 000000000000..0874439e3ab8
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListSnapshotsInAResourceGroup.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "osType": "Windows",
+ "creationData": {
+ "createOption": "Copy",
+ "sourceResourceId": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot"
+ },
+ "diskSizeGB": 200,
+ "encryptionSettingsCollection": {
+ "enabled": true,
+ "encryptionSettings": [
+ {
+ "diskEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "secretUrl": "https://myvmvault.vault-int.azure-int.net/secrets/{secret}"
+ },
+ "keyEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ }
+ }
+ ]
+ },
+ "encryption": {
+ "type": "EncryptionAtRestWithPlatformKey"
+ },
+ "timeCreated": "2016-12-28T04:41:35.9278721+00:00",
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/snapshots",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "Snapshots"
+ },
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot",
+ "name": "mySnapshot"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListSnapshotsInASubscription.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListSnapshotsInASubscription.json
new file mode 100644
index 000000000000..d7c9b1c683bc
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/ListSnapshotsInASubscription.json
@@ -0,0 +1,99 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "api-version": "2020-06-30"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "osType": "Windows",
+ "creationData": {
+ "createOption": "Copy",
+ "sourceResourceId": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot"
+ },
+ "diskSizeGB": 200,
+ "encryptionSettingsCollection": {
+ "enabled": true,
+ "encryptionSettings": [
+ {
+ "diskEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "secretUrl": "https://myvmvault.vault-int.azure-int.net/secrets/{secret}"
+ },
+ "keyEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ }
+ }
+ ]
+ },
+ "encryption": {
+ "type": "EncryptionAtRestWithPlatformKey"
+ },
+ "timeCreated": "2016-12-28T04:47:30.6630569+00:00",
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/snapshots",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "Snapshots"
+ },
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot1",
+ "name": "mySnapshot1"
+ },
+ {
+ "properties": {
+ "osType": "Windows",
+ "creationData": {
+ "createOption": "Import",
+ "storageAccountId": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
+ "sourceUri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"
+ },
+ "diskSizeGB": 200,
+ "encryptionSettingsCollection": {
+ "enabled": true,
+ "encryptionSettings": [
+ {
+ "diskEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "secretUrl": "https://myvmvault.vault-int.azure-int.net/secrets/{secret}"
+ },
+ "keyEncryptionKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ }
+ }
+ ]
+ },
+ "encryption": {
+ "type": "EncryptionAtRestWithPlatformKey"
+ },
+ "timeCreated": "2016-12-28T04:47:30.3247198+00:00",
+ "provisioningState": "Succeeded"
+ },
+ "type": "Microsoft.Compute/snapshots",
+ "location": "westus",
+ "tags": {
+ "department": "Development",
+ "project": "Snapshots"
+ },
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot2",
+ "name": "mySnapshot2"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/UpdateADiskAccess.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/UpdateADiskAccess.json
new file mode 100644
index 000000000000..c7a4b67d60c4
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/UpdateADiskAccess.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskAccessName": "myDiskAccess",
+ "diskAccess": {
+ "tags": {
+ "department": "Development",
+ "project": "PrivateEndpoints"
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "name": "myDiskAccess",
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourcegroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess",
+ "type": "Microsoft.Compute/diskAccesses",
+ "location": "West US",
+ "tags": {
+ "department": "Development",
+ "project": "PrivateEndpoints"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "myDiskAccess",
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourcegroup/providers/Microsoft.Compute/diskAccesses/myDiskAccess",
+ "type": "Microsoft.Compute/diskAccesses",
+ "location": "West US",
+ "tags": {
+ "department": "Development",
+ "project": "PrivateEndpoints"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/UpdateADiskEncryptionSet.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/UpdateADiskEncryptionSet.json
new file mode 100644
index 000000000000..e224ff0d64bf
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/UpdateADiskEncryptionSet.json
@@ -0,0 +1,71 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskEncryptionSetName": "myDiskEncryptionSet",
+ "diskEncryptionSet": {
+ "properties": {
+ "activeKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ },
+ "encryptionType": "EncryptionAtRestWithCustomerKey"
+ },
+ "tags": {
+ "department": "Development",
+ "project": "Encryption"
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "name": "myDiskEncryptionSet",
+ "location": "West US",
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "activeKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ },
+ "encryptionType": "EncryptionAtRestWithCustomerKey",
+ "previousKeys": []
+ },
+ "tags": {
+ "department": "Development",
+ "project": "Encryption"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "name": "myDiskEncryptionSet",
+ "location": "West US",
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "activeKey": {
+ "sourceVault": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVMVault"
+ },
+ "keyUrl": "https://myvmvault.vault-int.azure-int.net/keys/{key}"
+ },
+ "encryptionType": "EncryptionAtRestWithCustomerKey",
+ "previousKeys": []
+ },
+ "tags": {
+ "department": "Development",
+ "project": "Encryption"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/UpdateAManagedDiskToRemoveDiskAccess.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/UpdateAManagedDiskToRemoveDiskAccess.json
new file mode 100644
index 000000000000..9a3a372e812d
--- /dev/null
+++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2020-06-30/examples/UpdateAManagedDiskToRemoveDiskAccess.json
@@ -0,0 +1,43 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-06-30",
+ "diskName": "myDisk",
+ "disk": {
+ "properties": {
+ "networkAccessPolicy": "AllowAll"
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 200,
+ "provisioningState": "Updating",
+ "networkAccessPolicy": "AllowAll"
+ },
+ "location": "West US",
+ "name": "myDisk"
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "creationData": {
+ "createOption": "Empty"
+ },
+ "diskSizeGB": 200,
+ "provisioningState": "Succeeded",
+ "networkAccessPolicy": "AllowAll"
+ },
+ "location": "West US",
+ "name": "myDisk"
+ }
+ }
+ }
+}
diff --git a/specification/compute/resource-manager/readme.azureresourceschema.md b/specification/compute/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..81b6c3e59c77
--- /dev/null
+++ b/specification/compute/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,308 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-containerservice-2017-01-31
+ - tag: schema-containerservice-2016-09-30
+ - tag: schema-containerservice-2016-03-30
+ - tag: schema-containerservice-2015-11-01-preview
+ - tag: schema-compute-2020-09-30
+ - tag: schema-compute-2020-06-30
+ - tag: schema-compute-2020-06-01
+ - tag: schema-compute-2020-05-01
+ - tag: schema-compute-2019-12-01
+ - tag: schema-compute-2019-11-01
+ - tag: schema-compute-2019-07-01
+ - tag: schema-compute-2019-04-01
+ - tag: schema-compute-2019-03-01
+ - tag: schema-compute-2018-10-01
+ - tag: schema-compute-2018-09-30
+ - tag: schema-compute-2018-06-01
+ - tag: schema-compute-2018-04-01
+ - tag: schema-compute-2017-12-01
+ - tag: schema-compute-2017-09-01
+ - tag: schema-compute-2017-03-30
+ - tag: schema-compute-2016-04-30-preview
+ - tag: schema-compute-2016-03-30
+ - tag: schema-compute-2015-06-15
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-containerservice-2017-01-31 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2017-01-31' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2017-01-31/containerService.json
+
+```
+
+### Tag: schema-containerservice-2016-09-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2016-09-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2016-09-30/containerService.json
+
+```
+
+### Tag: schema-containerservice-2016-03-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2016-03-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2016-03-30/containerService.json
+
+```
+
+### Tag: schema-containerservice-2015-11-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2015-11-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/preview/2015-11-01-preview/containerService.json
+
+```
+
+### Tag: schema-compute-2020-09-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2020-09-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/preview/2020-09-30/gallery.json
+ - Microsoft.Compute/preview/2020-09-30/sharedGallery.json
+
+```
+
+### Tag: schema-compute-2020-06-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2020-06-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2020-06-30/disk.json
+
+```
+
+### Tag: schema-compute-2020-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2020-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2020-06-01/compute.json
+ - Microsoft.Compute/stable/2020-06-01/runCommands.json
+
+```
+
+### Tag: schema-compute-2020-05-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2020-05-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2020-05-01/disk.json
+
+```
+
+### Tag: schema-compute-2019-12-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2019-12-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2019-12-01/gallery.json
+ - Microsoft.Compute/stable/2019-12-01/compute.json
+ - Microsoft.Compute/stable/2019-12-01/runCommands.json
+
+```
+
+### Tag: schema-compute-2019-11-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2019-11-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2019-11-01/disk.json
+
+```
+
+### Tag: schema-compute-2019-07-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2019-07-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2019-07-01/compute.json
+ - Microsoft.Compute/stable/2019-07-01/runCommands.json
+ - Microsoft.Compute/stable/2019-07-01/gallery.json
+ - Microsoft.Compute/stable/2019-07-01/disk.json
+
+```
+
+### Tag: schema-compute-2019-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2019-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2019-04-01/skus.json
+
+```
+
+### Tag: schema-compute-2019-03-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2019-03-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2019-03-01/compute.json
+ - Microsoft.Compute/stable/2019-03-01/runCommands.json
+ - Microsoft.Compute/stable/2019-03-01/disk.json
+ - Microsoft.Compute/stable/2019-03-01/gallery.json
+
+```
+
+### Tag: schema-compute-2018-10-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2018-10-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2018-10-01/compute.json
+ - Microsoft.Compute/stable/2018-10-01/runCommands.json
+
+```
+
+### Tag: schema-compute-2018-09-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2018-09-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2018-09-30/disk.json
+
+```
+
+### Tag: schema-compute-2018-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2018-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2018-06-01/gallery.json
+ - Microsoft.Compute/stable/2018-06-01/disk.json
+ - Microsoft.Compute/stable/2018-06-01/compute.json
+ - Microsoft.Compute/stable/2018-06-01/runCommands.json
+
+```
+
+### Tag: schema-compute-2018-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2018-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2018-04-01/compute.json
+ - Microsoft.Compute/stable/2018-04-01/runCommands.json
+ - Microsoft.Compute/stable/2018-04-01/disk.json
+
+```
+
+### Tag: schema-compute-2017-12-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2017-12-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2017-12-01/compute.json
+ - Microsoft.Compute/stable/2017-12-01/runCommands.json
+
+```
+
+### Tag: schema-compute-2017-09-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2017-09-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2017-09-01/skus.json
+
+```
+
+### Tag: schema-compute-2017-03-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2017-03-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2017-03-30/disk.json
+ - Microsoft.Compute/stable/2017-03-30/compute.json
+ - Microsoft.Compute/stable/2017-03-30/runCommands.json
+
+```
+
+### Tag: schema-compute-2016-04-30-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2016-04-30-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/preview/2016-04-30-preview/compute.json
+ - Microsoft.Compute/preview/2016-04-30-preview/disk.json
+
+```
+
+### Tag: schema-compute-2016-03-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2016-03-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2016-03-30/compute.json
+
+```
+
+### Tag: schema-compute-2015-06-15 and azureresourceschema
+
+``` yaml $(tag) == 'schema-compute-2015-06-15' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Compute/stable/2015-06-15/compute.json
+
+```
diff --git a/specification/compute/resource-manager/readme.md b/specification/compute/resource-manager/readme.md
index ffe6a70bb98a..052addaaae0f 100644
--- a/specification/compute/resource-manager/readme.md
+++ b/specification/compute/resource-manager/readme.md
@@ -34,7 +34,7 @@ These are the global settings for the Compute API.
title: ComputeManagementClient
description: Compute Client
openapi-type: arm
-tag: package-2020-06-01
+tag: package-2020-06-30
directive:
- where:
@@ -209,6 +209,53 @@ directive:
- ACS service is deprecated so a PATCH endpoint won't be implemented
```
+### Tag: package-2020-06-30
+
+These settings apply only when `--tag=package-2020-06-30` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-06-30'
+input-file:
+- Microsoft.Compute/stable/2020-06-01/compute.json
+- Microsoft.Compute/stable/2020-06-01/runCommands.json
+- Microsoft.Compute/stable/2019-04-01/skus.json
+- Microsoft.Compute/stable/2020-06-30/disk.json
+- Microsoft.Compute/stable/2019-12-01/gallery.json
+- Microsoft.ContainerService/stable/2017-01-31/containerService.json
+```
+
+### Tag: package-2020-06-30-only
+
+These settings apply only when `--tag=package-2020-06-30-only` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-06-30-only'
+input-file:
+- Microsoft.Compute/stable/2020-06-30/disk.json
+```
+
+### Tag: package-2020-09-30
+
+These settings apply only when `--tag=package-2020-09-30` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-09-30'
+input-file:
+- Microsoft.Compute/stable/2020-06-01/compute.json
+- Microsoft.Compute/stable/2020-06-01/runCommands.json
+- Microsoft.Compute/stable/2019-04-01/skus.json
+- Microsoft.Compute/stable/2020-05-01/disk.json
+- Microsoft.Compute/preview/2020-09-30/gallery.json
+- Microsoft.Compute/preview/2020-09-30/sharedGallery.json
+- Microsoft.ContainerService/stable/2017-01-31/containerService.json
+```
+
+### Tag: package-2020-09-30-only
+
+These settings apply only when `--tag=package-2020-09-30-only` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-09-30-only'
+input-file:
+- Microsoft.Compute/preview/2020-09-30/gallery.json
+- Microsoft.Compute/preview/2020-09-30/sharedGallery.json
+```
### Tag: package-2020-06-01
@@ -712,6 +759,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_compute']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js compute/resource-manager
```
## Go
@@ -736,12 +786,26 @@ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-compute
```yaml $(java) && $(multiapi)
batch:
+ - tag: package-2020-06-01
- tag: package-disks-2018-04
- tag: package-compute-only-2017-12
- tag: package-skus-2017-09
- tag: package-compute-2017-03
```
+### Tag: package-2020-06-01 and java
+
+These settings apply only when `--tag=package-2020-06-01 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2020-06-01' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.compute.v2020_06_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/compute/mgmt-v2020_06_01
+regenerate-manager: true
+generate-interface: true
+```
+
### Tag: package-disks-2018-04 and java
These settings apply only when `--tag=package-disks-2018-04 --java` is specified on the command line.
@@ -805,66 +869,7 @@ input-file:
- Microsoft.Compute/stable/2017-03-30/disk.json
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Compute/stable/2020-06-01/compute.json
- - $(this-folder)/Microsoft.Compute/stable/2020-06-01/runCommands.json
- - $(this-folder)/Microsoft.Compute/stable/2019-04-01/skus.json
- - $(this-folder)/Microsoft.Compute/stable/2020-05-01/disk.json
- - $(this-folder)/Microsoft.Compute/stable/2019-12-01/gallery.json
- - $(this-folder)/Microsoft.ContainerService/stable/2017-01-31/containerService.json
- - $(this-folder)/Microsoft.Compute/stable/2019-12-01/compute.json
- - $(this-folder)/Microsoft.Compute/stable/2019-12-01/runCommands.json
- - $(this-folder)/Microsoft.Compute/stable/2019-11-01/disk.json
- - $(this-folder)/Microsoft.Compute/stable/2019-07-01/compute.json
- - $(this-folder)/Microsoft.Compute/stable/2019-07-01/runCommands.json
- - $(this-folder)/Microsoft.Compute/stable/2019-07-01/gallery.json
- - $(this-folder)/Microsoft.Compute/stable/2019-07-01/disk.json
- - $(this-folder)/Microsoft.Compute/stable/2019-03-01/compute.json
- - $(this-folder)/Microsoft.Compute/stable/2019-03-01/runCommands.json
- - $(this-folder)/Microsoft.Compute/stable/2019-03-01/disk.json
- - $(this-folder)/Microsoft.Compute/stable/2019-03-01/gallery.json
- - $(this-folder)/Microsoft.Compute/stable/2018-10-01/compute.json
- - $(this-folder)/Microsoft.Compute/stable/2018-10-01/runCommands.json
- - $(this-folder)/Microsoft.Compute/stable/2017-09-01/skus.json
- - $(this-folder)/Microsoft.Compute/stable/2018-09-30/disk.json
- - $(this-folder)/Microsoft.Compute/stable/2018-06-01/gallery.json
- - $(this-folder)/Microsoft.Compute/stable/2018-06-01/disk.json
- - $(this-folder)/Microsoft.Compute/stable/2018-06-01/compute.json
- - $(this-folder)/Microsoft.Compute/stable/2018-06-01/runCommands.json
- - $(this-folder)/Microsoft.Compute/stable/2018-04-01/compute.json
- - $(this-folder)/Microsoft.Compute/stable/2018-04-01/runCommands.json
- - $(this-folder)/Microsoft.Compute/stable/2018-04-01/disk.json
- - $(this-folder)/Microsoft.Compute/stable/2017-12-01/compute.json
- - $(this-folder)/Microsoft.Compute/stable/2017-12-01/runCommands.json
- - $(this-folder)/Microsoft.Compute/stable/2017-03-30/disk.json
- - $(this-folder)/Microsoft.Compute/stable/2017-03-30/compute.json
- - $(this-folder)/Microsoft.Compute/stable/2017-03-30/runCommands.json
- - $(this-folder)/Microsoft.ContainerService/stable/2016-09-30/containerService.json
- - $(this-folder)/Microsoft.Compute/preview/2016-04-30-preview/compute.json
- - $(this-folder)/Microsoft.Compute/preview/2016-04-30-preview/disk.json
- - $(this-folder)/Microsoft.Compute/stable/2016-03-30/compute.json
- - $(this-folder)/Microsoft.ContainerService/stable/2016-03-30/containerService.json
- - $(this-folder)/Microsoft.ContainerService/preview/2015-11-01-preview/containerService.json
- - $(this-folder)/Microsoft.Compute/stable/2015-06-15/compute.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+## AzureResourceSchema
+
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/compute/resource-manager/readme.python.md b/specification/compute/resource-manager/readme.python.md
index 5d0b014f83e8..53c612d8d114 100644
--- a/specification/compute/resource-manager/readme.python.md
+++ b/specification/compute/resource-manager/readme.python.md
@@ -44,6 +44,7 @@ Generate all API versions currently shipped for this package
```yaml $(multiapi) && !$(track2)
batch:
+ - tag: package-2020-06-30-only
- tag: package-2020-06-01-only
- tag: package-2020-05-01-only
- tag: package-2019-12-01-only
@@ -66,6 +67,7 @@ batch:
```yaml $(multiapi) && $(track2)
clear-output-folder: true
batch:
+ - tag: package-2020-06-30-only
- tag: package-2020-06-01-only
- tag: package-2020-05-01-only
- tag: package-2019-12-01-only
@@ -92,6 +94,19 @@ clear-output-folder: false
perform-load: false
```
+### Tag: package-2020-06-30-only and python
+
+These settings apply only when `--tag=package-2020-06-30-only --python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-06-30-only'
+namespace: azure.mgmt.compute.v2020_06_30
+output-folder: $(python-sdks-folder)/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_06_30
+python:
+ namespace: azure.mgmt.compute.v2020_06_30
+ output-folder: $(python-sdks-folder)/compute/azure-mgmt-compute/azure/mgmt/compute/v2020_06_30
+```
+
### Tag: package-2020-06-01-only and python
These settings apply only when `--tag=package-2020-06-01-only --python` is specified on the command line.
diff --git a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/consumption.json b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/consumption.json
index 071d5f14e011..ee96fd1212d6 100644
--- a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/consumption.json
+++ b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/consumption.json
@@ -792,6 +792,9 @@
},
"ReservationSummariesMonthlyWithBillingProfileId": {
"$ref": "./examples/ReservationSummariesMonthlyWithBillingProfileId.json"
+ },
+ "ReservationSummariesMonthlyWithBillingProfileIdReservationId": {
+ "$ref": "./examples/ReservationSummariesMonthlyWithBillingProfileIdReservationId.json"
}
},
"parameters": [
@@ -824,6 +827,22 @@
"required": false,
"type": "string"
},
+ {
+ "name": "reservationId",
+ "in": "query",
+ "description": "Reservation Id GUID. Only valid if reservationOrderId is also provided. Filter to a specific reservation",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "name": "reservationOrderId",
+ "in": "query",
+ "description": "Reservation Order Id GUID. Required if reservationId is provided. Filter to a specific reservation order",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
{
"$ref": "#/parameters/apiVersionParameter"
}
@@ -868,7 +887,7 @@
},
{
"name": "$filter",
- "description": "Filter reservation details by date range. The properties/UsageDate for start date and end date. The filter supports 'le' and 'ge' ",
+ "description": "Filter reservation details by date range. The properties/UsageDate for start date and end date. The filter supports 'le' and 'ge'",
"in": "query",
"required": true,
"type": "string"
@@ -964,6 +983,9 @@
},
"ReservationDetailsByBillingProfileId": {
"$ref": "./examples/ReservationDetailsByBillingProfileId.json"
+ },
+ "ReservationDetailsByBillingProfileIdReservationId": {
+ "$ref": "./examples/ReservationDetailsByBillingProfileIdReservationId.json"
}
},
"parameters": [
@@ -993,6 +1015,22 @@
"required": false,
"type": "string"
},
+ {
+ "name": "reservationId",
+ "in": "query",
+ "description": "Reservation Id GUID. Only valid if reservationOrderId is also provided. Filter to a specific reservation",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ {
+ "name": "reservationOrderId",
+ "in": "query",
+ "description": "Reservation Order Id GUID. Required if reservationId is provided. Filter to a specific reservation order",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
{
"$ref": "#/parameters/apiVersionParameter"
}
diff --git a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationDetailsByBillingProfileIdReservationId.json b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationDetailsByBillingProfileIdReservationId.json
new file mode 100644
index 000000000000..b6c7a8324acf
--- /dev/null
+++ b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationDetailsByBillingProfileIdReservationId.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "api-version": "2019-10-01",
+ "scope": "providers/Microsoft.Billing/billingAccounts/12345:2468/billingProfiles/13579",
+ "startDate": "2019-09-01",
+ "endDate": "2019-10-31",
+ "reservationId": "1c6b6358-709f-484c-85f1-72e862a0cf3b",
+ "reservationOrderId": "9f39ba10-794f-4dcb-8f4b-8d0cb47c27dc"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/providers/Microsoft.Billing/billingAccounts/12345:2468/billingProfiles/13579/providers/Microsoft.Consumption/reservationDetails/reservationDetails_Id1",
+ "name": "reservationDetails_Id1",
+ "type": "Microsoft.Consumption/reservationDetails",
+ "tags": null,
+ "properties": {
+ "reservationOrderId": "9f39ba10-794f-4dcb-8f4b-8d0cb47c27dc",
+ "reservationId": "1c6b6358-709f-484c-85f1-72e862a0cf3b",
+ "usageDate": "2019-09-30T00:00:00-08:00",
+ "skuName": "Standard_D2s_v3",
+ "instanceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/sqlh1/providers/microsoft.compute/virtualmachines/sqlh1",
+ "totalReservedQuantity": 0,
+ "reservedHours": 48,
+ "usedHours": 0.6,
+ "instanceFlexibilityGroup": "DSv3 Series",
+ "instanceFlexibilityRatio": "1"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationSummariesMonthlyWithBillingProfileIdReservationId.json b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationSummariesMonthlyWithBillingProfileIdReservationId.json
new file mode 100644
index 000000000000..4d7621b008d8
--- /dev/null
+++ b/specification/consumption/resource-manager/Microsoft.Consumption/stable/2019-10-01/examples/ReservationSummariesMonthlyWithBillingProfileIdReservationId.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "api-version": "2019-10-01",
+ "scope": "providers/Microsoft.Billing/billingAccounts/12345:2468/billingProfiles/13579",
+ "grain": "monthly",
+ "reservationId": "1c6b6358-709f-484c-85f1-72e862a0cf3b",
+ "reservationOrderId": "9f39ba10-794f-4dcb-8f4b-8d0cb47c27dc"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/providers/Microsoft.Billing/billingAccounts/12345:2468/billingProfiles/13579/providers/Microsoft.Consumption/reservationSummaries/reservationSummaries_Id1",
+ "name": "reservationSummaries_Id1",
+ "type": "Microsoft.Consumption/reservationSummaries",
+ "tags": null,
+ "properties": {
+ "reservationOrderId": "9f39ba10-794f-4dcb-8f4b-8d0cb47c27dc",
+ "reservationId": "1c6b6358-709f-484c-85f1-72e862a0cf3b",
+ "skuName": "Standard_B1s",
+ "reservedHours": 720,
+ "usageDate": "2018-09-01T00:00:00-07:00",
+ "usedHours": 0,
+ "minUtilizationPercentage": 0,
+ "avgUtilizationPercentage": 0,
+ "maxUtilizationPercentage": 0
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/consumption/resource-manager/readme.azureresourceschema.md b/specification/consumption/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..cdf86806a081
--- /dev/null
+++ b/specification/consumption/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,204 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-consumption-2019-10-01
+ - tag: schema-consumption-2019-06-01
+ - tag: schema-consumption-2019-05-01-preview
+ - tag: schema-consumption-2019-05-01
+ - tag: schema-consumption-2019-04-01-preview
+ - tag: schema-consumption-2019-01-01
+ - tag: schema-consumption-2018-11-01-preview
+ - tag: schema-consumption-2018-10-01
+ - tag: schema-consumption-2018-08-31
+ - tag: schema-consumption-2018-06-30
+ - tag: schema-consumption-2018-05-31
+ - tag: schema-consumption-2018-03-31
+ - tag: schema-consumption-2018-01-31
+ - tag: schema-consumption-2017-12-30-preview
+ - tag: schema-consumption-2017-11-30
+ - tag: schema-consumption-2017-04-24-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-consumption-2019-10-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2019-10-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/stable/2019-10-01/consumption.json
+
+```
+
+### Tag: schema-consumption-2019-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2019-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/stable/2019-06-01/consumption.json
+
+```
+
+### Tag: schema-consumption-2019-05-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2019-05-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/preview/2019-05-01-preview/consumption.json
+
+```
+
+### Tag: schema-consumption-2019-05-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2019-05-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/stable/2019-05-01/consumption.json
+
+```
+
+### Tag: schema-consumption-2019-04-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2019-04-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/preview/2019-04-01-preview/consumption.json
+
+```
+
+### Tag: schema-consumption-2019-01-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2019-01-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/stable/2019-01-01/consumption.json
+
+```
+
+### Tag: schema-consumption-2018-11-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2018-11-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/preview/2018-11-01-preview/consumption.json
+
+```
+
+### Tag: schema-consumption-2018-10-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2018-10-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/stable/2018-10-01/consumption.json
+
+```
+
+### Tag: schema-consumption-2018-08-31 and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2018-08-31' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/stable/2018-08-31/consumption.json
+
+```
+
+### Tag: schema-consumption-2018-06-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2018-06-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/stable/2018-06-30/consumption.json
+
+```
+
+### Tag: schema-consumption-2018-05-31 and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2018-05-31' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/stable/2018-05-31/consumption.json
+
+```
+
+### Tag: schema-consumption-2018-03-31 and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2018-03-31' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/stable/2018-03-31/consumption.json
+
+```
+
+### Tag: schema-consumption-2018-01-31 and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2018-01-31' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/stable/2018-01-31/consumption.json
+
+```
+
+### Tag: schema-consumption-2017-12-30-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2017-12-30-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/preview/2017-12-30-preview/consumption.json
+
+```
+
+### Tag: schema-consumption-2017-11-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2017-11-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/stable/2017-11-30/consumption.json
+
+```
+
+### Tag: schema-consumption-2017-04-24-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-consumption-2017-04-24-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Consumption/preview/2017-04-24-preview/consumption.json
+
+```
diff --git a/specification/consumption/resource-manager/readme.go.md b/specification/consumption/resource-manager/readme.go.md
index 2cd5284033ad..a0de97215d8d 100644
--- a/specification/consumption/resource-manager/readme.go.md
+++ b/specification/consumption/resource-manager/readme.go.md
@@ -22,8 +22,17 @@ batch:
- tag: package-2018-08
- tag: package-2018-10
- tag: package-2019-01
+ - tag: package-2019-10
```
+### Tag: package-2019-10 and go
+
+These settings apply only when `--tag=package-2019-10 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2019-10' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2019-10-01/$(namespace)
+```
### Tag: package-2017-04-preview and go
diff --git a/specification/consumption/resource-manager/readme.md b/specification/consumption/resource-manager/readme.md
index 645375a2b3dd..575e341b41c9 100644
--- a/specification/consumption/resource-manager/readme.md
+++ b/specification/consumption/resource-manager/readme.md
@@ -219,6 +219,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_consumption']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js consumption/resource-manager
```
## C#
@@ -404,41 +407,7 @@ regenerate-manager: true
generate-interface: true
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Consumption/stable/2019-10-01/consumption.json
- - $(this-folder)/Microsoft.Consumption/stable/2019-06-01/consumption.json
- - $(this-folder)/Microsoft.Consumption/stable/2019-05-01/consumption.json
- - $(this-folder)/Microsoft.Consumption/preview/2019-05-01-preview/consumption.json
- - $(this-folder)/Microsoft.Consumption/preview/2019-04-01-preview/consumption.json
- - $(this-folder)/Microsoft.Consumption/preview/2018-11-01-preview/consumption.json
- - $(this-folder)/Microsoft.Consumption/stable/2019-01-01/consumption.json
- - $(this-folder)/Microsoft.Consumption/stable/2017-11-30/consumption.json
- - $(this-folder)/Microsoft.Consumption/stable/2018-01-31/consumption.json
- - $(this-folder)/Microsoft.Consumption/stable/2018-03-31/consumption.json
- - $(this-folder)/Microsoft.Consumption/stable/2018-05-31/consumption.json
- - $(this-folder)/Microsoft.Consumption/stable/2018-06-30/consumption.json
- - $(this-folder)/Microsoft.Consumption/stable/2018-08-31/consumption.json
- - $(this-folder)/Microsoft.Consumption/stable/2018-10-01/consumption.json
- - $(this-folder)/Microsoft.Consumption/preview/2017-04-24-preview/consumption.json
- - $(this-folder)/Microsoft.Consumption/preview/2017-12-30-preview/consumption.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
diff --git a/specification/containerinstance/resource-manager/readme.azureresourceschema.md b/specification/containerinstance/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..60456759fd2a
--- /dev/null
+++ b/specification/containerinstance/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,120 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-containerinstance-2019-12-01
+ - tag: schema-containerinstance-2018-10-01
+ - tag: schema-containerinstance-2018-09-01
+ - tag: schema-containerinstance-2018-06-01
+ - tag: schema-containerinstance-2018-04-01
+ - tag: schema-containerinstance-2018-02-01-preview
+ - tag: schema-containerinstance-2017-12-01-preview
+ - tag: schema-containerinstance-2017-10-01-preview
+ - tag: schema-containerinstance-2017-08-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-containerinstance-2019-12-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerinstance-2019-12-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerInstance/stable/2019-12-01/containerInstance.json
+
+```
+
+### Tag: schema-containerinstance-2018-10-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerinstance-2018-10-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerInstance/stable/2018-10-01/containerInstance.json
+
+```
+
+### Tag: schema-containerinstance-2018-09-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerinstance-2018-09-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerInstance/stable/2018-09-01/containerInstance.json
+
+```
+
+### Tag: schema-containerinstance-2018-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerinstance-2018-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerInstance/stable/2018-06-01/containerInstance.json
+
+```
+
+### Tag: schema-containerinstance-2018-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerinstance-2018-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerInstance/stable/2018-04-01/containerInstance.json
+
+```
+
+### Tag: schema-containerinstance-2018-02-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerinstance-2018-02-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerInstance/preview/2018-02-01-preview/containerInstance.json
+
+```
+
+### Tag: schema-containerinstance-2017-12-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerinstance-2017-12-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerInstance/preview/2017-12-01-preview/containerInstance.json
+
+```
+
+### Tag: schema-containerinstance-2017-10-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerinstance-2017-10-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerInstance/preview/2017-10-01-preview/containerInstance.json
+
+```
+
+### Tag: schema-containerinstance-2017-08-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerinstance-2017-08-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerInstance/preview/2017-08-01-preview/containerInstance.json
+
+```
diff --git a/specification/containerinstance/resource-manager/readme.md b/specification/containerinstance/resource-manager/readme.md
index 0aa15d6d6fee..f2c0f633cb1a 100644
--- a/specification/containerinstance/resource-manager/readme.md
+++ b/specification/containerinstance/resource-manager/readme.md
@@ -140,6 +140,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_container_instance']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js containerinstance/resource-manager
```
## C#
@@ -171,34 +174,7 @@ See configuration in [readme.ruby.md](./readme.ruby.md)
See configuration in [readme.typescript.md](./readme.typescript.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.ContainerInstance/stable/2019-12-01/containerInstance.json
- - $(this-folder)/Microsoft.ContainerInstance/stable/2018-10-01/containerInstance.json
- - $(this-folder)/Microsoft.ContainerInstance/stable/2018-09-01/containerInstance.json
- - $(this-folder)/Microsoft.ContainerInstance/stable/2018-06-01/containerInstance.json
- - $(this-folder)/Microsoft.ContainerInstance/stable/2018-04-01/containerInstance.json
- - $(this-folder)/Microsoft.ContainerInstance/preview/2018-02-01-preview/containerInstance.json
- - $(this-folder)/Microsoft.ContainerInstance/preview/2017-12-01-preview/containerInstance.json
- - $(this-folder)/Microsoft.ContainerInstance/preview/2017-10-01-preview/containerInstance.json
- - $(this-folder)/Microsoft.ContainerInstance/preview/2017-08-01-preview/containerInstance.json
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-```
-
-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/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/containerregistry_build.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/containerregistry_build.json
index 8f4a653587c2..33c8f670d108 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/containerregistry_build.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/containerregistry_build.json
@@ -382,6 +382,9 @@
},
"Registries_ScheduleRun_WithCustomCredentials": {
"$ref": "./examples/RegistriesScheduleRun_WithCustomCredentials.json"
+ },
+ "Registries_ScheduleRun_WithLogTemplate": {
+ "$ref": "./examples/RegistriesScheduleRun_WithLogTemplate.json"
}
}
}
@@ -1154,6 +1157,9 @@
},
"Tasks_Create_WithUserIdentities": {
"$ref": "./examples/ManagedIdentity/TasksCreate_WithUserIdentities.json"
+ },
+ "Tasks_Create_QuickTask": {
+ "$ref": "./examples/TasksCreate_QuickTask.json"
}
}
},
@@ -1269,6 +1275,9 @@
},
"Tasks_Update_WithOpaqueCustomCredentials": {
"$ref": "./examples/TasksUpdate_WithOpaqueCustomCredentials.json"
+ },
+ "Tasks_Update_QuickTask": {
+ "$ref": "./examples/TasksUpdate_QuickTask.json"
}
}
}
@@ -1459,6 +1468,10 @@
"agentPoolName": {
"description": "The dedicated agent pool for the run.",
"type": "string"
+ },
+ "logTemplate": {
+ "description": "The template that describes the repository and tag information for run log artifact.",
+ "type": "string"
}
},
"discriminator": "type"
@@ -1594,6 +1607,11 @@
"description": "The update trigger token passed for the Run.",
"type": "string"
},
+ "logArtifact": {
+ "$ref": "#/definitions/ImageDescriptor",
+ "description": "The image description for the log artifact.",
+ "readOnly": true
+ },
"provisioningState": {
"description": "The provisioning state of a run.",
"enum": [
@@ -2095,10 +2113,6 @@
},
"TaskProperties": {
"description": "The properties of a task.",
- "required": [
- "platform",
- "step"
- ],
"type": "object",
"properties": {
"provisioningState": {
@@ -2167,6 +2181,15 @@
"credentials": {
"$ref": "#/definitions/Credentials",
"description": "The properties that describes a set of credentials that will be used when this run is invoked."
+ },
+ "logTemplate": {
+ "description": "The template that describes the repository and tag information for run log artifact.",
+ "type": "string"
+ },
+ "isSystemTask": {
+ "description": "The value of this property indicates whether the task resource is system task or not.",
+ "default": false,
+ "type": "boolean"
}
}
},
@@ -2614,6 +2637,10 @@
"credentials": {
"$ref": "#/definitions/Credentials",
"description": "The parameters that describes a set of credentials that will be used when this run is invoked."
+ },
+ "logTemplate": {
+ "description": "The template that describes the repository and tag information for run log artifact.",
+ "type": "string"
}
}
},
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksCreate_WithSystemAndUserIdentities.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksCreate_WithSystemAndUserIdentities.json
index 98a8d6b98259..c19f52749dc3 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksCreate_WithSystemAndUserIdentities.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksCreate_WithSystemAndUserIdentities.json
@@ -67,7 +67,9 @@
"updateTriggerEndpoint": "https://user:pass@mycicd.webhook.com?token=foo",
"updateTriggerPayloadType": "Default"
}
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": null
},
"location": "eastus",
"identity": {
@@ -141,7 +143,9 @@
"updateTriggerEndpoint": null,
"updateTriggerPayloadType": "Default"
}
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": null
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
@@ -222,7 +226,9 @@
"updateTriggerEndpoint": null,
"updateTriggerPayloadType": "Default"
}
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": null
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksCreate_WithSystemIdentity.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksCreate_WithSystemIdentity.json
index eeeb532c2556..d17ccca5c89f 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksCreate_WithSystemIdentity.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksCreate_WithSystemIdentity.json
@@ -65,7 +65,9 @@
"name": "myBaseImageTrigger",
"baseImageTriggerType": "Runtime"
}
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": null
},
"location": "eastus",
"identity": {
@@ -134,7 +136,9 @@
"status": "Enabled",
"baseImageTriggerType": "Runtime"
}
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": null
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
@@ -207,7 +211,9 @@
"status": "Enabled",
"baseImageTriggerType": "Runtime"
}
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": null
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksCreate_WithUserIdentities.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksCreate_WithUserIdentities.json
index 06577bf137e2..faf70131a4de 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksCreate_WithUserIdentities.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksCreate_WithUserIdentities.json
@@ -67,7 +67,9 @@
"updateTriggerEndpoint": "https://user:pass@mycicd.webhook.com?token=foo",
"updateTriggerPayloadType": "Default"
}
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": null
},
"location": "eastus",
"identity": {
@@ -142,7 +144,9 @@
"updateTriggerEndpoint": null,
"updateTriggerPayloadType": "Default"
}
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": null
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
@@ -225,7 +229,9 @@
"updateTriggerEndpoint": null,
"updateTriggerPayloadType": "Default"
}
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": null
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksUpdate_WithKeyVaultCustomCredentials.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksUpdate_WithKeyVaultCustomCredentials.json
index edbd95c29df8..50ecf2ddaab9 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksUpdate_WithKeyVaultCustomCredentials.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksUpdate_WithKeyVaultCustomCredentials.json
@@ -48,7 +48,8 @@
"identity": "[system]"
}
}
- }
+ },
+ "logTemplate": null
},
"tags": {
"testkey": "value"
@@ -121,7 +122,8 @@
"myregistry.azurecr.io": null
},
"sourceRegistry": null
- }
+ },
+ "logTemplate": null
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
@@ -202,7 +204,8 @@
"myregistry.azurecr.io": null
},
"sourceRegistry": null
- }
+ },
+ "logTemplate": null
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksUpdate_WithMSICustomCredentials.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksUpdate_WithMSICustomCredentials.json
index fc5ca27f5bcd..031821d89740 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksUpdate_WithMSICustomCredentials.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/ManagedIdentity/TasksUpdate_WithMSICustomCredentials.json
@@ -40,7 +40,8 @@
"identity": "[system]"
}
}
- }
+ },
+ "logTemplate": null
},
"tags": {
"testkey": "value"
@@ -111,7 +112,8 @@
"myregistry.azure.io": null
},
"sourceRegistry": null
- }
+ },
+ "logTemplate": null
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
@@ -190,7 +192,8 @@
"myregistry.azure.io": null
},
"sourceRegistry": null
- }
+ },
+ "logTemplate": null
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RegistriesScheduleRun_WithLogTemplate.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RegistriesScheduleRun_WithLogTemplate.json
new file mode 100644
index 000000000000..5f78b70041b5
--- /dev/null
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RegistriesScheduleRun_WithLogTemplate.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "subscriptionId": "4385cf00-2d3a-425a-832f-f4285b1c9dce",
+ "resourceGroupName": "myResourceGroup",
+ "registryName": "myRegistry",
+ "api-version": "2019-06-01-preview",
+ "runRequest": {
+ "type": "DockerBuildRequest",
+ "isArchiveEnabled": true,
+ "imageNames": [
+ "azurerest:testtag"
+ ],
+ "noCache": true,
+ "sourceLocation": "https://myaccount.blob.core.windows.net/sascontainer/source.zip?sv=2015-04-05&st=2015-04-29T22%3A18%3A26Z&se=2015-04-30T02%3A23%3A26Z&sr=b&sp=rw&sip=168.1.5.60-168.1.5.70&spr=https&sig=Z%2FRHIX5Xcg0Mq2rqI3OlWTjEg2tYkboXr1P9ZUXDtkk%3D",
+ "arguments": [
+ {
+ "name": "mytestargument",
+ "value": "mytestvalue",
+ "isSecret": false
+ },
+ {
+ "name": "mysecrettestargument",
+ "value": "mysecrettestvalue",
+ "isSecret": true
+ }
+ ],
+ "isPushEnabled": true,
+ "platform": {
+ "os": "Linux",
+ "architecture": "amd64"
+ },
+ "agentConfiguration": {
+ "cpu": 2
+ },
+ "dockerFilePath": "DockerFile",
+ "logTemplate": "acr/tasks:{{.Run.OS}}"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "runId": "0accec26-d6de-4757-8e74-d080f38eaaab",
+ "status": "Succeeded",
+ "lastUpdatedTime": "2018-01-25T05:13:51.617Z"
+ },
+ "id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/runs/0accec26-d6de-4757-8e74-d080f38eaaab",
+ "name": "0accec26-d6de-4757-8e74-d080f38eaaab",
+ "type": "Microsoft.ContainerRegistry/registries/run"
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RunsGet.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RunsGet.json
index cd6d56392ffd..5df1bb3606f4 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RunsGet.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RunsGet.json
@@ -46,6 +46,12 @@
},
"agentConfiguration": {
"cpu": 2
+ },
+ "logArtifact": {
+ "digest": "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0",
+ "registry": "myregistry",
+ "repository": "acr/tasks",
+ "tag": "mytask-0accec26-d6de-4757-8e74-d080f38eaaab-log"
}
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/runs/0accec26-d6de-4757-8e74-d080f38eaaab",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RunsList.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RunsList.json
index 08cf3291f7c3..59743c38a91d 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RunsList.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RunsList.json
@@ -49,6 +49,12 @@
},
"agentConfiguration": {
"cpu": 2
+ },
+ "logArtifact": {
+ "digest": "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0",
+ "registry": "myregistry",
+ "repository": "acr/tasks",
+ "tag": "mytask-0accec26-d6de-4757-8e74-d080f38eaaab-log"
}
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/runs/0accec26-d6de-4757-8e74-d080f38eaaab",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RunsUpdate.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RunsUpdate.json
index 67554f360bd5..a6f2cc6fbbcb 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RunsUpdate.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/RunsUpdate.json
@@ -49,6 +49,12 @@
},
"agentConfiguration": {
"cpu": 2
+ },
+ "logArtifact": {
+ "digest": "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0",
+ "registry": "myregistry",
+ "repository": "acr/tasks",
+ "tag": "mytask-0accec26-d6de-4757-8e74-d080f38eaaab-log"
}
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/runs/0accec26-d6de-4757-8e74-d080f38eaaab",
@@ -95,6 +101,12 @@
},
"agentConfiguration": {
"cpu": 2
+ },
+ "logArtifact": {
+ "digest": "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0",
+ "registry": "myregistry",
+ "repository": "acr/tasks",
+ "tag": "mytask-0accec26-d6de-4757-8e74-d080f38eaaab-log"
}
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/runs/0accec26-d6de-4757-8e74-d080f38eaaab",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksCreate.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksCreate.json
index 6200b73c0b1e..059a023711c4 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksCreate.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksCreate.json
@@ -67,7 +67,9 @@
"updateTriggerEndpoint": "https://user:pass@mycicd.webhook.com?token=foo",
"updateTriggerPayloadType": "Token"
}
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": "acr/tasks:{{.Run.OS}}"
},
"location": "eastus",
"identity": {
@@ -138,7 +140,9 @@
"updateTriggerEndpoint": null,
"updateTriggerPayloadType": "Token"
}
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": "acr/tasks:{{.Run.OS}}"
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
@@ -213,7 +217,9 @@
"updateTriggerEndpoint": null,
"updateTriggerPayloadType": "Token"
}
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": "acr/tasks:{{.Run.OS}}"
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksCreate_QuickTask.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksCreate_QuickTask.json
new file mode 100644
index 000000000000..1766aa626b10
--- /dev/null
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksCreate_QuickTask.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "subscriptionId": "4385cf00-2d3a-425a-832f-f4285b1c9dce",
+ "resourceGroupName": "myResourceGroup",
+ "registryName": "myRegistry",
+ "api-version": "2019-06-01-preview",
+ "taskName": "quicktask",
+ "taskCreateParameters": {
+ "properties": {
+ "status": "Enabled",
+ "isSystemTask": true,
+ "logTemplate": "acr/tasks:{{.Run.OS}}"
+ },
+ "location": "eastus",
+ "identity": null,
+ "tags": {
+ "testkey": "value"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "creationDate": "2018-01-25T06:54:23.536Z",
+ "status": "Enabled",
+ "platform": null,
+ "agentConfiguration": null,
+ "trigger": null,
+ "isSystemTask": true,
+ "logTemplate": "acr/tasks:{{.Run.OS}}"
+ },
+ "id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
+ "name": "quicktask",
+ "type": "Microsoft.ContainerRegistry/registries/tasks",
+ "location": "eastus",
+ "identity": null,
+ "tags": {
+ "testkey": "value"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "provisioningState": "Creating",
+ "creationDate": "2018-01-25T06:54:23.536Z",
+ "status": "Enabled",
+ "platform": null,
+ "agentConfiguration": null,
+ "trigger": null,
+ "isSystemTask": true,
+ "logTemplate": "acr/tasks:{{.Run.OS}}"
+ },
+ "id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
+ "name": "quicktask",
+ "type": "Microsoft.ContainerRegistry/registries/tasks",
+ "location": "eastus",
+ "identity": null,
+ "tags": {
+ "testkey": "value"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksGet.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksGet.json
index 35233c27670d..76a4c616f2d7 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksGet.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksGet.json
@@ -72,7 +72,9 @@
"myregistry.azure.io": null
},
"sourceRegistry": null
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": null
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksGetDetails.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksGetDetails.json
index a68531461844..c10ac1068236 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksGetDetails.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksGetDetails.json
@@ -89,7 +89,9 @@
}
},
"sourceRegistry": null
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": null
},
"location": "eastus",
"identity": {
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksList.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksList.json
index f76332bc0790..0953671b5f8a 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksList.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksList.json
@@ -73,7 +73,9 @@
"myRegistry.azure.io": null
},
"sourceRegistry": null
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": null
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksUpdate.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksUpdate.json
index fb0e6621cb2e..bcc5d2966d67 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksUpdate.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksUpdate.json
@@ -48,7 +48,8 @@
"identity": "[system]"
}
}
- }
+ },
+ "logTemplate": "acr/tasks:{{.Run.OS}}"
},
"tags": {
"testkey": "value"
@@ -121,7 +122,8 @@
"myregistry.azurecr.io": null
},
"sourceRegistry": null
- }
+ },
+ "logTemplate": "acr/tasks:{{.Run.OS}}"
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
@@ -202,7 +204,8 @@
"myregistry.azurecr.io": null
},
"sourceRegistry": null
- }
+ },
+ "logTemplate": "acr/tasks:{{.Run.OS}}"
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksUpdate_QuickTask.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksUpdate_QuickTask.json
new file mode 100644
index 000000000000..7d067bad1519
--- /dev/null
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksUpdate_QuickTask.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "subscriptionId": "4385cf00-2d3a-425a-832f-f4285b1c9dce",
+ "resourceGroupName": "myResourceGroup",
+ "registryName": "myRegistry",
+ "api-version": "2019-06-01-preview",
+ "taskName": "quicktask",
+ "taskUpdateParameters": {
+ "properties": {
+ "status": "Enabled",
+ "logTemplate": "acr/tasks:{{.Run.OS}}"
+ },
+ "tags": {
+ "testkey": "value"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "creationDate": "2018-01-25T06:54:23.536Z",
+ "status": "Enabled",
+ "platform": null,
+ "agentConfiguration": null,
+ "trigger": null,
+ "logTemplate": "acr/tasks:{{.Run.OS}}"
+ },
+ "id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
+ "name": "myTask",
+ "type": "Microsoft.ContainerRegistry/registries/tasks",
+ "location": "eastus",
+ "identity": null,
+ "tags": {
+ "testkey": "value"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "properties": {
+ "provisioningState": "Succeeded",
+ "creationDate": "2018-01-25T06:54:23.536Z",
+ "status": "Enabled",
+ "platform": null,
+ "agentConfiguration": null,
+ "trigger": null,
+ "logTemplate": "acr/tasks:{{.Run.OS}}"
+ },
+ "id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
+ "name": "quicktask",
+ "type": "Microsoft.ContainerRegistry/registries/tasks",
+ "location": "eastus",
+ "identity": null,
+ "tags": {
+ "testkey": "value"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksUpdate_WithOpaqueCustomCredentials.json b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksUpdate_WithOpaqueCustomCredentials.json
index 8072e5b19b6e..70a55b828b9e 100644
--- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksUpdate_WithOpaqueCustomCredentials.json
+++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/2019-06-01-preview/examples/TasksUpdate_WithOpaqueCustomCredentials.json
@@ -47,7 +47,8 @@
}
}
}
- }
+ },
+ "logTemplate": null
},
"tags": {
"testkey": "value"
@@ -118,7 +119,8 @@
"myregistry.azure.io": null
},
"sourceRegistry": null
- }
+ },
+ "logTemplate": null
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
@@ -197,7 +199,9 @@
"myregistry.azure.io": null
},
"sourceRegistry": null
- }
+ },
+ "isSystemTask": false,
+ "logTemplate": null
},
"id": "/subscriptions/4385cf00-2d3a-425a-832f-f4285b1c9dce/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry/tasks/myTask",
"name": "myTask",
diff --git a/specification/containerregistry/resource-manager/readme.azureresourceschema.md b/specification/containerregistry/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..6668c2cecf11
--- /dev/null
+++ b/specification/containerregistry/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,144 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-containerregistry-2019-12-01-preview
+ - tag: schema-containerregistry-2019-06-01-preview
+ - tag: schema-containerregistry-2019-05-01-preview
+ - tag: schema-containerregistry-2019-05-01
+ - tag: schema-containerregistry-2019-04-01
+ - tag: schema-containerregistry-2018-09-01
+ - tag: schema-containerregistry-2018-02-01-preview
+ - tag: schema-containerregistry-2017-10-01
+ - tag: schema-containerregistry-2017-06-01-preview
+ - tag: schema-containerregistry-2017-03-01
+ - tag: schema-containerregistry-2016-06-27-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-containerregistry-2019-12-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerregistry-2019-12-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerRegistry/preview/2019-12-01-preview/containerregistry.json
+
+```
+
+### Tag: schema-containerregistry-2019-06-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerregistry-2019-06-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerRegistry/preview/2019-06-01-preview/containerregistry_build.json
+
+```
+
+### Tag: schema-containerregistry-2019-05-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerregistry-2019-05-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerRegistry/preview/2019-05-01-preview/containerregistry_scopemap.json
+
+```
+
+### Tag: schema-containerregistry-2019-05-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerregistry-2019-05-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerRegistry/stable/2019-05-01/containerregistry.json
+
+```
+
+### Tag: schema-containerregistry-2019-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerregistry-2019-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerRegistry/stable/2019-04-01/containerregistry_build.json
+
+```
+
+### Tag: schema-containerregistry-2018-09-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerregistry-2018-09-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerRegistry/stable/2018-09-01/containerregistry_build.json
+
+```
+
+### Tag: schema-containerregistry-2018-02-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerregistry-2018-02-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerRegistry/preview/2018-02-01-preview/containerregistry_build.json
+
+```
+
+### Tag: schema-containerregistry-2017-10-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerregistry-2017-10-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerRegistry/stable/2017-10-01/containerregistry.json
+
+```
+
+### Tag: schema-containerregistry-2017-06-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerregistry-2017-06-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerRegistry/preview/2017-06-01-preview/containerregistry.json
+
+```
+
+### Tag: schema-containerregistry-2017-03-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerregistry-2017-03-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerRegistry/stable/2017-03-01/containerregistry.json
+
+```
+
+### Tag: schema-containerregistry-2016-06-27-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerregistry-2016-06-27-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerRegistry/preview/2016-06-27-preview/containerregistry.json
+
+```
diff --git a/specification/containerregistry/resource-manager/readme.md b/specification/containerregistry/resource-manager/readme.md
index dc042e35dca0..7b1c94e51a3c 100644
--- a/specification/containerregistry/resource-manager/readme.md
+++ b/specification/containerregistry/resource-manager/readme.md
@@ -180,6 +180,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_container_registry']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js containerregistry/resource-manager
```
## C#
@@ -209,36 +212,7 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.ContainerRegistry/preview/2019-12-01-preview/containerregistry.json
- - $(this-folder)/Microsoft.ContainerRegistry/preview/2019-06-01-preview/containerregistry_build.json
- - $(this-folder)/Microsoft.ContainerRegistry/preview/2019-05-01-preview/containerregistry_scopemap.json
- - $(this-folder)/Microsoft.ContainerRegistry/stable/2019-05-01/containerregistry.json
- - $(this-folder)/Microsoft.ContainerRegistry/stable/2019-04-01/containerregistry_build.json
- - $(this-folder)/Microsoft.ContainerRegistry/stable/2017-10-01/containerregistry.json
- - $(this-folder)/Microsoft.ContainerRegistry/stable/2018-09-01/containerregistry_build.json
- - $(this-folder)/Microsoft.ContainerRegistry/preview/2018-02-01-preview/containerregistry_build.json
- - $(this-folder)/Microsoft.ContainerRegistry/preview/2017-06-01-preview/containerregistry.json
- - $(this-folder)/Microsoft.ContainerRegistry/stable/2017-03-01/containerregistry.json
- - $(this-folder)/Microsoft.ContainerRegistry/preview/2016-06-27-preview/containerregistry.json
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-```
-
-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/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-02-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-02-01/managedClusters.json
index 99afee6bcfd0..39b326850de7 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-02-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-02-01/managedClusters.json
@@ -1746,7 +1746,7 @@
},
"enablePodSecurityPolicy": {
"type": "boolean",
- "description": "(PREVIEW) Whether to enable Kubernetes Pod security policy."
+ "description": "(DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy."
},
"networkProfile": {
"$ref": "#/definitions/ContainerServiceNetworkProfile",
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-04-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-04-01/managedClusters.json
index 46c3d28a4b11..fb24414f041a 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-04-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-04-01/managedClusters.json
@@ -1639,7 +1639,7 @@
},
"enablePodSecurityPolicy": {
"type": "boolean",
- "description": "(PREVIEW) Whether to enable Kubernetes Pod security policy."
+ "description": "(DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy."
},
"networkProfile": {
"$ref": "#/definitions/ContainerServiceNetworkProfile",
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-06-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-06-01/managedClusters.json
index 2adcf5c68ab2..da7e5b3496df 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-06-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-06-01/managedClusters.json
@@ -1741,7 +1741,7 @@
},
"enablePodSecurityPolicy": {
"type": "boolean",
- "description": "(PREVIEW) Whether to enable Kubernetes Pod security policy."
+ "description": "(DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy."
},
"networkProfile": {
"$ref": "#/definitions/ContainerServiceNetworkProfile",
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-08-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-08-01/managedClusters.json
index c16a98053709..d50dcee822ab 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-08-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-08-01/managedClusters.json
@@ -1847,7 +1847,7 @@
},
"enablePodSecurityPolicy": {
"type": "boolean",
- "description": "(PREVIEW) Whether to enable Kubernetes Pod security policy."
+ "description": "(DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy."
},
"networkProfile": {
"$ref": "#/definitions/ContainerServiceNetworkProfile",
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-10-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-10-01/managedClusters.json
index b8e3358738bf..585ad556f9e0 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-10-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-10-01/managedClusters.json
@@ -1895,7 +1895,7 @@
},
"enablePodSecurityPolicy": {
"type": "boolean",
- "description": "(PREVIEW) Whether to enable Kubernetes Pod security policy."
+ "description": "(DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy."
},
"networkProfile": {
"$ref": "#/definitions/ContainerServiceNetworkProfile",
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-11-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-11-01/managedClusters.json
index 8282d9264ca7..8ebd1e442d6b 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-11-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2019-11-01/managedClusters.json
@@ -1938,7 +1938,7 @@
},
"enablePodSecurityPolicy": {
"type": "boolean",
- "description": "(PREVIEW) Whether to enable Kubernetes Pod security policy."
+ "description": "(DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy."
},
"networkProfile": {
"$ref": "#/definitions/ContainerServiceNetworkProfile",
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-01-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-01-01/managedClusters.json
index dea09d26dea6..83a3690c1e3d 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-01-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-01-01/managedClusters.json
@@ -1938,7 +1938,7 @@
},
"enablePodSecurityPolicy": {
"type": "boolean",
- "description": "(PREVIEW) Whether to enable Kubernetes Pod security policy."
+ "description": "(DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy."
},
"networkProfile": {
"$ref": "#/definitions/ContainerServiceNetworkProfile",
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-02-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-02-01/managedClusters.json
index 4c23040f7b7a..656eceb27f8d 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-02-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-02-01/managedClusters.json
@@ -1957,7 +1957,7 @@
},
"enablePodSecurityPolicy": {
"type": "boolean",
- "description": "(PREVIEW) Whether to enable Kubernetes Pod security policy."
+ "description": "(DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy."
},
"networkProfile": {
"$ref": "#/definitions/ContainerServiceNetworkProfile",
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-03-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-03-01/managedClusters.json
index 894a1ab3fb3b..f23476495830 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-03-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-03-01/managedClusters.json
@@ -1979,7 +1979,7 @@
},
"enablePodSecurityPolicy": {
"type": "boolean",
- "description": "(PREVIEW) Whether to enable Kubernetes Pod security policy."
+ "description": "(DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy."
},
"networkProfile": {
"$ref": "#/definitions/ContainerServiceNetworkProfile",
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-04-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-04-01/managedClusters.json
index 83b5e9e30cbb..e8797a360276 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-04-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-04-01/managedClusters.json
@@ -1997,7 +1997,7 @@
},
"enablePodSecurityPolicy": {
"type": "boolean",
- "description": "(PREVIEW) Whether to enable Kubernetes Pod security policy."
+ "description": "(DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy."
},
"networkProfile": {
"$ref": "#/definitions/ContainerServiceNetworkProfile",
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-06-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-06-01/managedClusters.json
index e726cd78022b..0a3991450f28 100644
--- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-06-01/managedClusters.json
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-06-01/managedClusters.json
@@ -2209,7 +2209,7 @@
},
"enablePodSecurityPolicy": {
"type": "boolean",
- "description": "(PREVIEW) Whether to enable Kubernetes Pod security policy."
+ "description": "(DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy."
},
"networkProfile": {
"$ref": "#/definitions/ContainerServiceNetworkProfile",
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsCreate_PPG.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsCreate_PPG.json
new file mode 100644
index 000000000000..ec43ba9e1863
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsCreate_PPG.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1",
+ "parameters": {
+ "properties": {
+ "orchestratorVersion": "",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "osType": "Linux",
+ "proximityPlacementGroupID": "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/proximityPlacementGroups/ppg1"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "proximityPlacementGroupID": "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/proximityPlacementGroups/ppg1"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "proximityPlacementGroupID": "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/proximityPlacementGroups/ppg1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsCreate_Spot.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsCreate_Spot.json
new file mode 100644
index 000000000000..a001a5428bf1
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsCreate_Spot.json
@@ -0,0 +1,84 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1",
+ "parameters": {
+ "properties": {
+ "orchestratorVersion": "",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "osType": "Linux",
+ "tags": {
+ "name1": "val1"
+ },
+ "nodeLabels": {
+ "key1": "val1"
+ },
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "tags": {
+ "name1": "val1"
+ },
+ "nodeLabels": {
+ "key1": "val1"
+ },
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete",
+ "spotMaxPrice": -1
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "tags": {
+ "name1": "val1"
+ },
+ "nodeLabels": {
+ "key1": "val1"
+ },
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete",
+ "spotMaxPrice": -1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsCreate_Update.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsCreate_Update.json
new file mode 100644
index 000000000000..c4fd0dc07f1e
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsCreate_Update.json
@@ -0,0 +1,86 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1",
+ "parameters": {
+ "properties": {
+ "orchestratorVersion": "",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "osType": "Linux",
+ "tags": {
+ "name1": "val1"
+ },
+ "nodeLabels": {
+ "key1": "val1"
+ },
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete",
+ "mode": "User"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "tags": {
+ "name1": "val1"
+ },
+ "nodeLabels": {
+ "key1": "val1"
+ },
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete",
+ "mode": "User",
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "tags": {
+ "name1": "val1"
+ },
+ "nodeLabels": {
+ "key1": "val1"
+ },
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete",
+ "mode": "User"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsDelete.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsDelete.json
new file mode 100644
index 000000000000..0341ca53c6a3
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsGet.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsGet.json
new file mode 100644
index 000000000000..47fd641d2059
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsGet.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "orchestratorVersion": "1.9.6",
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11",
+ "upgradeSettings": {
+ "maxSurge": "33%"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsGetAgentPoolAvailableVersions.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsGetAgentPoolAvailableVersions.json
new file mode 100644
index 000000000000..f61986d807a7
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsGetAgentPoolAvailableVersions.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/availableagentpoolversions",
+ "name": "default",
+ "properties": {
+ "agentPoolVersions": [
+ {
+ "kubernetesVersion": "1.12.7"
+ },
+ {
+ "kubernetesVersion": "1.12.8"
+ },
+ {
+ "default": true,
+ "kubernetesVersion": "1.13.5",
+ "isPreview": true
+ }
+ ]
+ },
+ "type": "Microsoft.ContainerService/managedClusters/availableAgentpoolVersions"
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsGetUpgradeProfile.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsGetUpgradeProfile.json
new file mode 100644
index 000000000000..b110ebe7520f
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsGetUpgradeProfile.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1/upgradeprofiles/default",
+ "name": "default",
+ "properties": {
+ "kubernetesVersion": "1.12.8",
+ "osType": "Linux",
+ "upgrades": [
+ {
+ "kubernetesVersion": "1.13.5"
+ }
+ ],
+ "latestNodeImageVersion": "AKSUbuntu:1604:2020.03.11"
+ },
+ "type": "Microsoft.ContainerService/managedClusters/agentPools/upgradeProfiles"
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsList.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsList.json
new file mode 100644
index 000000000000..b2d63467a9cf
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsList.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "orchestratorVersion": "1.9.6",
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsUpgradeNodeImageVersion.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsUpgradeNodeImageVersion.json
new file mode 100644
index 000000000000..2c069e0f7d05
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPoolsUpgradeNodeImageVersion.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1"
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "UpgradingNodeImageVersion",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "orchestratorVersion": "1.9.6",
+ "nodeImageVersion": "AKSUbuntu-1604-2020.03.11",
+ "upgradeSettings": {
+ "maxSurge": "33%"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPools_Update.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPools_Update.json
new file mode 100644
index 000000000000..11ec7257c46f
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/AgentPools_Update.json
@@ -0,0 +1,73 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1",
+ "parameters": {
+ "properties": {
+ "orchestratorVersion": "",
+ "count": 3,
+ "enableAutoScaling": true,
+ "minCount": 2,
+ "maxCount": 2,
+ "vmSize": "Standard_DS1_v2",
+ "osType": "Linux",
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "enableAutoScaling": true,
+ "minCount": 2,
+ "maxCount": 2,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Updating",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "enableAutoScaling": true,
+ "minCount": 2,
+ "maxCount": 2,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersCreate_PPG.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersCreate_PPG.json
new file mode 100644
index 000000000000..d13c0a2cfdba
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersCreate_PPG.json
@@ -0,0 +1,236 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "location": "location1",
+ "tags": {
+ "tier": "production",
+ "archv2": ""
+ },
+ "sku": {
+ "name": "Basic",
+ "tier": "Free"
+ },
+ "properties": {
+ "kubernetesVersion": "",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "osType": "Linux",
+ "type": "VirtualMachineScaleSets",
+ "enableNodePublicIP": true,
+ "mode": "System",
+ "proximityPlacementGroupID": "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/proximityPlacementGroups/ppg1"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "networkProfile": {
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "managedOutboundIPs": {
+ "count": 2
+ }
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser",
+ "adminPassword": "replacePassword1234$"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid",
+ "secret": "secret"
+ },
+ "addonProfiles": {},
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "enableNodePublicIP": true,
+ "mode": "System",
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11",
+ "proximityPlacementGroupID": "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/proximityPlacementGroups/ppg1"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "networkProfile": {
+ "loadBalancerSku": "basic",
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Creating",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "enableNodePublicIP": true,
+ "mode": "System",
+ "proximityPlacementGroupID": "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/proximityPlacementGroups/ppg1"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersCreate_Update.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersCreate_Update.json
new file mode 100644
index 000000000000..ae067af5d51d
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersCreate_Update.json
@@ -0,0 +1,272 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "location": "location1",
+ "tags": {
+ "tier": "production",
+ "archv2": ""
+ },
+ "sku": {
+ "name": "Basic",
+ "tier": "Free"
+ },
+ "properties": {
+ "kubernetesVersion": "",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "osType": "Linux",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "networkProfile": {
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "managedOutboundIPs": {
+ "count": 2
+ }
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser",
+ "adminPassword": "replacePassword1234$"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid",
+ "secret": "secret"
+ },
+ "addonProfiles": {},
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {}
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System",
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "networkProfile": {
+ "loadBalancerSku": "basic",
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {
+ "principalId": "principalId1",
+ "clientId": "clientId1"
+ }
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Creating",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {
+ "principalId": "principalId1",
+ "clientId": "clientId1"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersCreate_UpdateWithAHUB.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersCreate_UpdateWithAHUB.json
new file mode 100644
index 000000000000..07220a608e8d
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersCreate_UpdateWithAHUB.json
@@ -0,0 +1,275 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "location": "location1",
+ "tags": {
+ "tier": "production",
+ "archv2": ""
+ },
+ "sku": {
+ "name": "Basic",
+ "tier": "Free"
+ },
+ "properties": {
+ "kubernetesVersion": "",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "osType": "Linux",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "networkProfile": {
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "managedOutboundIPs": {
+ "count": 2
+ }
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser",
+ "adminPassword": "replacePassword1234$",
+ "licenseType": "Windows_Server"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid",
+ "secret": "secret"
+ },
+ "addonProfiles": {},
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {}
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System",
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser",
+ "licenseType": "Windows_Server"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "networkProfile": {
+ "loadBalancerSku": "basic",
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {
+ "principalId": "principalId1",
+ "clientId": "clientId1"
+ }
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Creating",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser",
+ "licenseType": "Windows_Server"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {
+ "principalId": "principalId1",
+ "clientId": "clientId1"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersCreate_UpdateWithEnableAzureRBAC.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersCreate_UpdateWithEnableAzureRBAC.json
new file mode 100644
index 000000000000..e3fd532bc1bf
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersCreate_UpdateWithEnableAzureRBAC.json
@@ -0,0 +1,264 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "location": "location1",
+ "tags": {
+ "tier": "production",
+ "archv2": ""
+ },
+ "sku": {
+ "name": "Basic",
+ "tier": "Free"
+ },
+ "properties": {
+ "kubernetesVersion": "",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "osType": "Linux",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "networkProfile": {
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "managedOutboundIPs": {
+ "count": 2
+ }
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser",
+ "adminPassword": "replacePassword1234$"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid",
+ "secret": "secret"
+ },
+ "addonProfiles": {},
+ "aadProfile": {
+ "managed": true,
+ "enableAzureRBAC": true
+ },
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System",
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "networkProfile": {
+ "loadBalancerSku": "basic",
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "aadProfile": {
+ "managed": true,
+ "adminGroupObjectIDs": null,
+ "enableAzureRBAC": true,
+ "tenantID": "tenantID"
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Creating",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "aadProfile": {
+ "managed": true,
+ "adminGroupObjectIDs": null,
+ "enableAzureRBAC": true,
+ "tenantID": "tenantID"
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersDelete.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersDelete.json
new file mode 100644
index 000000000000..2214600840a4
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersGet.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersGet.json
new file mode 100644
index 000000000000..4650fbd25837
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersGet.json
@@ -0,0 +1,96 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11",
+ "upgradeSettings": {
+ "maxSurge": "33%"
+ }
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": false,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "outboundIPs": {
+ "publicIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/customeroutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/customeroutboundip2"
+ }
+ ]
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersGetAccessProfile.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersGetAccessProfile.json
new file mode 100644
index 000000000000..7589ab0ac25b
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersGetAccessProfile.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "roleName": "clusterUser"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/accessProfiles/clusterUser",
+ "location": "location1",
+ "name": "clusterUser",
+ "properties": {
+ "kubeConfig": "kubeConfig1"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters/AccessProfiles"
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersGetUpgradeProfile.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersGetUpgradeProfile.json
new file mode 100644
index 000000000000..3e30bbecd4f4
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersGetUpgradeProfile.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/upgradeprofiles/default",
+ "name": "default",
+ "properties": {
+ "agentPoolProfiles": [
+ {
+ "kubernetesVersion": "1.7.7",
+ "name": "agent",
+ "osType": "Linux",
+ "upgrades": [
+ {
+ "kubernetesVersion": "1.7.9"
+ },
+ {
+ "kubernetesVersion": "1.7.11",
+ "isPreview": true
+ }
+ ]
+ }
+ ],
+ "controlPlaneProfile": {
+ "kubernetesVersion": "1.7.7",
+ "name": "master",
+ "osType": "Linux",
+ "upgrades": [
+ {
+ "kubernetesVersion": "1.7.9",
+ "isPreview": true
+ },
+ {
+ "kubernetesVersion": "1.7.11"
+ }
+ ]
+ }
+ },
+ "type": "Microsoft.ContainerService/managedClusters/upgradeprofiles"
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersList.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersList.json
new file mode 100644
index 000000000000..496b4f0e00ce
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersList.json
@@ -0,0 +1,65 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid1/providers/Microsoft.ContainerService/managedClusters",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "kubernetesVersion": "1.9.6",
+ "maxAgentPools": 1,
+ "dnsPrefix": "dnsprefix1",
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": false,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersListByResourceGroup.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersListByResourceGroup.json
new file mode 100644
index 000000000000..989448f5bf75
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersListByResourceGroup.json
@@ -0,0 +1,66 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "kubernetesVersion": "1.9.6",
+ "maxAgentPools": 1,
+ "dnsPrefix": "dnsprefix1",
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": false,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersListClusterCredentialResult.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersListClusterCredentialResult.json
new file mode 100644
index 000000000000..2cae16478490
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersListClusterCredentialResult.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "kubeconfigs": [
+ {
+ "name": "credentialName1",
+ "value": "credentialValue1"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersResetAADProfile.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersResetAADProfile.json
new file mode 100644
index 000000000000..93c854ac7497
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersResetAADProfile.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "clientAppID": "clientappid",
+ "serverAppID": "serverappid",
+ "serverAppSecret": "serverappsecret",
+ "tenantID": "tenantid"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersResetServicePrincipalProfile.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersResetServicePrincipalProfile.json
new file mode 100644
index 000000000000..309d53c2ab38
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersResetServicePrincipalProfile.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "clientId": "clientid",
+ "secret": "secret"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersRotateClusterCertificates.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersRotateClusterCertificates.json
new file mode 100644
index 000000000000..2214600840a4
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersRotateClusterCertificates.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersUpdateTags.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersUpdateTags.json
new file mode 100644
index 000000000000..69dced82c890
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/ManagedClustersUpdateTags.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "tags": {
+ "tier": "testing",
+ "archv3": ""
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv3": "",
+ "tier": "testing"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": false,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/PrivateEndpointConnectionsDelete.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/PrivateEndpointConnectionsDelete.json
new file mode 100644
index 000000000000..49ebb2d38eef
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/PrivateEndpointConnectionsDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "privateEndpointConnectionName": "privateendpointconnection1"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/PrivateEndpointConnectionsGet.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/PrivateEndpointConnectionsGet.json
new file mode 100644
index 000000000000..805aef365f3d
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/PrivateEndpointConnectionsGet.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "privateEndpointConnectionName": "privateendpointconnection1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subid2/resourceGroups/rg2/providers/Microsoft.Network/privateEndpoints/pe2"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved"
+ },
+ "provisioningState": "Succeeded"
+ },
+ "name": "privateendpointconnection1",
+ "type": "Microsoft.Network/privateLinkServices/privateEndpointConnections"
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/PrivateEndpointConnectionsList.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/PrivateEndpointConnectionsList.json
new file mode 100644
index 000000000000..a680ac3d8ca7
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/PrivateEndpointConnectionsList.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subid2/resourceGroups/rg2/providers/Microsoft.Network/privateEndpoints/pe2"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved"
+ },
+ "provisioningState": "Succeeded"
+ },
+ "name": "privateendpointconnection1",
+ "type": "Microsoft.Network/privateLinkServices/privateEndpointConnections"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/PrivateEndpointConnectionsUpdate.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/PrivateEndpointConnectionsUpdate.json
new file mode 100644
index 000000000000..6e9dfbb9deac
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/examples/PrivateEndpointConnectionsUpdate.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-07-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "privateEndpointConnectionName": "privateendpointconnection1",
+ "parameters": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subid2/resourceGroups/rg2/providers/Microsoft.Network/privateEndpoints/pe2"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved"
+ },
+ "provisioningState": "Succeeded"
+ },
+ "name": "privateendpointconnection1",
+ "type": "Microsoft.Network/privateLinkServices/privateEndpointConnections"
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/managedClusters.json
new file mode 100644
index 000000000000..5a07097c6d67
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-07-01/managedClusters.json
@@ -0,0 +1,3028 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ContainerServiceClient",
+ "description": "The Container Service Client.",
+ "version": "2020-07-01"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.ContainerService/operations": {
+ "get": {
+ "tags": [
+ "managedClusters"
+ ],
+ "operationId": "Operations_List",
+ "description": "Gets a list of compute operations.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ContainerService/managedClusters": {
+ "get": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_List",
+ "summary": "Gets a list of managed clusters in the specified subscription.",
+ "description": "Gets a list of managed clusters in the specified subscription. The operation returns properties of each managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ManagedClusterListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Managed Clusters": {
+ "$ref": "./examples/ManagedClustersList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters": {
+ "get": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_ListByResourceGroup",
+ "summary": "Lists managed clusters in the specified subscription and resource group.",
+ "description": "Lists managed clusters in the specified subscription and resource group. The operation returns properties of each managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ManagedClusterListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Get Managed Clusters by Resource Group": {
+ "$ref": "./examples/ManagedClustersListByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/upgradeProfiles/default": {
+ "get": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_GetUpgradeProfile",
+ "summary": "Gets upgrade profile for a managed cluster.",
+ "description": "Gets the details of the upgrade profile for a managed cluster with a specified resource group and name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ManagedClusterUpgradeProfile"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Upgrade Profile for Managed Cluster": {
+ "$ref": "./examples/ManagedClustersGetUpgradeProfile.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/accessProfiles/{roleName}/listCredential": {
+ "post": {
+ "deprecated": true,
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_GetAccessProfile",
+ "summary": "Gets an access profile of a managed cluster.",
+ "description": "Gets the accessProfile for the specified role name of the managed cluster with a specified resource group and name. **WARNING**: This API will be deprecated. Instead use [ListClusterUserCredentials](https://docs.microsoft.com/en-us/rest/api/aks/managedclusters/listclusterusercredentials) or [ListClusterAdminCredentials](https://docs.microsoft.com/en-us/rest/api/aks/managedclusters/listclusteradmincredentials) .",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "roleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the role for managed cluster accessProfile resource."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ManagedClusterAccessProfile"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Managed Cluster": {
+ "$ref": "./examples/ManagedClustersGetAccessProfile.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterAdminCredential": {
+ "post": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_ListClusterAdminCredentials",
+ "summary": "Gets cluster admin credential of a managed cluster.",
+ "description": "Gets cluster admin credential of the managed cluster with a specified resource group and name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CredentialResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Managed Cluster": {
+ "$ref": "./examples/ManagedClustersListClusterCredentialResult.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterUserCredential": {
+ "post": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_ListClusterUserCredentials",
+ "summary": "Gets cluster user credential of a managed cluster.",
+ "description": "Gets cluster user credential of the managed cluster with a specified resource group and name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CredentialResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Managed Cluster": {
+ "$ref": "./examples/ManagedClustersListClusterCredentialResult.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterMonitoringUserCredential": {
+ "post": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_ListClusterMonitoringUserCredentials",
+ "summary": "Gets cluster monitoring user credential of a managed cluster.",
+ "description": "Gets cluster monitoring user credential of the managed cluster with a specified resource group and name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CredentialResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Managed Cluster": {
+ "$ref": "./examples/ManagedClustersListClusterCredentialResult.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}": {
+ "get": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_Get",
+ "summary": "Gets a managed cluster.",
+ "description": "Gets the details of the managed cluster with a specified resource group and name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ManagedCluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Managed Cluster": {
+ "$ref": "./examples/ManagedClustersGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_CreateOrUpdate",
+ "summary": "Creates or updates a managed cluster.",
+ "description": "Creates or updates a managed cluster with the specified configuration for agents and Kubernetes version.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ManagedCluster"
+ },
+ "description": "Parameters supplied to the Create or Update a Managed Cluster operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ManagedCluster"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/ManagedCluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create/Update Managed Cluster": {
+ "$ref": "./examples/ManagedClustersCreate_Update.json"
+ },
+ "Create/Update AAD Managed Cluster with EnableAzureRBAC": {
+ "$ref": "./examples/ManagedClustersCreate_UpdateWithEnableAzureRBAC.json"
+ },
+ "Create Managed Cluster with PPG": {
+ "$ref": "./examples/ManagedClustersCreate_PPG.json"
+ },
+ "Create/Update Managed Cluster with EnableAHUB": {
+ "$ref": "./examples/ManagedClustersCreate_UpdateWithAHUB.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_UpdateTags",
+ "summary": "Updates tags on a managed cluster.",
+ "description": "Updates a managed cluster with the specified tags.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to the Update Managed Cluster Tags operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ManagedCluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update Managed Cluster Tags": {
+ "$ref": "./examples/ManagedClustersUpdateTags.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_Delete",
+ "summary": "Deletes a managed cluster.",
+ "description": "Deletes the managed cluster with a specified resource group and name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "NoContent"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete Managed Cluster": {
+ "$ref": "./examples/ManagedClustersDelete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools": {
+ "get": {
+ "tags": [
+ "AgentPools"
+ ],
+ "operationId": "AgentPools_List",
+ "summary": "Gets a list of agent pools in the specified managed cluster.",
+ "description": "Gets a list of agent pools in the specified managed cluster. The operation returns properties of each agent pool.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AgentPoolListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Agent Pools by Managed Cluster": {
+ "$ref": "./examples/AgentPoolsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}": {
+ "get": {
+ "tags": [
+ "AgentPools"
+ ],
+ "operationId": "AgentPools_Get",
+ "summary": "Gets the agent pool.",
+ "description": "Gets the details of the agent pool by managed cluster and resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "agentPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the agent pool."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AgentPool"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Agent Pool": {
+ "$ref": "./examples/AgentPoolsGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "AgentPools"
+ ],
+ "operationId": "AgentPools_CreateOrUpdate",
+ "summary": "Creates or updates an agent pool.",
+ "description": "Creates or updates an agent pool in the specified managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "agentPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the agent pool."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AgentPool"
+ },
+ "description": "Parameters supplied to the Create or Update an agent pool operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AgentPool"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/AgentPool"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create/Update Agent Pool": {
+ "$ref": "./examples/AgentPoolsCreate_Update.json"
+ },
+ "Update Agent Pool": {
+ "$ref": "./examples/AgentPools_Update.json"
+ },
+ "Create Spot Agent Pool": {
+ "$ref": "./examples/AgentPoolsCreate_Spot.json"
+ },
+ "Create Agent Pool with PPG": {
+ "$ref": "./examples/AgentPoolsCreate_PPG.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "AgentPools"
+ ],
+ "operationId": "AgentPools_Delete",
+ "summary": "Deletes an agent pool.",
+ "description": "Deletes the agent pool in the specified managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "agentPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the agent pool."
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "NoContent"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete Agent Pool": {
+ "$ref": "./examples/AgentPoolsDelete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeProfiles/default": {
+ "get": {
+ "tags": [
+ "AgentPools"
+ ],
+ "operationId": "AgentPools_GetUpgradeProfile",
+ "summary": "Gets upgrade profile for an agent pool.",
+ "description": "Gets the details of the upgrade profile for an agent pool with a specified resource group and managed cluster name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "agentPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the agent pool."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AgentPoolUpgradeProfile"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Upgrade Profile for Agent Pool": {
+ "$ref": "./examples/AgentPoolsGetUpgradeProfile.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/availableAgentPoolVersions": {
+ "get": {
+ "tags": [
+ "AgentPools"
+ ],
+ "operationId": "AgentPools_GetAvailableAgentPoolVersions",
+ "summary": "Gets a list of supported versions for the specified agent pool.",
+ "description": "Gets a list of supported versions for the specified agent pool.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AgentPoolAvailableVersions"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get available versions for agent pool": {
+ "$ref": "./examples/AgentPoolsGetAgentPoolAvailableVersions.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resetServicePrincipalProfile": {
+ "post": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_ResetServicePrincipalProfile",
+ "summary": "Reset Service Principal Profile of a managed cluster.",
+ "description": "Update the service principal Profile for a managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ManagedClusterServicePrincipalProfile"
+ },
+ "description": "Parameters supplied to the Reset Service Principal Profile operation for a Managed Cluster."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the cluster doesn't exist, 404 (Not found) is returned.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Reset Service Principal Profile": {
+ "$ref": "./examples/ManagedClustersResetServicePrincipalProfile.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resetAADProfile": {
+ "post": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_ResetAADProfile",
+ "summary": "Reset AAD Profile of a managed cluster.",
+ "description": "Update the AAD Profile for a managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ManagedClusterAADProfile"
+ },
+ "description": "Parameters supplied to the Reset AAD Profile operation for a Managed Cluster."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the cluster doesn't exist, 404 (Not found) is returned.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Reset AAD Profile": {
+ "$ref": "./examples/ManagedClustersResetAADProfile.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/rotateClusterCertificates": {
+ "post": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_RotateClusterCertificates",
+ "summary": "Rotate certificates of a managed cluster.",
+ "description": "Rotate certificates of a managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "NoContent"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the cluster doesn't exist, 404 (Not found) is returned.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Rotate Cluster Certificates": {
+ "$ref": "./examples/ManagedClustersRotateClusterCertificates.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_List",
+ "summary": "Gets a list of private endpoint connections in the specified managed cluster.",
+ "description": "Gets a list of private endpoint connections in the specified managed cluster. The operation returns properties of each private endpoint connection.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List Private Endpoint Connections by Managed Cluster": {
+ "$ref": "./examples/PrivateEndpointConnectionsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Get",
+ "summary": "Gets the private endpoint connection.",
+ "description": "Gets the details of the private endpoint connection by managed cluster and resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint connection."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Private Endpoint Connection": {
+ "$ref": "./examples/PrivateEndpointConnectionsGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Update",
+ "summary": "Updates a private endpoint connection.",
+ "description": "Updates a private endpoint connection in the specified managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint connection."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "Parameters supplied to the Update a private endpoint connection operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update Private Endpoint Connection": {
+ "$ref": "./examples/PrivateEndpointConnectionsUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Delete",
+ "summary": "Deletes a private endpoint connection.",
+ "description": "Deletes the private endpoint connection in the specified managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint connection."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "204": {
+ "description": "No Content -- The private endpoint connection does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete Private Endpoint Connection": {
+ "$ref": "./examples/PrivateEndpointConnectionsDelete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeNodeImageVersion": {
+ "post": {
+ "tags": [
+ "AgentPools"
+ ],
+ "operationId": "AgentPools_UpgradeNodeImageVersion",
+ "summary": "Upgrade node image version of an agent pool to the latest.",
+ "description": "Upgrade node image version of an agent pool to the latest.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "agentPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the agent pool."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/AgentPool"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Upgrade Agent Pool Node Image Version": {
+ "$ref": "./examples/AgentPoolsUpgradeNodeImageVersion.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "OperationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/OperationValue"
+ },
+ "description": "The list of compute operations"
+ }
+ },
+ "description": "The List Compute Operation operation response."
+ },
+ "OperationValue": {
+ "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/OperationValueDisplay",
+ "description": "Describes the properties of a Compute Operation Value Display."
+ }
+ },
+ "description": "Describes the properties of a Compute Operation value."
+ },
+ "OperationValueDisplay": {
+ "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."
+ },
+ "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",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "required": [
+ "location"
+ ],
+ "x-ms-azure-resource": true
+ },
+ "SubResource": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource ID."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type"
+ }
+ },
+ "description": "Reference to another subresource.",
+ "x-ms-azure-resource": true
+ },
+ "TagsObject": {
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ }
+ },
+ "description": "Tags object for patch operations."
+ },
+ "ContainerServiceOSDisk": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 1023,
+ "minimum": 0,
+ "description": "OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified."
+ },
+ "ContainerServiceStorageProfile": {
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ContainerServiceStorageProfileTypes",
+ "modelAsString": true
+ },
+ "enum": [
+ "StorageAccount",
+ "ManagedDisks"
+ ],
+ "description": "Storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice."
+ },
+ "ContainerServiceVnetSubnetID": {
+ "type": "string",
+ "description": "VNet SubnetID specifies the VNet's subnet identifier."
+ },
+ "ContainerServiceVMSize": {
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ContainerServiceVMSizeTypes",
+ "modelAsString": true
+ },
+ "description": "Size of agent VMs.",
+ "enum": [
+ "Standard_A1",
+ "Standard_A10",
+ "Standard_A11",
+ "Standard_A1_v2",
+ "Standard_A2",
+ "Standard_A2_v2",
+ "Standard_A2m_v2",
+ "Standard_A3",
+ "Standard_A4",
+ "Standard_A4_v2",
+ "Standard_A4m_v2",
+ "Standard_A5",
+ "Standard_A6",
+ "Standard_A7",
+ "Standard_A8",
+ "Standard_A8_v2",
+ "Standard_A8m_v2",
+ "Standard_A9",
+ "Standard_B2ms",
+ "Standard_B2s",
+ "Standard_B4ms",
+ "Standard_B8ms",
+ "Standard_D1",
+ "Standard_D11",
+ "Standard_D11_v2",
+ "Standard_D11_v2_Promo",
+ "Standard_D12",
+ "Standard_D12_v2",
+ "Standard_D12_v2_Promo",
+ "Standard_D13",
+ "Standard_D13_v2",
+ "Standard_D13_v2_Promo",
+ "Standard_D14",
+ "Standard_D14_v2",
+ "Standard_D14_v2_Promo",
+ "Standard_D15_v2",
+ "Standard_D16_v3",
+ "Standard_D16s_v3",
+ "Standard_D1_v2",
+ "Standard_D2",
+ "Standard_D2_v2",
+ "Standard_D2_v2_Promo",
+ "Standard_D2_v3",
+ "Standard_D2s_v3",
+ "Standard_D3",
+ "Standard_D32_v3",
+ "Standard_D32s_v3",
+ "Standard_D3_v2",
+ "Standard_D3_v2_Promo",
+ "Standard_D4",
+ "Standard_D4_v2",
+ "Standard_D4_v2_Promo",
+ "Standard_D4_v3",
+ "Standard_D4s_v3",
+ "Standard_D5_v2",
+ "Standard_D5_v2_Promo",
+ "Standard_D64_v3",
+ "Standard_D64s_v3",
+ "Standard_D8_v3",
+ "Standard_D8s_v3",
+ "Standard_DS1",
+ "Standard_DS11",
+ "Standard_DS11_v2",
+ "Standard_DS11_v2_Promo",
+ "Standard_DS12",
+ "Standard_DS12_v2",
+ "Standard_DS12_v2_Promo",
+ "Standard_DS13",
+ "Standard_DS13-2_v2",
+ "Standard_DS13-4_v2",
+ "Standard_DS13_v2",
+ "Standard_DS13_v2_Promo",
+ "Standard_DS14",
+ "Standard_DS14-4_v2",
+ "Standard_DS14-8_v2",
+ "Standard_DS14_v2",
+ "Standard_DS14_v2_Promo",
+ "Standard_DS15_v2",
+ "Standard_DS1_v2",
+ "Standard_DS2",
+ "Standard_DS2_v2",
+ "Standard_DS2_v2_Promo",
+ "Standard_DS3",
+ "Standard_DS3_v2",
+ "Standard_DS3_v2_Promo",
+ "Standard_DS4",
+ "Standard_DS4_v2",
+ "Standard_DS4_v2_Promo",
+ "Standard_DS5_v2",
+ "Standard_DS5_v2_Promo",
+ "Standard_E16_v3",
+ "Standard_E16s_v3",
+ "Standard_E2_v3",
+ "Standard_E2s_v3",
+ "Standard_E32-16s_v3",
+ "Standard_E32-8s_v3",
+ "Standard_E32_v3",
+ "Standard_E32s_v3",
+ "Standard_E4_v3",
+ "Standard_E4s_v3",
+ "Standard_E64-16s_v3",
+ "Standard_E64-32s_v3",
+ "Standard_E64_v3",
+ "Standard_E64s_v3",
+ "Standard_E8_v3",
+ "Standard_E8s_v3",
+ "Standard_F1",
+ "Standard_F16",
+ "Standard_F16s",
+ "Standard_F16s_v2",
+ "Standard_F1s",
+ "Standard_F2",
+ "Standard_F2s",
+ "Standard_F2s_v2",
+ "Standard_F32s_v2",
+ "Standard_F4",
+ "Standard_F4s",
+ "Standard_F4s_v2",
+ "Standard_F64s_v2",
+ "Standard_F72s_v2",
+ "Standard_F8",
+ "Standard_F8s",
+ "Standard_F8s_v2",
+ "Standard_G1",
+ "Standard_G2",
+ "Standard_G3",
+ "Standard_G4",
+ "Standard_G5",
+ "Standard_GS1",
+ "Standard_GS2",
+ "Standard_GS3",
+ "Standard_GS4",
+ "Standard_GS4-4",
+ "Standard_GS4-8",
+ "Standard_GS5",
+ "Standard_GS5-16",
+ "Standard_GS5-8",
+ "Standard_H16",
+ "Standard_H16m",
+ "Standard_H16mr",
+ "Standard_H16r",
+ "Standard_H8",
+ "Standard_H8m",
+ "Standard_L16s",
+ "Standard_L32s",
+ "Standard_L4s",
+ "Standard_L8s",
+ "Standard_M128-32ms",
+ "Standard_M128-64ms",
+ "Standard_M128ms",
+ "Standard_M128s",
+ "Standard_M64-16ms",
+ "Standard_M64-32ms",
+ "Standard_M64ms",
+ "Standard_M64s",
+ "Standard_NC12",
+ "Standard_NC12s_v2",
+ "Standard_NC12s_v3",
+ "Standard_NC24",
+ "Standard_NC24r",
+ "Standard_NC24rs_v2",
+ "Standard_NC24rs_v3",
+ "Standard_NC24s_v2",
+ "Standard_NC24s_v3",
+ "Standard_NC6",
+ "Standard_NC6s_v2",
+ "Standard_NC6s_v3",
+ "Standard_ND12s",
+ "Standard_ND24rs",
+ "Standard_ND24s",
+ "Standard_ND6s",
+ "Standard_NV12",
+ "Standard_NV24",
+ "Standard_NV6"
+ ]
+ },
+ "ManagedClusterServicePrincipalProfile": {
+ "properties": {
+ "clientId": {
+ "type": "string",
+ "description": "The ID for the service principal."
+ },
+ "secret": {
+ "type": "string",
+ "description": "The secret password associated with the service principal in plain text."
+ }
+ },
+ "description": "Information about a service principal identity for the cluster to use for manipulating Azure APIs.",
+ "required": [
+ "clientId"
+ ]
+ },
+ "ContainerServiceMasterProfile": {
+ "properties": {
+ "count": {
+ "type": "integer",
+ "format": "int32",
+ "enum": [
+ 1,
+ 3,
+ 5
+ ],
+ "x-ms-enum": {
+ "name": "Count",
+ "modelAsString": false
+ },
+ "description": "Number of masters (VMs) in the container service cluster. Allowed values are 1, 3, and 5. The default value is 1.",
+ "default": 1
+ },
+ "dnsPrefix": {
+ "type": "string",
+ "description": "DNS prefix to be used to create the FQDN for the master pool."
+ },
+ "vmSize": {
+ "$ref": "#/definitions/ContainerServiceVMSize",
+ "description": "Size of agent VMs."
+ },
+ "osDiskSizeGB": {
+ "$ref": "#/definitions/ContainerServiceOSDisk",
+ "description": "OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified."
+ },
+ "vnetSubnetID": {
+ "$ref": "#/definitions/ContainerServiceVnetSubnetID",
+ "description": "VNet SubnetID specifies the VNet's subnet identifier."
+ },
+ "firstConsecutiveStaticIP": {
+ "type": "string",
+ "description": "FirstConsecutiveStaticIP used to specify the first static ip of masters.",
+ "default": "10.240.255.5"
+ },
+ "storageProfile": {
+ "$ref": "#/definitions/ContainerServiceStorageProfile",
+ "description": "Storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice."
+ },
+ "fqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "FQDN for the master pool."
+ }
+ },
+ "required": [
+ "dnsPrefix",
+ "vmSize"
+ ],
+ "description": "Profile for the container service master."
+ },
+ "ManagedClusterAgentPoolProfileProperties": {
+ "properties": {
+ "count": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 100 (inclusive) for user pools and in the range of 1 to 100 (inclusive) for system pools. The default value is 1."
+ },
+ "vmSize": {
+ "$ref": "#/definitions/ContainerServiceVMSize",
+ "description": "Size of agent VMs."
+ },
+ "osDiskSizeGB": {
+ "$ref": "#/definitions/ContainerServiceOSDisk",
+ "description": "OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified."
+ },
+ "vnetSubnetID": {
+ "$ref": "#/definitions/ContainerServiceVnetSubnetID",
+ "description": "VNet SubnetID specifies the VNet's subnet identifier."
+ },
+ "maxPods": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Maximum number of pods that can run on a node."
+ },
+ "osType": {
+ "$ref": "#/definitions/OSType",
+ "description": "OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux."
+ },
+ "maxCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Maximum number of nodes for auto-scaling"
+ },
+ "minCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Minimum number of nodes for auto-scaling"
+ },
+ "enableAutoScaling": {
+ "type": "boolean",
+ "description": "Whether to enable auto-scaler"
+ },
+ "type": {
+ "$ref": "#/definitions/AgentPoolType",
+ "description": "AgentPoolType represents types of an agent pool"
+ },
+ "mode": {
+ "$ref": "#/definitions/AgentPoolMode",
+ "description": "AgentPoolMode represents mode of an agent pool"
+ },
+ "orchestratorVersion": {
+ "type": "string",
+ "description": "Version of orchestrator specified when creating the managed cluster."
+ },
+ "nodeImageVersion": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Version of node image"
+ },
+ "upgradeSettings": {
+ "$ref": "#/definitions/AgentPoolUpgradeSettings",
+ "description": "Settings for upgrading the agentpool"
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The current deployment or provisioning state, which only appears in the response."
+ },
+ "availabilityZones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType."
+ },
+ "enableNodePublicIP": {
+ "type": "boolean",
+ "description": "Enable public IP for nodes"
+ },
+ "scaleSetPriority": {
+ "$ref": "#/definitions/ScaleSetPriority",
+ "description": "ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular."
+ },
+ "scaleSetEvictionPolicy": {
+ "$ref": "#/definitions/ScaleSetEvictionPolicy",
+ "description": "ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete."
+ },
+ "spotMaxPrice": {
+ "$ref": "#/definitions/SpotMaxPrice",
+ "description": "SpotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Agent pool tags to be persisted on the agent pool virtual machine scale set."
+ },
+ "nodeLabels": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Agent pool node labels to be persisted across all nodes in agent pool."
+ },
+ "nodeTaints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule."
+ },
+ "proximityPlacementGroupID": {
+ "$ref": "#/definitions/ProximityPlacementGroupID",
+ "description": "The ID for Proximity Placement Group."
+ }
+ },
+ "description": "Properties for the container service agent pool profile."
+ },
+ "ManagedClusterAgentPoolProfile": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/ManagedClusterAgentPoolProfileProperties"
+ },
+ {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Unique name of the agent pool profile in the context of the subscription and resource group.",
+ "pattern": "^[a-z][a-z0-9]{0,11}$"
+ }
+ }
+ }
+ ],
+ "required": [
+ "name"
+ ],
+ "description": "Profile for the container service agent pool."
+ },
+ "AgentPoolType": {
+ "type": "string",
+ "enum": [
+ "VirtualMachineScaleSets",
+ "AvailabilitySet"
+ ],
+ "x-ms-enum": {
+ "name": "AgentPoolType",
+ "modelAsString": true
+ },
+ "description": "AgentPoolType represents types of an agent pool."
+ },
+ "AgentPoolMode": {
+ "type": "string",
+ "enum": [
+ "System",
+ "User"
+ ],
+ "x-ms-enum": {
+ "name": "AgentPoolMode",
+ "modelAsString": true
+ },
+ "description": "AgentPoolMode represents mode of an agent pool."
+ },
+ "AgentPoolListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AgentPool"
+ },
+ "description": "The list of agent pools."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of agent pool results.",
+ "readOnly": true
+ }
+ },
+ "description": "The response from the List Agent Pools operation."
+ },
+ "AgentPoolUpgradeSettings": {
+ "properties": {
+ "maxSurge": {
+ "type": "string",
+ "description": "Count or percentage of additional nodes to be added during upgrade. If empty uses AKS default"
+ }
+ },
+ "description": "Settings for upgrading an agentpool"
+ },
+ "AgentPool": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ },
+ {
+ "properties": {
+ "properties": {
+ "description": "Properties of an agent pool.",
+ "$ref": "#/definitions/ManagedClusterAgentPoolProfileProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ }
+ ],
+ "description": "Agent Pool."
+ },
+ "ManagedClusterWindowsProfile": {
+ "properties": {
+ "adminUsername": {
+ "type": "string",
+ "description": "The administrator username to use for Windows VMs.",
+ "pattern": "^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$"
+ },
+ "adminPassword": {
+ "type": "string",
+ "description": "The administrator password to use for Windows VMs.",
+ "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\\^&\\*\\(\\)])[a-zA-Z\\d!@#$%\\^&\\*\\(\\)]{12,123}$"
+ },
+ "licenseType": {
+ "type": "string",
+ "enum": [
+ "None",
+ "Windows_Server"
+ ],
+ "x-ms-enum": {
+ "name": "licenseType",
+ "modelAsString": true
+ },
+ "description": "The licenseType to use for Windows VMs. Windows_Server is used to enable Azure Hybrid User Benefits for Windows VMs."
+ }
+ },
+ "required": [
+ "adminUsername"
+ ],
+ "description": "Profile for Windows VMs in the container service cluster."
+ },
+ "ContainerServiceLinuxProfile": {
+ "properties": {
+ "adminUsername": {
+ "type": "string",
+ "description": "The administrator username to use for Linux VMs.",
+ "pattern": "^[A-Za-z][-A-Za-z0-9_]*$"
+ },
+ "ssh": {
+ "$ref": "#/definitions/ContainerServiceSshConfiguration",
+ "description": "SSH configuration for Linux-based VMs running on Azure."
+ }
+ },
+ "required": [
+ "adminUsername",
+ "ssh"
+ ],
+ "description": "Profile for Linux VMs in the container service cluster."
+ },
+ "ContainerServiceNetworkProfile": {
+ "properties": {
+ "networkPlugin": {
+ "type": "string",
+ "enum": [
+ "azure",
+ "kubenet"
+ ],
+ "default": "kubenet",
+ "x-ms-enum": {
+ "name": "NetworkPlugin",
+ "modelAsString": true
+ },
+ "description": "Network plugin used for building Kubernetes network."
+ },
+ "networkPolicy": {
+ "type": "string",
+ "enum": [
+ "calico",
+ "azure"
+ ],
+ "x-ms-enum": {
+ "name": "NetworkPolicy",
+ "modelAsString": true
+ },
+ "description": "Network policy used for building Kubernetes network."
+ },
+ "networkMode": {
+ "type": "string",
+ "enum": [
+ "transparent",
+ "bridge"
+ ],
+ "x-ms-enum": {
+ "name": "networkMode",
+ "modelAsString": true
+ },
+ "description": "Network mode used for building Kubernetes network."
+ },
+ "podCidr": {
+ "type": "string",
+ "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$",
+ "default": "10.244.0.0/16",
+ "description": "A CIDR notation IP range from which to assign pod IPs when kubenet is used."
+ },
+ "serviceCidr": {
+ "type": "string",
+ "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$",
+ "default": "10.0.0.0/16",
+ "description": "A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges."
+ },
+ "dnsServiceIP": {
+ "type": "string",
+ "pattern": "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$",
+ "default": "10.0.0.10",
+ "description": "An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr."
+ },
+ "dockerBridgeCidr": {
+ "type": "string",
+ "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$",
+ "default": "172.17.0.1/16",
+ "description": "A CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP ranges or the Kubernetes service address range."
+ },
+ "outboundType": {
+ "type": "string",
+ "enum": [
+ "loadBalancer",
+ "userDefinedRouting"
+ ],
+ "x-ms-enum": {
+ "name": "outboundType",
+ "modelAsString": true
+ },
+ "default": "loadBalancer",
+ "description": "The outbound (egress) routing method."
+ },
+ "loadBalancerSku": {
+ "type": "string",
+ "enum": [
+ "standard",
+ "basic"
+ ],
+ "x-ms-enum": {
+ "name": "loadBalancerSku",
+ "modelAsString": true
+ },
+ "description": "The load balancer sku for the managed cluster."
+ },
+ "loadBalancerProfile": {
+ "$ref": "#/definitions/ManagedClusterLoadBalancerProfile",
+ "description": "Profile of the cluster load balancer."
+ }
+ },
+ "description": "Profile of network configuration."
+ },
+ "ManagedClusterLoadBalancerProfile": {
+ "properties": {
+ "managedOutboundIPs": {
+ "properties": {
+ "count": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 100,
+ "minimum": 1,
+ "description": "Desired number of outbound IP created/managed by Azure for the cluster load balancer. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1. ",
+ "default": 1
+ }
+ },
+ "description": "Desired managed outbound IPs for the cluster load balancer."
+ },
+ "outboundIPPrefixes": {
+ "properties": {
+ "publicIPPrefixes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceReference"
+ },
+ "description": "A list of public IP prefix resources."
+ }
+ },
+ "description": "Desired outbound IP Prefix resources for the cluster load balancer."
+ },
+ "outboundIPs": {
+ "properties": {
+ "publicIPs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceReference"
+ },
+ "description": "A list of public IP resources."
+ }
+ },
+ "description": "Desired outbound IP resources for the cluster load balancer."
+ },
+ "effectiveOutboundIPs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceReference"
+ },
+ "description": "The effective outbound IP resources of the cluster load balancer."
+ },
+ "allocatedOutboundPorts": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 64000,
+ "minimum": 0,
+ "description": "Desired number of allocated SNAT ports per VM. Allowed values must be in the range of 0 to 64000 (inclusive). The default value is 0 which results in Azure dynamically allocating ports.",
+ "default": 0
+ },
+ "idleTimeoutInMinutes": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 120,
+ "minimum": 4,
+ "description": "Desired outbound flow idle timeout in minutes. Allowed values must be in the range of 4 to 120 (inclusive). The default value is 30 minutes.",
+ "default": 30
+ }
+ },
+ "description": "Profile of the managed cluster load balancer."
+ },
+ "ResourceReference": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The fully qualified Azure resource id."
+ }
+ },
+ "description": "A reference to an Azure resource."
+ },
+ "ContainerServiceSshConfiguration": {
+ "properties": {
+ "publicKeys": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerServiceSshPublicKey"
+ },
+ "description": "The list of SSH public keys used to authenticate with Linux-based VMs. Only expect one key specified."
+ }
+ },
+ "description": "SSH configuration for Linux-based VMs running on Azure.",
+ "required": [
+ "publicKeys"
+ ]
+ },
+ "ContainerServiceSshPublicKey": {
+ "properties": {
+ "keyData": {
+ "type": "string",
+ "description": "Certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or without headers."
+ }
+ },
+ "required": [
+ "keyData"
+ ],
+ "description": "Contains information about SSH certificate public key data."
+ },
+ "ContainerServiceDiagnosticsProfile": {
+ "properties": {
+ "vmDiagnostics": {
+ "$ref": "#/definitions/ContainerServiceVMDiagnostics",
+ "description": "Profile for diagnostics on the container service VMs."
+ }
+ },
+ "description": "Profile for diagnostics on the container service cluster.",
+ "required": [
+ "vmDiagnostics"
+ ]
+ },
+ "ContainerServiceVMDiagnostics": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether the VM diagnostic agent is provisioned on the VM."
+ },
+ "storageUri": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URI of the storage account where diagnostics are stored."
+ }
+ },
+ "description": "Profile for diagnostics on the container service VMs.",
+ "required": [
+ "enabled"
+ ]
+ },
+ "ManagedClusterListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ManagedCluster"
+ },
+ "description": "The list of managed clusters."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of managed cluster results.",
+ "readOnly": true
+ }
+ },
+ "description": "The response from the List Managed Clusters operation."
+ },
+ "ManagedCluster": {
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/ManagedClusterSKU",
+ "description": "The managed cluster SKU."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ },
+ {
+ "properties": {
+ "properties": {
+ "description": "Properties of a managed cluster.",
+ "$ref": "#/definitions/ManagedClusterProperties",
+ "x-ms-client-flatten": true
+ },
+ "identity": {
+ "$ref": "#/definitions/ManagedClusterIdentity",
+ "description": "The identity of the managed cluster, if configured."
+ }
+ }
+ }
+ ],
+ "description": "Managed cluster."
+ },
+ "ManagedClusterProperties": {
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The current deployment or provisioning state, which only appears in the response."
+ },
+ "maxAgentPools": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "The max number of agent pools for the managed cluster."
+ },
+ "kubernetesVersion": {
+ "type": "string",
+ "description": "Version of Kubernetes specified when creating the managed cluster."
+ },
+ "dnsPrefix": {
+ "type": "string",
+ "description": "DNS prefix specified when creating the managed cluster."
+ },
+ "fqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "FQDN for the master pool."
+ },
+ "privateFQDN": {
+ "readOnly": true,
+ "type": "string",
+ "description": "FQDN of private cluster."
+ },
+ "agentPoolProfiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ManagedClusterAgentPoolProfile"
+ },
+ "description": "Properties of the agent pool."
+ },
+ "linuxProfile": {
+ "$ref": "#/definitions/ContainerServiceLinuxProfile",
+ "description": "Profile for Linux VMs in the container service cluster."
+ },
+ "windowsProfile": {
+ "$ref": "#/definitions/ManagedClusterWindowsProfile",
+ "description": "Profile for Windows VMs in the container service cluster."
+ },
+ "servicePrincipalProfile": {
+ "$ref": "#/definitions/ManagedClusterServicePrincipalProfile",
+ "description": "Information about a service principal identity for the cluster to use for manipulating Azure APIs."
+ },
+ "addonProfiles": {
+ "additionalProperties": {
+ "$ref": "#/definitions/ManagedClusterAddonProfile"
+ },
+ "description": "Profile of managed cluster add-on."
+ },
+ "nodeResourceGroup": {
+ "type": "string",
+ "description": "Name of the resource group containing agent pool nodes."
+ },
+ "enableRBAC": {
+ "type": "boolean",
+ "description": "Whether to enable Kubernetes Role-Based Access Control."
+ },
+ "enablePodSecurityPolicy": {
+ "type": "boolean",
+ "description": "(DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy."
+ },
+ "networkProfile": {
+ "$ref": "#/definitions/ContainerServiceNetworkProfile",
+ "description": "Profile of network configuration."
+ },
+ "aadProfile": {
+ "$ref": "#/definitions/ManagedClusterAADProfile",
+ "description": "Profile of Azure Active Directory configuration."
+ },
+ "autoScalerProfile": {
+ "type": "object",
+ "properties": {
+ "balance-similar-node-groups": {
+ "type": "string"
+ },
+ "scan-interval": {
+ "type": "string"
+ },
+ "scale-down-delay-after-add": {
+ "type": "string"
+ },
+ "scale-down-delay-after-delete": {
+ "type": "string"
+ },
+ "scale-down-delay-after-failure": {
+ "type": "string"
+ },
+ "scale-down-unneeded-time": {
+ "type": "string"
+ },
+ "scale-down-unready-time": {
+ "type": "string"
+ },
+ "scale-down-utilization-threshold": {
+ "type": "string"
+ },
+ "max-graceful-termination-sec": {
+ "type": "string"
+ }
+ },
+ "description": "Parameters to be applied to the cluster-autoscaler when enabled"
+ },
+ "apiServerAccessProfile": {
+ "$ref": "#/definitions/ManagedClusterAPIServerAccessProfile",
+ "description": "Access profile for managed cluster API server."
+ },
+ "diskEncryptionSetID": {
+ "type": "string",
+ "description": "ResourceId of the disk encryption set to use for enabling encryption at rest."
+ },
+ "identityProfile": {
+ "additionalProperties": {
+ "readOnly": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/UserAssignedIdentity"
+ }
+ ]
+ },
+ "description": "Identities associated with the cluster."
+ }
+ },
+ "description": "Properties of the managed cluster."
+ },
+ "ManagedClusterAPIServerAccessProfile": {
+ "properties": {
+ "authorizedIPRanges": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Authorized IP Ranges to kubernetes API server."
+ },
+ "enablePrivateCluster": {
+ "type": "boolean",
+ "description": "Whether to create the cluster as a private cluster or not."
+ }
+ },
+ "description": "Access profile for managed cluster API server."
+ },
+ "ManagedClusterIdentity": {
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of the system assigned identity which is used by master components."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant id of the system assigned identity which is used by master components."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of identity used for the managed cluster. Type 'SystemAssigned' will use an implicitly created identity in master components and an auto-created user assigned identity in MC_ resource group in agent nodes. Type 'None' will not use MSI for the managed cluster, service principal will be used instead.",
+ "enum": [
+ "SystemAssigned",
+ "UserAssigned",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceIdentityType",
+ "modelAsString": false
+ }
+ },
+ "userAssignedIdentities": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of user assigned identity."
+ },
+ "clientId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The client id of user assigned identity."
+ }
+ }
+ },
+ "description": "The user identity associated with the managed cluster. This identity will be used in control plane and only one user assigned identity is allowed. 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 managed cluster."
+ },
+ "UserAssignedIdentity": {
+ "properties": {
+ "resourceId": {
+ "type": "string",
+ "description": "The resource id of the user assigned identity."
+ },
+ "clientId": {
+ "type": "string",
+ "description": "The client id of the user assigned identity."
+ },
+ "objectId": {
+ "type": "string",
+ "description": "The object id of the user assigned identity."
+ }
+ }
+ },
+ "ManagedClusterAccessProfile": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ },
+ {
+ "properties": {
+ "properties": {
+ "description": "AccessProfile of a managed cluster.",
+ "$ref": "#/definitions/AccessProfile",
+ "x-ms-client-flatten": true
+ }
+ }
+ }
+ ],
+ "description": "Managed cluster Access Profile.",
+ "x-ms-azure-resource": false
+ },
+ "AccessProfile": {
+ "type": "object",
+ "properties": {
+ "kubeConfig": {
+ "type": "string",
+ "format": "byte",
+ "description": "Base64-encoded Kubernetes configuration file."
+ }
+ },
+ "description": "Profile for enabling a user to access a managed cluster."
+ },
+ "ManagedClusterPoolUpgradeProfile": {
+ "properties": {
+ "kubernetesVersion": {
+ "type": "string",
+ "description": "Kubernetes version (major, minor, patch)."
+ },
+ "name": {
+ "type": "string",
+ "description": "Pool name."
+ },
+ "osType": {
+ "$ref": "#/definitions/OSType",
+ "enum": [
+ "Linux",
+ "Windows"
+ ],
+ "x-ms-enum": {
+ "name": "ContainerServiceOSTypes",
+ "modelAsString": true
+ },
+ "description": "OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux."
+ },
+ "upgrades": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "kubernetesVersion": {
+ "type": "string",
+ "description": "Kubernetes version (major, minor, patch)."
+ },
+ "isPreview": {
+ "type": "boolean",
+ "description": "Whether Kubernetes version is currently in preview."
+ }
+ }
+ },
+ "description": "List of orchestrator types and versions available for upgrade."
+ }
+ },
+ "required": [
+ "kubernetesVersion",
+ "osType"
+ ],
+ "description": "The list of available upgrade versions."
+ },
+ "ManagedClusterUpgradeProfileProperties": {
+ "properties": {
+ "controlPlaneProfile": {
+ "$ref": "#/definitions/ManagedClusterPoolUpgradeProfile",
+ "description": "The list of available upgrade versions for the control plane."
+ },
+ "agentPoolProfiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ManagedClusterPoolUpgradeProfile"
+ },
+ "description": "The list of available upgrade versions for agent pools."
+ }
+ },
+ "required": [
+ "controlPlaneProfile",
+ "agentPoolProfiles"
+ ],
+ "description": "Control plane and agent pool upgrade profiles."
+ },
+ "ManagedClusterAADProfile": {
+ "properties": {
+ "managed": {
+ "type": "boolean",
+ "description": "Whether to enable managed AAD."
+ },
+ "enableAzureRBAC": {
+ "type": "boolean",
+ "description": "Whether to enable Azure RBAC for Kubernetes authorization."
+ },
+ "adminGroupObjectIDs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "AAD group object IDs that will have admin role of the cluster."
+ },
+ "clientAppID": {
+ "type": "string",
+ "description": "The client AAD application ID."
+ },
+ "serverAppID": {
+ "type": "string",
+ "description": "The server AAD application ID."
+ },
+ "serverAppSecret": {
+ "type": "string",
+ "description": "The server AAD application secret."
+ },
+ "tenantID": {
+ "type": "string",
+ "description": "The AAD tenant ID to use for authentication. If not specified, will use the tenant of the deployment subscription."
+ }
+ },
+ "description": "AADProfile specifies attributes for Azure Active Directory integration."
+ },
+ "ManagedClusterAddonProfile": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether the add-on is enabled or not."
+ },
+ "config": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Key-value pairs for configuring an add-on."
+ },
+ "identity": {
+ "readOnly": true,
+ "description": "Information of user assigned identity used by this add-on.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/UserAssignedIdentity"
+ }
+ ]
+ }
+ },
+ "required": [
+ "enabled"
+ ],
+ "description": "A Kubernetes add-on profile for a managed cluster."
+ },
+ "ManagedClusterUpgradeProfile": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Id of upgrade profile."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of upgrade profile."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of upgrade profile."
+ },
+ "properties": {
+ "$ref": "#/definitions/ManagedClusterUpgradeProfileProperties",
+ "description": "Properties of upgrade profile.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "description": "The list of available upgrades for compute pools."
+ },
+ "AgentPoolUpgradeProfile": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Id of the agent pool upgrade profile."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of the agent pool upgrade profile."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the agent pool upgrade profile."
+ },
+ "properties": {
+ "$ref": "#/definitions/AgentPoolUpgradeProfileProperties",
+ "description": "Properties of agent pool upgrade profile.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "description": "The list of available upgrades for an agent pool."
+ },
+ "AgentPoolUpgradeProfileProperties": {
+ "properties": {
+ "kubernetesVersion": {
+ "type": "string",
+ "description": "Kubernetes version (major, minor, patch)."
+ },
+ "osType": {
+ "$ref": "#/definitions/OSType",
+ "enum": [
+ "Linux",
+ "Windows"
+ ],
+ "x-ms-enum": {
+ "name": "ContainerServiceOSTypes",
+ "modelAsString": true
+ },
+ "description": "OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux."
+ },
+ "upgrades": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "kubernetesVersion": {
+ "type": "string",
+ "description": "Kubernetes version (major, minor, patch)."
+ },
+ "isPreview": {
+ "type": "boolean",
+ "description": "Whether Kubernetes version is currently in preview."
+ }
+ }
+ },
+ "description": "List of orchestrator types and versions available for upgrade."
+ },
+ "latestNodeImageVersion": {
+ "type": "string",
+ "description": "LatestNodeImageVersion is the latest AKS supported node image version."
+ }
+ },
+ "required": [
+ "kubernetesVersion",
+ "osType"
+ ],
+ "description": "The list of available upgrade versions."
+ },
+ "AgentPoolAvailableVersions": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Id of the agent pool available versions."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of the agent pool available versions."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the agent pool available versions."
+ },
+ "properties": {
+ "$ref": "#/definitions/AgentPoolAvailableVersionsProperties",
+ "description": "Properties of agent pool available versions.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "description": "The list of available versions for an agent pool."
+ },
+ "AgentPoolAvailableVersionsProperties": {
+ "properties": {
+ "agentPoolVersions": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "default": {
+ "type": "boolean",
+ "description": "Whether this version is the default agent pool version."
+ },
+ "kubernetesVersion": {
+ "type": "string",
+ "description": "Kubernetes version (major, minor, patch)."
+ },
+ "isPreview": {
+ "type": "boolean",
+ "description": "Whether Kubernetes version is currently in preview."
+ }
+ }
+ },
+ "description": "List of versions available for agent pool."
+ }
+ },
+ "description": "The list of available agent pool versions."
+ },
+ "OSType": {
+ "type": "string",
+ "default": "Linux",
+ "enum": [
+ "Linux",
+ "Windows"
+ ],
+ "x-ms-enum": {
+ "name": "OSType",
+ "modelAsString": true
+ },
+ "description": "OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux."
+ },
+ "ScaleSetPriority": {
+ "type": "string",
+ "default": "Regular",
+ "enum": [
+ "Spot",
+ "Regular"
+ ],
+ "x-ms-enum": {
+ "name": "ScaleSetPriority",
+ "modelAsString": true
+ },
+ "description": "ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular."
+ },
+ "ScaleSetEvictionPolicy": {
+ "type": "string",
+ "default": "Delete",
+ "enum": [
+ "Delete",
+ "Deallocate"
+ ],
+ "x-ms-enum": {
+ "name": "ScaleSetEvictionPolicy",
+ "modelAsString": true
+ },
+ "description": "ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete."
+ },
+ "SpotMaxPrice": {
+ "type": "number",
+ "default": -1,
+ "description": "SpotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand."
+ },
+ "ProximityPlacementGroupID": {
+ "type": "string",
+ "description": "The ID for Proximity Placement Group."
+ },
+ "CredentialResults": {
+ "properties": {
+ "kubeconfigs": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/CredentialResult"
+ },
+ "description": "Base64-encoded Kubernetes configuration file."
+ }
+ },
+ "description": "The list of credential result response."
+ },
+ "CredentialResult": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the credential."
+ },
+ "value": {
+ "type": "string",
+ "format": "byte",
+ "readOnly": true,
+ "description": "Base64-encoded Kubernetes configuration file."
+ }
+ },
+ "description": "The credential result response."
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/CloudErrorBody",
+ "description": "Details about the error."
+ }
+ },
+ "description": "An error response from the Container service."
+ },
+ "CloudErrorBody": {
+ "x-ms-external": true,
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "A message describing the error, intended to be suitable for display in a user interface."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the particular error. For example, the name of the property in error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudErrorBody"
+ },
+ "description": "A list of additional details about the error."
+ }
+ },
+ "description": "An error response from the Container service."
+ },
+ "ManagedClusterSKU": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of a managed cluster SKU.",
+ "enum": [
+ "Basic"
+ ],
+ "x-ms-enum": {
+ "name": "ManagedClusterSKUName",
+ "modelAsString": true
+ }
+ },
+ "tier": {
+ "type": "string",
+ "description": "Tier of a managed cluster SKU.",
+ "enum": [
+ "Paid",
+ "Free"
+ ],
+ "x-ms-enum": {
+ "name": "ManagedClusterSKUTier",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "PrivateEndpointConnectionListResult": {
+ "type": "object",
+ "description": "A list of private endpoint connections",
+ "properties": {
+ "value": {
+ "description": "The collection value.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ }
+ }
+ },
+ "PrivateEndpointConnection": {
+ "description": "A private endpoint connection",
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The ID of the private endpoint connection."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the private endpoint connection.",
+ "externalDocs": {
+ "url": "https://aka.ms/search-naming-rules"
+ }
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "description": "The properties of a private endpoint connection.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "PrivateEndpointConnectionProperties": {
+ "type": "object",
+ "description": "Properties of a private endpoint connection.",
+ "properties": {
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The current provisioning state.",
+ "enum": [
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "PrivateEndpointConnectionProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "privateEndpoint": {
+ "$ref": "#/definitions/PrivateEndpoint",
+ "description": "The resource of private endpoint."
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "#/definitions/PrivateLinkServiceConnectionState",
+ "description": "A collection of information about the state of the connection between service consumer and provider."
+ }
+ },
+ "required": [
+ "privateLinkServiceConnectionState"
+ ]
+ },
+ "PrivateEndpoint": {
+ "type": "object",
+ "description": "Private endpoint which a connection belongs to.",
+ "properties": {
+ "id": {
+ "description": "The resource Id for private endpoint",
+ "type": "string"
+ }
+ }
+ },
+ "PrivateLinkServiceConnectionState": {
+ "description": "The state of a private link service connection.",
+ "type": "object",
+ "properties": {
+ "status": {
+ "enum": [
+ "Pending",
+ "Approved",
+ "Rejected",
+ "Disconnected"
+ ],
+ "type": "string",
+ "description": "The private link service connection status.",
+ "x-ms-enum": {
+ "name": "ConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "description": {
+ "type": "string",
+ "description": "The private link service connection description."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
+ "x-ms-parameter-location": "client"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version.",
+ "x-ms-parameter-location": "client"
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "minLength": 1,
+ "description": "The name of the resource group.",
+ "x-ms-parameter-location": "method"
+ },
+ "ResourceNameParameter": {
+ "name": "resourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 63,
+ "pattern": "^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$",
+ "description": "The name of the managed cluster resource.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsCreate_Ephemeral.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsCreate_Ephemeral.json
new file mode 100644
index 000000000000..0465208ed255
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsCreate_Ephemeral.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1",
+ "parameters": {
+ "properties": {
+ "orchestratorVersion": "",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "osType": "Linux",
+ "osDiskType": "Ephemeral",
+ "osDiskSizeGB": 64
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.17.8",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "osDiskType": "Ephemeral",
+ "osDiskSizeGB": 64
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.17.8",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "osDiskType": "Ephemeral",
+ "osDiskSizeGB": 64
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsCreate_PPG.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsCreate_PPG.json
new file mode 100644
index 000000000000..fe3c6998bb0b
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsCreate_PPG.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1",
+ "parameters": {
+ "properties": {
+ "orchestratorVersion": "",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "osType": "Linux",
+ "proximityPlacementGroupID": "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/proximityPlacementGroups/ppg1"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "proximityPlacementGroupID": "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/proximityPlacementGroups/ppg1"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "proximityPlacementGroupID": "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/proximityPlacementGroups/ppg1"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsCreate_Spot.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsCreate_Spot.json
new file mode 100644
index 000000000000..1dd25b5f1cd6
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsCreate_Spot.json
@@ -0,0 +1,84 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1",
+ "parameters": {
+ "properties": {
+ "orchestratorVersion": "",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "osType": "Linux",
+ "tags": {
+ "name1": "val1"
+ },
+ "nodeLabels": {
+ "key1": "val1"
+ },
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "tags": {
+ "name1": "val1"
+ },
+ "nodeLabels": {
+ "key1": "val1"
+ },
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete",
+ "spotMaxPrice": -1
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "tags": {
+ "name1": "val1"
+ },
+ "nodeLabels": {
+ "key1": "val1"
+ },
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete",
+ "spotMaxPrice": -1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsCreate_Update.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsCreate_Update.json
new file mode 100644
index 000000000000..f72c274a469c
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsCreate_Update.json
@@ -0,0 +1,86 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1",
+ "parameters": {
+ "properties": {
+ "orchestratorVersion": "",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "osType": "Linux",
+ "tags": {
+ "name1": "val1"
+ },
+ "nodeLabels": {
+ "key1": "val1"
+ },
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete",
+ "mode": "User"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "tags": {
+ "name1": "val1"
+ },
+ "nodeLabels": {
+ "key1": "val1"
+ },
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete",
+ "mode": "User",
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "tags": {
+ "name1": "val1"
+ },
+ "nodeLabels": {
+ "key1": "val1"
+ },
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete",
+ "mode": "User"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsDelete.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsDelete.json
new file mode 100644
index 000000000000..34e078b8ddc9
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsGet.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsGet.json
new file mode 100644
index 000000000000..e2924bd00050
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsGet.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "orchestratorVersion": "1.9.6",
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11",
+ "upgradeSettings": {
+ "maxSurge": "33%"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsGetAgentPoolAvailableVersions.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsGetAgentPoolAvailableVersions.json
new file mode 100644
index 000000000000..0562b87ea10e
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsGetAgentPoolAvailableVersions.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/availableagentpoolversions",
+ "name": "default",
+ "properties": {
+ "agentPoolVersions": [
+ {
+ "kubernetesVersion": "1.12.7"
+ },
+ {
+ "kubernetesVersion": "1.12.8"
+ },
+ {
+ "default": true,
+ "kubernetesVersion": "1.13.5",
+ "isPreview": true
+ }
+ ]
+ },
+ "type": "Microsoft.ContainerService/managedClusters/availableAgentpoolVersions"
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsGetUpgradeProfile.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsGetUpgradeProfile.json
new file mode 100644
index 000000000000..23544c4c5b16
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsGetUpgradeProfile.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1/upgradeprofiles/default",
+ "name": "default",
+ "properties": {
+ "kubernetesVersion": "1.12.8",
+ "osType": "Linux",
+ "upgrades": [
+ {
+ "kubernetesVersion": "1.13.5"
+ }
+ ],
+ "latestNodeImageVersion": "AKSUbuntu:1604:2020.03.11"
+ },
+ "type": "Microsoft.ContainerService/managedClusters/agentPools/upgradeProfiles"
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsList.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsList.json
new file mode 100644
index 000000000000..09ec35dd854d
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsList.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "orchestratorVersion": "1.9.6",
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsUpgradeNodeImageVersion.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsUpgradeNodeImageVersion.json
new file mode 100644
index 000000000000..d1d4d87e5881
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPoolsUpgradeNodeImageVersion.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1"
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "UpgradingNodeImageVersion",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "orchestratorVersion": "1.9.6",
+ "nodeImageVersion": "AKSUbuntu-1604-2020.03.11",
+ "upgradeSettings": {
+ "maxSurge": "33%"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPools_Update.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPools_Update.json
new file mode 100644
index 000000000000..9c0ee3ef6a60
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/AgentPools_Update.json
@@ -0,0 +1,73 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "agentPoolName": "agentpool1",
+ "parameters": {
+ "properties": {
+ "orchestratorVersion": "",
+ "count": 3,
+ "enableAutoScaling": true,
+ "minCount": 2,
+ "maxCount": 2,
+ "vmSize": "Standard_DS1_v2",
+ "osType": "Linux",
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "enableAutoScaling": true,
+ "minCount": 2,
+ "maxCount": 2,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/agentPools/agentpool1",
+ "type": "Microsoft.ContainerService/managedClusters/agentPools",
+ "name": "agentpool1",
+ "properties": {
+ "provisioningState": "Updating",
+ "orchestratorVersion": "1.9.6",
+ "count": 3,
+ "enableAutoScaling": true,
+ "minCount": 2,
+ "maxCount": 2,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "nodeTaints": [
+ "Key1=Value1:NoSchedule"
+ ],
+ "scaleSetPriority": "Spot",
+ "scaleSetEvictionPolicy": "Delete"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersCreate_PPG.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersCreate_PPG.json
new file mode 100644
index 000000000000..52cbf09263a2
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersCreate_PPG.json
@@ -0,0 +1,236 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "location": "location1",
+ "tags": {
+ "tier": "production",
+ "archv2": ""
+ },
+ "sku": {
+ "name": "Basic",
+ "tier": "Free"
+ },
+ "properties": {
+ "kubernetesVersion": "",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "osType": "Linux",
+ "type": "VirtualMachineScaleSets",
+ "enableNodePublicIP": true,
+ "mode": "System",
+ "proximityPlacementGroupID": "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/proximityPlacementGroups/ppg1"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "networkProfile": {
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "managedOutboundIPs": {
+ "count": 2
+ }
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser",
+ "adminPassword": "replacePassword1234$"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid",
+ "secret": "secret"
+ },
+ "addonProfiles": {},
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "enableNodePublicIP": true,
+ "mode": "System",
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11",
+ "proximityPlacementGroupID": "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/proximityPlacementGroups/ppg1"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "networkProfile": {
+ "loadBalancerSku": "basic",
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Creating",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS2_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "enableNodePublicIP": true,
+ "mode": "System",
+ "proximityPlacementGroupID": "/subscriptions/subid1/resourcegroups/rg1/providers//Microsoft.Compute/proximityPlacementGroups/ppg1"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersCreate_Update.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersCreate_Update.json
new file mode 100644
index 000000000000..2154502d0c28
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersCreate_Update.json
@@ -0,0 +1,280 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "location": "location1",
+ "tags": {
+ "tier": "production",
+ "archv2": ""
+ },
+ "sku": {
+ "name": "Basic",
+ "tier": "Free"
+ },
+ "properties": {
+ "kubernetesVersion": "",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "osType": "Linux",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "networkProfile": {
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "managedOutboundIPs": {
+ "count": 2
+ }
+ }
+ },
+ "autoScalerProfile": {
+ "balance-similar-node-groups": "true",
+ "expander": "most-pods",
+ "new-pod-scale-up-delay": "1m",
+ "scale-down-delay-after-add": "15m",
+ "scan-interval": "20s",
+ "skip-nodes-with-system-pods": "false"
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser",
+ "adminPassword": "replacePassword1234$"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid",
+ "secret": "secret"
+ },
+ "addonProfiles": {},
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {}
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System",
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "networkProfile": {
+ "loadBalancerSku": "basic",
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "autoScalerProfile": {
+ "balance-similar-node-groups": "true",
+ "expander": "most-pods",
+ "new-pod-scale-up-delay": "1m",
+ "scale-down-delay-after-add": "15m",
+ "scan-interval": "20s",
+ "skip-nodes-with-system-pods": "false"
+ }
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {
+ "principalId": "principalId1",
+ "clientId": "clientId1"
+ }
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Creating",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {
+ "principalId": "principalId1",
+ "clientId": "clientId1"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersCreate_UpdateWithAHUB.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersCreate_UpdateWithAHUB.json
new file mode 100644
index 000000000000..22500c964240
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersCreate_UpdateWithAHUB.json
@@ -0,0 +1,275 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "location": "location1",
+ "tags": {
+ "tier": "production",
+ "archv2": ""
+ },
+ "sku": {
+ "name": "Basic",
+ "tier": "Free"
+ },
+ "properties": {
+ "kubernetesVersion": "",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "osType": "Linux",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "networkProfile": {
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "managedOutboundIPs": {
+ "count": 2
+ }
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser",
+ "adminPassword": "replacePassword1234$",
+ "licenseType": "Windows_Server"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid",
+ "secret": "secret"
+ },
+ "addonProfiles": {},
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {}
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System",
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser",
+ "licenseType": "Windows_Server"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "networkProfile": {
+ "loadBalancerSku": "basic",
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {
+ "principalId": "principalId1",
+ "clientId": "clientId1"
+ }
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Creating",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser",
+ "licenseType": "Windows_Server"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ },
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/subid1/resourceGroups/rgName1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1": {
+ "principalId": "principalId1",
+ "clientId": "clientId1"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersCreate_UpdateWithEnableAzureRBAC.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersCreate_UpdateWithEnableAzureRBAC.json
new file mode 100644
index 000000000000..e88ec3b727e7
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersCreate_UpdateWithEnableAzureRBAC.json
@@ -0,0 +1,264 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "location": "location1",
+ "tags": {
+ "tier": "production",
+ "archv2": ""
+ },
+ "sku": {
+ "name": "Basic",
+ "tier": "Free"
+ },
+ "properties": {
+ "kubernetesVersion": "",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "osType": "Linux",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "networkProfile": {
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "managedOutboundIPs": {
+ "count": 2
+ }
+ }
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser",
+ "adminPassword": "replacePassword1234$"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid",
+ "secret": "secret"
+ },
+ "addonProfiles": {},
+ "aadProfile": {
+ "managed": true,
+ "enableAzureRBAC": true
+ },
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System",
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "networkProfile": {
+ "loadBalancerSku": "basic",
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "aadProfile": {
+ "managed": true,
+ "adminGroupObjectIDs": null,
+ "enableAzureRBAC": true,
+ "tenantID": "tenantID"
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Creating",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Creating",
+ "orchestratorVersion": "1.9.6",
+ "type": "VirtualMachineScaleSets",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "enableNodePublicIP": true,
+ "mode": "System"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "windowsProfile": {
+ "adminUsername": "azureuser"
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": true,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "enablePodSecurityPolicy": true,
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "managedOutboundIPs": {
+ "count": 2
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ },
+ "aadProfile": {
+ "managed": true,
+ "adminGroupObjectIDs": null,
+ "enableAzureRBAC": true,
+ "tenantID": "tenantID"
+ },
+ "autoScalerProfile": {
+ "scan-interval": "20s",
+ "scale-down-delay-after-add": "15m"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersDelete.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersDelete.json
new file mode 100644
index 000000000000..12a0dd0e4a25
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersGet.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersGet.json
new file mode 100644
index 000000000000..74d4a76054ad
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersGet.json
@@ -0,0 +1,96 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "maxAgentPools": 1,
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6",
+ "availabilityZones": [
+ "1",
+ "2",
+ "3"
+ ],
+ "nodeImageVersion": "AKSUbuntu:1604:2020.03.11",
+ "upgradeSettings": {
+ "maxSurge": "33%"
+ }
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": false,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16",
+ "loadBalancerSku": "standard",
+ "outboundType": "loadBalancer",
+ "loadBalancerProfile": {
+ "allocatedOutboundPorts": 2000,
+ "idleTimeoutInMinutes": 10,
+ "outboundIPs": {
+ "publicIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/customeroutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/customeroutboundip2"
+ }
+ ]
+ },
+ "effectiveOutboundIPs": [
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip1"
+ },
+ {
+ "id": "/subscriptions/subid1/resourceGroups/MC_rg1/providers/Microsoft.Network/publicIPAddresses/mgdoutboundip2"
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersGetAccessProfile.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersGetAccessProfile.json
new file mode 100644
index 000000000000..e8fb8bd9c65b
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersGetAccessProfile.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "roleName": "clusterUser"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/accessProfiles/clusterUser",
+ "location": "location1",
+ "name": "clusterUser",
+ "properties": {
+ "kubeConfig": "kubeConfig1"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters/AccessProfiles"
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersGetUpgradeProfile.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersGetUpgradeProfile.json
new file mode 100644
index 000000000000..96bc1df11315
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersGetUpgradeProfile.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/upgradeprofiles/default",
+ "name": "default",
+ "properties": {
+ "agentPoolProfiles": [
+ {
+ "kubernetesVersion": "1.7.7",
+ "name": "agent",
+ "osType": "Linux",
+ "upgrades": [
+ {
+ "kubernetesVersion": "1.7.9"
+ },
+ {
+ "kubernetesVersion": "1.7.11",
+ "isPreview": true
+ }
+ ]
+ }
+ ],
+ "controlPlaneProfile": {
+ "kubernetesVersion": "1.7.7",
+ "name": "master",
+ "osType": "Linux",
+ "upgrades": [
+ {
+ "kubernetesVersion": "1.7.9",
+ "isPreview": true
+ },
+ {
+ "kubernetesVersion": "1.7.11"
+ }
+ ]
+ }
+ },
+ "type": "Microsoft.ContainerService/managedClusters/upgradeprofiles"
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersList.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersList.json
new file mode 100644
index 000000000000..e89e09461ba0
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersList.json
@@ -0,0 +1,65 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid1/providers/Microsoft.ContainerService/managedClusters",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "kubernetesVersion": "1.9.6",
+ "maxAgentPools": 1,
+ "dnsPrefix": "dnsprefix1",
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": false,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersListByResourceGroup.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersListByResourceGroup.json
new file mode 100644
index 000000000000..d4337b7e4d4b
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersListByResourceGroup.json
@@ -0,0 +1,66 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv2": "",
+ "tier": "production"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "kubernetesVersion": "1.9.6",
+ "maxAgentPools": 1,
+ "dnsPrefix": "dnsprefix1",
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": false,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersListClusterCredentialResult.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersListClusterCredentialResult.json
new file mode 100644
index 000000000000..106b9437fe9b
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersListClusterCredentialResult.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "kubeconfigs": [
+ {
+ "name": "credentialName1",
+ "value": "credentialValue1"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersResetAADProfile.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersResetAADProfile.json
new file mode 100644
index 000000000000..f655e65a95cf
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersResetAADProfile.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "clientAppID": "clientappid",
+ "serverAppID": "serverappid",
+ "serverAppSecret": "serverappsecret",
+ "tenantID": "tenantid"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersResetServicePrincipalProfile.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersResetServicePrincipalProfile.json
new file mode 100644
index 000000000000..5849ddf284ae
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersResetServicePrincipalProfile.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "clientId": "clientid",
+ "secret": "secret"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersRotateClusterCertificates.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersRotateClusterCertificates.json
new file mode 100644
index 000000000000..12a0dd0e4a25
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersRotateClusterCertificates.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersStart.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersStart.json
new file mode 100644
index 000000000000..12a0dd0e4a25
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersStart.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersStop.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersStop.json
new file mode 100644
index 000000000000..12a0dd0e4a25
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersStop.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersUpdateTags.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersUpdateTags.json
new file mode 100644
index 000000000000..12b1a2395edb
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ManagedClustersUpdateTags.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "tags": {
+ "tier": "testing",
+ "archv3": ""
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1",
+ "location": "location1",
+ "name": "clustername1",
+ "tags": {
+ "archv3": "",
+ "tier": "testing"
+ },
+ "type": "Microsoft.ContainerService/ManagedClusters",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "kubernetesVersion": "1.9.6",
+ "dnsPrefix": "dnsprefix1",
+ "agentPoolProfiles": [
+ {
+ "name": "nodepool1",
+ "count": 3,
+ "vmSize": "Standard_DS1_v2",
+ "maxPods": 110,
+ "osType": "Linux",
+ "provisioningState": "Succeeded",
+ "orchestratorVersion": "1.9.6"
+ }
+ ],
+ "linuxProfile": {
+ "adminUsername": "azureuser",
+ "ssh": {
+ "publicKeys": [
+ {
+ "keyData": "keydata"
+ }
+ ]
+ }
+ },
+ "servicePrincipalProfile": {
+ "clientId": "clientid"
+ },
+ "nodeResourceGroup": "MC_rg1_clustername1_location1",
+ "enableRBAC": false,
+ "diskEncryptionSetID": "/subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.Compute/diskEncryptionSets/des",
+ "fqdn": "dnsprefix1-abcd1234.hcp.eastus.azmk8s.io",
+ "networkProfile": {
+ "networkPlugin": "kubenet",
+ "podCidr": "10.244.0.0/16",
+ "serviceCidr": "10.0.0.0/16",
+ "dnsServiceIP": "10.0.0.10",
+ "dockerBridgeCidr": "172.17.0.1/16"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateEndpointConnectionsDelete.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateEndpointConnectionsDelete.json
new file mode 100644
index 000000000000..cb4dad284f12
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateEndpointConnectionsDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "privateEndpointConnectionName": "privateendpointconnection1"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateEndpointConnectionsGet.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateEndpointConnectionsGet.json
new file mode 100644
index 000000000000..9d4e3a35d790
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateEndpointConnectionsGet.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "privateEndpointConnectionName": "privateendpointconnection1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subid2/resourceGroups/rg2/providers/Microsoft.Network/privateEndpoints/pe2"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved"
+ },
+ "provisioningState": "Succeeded"
+ },
+ "name": "privateendpointconnection1",
+ "type": "Microsoft.Network/privateLinkServices/privateEndpointConnections"
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateEndpointConnectionsList.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateEndpointConnectionsList.json
new file mode 100644
index 000000000000..737edc566ede
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateEndpointConnectionsList.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subid2/resourceGroups/rg2/providers/Microsoft.Network/privateEndpoints/pe2"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved"
+ },
+ "provisioningState": "Succeeded"
+ },
+ "name": "privateendpointconnection1",
+ "type": "Microsoft.Network/privateLinkServices/privateEndpointConnections"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateEndpointConnectionsUpdate.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateEndpointConnectionsUpdate.json
new file mode 100644
index 000000000000..7a4bb726214b
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateEndpointConnectionsUpdate.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "privateEndpointConnectionName": "privateendpointconnection1",
+ "parameters": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/subid2/resourceGroups/rg2/providers/Microsoft.Network/privateEndpoints/pe2"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved"
+ },
+ "provisioningState": "Succeeded"
+ },
+ "name": "privateendpointconnection1",
+ "type": "Microsoft.Network/privateLinkServices/privateEndpointConnections"
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateLinkResourcesList.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateLinkResourcesList.json
new file mode 100644
index 000000000000..44f51606e06d
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/PrivateLinkResourcesList.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "management",
+ "type": "Microsoft.ContainerService/managedClusters/privateLinkResources",
+ "groupId": "management",
+ "requiredMembers": [
+ "management"
+ ],
+ "privateLinkServiceID": "/subscriptions/subid2/resourceGroups/rg2/providers/Microsoft.Network/privateLinkServices/plsName"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ResolvePrivateLinkServiceId.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ResolvePrivateLinkServiceId.json
new file mode 100644
index 000000000000..c37322caf4b0
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/examples/ResolvePrivateLinkServiceId.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01",
+ "subscriptionId": "subid1",
+ "resourceGroupName": "rg1",
+ "resourceName": "clustername1",
+ "parameters": {
+ "name": "management"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "privateLinkServiceID": "/subscriptions/subid2/resourceGroups/rg2/providers/Microsoft.Network/privateLinkServices/plsName"
+ }
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/managedClusters.json
new file mode 100644
index 000000000000..be924c99384f
--- /dev/null
+++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2020-09-01/managedClusters.json
@@ -0,0 +1,3337 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "ContainerServiceClient",
+ "description": "The Container Service Client.",
+ "version": "2020-09-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.ContainerService/operations": {
+ "get": {
+ "tags": [
+ "managedClusters"
+ ],
+ "operationId": "Operations_List",
+ "description": "Gets a list of compute operations.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ContainerService/managedClusters": {
+ "get": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_List",
+ "summary": "Gets a list of managed clusters in the specified subscription.",
+ "description": "Gets a list of managed clusters in the specified subscription. The operation returns properties of each managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ManagedClusterListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Managed Clusters": {
+ "$ref": "./examples/ManagedClustersList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters": {
+ "get": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_ListByResourceGroup",
+ "summary": "Lists managed clusters in the specified subscription and resource group.",
+ "description": "Lists managed clusters in the specified subscription and resource group. The operation returns properties of each managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ManagedClusterListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Get Managed Clusters by Resource Group": {
+ "$ref": "./examples/ManagedClustersListByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/upgradeProfiles/default": {
+ "get": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_GetUpgradeProfile",
+ "summary": "Gets upgrade profile for a managed cluster.",
+ "description": "Gets the details of the upgrade profile for a managed cluster with a specified resource group and name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ManagedClusterUpgradeProfile"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Upgrade Profile for Managed Cluster": {
+ "$ref": "./examples/ManagedClustersGetUpgradeProfile.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/accessProfiles/{roleName}/listCredential": {
+ "post": {
+ "deprecated": true,
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_GetAccessProfile",
+ "summary": "Gets an access profile of a managed cluster.",
+ "description": "Gets the accessProfile for the specified role name of the managed cluster with a specified resource group and name. **WARNING**: This API will be deprecated. Instead use [ListClusterUserCredentials](https://docs.microsoft.com/en-us/rest/api/aks/managedclusters/listclusterusercredentials) or [ListClusterAdminCredentials](https://docs.microsoft.com/en-us/rest/api/aks/managedclusters/listclusteradmincredentials) .",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "roleName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the role for managed cluster accessProfile resource."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ManagedClusterAccessProfile"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Managed Cluster": {
+ "$ref": "./examples/ManagedClustersGetAccessProfile.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterAdminCredential": {
+ "post": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_ListClusterAdminCredentials",
+ "summary": "Gets cluster admin credential of a managed cluster.",
+ "description": "Gets cluster admin credential of the managed cluster with a specified resource group and name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CredentialResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Managed Cluster": {
+ "$ref": "./examples/ManagedClustersListClusterCredentialResult.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterUserCredential": {
+ "post": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_ListClusterUserCredentials",
+ "summary": "Gets cluster user credential of a managed cluster.",
+ "description": "Gets cluster user credential of the managed cluster with a specified resource group and name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CredentialResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Managed Cluster": {
+ "$ref": "./examples/ManagedClustersListClusterCredentialResult.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterMonitoringUserCredential": {
+ "post": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_ListClusterMonitoringUserCredentials",
+ "summary": "Gets cluster monitoring user credential of a managed cluster.",
+ "description": "Gets cluster monitoring user credential of the managed cluster with a specified resource group and name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CredentialResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Managed Cluster": {
+ "$ref": "./examples/ManagedClustersListClusterCredentialResult.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}": {
+ "get": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_Get",
+ "summary": "Gets a managed cluster.",
+ "description": "Gets the details of the managed cluster with a specified resource group and name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ManagedCluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Managed Cluster": {
+ "$ref": "./examples/ManagedClustersGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_CreateOrUpdate",
+ "summary": "Creates or updates a managed cluster.",
+ "description": "Creates or updates a managed cluster with the specified configuration for agents and Kubernetes version.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ManagedCluster"
+ },
+ "description": "Parameters supplied to the Create or Update a Managed Cluster operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ManagedCluster"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/ManagedCluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create/Update Managed Cluster": {
+ "$ref": "./examples/ManagedClustersCreate_Update.json"
+ },
+ "Create/Update AAD Managed Cluster with EnableAzureRBAC": {
+ "$ref": "./examples/ManagedClustersCreate_UpdateWithEnableAzureRBAC.json"
+ },
+ "Create Managed Cluster with PPG": {
+ "$ref": "./examples/ManagedClustersCreate_PPG.json"
+ },
+ "Create/Update Managed Cluster with EnableAHUB": {
+ "$ref": "./examples/ManagedClustersCreate_UpdateWithAHUB.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_UpdateTags",
+ "summary": "Updates tags on a managed cluster.",
+ "description": "Updates a managed cluster with the specified tags.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TagsObject"
+ },
+ "description": "Parameters supplied to the Update Managed Cluster Tags operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ManagedCluster"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update Managed Cluster Tags": {
+ "$ref": "./examples/ManagedClustersUpdateTags.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_Delete",
+ "summary": "Deletes a managed cluster.",
+ "description": "Deletes the managed cluster with a specified resource group and name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "NoContent"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete Managed Cluster": {
+ "$ref": "./examples/ManagedClustersDelete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools": {
+ "get": {
+ "tags": [
+ "AgentPools"
+ ],
+ "operationId": "AgentPools_List",
+ "summary": "Gets a list of agent pools in the specified managed cluster.",
+ "description": "Gets a list of agent pools in the specified managed cluster. The operation returns properties of each agent pool.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AgentPoolListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Agent Pools by Managed Cluster": {
+ "$ref": "./examples/AgentPoolsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}": {
+ "get": {
+ "tags": [
+ "AgentPools"
+ ],
+ "operationId": "AgentPools_Get",
+ "summary": "Gets the agent pool.",
+ "description": "Gets the details of the agent pool by managed cluster and resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "agentPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the agent pool."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AgentPool"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Agent Pool": {
+ "$ref": "./examples/AgentPoolsGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "AgentPools"
+ ],
+ "operationId": "AgentPools_CreateOrUpdate",
+ "summary": "Creates or updates an agent pool.",
+ "description": "Creates or updates an agent pool in the specified managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "agentPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the agent pool."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AgentPool"
+ },
+ "description": "Parameters supplied to the Create or Update an agent pool operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AgentPool"
+ }
+ },
+ "201": {
+ "description": "Created",
+ "schema": {
+ "$ref": "#/definitions/AgentPool"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create/Update Agent Pool": {
+ "$ref": "./examples/AgentPoolsCreate_Update.json"
+ },
+ "Update Agent Pool": {
+ "$ref": "./examples/AgentPools_Update.json"
+ },
+ "Create Spot Agent Pool": {
+ "$ref": "./examples/AgentPoolsCreate_Spot.json"
+ },
+ "Create Agent Pool with PPG": {
+ "$ref": "./examples/AgentPoolsCreate_PPG.json"
+ },
+ "Create Agent Pool with Ephemeral OS Disk": {
+ "$ref": "./examples/AgentPoolsCreate_Ephemeral.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "AgentPools"
+ ],
+ "operationId": "AgentPools_Delete",
+ "summary": "Deletes an agent pool.",
+ "description": "Deletes the agent pool in the specified managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "agentPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the agent pool."
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "NoContent"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete Agent Pool": {
+ "$ref": "./examples/AgentPoolsDelete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeProfiles/default": {
+ "get": {
+ "tags": [
+ "AgentPools"
+ ],
+ "operationId": "AgentPools_GetUpgradeProfile",
+ "summary": "Gets upgrade profile for an agent pool.",
+ "description": "Gets the details of the upgrade profile for an agent pool with a specified resource group and managed cluster name.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "agentPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the agent pool."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AgentPoolUpgradeProfile"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Upgrade Profile for Agent Pool": {
+ "$ref": "./examples/AgentPoolsGetUpgradeProfile.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/availableAgentPoolVersions": {
+ "get": {
+ "tags": [
+ "AgentPools"
+ ],
+ "operationId": "AgentPools_GetAvailableAgentPoolVersions",
+ "summary": "Gets a list of supported versions for the specified agent pool.",
+ "description": "Gets a list of supported versions for the specified agent pool.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AgentPoolAvailableVersions"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get available versions for agent pool": {
+ "$ref": "./examples/AgentPoolsGetAgentPoolAvailableVersions.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resetServicePrincipalProfile": {
+ "post": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_ResetServicePrincipalProfile",
+ "summary": "Reset Service Principal Profile of a managed cluster.",
+ "description": "Update the service principal Profile for a managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ManagedClusterServicePrincipalProfile"
+ },
+ "description": "Parameters supplied to the Reset Service Principal Profile operation for a Managed Cluster."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the cluster doesn't exist, 404 (Not found) is returned.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Reset Service Principal Profile": {
+ "$ref": "./examples/ManagedClustersResetServicePrincipalProfile.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resetAADProfile": {
+ "post": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_ResetAADProfile",
+ "summary": "Reset AAD Profile of a managed cluster.",
+ "description": "Update the AAD Profile for a managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ManagedClusterAADProfile"
+ },
+ "description": "Parameters supplied to the Reset AAD Profile operation for a Managed Cluster."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the cluster doesn't exist, 404 (Not found) is returned.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Reset AAD Profile": {
+ "$ref": "./examples/ManagedClustersResetAADProfile.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/rotateClusterCertificates": {
+ "post": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_RotateClusterCertificates",
+ "summary": "Rotate certificates of a managed cluster.",
+ "description": "Rotate certificates of a managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "NoContent"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the cluster doesn't exist, 404 (Not found) is returned.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Rotate Cluster Certificates": {
+ "$ref": "./examples/ManagedClustersRotateClusterCertificates.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/stop": {
+ "post": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_Stop",
+ "summary": "Stop Managed Cluster",
+ "description": "Stops a Running Managed Cluster",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "NoContent"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the cluster doesn't exist, 404 (Not found) is returned.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Stop Managed Cluster": {
+ "$ref": "./examples/ManagedClustersStop.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/start": {
+ "post": {
+ "tags": [
+ "ManagedClusters"
+ ],
+ "operationId": "ManagedClusters_Start",
+ "summary": "Start Managed Cluster",
+ "description": "Starts a Stopped Managed Cluster",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "NoContent"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed. If the cluster doesn't exist, 404 (Not found) is returned.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Start Managed Cluster": {
+ "$ref": "./examples/ManagedClustersStart.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_List",
+ "summary": "Gets a list of private endpoint connections in the specified managed cluster.",
+ "description": "Gets a list of private endpoint connections in the specified managed cluster. The operation returns properties of each private endpoint connection.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List Private Endpoint Connections by Managed Cluster": {
+ "$ref": "./examples/PrivateEndpointConnectionsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Get",
+ "summary": "Gets the private endpoint connection.",
+ "description": "Gets the details of the private endpoint connection by managed cluster and resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint connection."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Private Endpoint Connection": {
+ "$ref": "./examples/PrivateEndpointConnectionsGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Update",
+ "summary": "Updates a private endpoint connection.",
+ "description": "Updates a private endpoint connection in the specified managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint connection."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "Parameters supplied to the Update a private endpoint connection operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update Private Endpoint Connection": {
+ "$ref": "./examples/PrivateEndpointConnectionsUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Delete",
+ "summary": "Deletes a private endpoint connection.",
+ "description": "Deletes the private endpoint connection in the specified managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint connection."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "204": {
+ "description": "No Content -- The private endpoint connection does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete Private Endpoint Connection": {
+ "$ref": "./examples/PrivateEndpointConnectionsDelete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeNodeImageVersion": {
+ "post": {
+ "tags": [
+ "AgentPools"
+ ],
+ "operationId": "AgentPools_UpgradeNodeImageVersion",
+ "summary": "Upgrade node image version of an agent pool to the latest.",
+ "description": "Upgrade node image version of an agent pool to the latest.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "agentPoolName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the agent pool."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted",
+ "schema": {
+ "$ref": "#/definitions/AgentPool"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Upgrade Agent Pool Node Image Version": {
+ "$ref": "./examples/AgentPoolsUpgradeNodeImageVersion.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "privateLinkResources"
+ ],
+ "operationId": "PrivateLinkResources_List",
+ "summary": "Gets a list of private link resources in the specified managed cluster.",
+ "description": "Gets a list of private link resources in the specified managed cluster. The operation returns properties of each private link resource.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResourcesListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List Private Link Resources by Managed Cluster": {
+ "$ref": "./examples/PrivateLinkResourcesList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resolvePrivateLinkServiceId": {
+ "post": {
+ "tags": [
+ "resolvePrivateLinkServiceId"
+ ],
+ "operationId": "ResolvePrivateLinkServiceId_POST",
+ "summary": "Gets the private link service ID for the specified managed cluster.",
+ "description": "Gets the private link service ID the specified managed cluster.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ },
+ "description": "Parameters (name, groupId) supplied in order to resolve a private link service ID."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Resolve the Private Link Service ID for Managed Cluster": {
+ "$ref": "./examples/ResolvePrivateLinkServiceId.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "OperationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/OperationValue"
+ },
+ "description": "The list of compute operations"
+ }
+ },
+ "description": "The List Compute Operation operation response."
+ },
+ "OperationValue": {
+ "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/OperationValueDisplay",
+ "description": "Describes the properties of a Compute Operation Value Display."
+ }
+ },
+ "description": "Describes the properties of a Compute Operation value."
+ },
+ "OperationValueDisplay": {
+ "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."
+ },
+ "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",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "required": [
+ "location"
+ ],
+ "x-ms-azure-resource": true
+ },
+ "SubResource": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource ID."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the resource that is unique within a resource group. This name can be used to access the resource."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type"
+ }
+ },
+ "description": "Reference to another subresource.",
+ "x-ms-azure-resource": true
+ },
+ "TagsObject": {
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ }
+ },
+ "description": "Tags object for patch operations."
+ },
+ "ContainerServiceOSDisk": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 1023,
+ "minimum": 0,
+ "description": "OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified."
+ },
+ "ContainerServiceStorageProfile": {
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ContainerServiceStorageProfileTypes",
+ "modelAsString": true
+ },
+ "enum": [
+ "StorageAccount",
+ "ManagedDisks"
+ ],
+ "description": "Storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice."
+ },
+ "ContainerServiceVnetSubnetID": {
+ "type": "string",
+ "description": "VNet SubnetID specifies the VNet's subnet identifier."
+ },
+ "ContainerServiceVMSize": {
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ContainerServiceVMSizeTypes",
+ "modelAsString": true
+ },
+ "description": "Size of agent VMs.",
+ "enum": [
+ "Standard_A1",
+ "Standard_A10",
+ "Standard_A11",
+ "Standard_A1_v2",
+ "Standard_A2",
+ "Standard_A2_v2",
+ "Standard_A2m_v2",
+ "Standard_A3",
+ "Standard_A4",
+ "Standard_A4_v2",
+ "Standard_A4m_v2",
+ "Standard_A5",
+ "Standard_A6",
+ "Standard_A7",
+ "Standard_A8",
+ "Standard_A8_v2",
+ "Standard_A8m_v2",
+ "Standard_A9",
+ "Standard_B2ms",
+ "Standard_B2s",
+ "Standard_B4ms",
+ "Standard_B8ms",
+ "Standard_D1",
+ "Standard_D11",
+ "Standard_D11_v2",
+ "Standard_D11_v2_Promo",
+ "Standard_D12",
+ "Standard_D12_v2",
+ "Standard_D12_v2_Promo",
+ "Standard_D13",
+ "Standard_D13_v2",
+ "Standard_D13_v2_Promo",
+ "Standard_D14",
+ "Standard_D14_v2",
+ "Standard_D14_v2_Promo",
+ "Standard_D15_v2",
+ "Standard_D16_v3",
+ "Standard_D16s_v3",
+ "Standard_D1_v2",
+ "Standard_D2",
+ "Standard_D2_v2",
+ "Standard_D2_v2_Promo",
+ "Standard_D2_v3",
+ "Standard_D2s_v3",
+ "Standard_D3",
+ "Standard_D32_v3",
+ "Standard_D32s_v3",
+ "Standard_D3_v2",
+ "Standard_D3_v2_Promo",
+ "Standard_D4",
+ "Standard_D4_v2",
+ "Standard_D4_v2_Promo",
+ "Standard_D4_v3",
+ "Standard_D4s_v3",
+ "Standard_D5_v2",
+ "Standard_D5_v2_Promo",
+ "Standard_D64_v3",
+ "Standard_D64s_v3",
+ "Standard_D8_v3",
+ "Standard_D8s_v3",
+ "Standard_DS1",
+ "Standard_DS11",
+ "Standard_DS11_v2",
+ "Standard_DS11_v2_Promo",
+ "Standard_DS12",
+ "Standard_DS12_v2",
+ "Standard_DS12_v2_Promo",
+ "Standard_DS13",
+ "Standard_DS13-2_v2",
+ "Standard_DS13-4_v2",
+ "Standard_DS13_v2",
+ "Standard_DS13_v2_Promo",
+ "Standard_DS14",
+ "Standard_DS14-4_v2",
+ "Standard_DS14-8_v2",
+ "Standard_DS14_v2",
+ "Standard_DS14_v2_Promo",
+ "Standard_DS15_v2",
+ "Standard_DS1_v2",
+ "Standard_DS2",
+ "Standard_DS2_v2",
+ "Standard_DS2_v2_Promo",
+ "Standard_DS3",
+ "Standard_DS3_v2",
+ "Standard_DS3_v2_Promo",
+ "Standard_DS4",
+ "Standard_DS4_v2",
+ "Standard_DS4_v2_Promo",
+ "Standard_DS5_v2",
+ "Standard_DS5_v2_Promo",
+ "Standard_E16_v3",
+ "Standard_E16s_v3",
+ "Standard_E2_v3",
+ "Standard_E2s_v3",
+ "Standard_E32-16s_v3",
+ "Standard_E32-8s_v3",
+ "Standard_E32_v3",
+ "Standard_E32s_v3",
+ "Standard_E4_v3",
+ "Standard_E4s_v3",
+ "Standard_E64-16s_v3",
+ "Standard_E64-32s_v3",
+ "Standard_E64_v3",
+ "Standard_E64s_v3",
+ "Standard_E8_v3",
+ "Standard_E8s_v3",
+ "Standard_F1",
+ "Standard_F16",
+ "Standard_F16s",
+ "Standard_F16s_v2",
+ "Standard_F1s",
+ "Standard_F2",
+ "Standard_F2s",
+ "Standard_F2s_v2",
+ "Standard_F32s_v2",
+ "Standard_F4",
+ "Standard_F4s",
+ "Standard_F4s_v2",
+ "Standard_F64s_v2",
+ "Standard_F72s_v2",
+ "Standard_F8",
+ "Standard_F8s",
+ "Standard_F8s_v2",
+ "Standard_G1",
+ "Standard_G2",
+ "Standard_G3",
+ "Standard_G4",
+ "Standard_G5",
+ "Standard_GS1",
+ "Standard_GS2",
+ "Standard_GS3",
+ "Standard_GS4",
+ "Standard_GS4-4",
+ "Standard_GS4-8",
+ "Standard_GS5",
+ "Standard_GS5-16",
+ "Standard_GS5-8",
+ "Standard_H16",
+ "Standard_H16m",
+ "Standard_H16mr",
+ "Standard_H16r",
+ "Standard_H8",
+ "Standard_H8m",
+ "Standard_L16s",
+ "Standard_L32s",
+ "Standard_L4s",
+ "Standard_L8s",
+ "Standard_M128-32ms",
+ "Standard_M128-64ms",
+ "Standard_M128ms",
+ "Standard_M128s",
+ "Standard_M64-16ms",
+ "Standard_M64-32ms",
+ "Standard_M64ms",
+ "Standard_M64s",
+ "Standard_NC12",
+ "Standard_NC12s_v2",
+ "Standard_NC12s_v3",
+ "Standard_NC24",
+ "Standard_NC24r",
+ "Standard_NC24rs_v2",
+ "Standard_NC24rs_v3",
+ "Standard_NC24s_v2",
+ "Standard_NC24s_v3",
+ "Standard_NC6",
+ "Standard_NC6s_v2",
+ "Standard_NC6s_v3",
+ "Standard_ND12s",
+ "Standard_ND24rs",
+ "Standard_ND24s",
+ "Standard_ND6s",
+ "Standard_NV12",
+ "Standard_NV24",
+ "Standard_NV6"
+ ]
+ },
+ "ManagedClusterServicePrincipalProfile": {
+ "properties": {
+ "clientId": {
+ "type": "string",
+ "description": "The ID for the service principal."
+ },
+ "secret": {
+ "type": "string",
+ "description": "The secret password associated with the service principal in plain text."
+ }
+ },
+ "description": "Information about a service principal identity for the cluster to use for manipulating Azure APIs.",
+ "required": [
+ "clientId"
+ ]
+ },
+ "ContainerServiceMasterProfile": {
+ "properties": {
+ "count": {
+ "type": "integer",
+ "format": "int32",
+ "enum": [
+ 1,
+ 3,
+ 5
+ ],
+ "x-ms-enum": {
+ "name": "Count",
+ "modelAsString": false
+ },
+ "description": "Number of masters (VMs) in the container service cluster. Allowed values are 1, 3, and 5. The default value is 1.",
+ "default": 1
+ },
+ "dnsPrefix": {
+ "type": "string",
+ "description": "DNS prefix to be used to create the FQDN for the master pool."
+ },
+ "vmSize": {
+ "$ref": "#/definitions/ContainerServiceVMSize",
+ "description": "Size of agent VMs."
+ },
+ "osDiskSizeGB": {
+ "$ref": "#/definitions/ContainerServiceOSDisk",
+ "description": "OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified."
+ },
+ "vnetSubnetID": {
+ "$ref": "#/definitions/ContainerServiceVnetSubnetID",
+ "description": "VNet SubnetID specifies the VNet's subnet identifier."
+ },
+ "firstConsecutiveStaticIP": {
+ "type": "string",
+ "description": "FirstConsecutiveStaticIP used to specify the first static ip of masters.",
+ "default": "10.240.255.5"
+ },
+ "storageProfile": {
+ "$ref": "#/definitions/ContainerServiceStorageProfile",
+ "description": "Storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice."
+ },
+ "fqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "FQDN for the master pool."
+ }
+ },
+ "required": [
+ "dnsPrefix",
+ "vmSize"
+ ],
+ "description": "Profile for the container service master."
+ },
+ "ManagedClusterAgentPoolProfileProperties": {
+ "properties": {
+ "count": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 100 (inclusive) for user pools and in the range of 1 to 100 (inclusive) for system pools. The default value is 1."
+ },
+ "vmSize": {
+ "$ref": "#/definitions/ContainerServiceVMSize",
+ "description": "Size of agent VMs."
+ },
+ "osDiskSizeGB": {
+ "$ref": "#/definitions/ContainerServiceOSDisk",
+ "description": "OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified."
+ },
+ "osDiskType": {
+ "$ref": "#/definitions/OSDiskType",
+ "description": "OS disk type to be used for machines in a given agent pool. Allowed values are 'Ephemeral' and 'Managed'. Defaults to 'Managed'. May not be changed after creation."
+ },
+ "vnetSubnetID": {
+ "$ref": "#/definitions/ContainerServiceVnetSubnetID",
+ "description": "VNet SubnetID specifies the VNet's subnet identifier."
+ },
+ "maxPods": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Maximum number of pods that can run on a node."
+ },
+ "osType": {
+ "$ref": "#/definitions/OSType",
+ "description": "OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux."
+ },
+ "maxCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Maximum number of nodes for auto-scaling"
+ },
+ "minCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Minimum number of nodes for auto-scaling"
+ },
+ "enableAutoScaling": {
+ "type": "boolean",
+ "description": "Whether to enable auto-scaler"
+ },
+ "type": {
+ "$ref": "#/definitions/AgentPoolType",
+ "description": "AgentPoolType represents types of an agent pool"
+ },
+ "mode": {
+ "$ref": "#/definitions/AgentPoolMode",
+ "description": "AgentPoolMode represents mode of an agent pool"
+ },
+ "orchestratorVersion": {
+ "type": "string",
+ "description": "Version of orchestrator specified when creating the managed cluster."
+ },
+ "nodeImageVersion": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Version of node image"
+ },
+ "upgradeSettings": {
+ "$ref": "#/definitions/AgentPoolUpgradeSettings",
+ "description": "Settings for upgrading the agentpool"
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The current deployment or provisioning state, which only appears in the response."
+ },
+ "powerState": {
+ "readOnly": true,
+ "description": "Describes whether the Agent Pool is Running or Stopped",
+ "$ref": "#/definitions/PowerState"
+ },
+ "availabilityZones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType."
+ },
+ "enableNodePublicIP": {
+ "type": "boolean",
+ "description": "Enable public IP for nodes"
+ },
+ "scaleSetPriority": {
+ "$ref": "#/definitions/ScaleSetPriority",
+ "description": "ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular."
+ },
+ "scaleSetEvictionPolicy": {
+ "$ref": "#/definitions/ScaleSetEvictionPolicy",
+ "description": "ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete."
+ },
+ "spotMaxPrice": {
+ "$ref": "#/definitions/SpotMaxPrice",
+ "description": "SpotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Agent pool tags to be persisted on the agent pool virtual machine scale set."
+ },
+ "nodeLabels": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Agent pool node labels to be persisted across all nodes in agent pool."
+ },
+ "nodeTaints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule."
+ },
+ "proximityPlacementGroupID": {
+ "$ref": "#/definitions/ProximityPlacementGroupID",
+ "description": "The ID for Proximity Placement Group."
+ }
+ },
+ "description": "Properties for the container service agent pool profile."
+ },
+ "ManagedClusterAgentPoolProfile": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/ManagedClusterAgentPoolProfileProperties"
+ },
+ {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Unique name of the agent pool profile in the context of the subscription and resource group.",
+ "pattern": "^[a-z][a-z0-9]{0,11}$"
+ }
+ }
+ }
+ ],
+ "required": [
+ "name"
+ ],
+ "description": "Profile for the container service agent pool."
+ },
+ "AgentPoolType": {
+ "type": "string",
+ "enum": [
+ "VirtualMachineScaleSets",
+ "AvailabilitySet"
+ ],
+ "x-ms-enum": {
+ "name": "AgentPoolType",
+ "modelAsString": true
+ },
+ "description": "AgentPoolType represents types of an agent pool."
+ },
+ "AgentPoolMode": {
+ "type": "string",
+ "enum": [
+ "System",
+ "User"
+ ],
+ "x-ms-enum": {
+ "name": "AgentPoolMode",
+ "modelAsString": true
+ },
+ "description": "AgentPoolMode represents mode of an agent pool."
+ },
+ "AgentPoolListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AgentPool"
+ },
+ "description": "The list of agent pools."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of agent pool results.",
+ "readOnly": true
+ }
+ },
+ "description": "The response from the List Agent Pools operation."
+ },
+ "AgentPoolUpgradeSettings": {
+ "properties": {
+ "maxSurge": {
+ "type": "string",
+ "description": "Count or percentage of additional nodes to be added during upgrade. If empty uses AKS default"
+ }
+ },
+ "description": "Settings for upgrading an agentpool"
+ },
+ "AgentPool": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ },
+ {
+ "properties": {
+ "properties": {
+ "description": "Properties of an agent pool.",
+ "$ref": "#/definitions/ManagedClusterAgentPoolProfileProperties",
+ "x-ms-client-flatten": true
+ }
+ }
+ }
+ ],
+ "description": "Agent Pool."
+ },
+ "ManagedClusterWindowsProfile": {
+ "properties": {
+ "adminUsername": {
+ "type": "string",
+ "description": "The administrator username to use for Windows VMs.",
+ "pattern": "^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$"
+ },
+ "adminPassword": {
+ "type": "string",
+ "description": "The administrator password to use for Windows VMs.",
+ "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\\^&\\*\\(\\)])[a-zA-Z\\d!@#$%\\^&\\*\\(\\)]{12,123}$"
+ },
+ "licenseType": {
+ "type": "string",
+ "enum": [
+ "None",
+ "Windows_Server"
+ ],
+ "x-ms-enum": {
+ "name": "licenseType",
+ "modelAsString": true
+ },
+ "description": "The licenseType to use for Windows VMs. Windows_Server is used to enable Azure Hybrid User Benefits for Windows VMs."
+ }
+ },
+ "required": [
+ "adminUsername"
+ ],
+ "description": "Profile for Windows VMs in the container service cluster."
+ },
+ "ContainerServiceLinuxProfile": {
+ "properties": {
+ "adminUsername": {
+ "type": "string",
+ "description": "The administrator username to use for Linux VMs.",
+ "pattern": "^[A-Za-z][-A-Za-z0-9_]*$"
+ },
+ "ssh": {
+ "$ref": "#/definitions/ContainerServiceSshConfiguration",
+ "description": "SSH configuration for Linux-based VMs running on Azure."
+ }
+ },
+ "required": [
+ "adminUsername",
+ "ssh"
+ ],
+ "description": "Profile for Linux VMs in the container service cluster."
+ },
+ "ContainerServiceNetworkProfile": {
+ "properties": {
+ "networkPlugin": {
+ "type": "string",
+ "enum": [
+ "azure",
+ "kubenet"
+ ],
+ "default": "kubenet",
+ "x-ms-enum": {
+ "name": "NetworkPlugin",
+ "modelAsString": true
+ },
+ "description": "Network plugin used for building Kubernetes network."
+ },
+ "networkPolicy": {
+ "type": "string",
+ "enum": [
+ "calico",
+ "azure"
+ ],
+ "x-ms-enum": {
+ "name": "NetworkPolicy",
+ "modelAsString": true
+ },
+ "description": "Network policy used for building Kubernetes network."
+ },
+ "networkMode": {
+ "type": "string",
+ "enum": [
+ "transparent",
+ "bridge"
+ ],
+ "x-ms-enum": {
+ "name": "networkMode",
+ "modelAsString": true
+ },
+ "description": "Network mode used for building Kubernetes network."
+ },
+ "podCidr": {
+ "type": "string",
+ "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$",
+ "default": "10.244.0.0/16",
+ "description": "A CIDR notation IP range from which to assign pod IPs when kubenet is used."
+ },
+ "serviceCidr": {
+ "type": "string",
+ "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$",
+ "default": "10.0.0.0/16",
+ "description": "A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges."
+ },
+ "dnsServiceIP": {
+ "type": "string",
+ "pattern": "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$",
+ "default": "10.0.0.10",
+ "description": "An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr."
+ },
+ "dockerBridgeCidr": {
+ "type": "string",
+ "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$",
+ "default": "172.17.0.1/16",
+ "description": "A CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP ranges or the Kubernetes service address range."
+ },
+ "outboundType": {
+ "type": "string",
+ "enum": [
+ "loadBalancer",
+ "userDefinedRouting"
+ ],
+ "x-ms-enum": {
+ "name": "outboundType",
+ "modelAsString": true
+ },
+ "default": "loadBalancer",
+ "description": "The outbound (egress) routing method."
+ },
+ "loadBalancerSku": {
+ "type": "string",
+ "enum": [
+ "standard",
+ "basic"
+ ],
+ "x-ms-enum": {
+ "name": "loadBalancerSku",
+ "modelAsString": true
+ },
+ "description": "The load balancer sku for the managed cluster."
+ },
+ "loadBalancerProfile": {
+ "$ref": "#/definitions/ManagedClusterLoadBalancerProfile",
+ "description": "Profile of the cluster load balancer."
+ }
+ },
+ "description": "Profile of network configuration."
+ },
+ "ManagedClusterLoadBalancerProfile": {
+ "properties": {
+ "managedOutboundIPs": {
+ "properties": {
+ "count": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 100,
+ "minimum": 1,
+ "description": "Desired number of outbound IP created/managed by Azure for the cluster load balancer. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1. ",
+ "default": 1
+ }
+ },
+ "description": "Desired managed outbound IPs for the cluster load balancer."
+ },
+ "outboundIPPrefixes": {
+ "properties": {
+ "publicIPPrefixes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceReference"
+ },
+ "description": "A list of public IP prefix resources."
+ }
+ },
+ "description": "Desired outbound IP Prefix resources for the cluster load balancer."
+ },
+ "outboundIPs": {
+ "properties": {
+ "publicIPs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceReference"
+ },
+ "description": "A list of public IP resources."
+ }
+ },
+ "description": "Desired outbound IP resources for the cluster load balancer."
+ },
+ "effectiveOutboundIPs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceReference"
+ },
+ "description": "The effective outbound IP resources of the cluster load balancer."
+ },
+ "allocatedOutboundPorts": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 64000,
+ "minimum": 0,
+ "description": "Desired number of allocated SNAT ports per VM. Allowed values must be in the range of 0 to 64000 (inclusive). The default value is 0 which results in Azure dynamically allocating ports.",
+ "default": 0
+ },
+ "idleTimeoutInMinutes": {
+ "type": "integer",
+ "format": "int32",
+ "maximum": 120,
+ "minimum": 4,
+ "description": "Desired outbound flow idle timeout in minutes. Allowed values must be in the range of 4 to 120 (inclusive). The default value is 30 minutes.",
+ "default": 30
+ }
+ },
+ "description": "Profile of the managed cluster load balancer."
+ },
+ "ResourceReference": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The fully qualified Azure resource id."
+ }
+ },
+ "description": "A reference to an Azure resource."
+ },
+ "ContainerServiceSshConfiguration": {
+ "properties": {
+ "publicKeys": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerServiceSshPublicKey"
+ },
+ "description": "The list of SSH public keys used to authenticate with Linux-based VMs. Only expect one key specified."
+ }
+ },
+ "description": "SSH configuration for Linux-based VMs running on Azure.",
+ "required": [
+ "publicKeys"
+ ]
+ },
+ "ContainerServiceSshPublicKey": {
+ "properties": {
+ "keyData": {
+ "type": "string",
+ "description": "Certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or without headers."
+ }
+ },
+ "required": [
+ "keyData"
+ ],
+ "description": "Contains information about SSH certificate public key data."
+ },
+ "ContainerServiceDiagnosticsProfile": {
+ "properties": {
+ "vmDiagnostics": {
+ "$ref": "#/definitions/ContainerServiceVMDiagnostics",
+ "description": "Profile for diagnostics on the container service VMs."
+ }
+ },
+ "description": "Profile for diagnostics on the container service cluster.",
+ "required": [
+ "vmDiagnostics"
+ ]
+ },
+ "ContainerServiceVMDiagnostics": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether the VM diagnostic agent is provisioned on the VM."
+ },
+ "storageUri": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URI of the storage account where diagnostics are stored."
+ }
+ },
+ "description": "Profile for diagnostics on the container service VMs.",
+ "required": [
+ "enabled"
+ ]
+ },
+ "ManagedClusterListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ManagedCluster"
+ },
+ "description": "The list of managed clusters."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of managed cluster results.",
+ "readOnly": true
+ }
+ },
+ "description": "The response from the List Managed Clusters operation."
+ },
+ "ManagedCluster": {
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/ManagedClusterSKU",
+ "description": "The managed cluster SKU."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ },
+ {
+ "properties": {
+ "properties": {
+ "description": "Properties of a managed cluster.",
+ "$ref": "#/definitions/ManagedClusterProperties",
+ "x-ms-client-flatten": true
+ },
+ "identity": {
+ "$ref": "#/definitions/ManagedClusterIdentity",
+ "description": "The identity of the managed cluster, if configured."
+ }
+ }
+ }
+ ],
+ "description": "Managed cluster."
+ },
+ "ManagedClusterProperties": {
+ "properties": {
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The current deployment or provisioning state, which only appears in the response."
+ },
+ "powerState": {
+ "$ref": "#/definitions/PowerState",
+ "description": "Represents the Power State of the cluster",
+ "readOnly": true
+ },
+ "maxAgentPools": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "description": "The max number of agent pools for the managed cluster."
+ },
+ "kubernetesVersion": {
+ "type": "string",
+ "description": "Version of Kubernetes specified when creating the managed cluster."
+ },
+ "dnsPrefix": {
+ "type": "string",
+ "description": "DNS prefix specified when creating the managed cluster."
+ },
+ "fqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "FQDN for the master pool."
+ },
+ "privateFQDN": {
+ "readOnly": true,
+ "type": "string",
+ "description": "FQDN of private cluster."
+ },
+ "agentPoolProfiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ManagedClusterAgentPoolProfile"
+ },
+ "description": "Properties of the agent pool."
+ },
+ "linuxProfile": {
+ "$ref": "#/definitions/ContainerServiceLinuxProfile",
+ "description": "Profile for Linux VMs in the container service cluster."
+ },
+ "windowsProfile": {
+ "$ref": "#/definitions/ManagedClusterWindowsProfile",
+ "description": "Profile for Windows VMs in the container service cluster."
+ },
+ "servicePrincipalProfile": {
+ "$ref": "#/definitions/ManagedClusterServicePrincipalProfile",
+ "description": "Information about a service principal identity for the cluster to use for manipulating Azure APIs."
+ },
+ "addonProfiles": {
+ "additionalProperties": {
+ "$ref": "#/definitions/ManagedClusterAddonProfile"
+ },
+ "description": "Profile of managed cluster add-on."
+ },
+ "nodeResourceGroup": {
+ "type": "string",
+ "description": "Name of the resource group containing agent pool nodes."
+ },
+ "enableRBAC": {
+ "type": "boolean",
+ "description": "Whether to enable Kubernetes Role-Based Access Control."
+ },
+ "enablePodSecurityPolicy": {
+ "type": "boolean",
+ "description": "(DEPRECATING) Whether to enable Kubernetes pod security policy (preview). This feature is set for removal on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy."
+ },
+ "networkProfile": {
+ "$ref": "#/definitions/ContainerServiceNetworkProfile",
+ "description": "Profile of network configuration."
+ },
+ "aadProfile": {
+ "$ref": "#/definitions/ManagedClusterAADProfile",
+ "description": "Profile of Azure Active Directory configuration."
+ },
+ "autoScalerProfile": {
+ "type": "object",
+ "properties": {
+ "balance-similar-node-groups": {
+ "type": "string"
+ },
+ "expander": {
+ "type": "string",
+ "enum": [
+ "least-waste",
+ "most-pods",
+ "random"
+ ],
+ "x-ms-enum": {
+ "name": "expander",
+ "modelAsString": true
+ }
+ },
+ "max-empty-bulk-delete": {
+ "type": "string"
+ },
+ "max-graceful-termination-sec": {
+ "type": "string"
+ },
+ "max-total-unready-percentage": {
+ "type": "string"
+ },
+ "new-pod-scale-up-delay": {
+ "type": "string"
+ },
+ "ok-total-unready-count": {
+ "type": "string"
+ },
+ "scan-interval": {
+ "type": "string"
+ },
+ "scale-down-delay-after-add": {
+ "type": "string"
+ },
+ "scale-down-delay-after-delete": {
+ "type": "string"
+ },
+ "scale-down-delay-after-failure": {
+ "type": "string"
+ },
+ "scale-down-unneeded-time": {
+ "type": "string"
+ },
+ "scale-down-unready-time": {
+ "type": "string"
+ },
+ "scale-down-utilization-threshold": {
+ "type": "string"
+ },
+ "skip-nodes-with-local-storage": {
+ "type": "string"
+ },
+ "skip-nodes-with-system-pods": {
+ "type": "string"
+ }
+ },
+ "description": "Parameters to be applied to the cluster-autoscaler when enabled"
+ },
+ "apiServerAccessProfile": {
+ "$ref": "#/definitions/ManagedClusterAPIServerAccessProfile",
+ "description": "Access profile for managed cluster API server."
+ },
+ "diskEncryptionSetID": {
+ "type": "string",
+ "description": "ResourceId of the disk encryption set to use for enabling encryption at rest."
+ },
+ "identityProfile": {
+ "additionalProperties": {
+ "readOnly": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/UserAssignedIdentity"
+ }
+ ]
+ },
+ "description": "Identities associated with the cluster."
+ }
+ },
+ "description": "Properties of the managed cluster."
+ },
+ "PowerState": {
+ "description": "Describes the Power State of the cluster",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Tells whether the cluster is Running or Stopped",
+ "enum": [
+ "Running",
+ "Stopped"
+ ],
+ "x-ms-enum": {
+ "name": "code",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "ManagedClusterAPIServerAccessProfile": {
+ "properties": {
+ "authorizedIPRanges": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Authorized IP Ranges to kubernetes API server."
+ },
+ "enablePrivateCluster": {
+ "type": "boolean",
+ "description": "Whether to create the cluster as a private cluster or not."
+ }
+ },
+ "description": "Access profile for managed cluster API server."
+ },
+ "ManagedClusterIdentity": {
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of the system assigned identity which is used by master components."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant id of the system assigned identity which is used by master components."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of identity used for the managed cluster. Type 'SystemAssigned' will use an implicitly created identity in master components and an auto-created user assigned identity in MC_ resource group in agent nodes. Type 'None' will not use MSI for the managed cluster, service principal will be used instead.",
+ "enum": [
+ "SystemAssigned",
+ "UserAssigned",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceIdentityType",
+ "modelAsString": false
+ }
+ },
+ "userAssignedIdentities": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of user assigned identity."
+ },
+ "clientId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The client id of user assigned identity."
+ }
+ }
+ },
+ "description": "The user identity associated with the managed cluster. This identity will be used in control plane and only one user assigned identity is allowed. 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 managed cluster."
+ },
+ "UserAssignedIdentity": {
+ "properties": {
+ "resourceId": {
+ "type": "string",
+ "description": "The resource id of the user assigned identity."
+ },
+ "clientId": {
+ "type": "string",
+ "description": "The client id of the user assigned identity."
+ },
+ "objectId": {
+ "type": "string",
+ "description": "The object id of the user assigned identity."
+ }
+ }
+ },
+ "ManagedClusterAccessProfile": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ },
+ {
+ "properties": {
+ "properties": {
+ "description": "AccessProfile of a managed cluster.",
+ "$ref": "#/definitions/AccessProfile",
+ "x-ms-client-flatten": true
+ }
+ }
+ }
+ ],
+ "description": "Managed cluster Access Profile.",
+ "x-ms-azure-resource": false
+ },
+ "AccessProfile": {
+ "type": "object",
+ "properties": {
+ "kubeConfig": {
+ "type": "string",
+ "format": "byte",
+ "description": "Base64-encoded Kubernetes configuration file."
+ }
+ },
+ "description": "Profile for enabling a user to access a managed cluster."
+ },
+ "ManagedClusterPoolUpgradeProfile": {
+ "properties": {
+ "kubernetesVersion": {
+ "type": "string",
+ "description": "Kubernetes version (major, minor, patch)."
+ },
+ "name": {
+ "type": "string",
+ "description": "Pool name."
+ },
+ "osType": {
+ "$ref": "#/definitions/OSType",
+ "enum": [
+ "Linux",
+ "Windows"
+ ],
+ "x-ms-enum": {
+ "name": "ContainerServiceOSTypes",
+ "modelAsString": true
+ },
+ "description": "OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux."
+ },
+ "upgrades": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "kubernetesVersion": {
+ "type": "string",
+ "description": "Kubernetes version (major, minor, patch)."
+ },
+ "isPreview": {
+ "type": "boolean",
+ "description": "Whether Kubernetes version is currently in preview."
+ }
+ }
+ },
+ "description": "List of orchestrator types and versions available for upgrade."
+ }
+ },
+ "required": [
+ "kubernetesVersion",
+ "osType"
+ ],
+ "description": "The list of available upgrade versions."
+ },
+ "ManagedClusterUpgradeProfileProperties": {
+ "properties": {
+ "controlPlaneProfile": {
+ "$ref": "#/definitions/ManagedClusterPoolUpgradeProfile",
+ "description": "The list of available upgrade versions for the control plane."
+ },
+ "agentPoolProfiles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ManagedClusterPoolUpgradeProfile"
+ },
+ "description": "The list of available upgrade versions for agent pools."
+ }
+ },
+ "required": [
+ "controlPlaneProfile",
+ "agentPoolProfiles"
+ ],
+ "description": "Control plane and agent pool upgrade profiles."
+ },
+ "ManagedClusterAADProfile": {
+ "properties": {
+ "managed": {
+ "type": "boolean",
+ "description": "Whether to enable managed AAD."
+ },
+ "enableAzureRBAC": {
+ "type": "boolean",
+ "description": "Whether to enable Azure RBAC for Kubernetes authorization."
+ },
+ "adminGroupObjectIDs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "AAD group object IDs that will have admin role of the cluster."
+ },
+ "clientAppID": {
+ "type": "string",
+ "description": "The client AAD application ID."
+ },
+ "serverAppID": {
+ "type": "string",
+ "description": "The server AAD application ID."
+ },
+ "serverAppSecret": {
+ "type": "string",
+ "description": "The server AAD application secret."
+ },
+ "tenantID": {
+ "type": "string",
+ "description": "The AAD tenant ID to use for authentication. If not specified, will use the tenant of the deployment subscription."
+ }
+ },
+ "description": "AADProfile specifies attributes for Azure Active Directory integration."
+ },
+ "ManagedClusterAddonProfile": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether the add-on is enabled or not."
+ },
+ "config": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Key-value pairs for configuring an add-on."
+ },
+ "identity": {
+ "readOnly": true,
+ "description": "Information of user assigned identity used by this add-on.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/UserAssignedIdentity"
+ }
+ ]
+ }
+ },
+ "required": [
+ "enabled"
+ ],
+ "description": "A Kubernetes add-on profile for a managed cluster."
+ },
+ "ManagedClusterUpgradeProfile": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Id of upgrade profile."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of upgrade profile."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of upgrade profile."
+ },
+ "properties": {
+ "$ref": "#/definitions/ManagedClusterUpgradeProfileProperties",
+ "description": "Properties of upgrade profile.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "description": "The list of available upgrades for compute pools."
+ },
+ "AgentPoolUpgradeProfile": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Id of the agent pool upgrade profile."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of the agent pool upgrade profile."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the agent pool upgrade profile."
+ },
+ "properties": {
+ "$ref": "#/definitions/AgentPoolUpgradeProfileProperties",
+ "description": "Properties of agent pool upgrade profile.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "description": "The list of available upgrades for an agent pool."
+ },
+ "AgentPoolUpgradeProfileProperties": {
+ "properties": {
+ "kubernetesVersion": {
+ "type": "string",
+ "description": "Kubernetes version (major, minor, patch)."
+ },
+ "osType": {
+ "$ref": "#/definitions/OSType",
+ "enum": [
+ "Linux",
+ "Windows"
+ ],
+ "x-ms-enum": {
+ "name": "ContainerServiceOSTypes",
+ "modelAsString": true
+ },
+ "description": "OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux."
+ },
+ "upgrades": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "kubernetesVersion": {
+ "type": "string",
+ "description": "Kubernetes version (major, minor, patch)."
+ },
+ "isPreview": {
+ "type": "boolean",
+ "description": "Whether Kubernetes version is currently in preview."
+ }
+ }
+ },
+ "description": "List of orchestrator types and versions available for upgrade."
+ },
+ "latestNodeImageVersion": {
+ "type": "string",
+ "description": "LatestNodeImageVersion is the latest AKS supported node image version."
+ }
+ },
+ "required": [
+ "kubernetesVersion",
+ "osType"
+ ],
+ "description": "The list of available upgrade versions."
+ },
+ "AgentPoolAvailableVersions": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Id of the agent pool available versions."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of the agent pool available versions."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Type of the agent pool available versions."
+ },
+ "properties": {
+ "$ref": "#/definitions/AgentPoolAvailableVersionsProperties",
+ "description": "Properties of agent pool available versions.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "description": "The list of available versions for an agent pool."
+ },
+ "AgentPoolAvailableVersionsProperties": {
+ "properties": {
+ "agentPoolVersions": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "default": {
+ "type": "boolean",
+ "description": "Whether this version is the default agent pool version."
+ },
+ "kubernetesVersion": {
+ "type": "string",
+ "description": "Kubernetes version (major, minor, patch)."
+ },
+ "isPreview": {
+ "type": "boolean",
+ "description": "Whether Kubernetes version is currently in preview."
+ }
+ }
+ },
+ "description": "List of versions available for agent pool."
+ }
+ },
+ "description": "The list of available agent pool versions."
+ },
+ "OSType": {
+ "type": "string",
+ "default": "Linux",
+ "enum": [
+ "Linux",
+ "Windows"
+ ],
+ "x-ms-enum": {
+ "name": "OSType",
+ "modelAsString": true
+ },
+ "description": "OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux."
+ },
+ "ScaleSetPriority": {
+ "type": "string",
+ "default": "Regular",
+ "enum": [
+ "Spot",
+ "Regular"
+ ],
+ "x-ms-enum": {
+ "name": "ScaleSetPriority",
+ "modelAsString": true
+ },
+ "description": "ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular."
+ },
+ "ScaleSetEvictionPolicy": {
+ "type": "string",
+ "default": "Delete",
+ "enum": [
+ "Delete",
+ "Deallocate"
+ ],
+ "x-ms-enum": {
+ "name": "ScaleSetEvictionPolicy",
+ "modelAsString": true
+ },
+ "description": "ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete."
+ },
+ "SpotMaxPrice": {
+ "type": "number",
+ "default": -1,
+ "description": "SpotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand."
+ },
+ "ProximityPlacementGroupID": {
+ "type": "string",
+ "description": "The ID for Proximity Placement Group."
+ },
+ "CredentialResults": {
+ "properties": {
+ "kubeconfigs": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/CredentialResult"
+ },
+ "description": "Base64-encoded Kubernetes configuration file."
+ }
+ },
+ "description": "The list of credential result response."
+ },
+ "CredentialResult": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the credential."
+ },
+ "value": {
+ "type": "string",
+ "format": "byte",
+ "readOnly": true,
+ "description": "Base64-encoded Kubernetes configuration file."
+ }
+ },
+ "description": "The credential result response."
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/CloudErrorBody",
+ "description": "Details about the error."
+ }
+ },
+ "description": "An error response from the Container service."
+ },
+ "CloudErrorBody": {
+ "x-ms-external": true,
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "A message describing the error, intended to be suitable for display in a user interface."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the particular error. For example, the name of the property in error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudErrorBody"
+ },
+ "description": "A list of additional details about the error."
+ }
+ },
+ "description": "An error response from the Container service."
+ },
+ "ManagedClusterSKU": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of a managed cluster SKU.",
+ "enum": [
+ "Basic"
+ ],
+ "x-ms-enum": {
+ "name": "ManagedClusterSKUName",
+ "modelAsString": true
+ }
+ },
+ "tier": {
+ "type": "string",
+ "description": "Tier of a managed cluster SKU.",
+ "enum": [
+ "Paid",
+ "Free"
+ ],
+ "x-ms-enum": {
+ "name": "ManagedClusterSKUTier",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "PrivateEndpointConnectionListResult": {
+ "type": "object",
+ "description": "A list of private endpoint connections",
+ "properties": {
+ "value": {
+ "description": "The collection value.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ }
+ }
+ },
+ "PrivateEndpointConnection": {
+ "description": "A private endpoint connection",
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The ID of the private endpoint connection."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the private endpoint connection.",
+ "externalDocs": {
+ "url": "https://aka.ms/search-naming-rules"
+ }
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "description": "The properties of a private endpoint connection.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "PrivateEndpointConnectionProperties": {
+ "type": "object",
+ "description": "Properties of a private endpoint connection.",
+ "properties": {
+ "provisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The current provisioning state.",
+ "enum": [
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Failed"
+ ],
+ "x-ms-enum": {
+ "name": "PrivateEndpointConnectionProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "privateEndpoint": {
+ "$ref": "#/definitions/PrivateEndpoint",
+ "description": "The resource of private endpoint."
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "#/definitions/PrivateLinkServiceConnectionState",
+ "description": "A collection of information about the state of the connection between service consumer and provider."
+ }
+ },
+ "required": [
+ "privateLinkServiceConnectionState"
+ ]
+ },
+ "PrivateEndpoint": {
+ "type": "object",
+ "description": "Private endpoint which a connection belongs to.",
+ "properties": {
+ "id": {
+ "description": "The resource Id for private endpoint",
+ "type": "string"
+ }
+ }
+ },
+ "PrivateLinkServiceConnectionState": {
+ "description": "The state of a private link service connection.",
+ "type": "object",
+ "properties": {
+ "status": {
+ "enum": [
+ "Pending",
+ "Approved",
+ "Rejected",
+ "Disconnected"
+ ],
+ "type": "string",
+ "description": "The private link service connection status.",
+ "x-ms-enum": {
+ "name": "ConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "description": {
+ "type": "string",
+ "description": "The private link service connection description."
+ }
+ }
+ },
+ "PrivateLinkResourcesListResult": {
+ "type": "object",
+ "description": "A list of private link resources",
+ "properties": {
+ "value": {
+ "description": "The collection value.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ }
+ }
+ }
+ },
+ "PrivateLinkResource": {
+ "description": "A private link resource",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The ID of the private link resource."
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the private link resource.",
+ "externalDocs": {
+ "url": "https://aka.ms/search-naming-rules"
+ }
+ },
+ "type": {
+ "type": "string",
+ "description": "The resource type."
+ },
+ "groupId": {
+ "type": "string",
+ "description": "The group ID of the resource."
+ },
+ "requiredMembers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "RequiredMembers of the resource"
+ },
+ "privateLinkServiceID": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The private link service ID of the resource, this field is exposed only to NRP internally."
+ }
+ }
+ },
+ "OSDiskType": {
+ "type": "string",
+ "enum": [
+ "Managed",
+ "Ephemeral"
+ ],
+ "x-ms-enum": {
+ "name": "OSDiskType",
+ "modelAsString": true
+ },
+ "description": "OSDiskType represents the type of an OS disk on an agent pool."
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
+ "x-ms-parameter-location": "client"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version.",
+ "x-ms-parameter-location": "client"
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "minLength": 1,
+ "description": "The name of the resource group.",
+ "x-ms-parameter-location": "method"
+ },
+ "ResourceNameParameter": {
+ "name": "resourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 63,
+ "pattern": "^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$",
+ "description": "The name of the managed cluster resource.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/containerservice/resource-manager/readme.azureresourceschema.md b/specification/containerservice/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..757d9d5dd16f
--- /dev/null
+++ b/specification/containerservice/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,315 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-containerservice-2020-09-01
+ - tag: schema-containerservice-2020-07-01
+ - tag: schema-containerservice-2020-06-01
+ - tag: schema-containerservice-2020-04-01
+ - tag: schema-containerservice-2020-03-01
+ - tag: schema-containerservice-2020-02-01
+ - tag: schema-containerservice-2020-01-01
+ - tag: schema-containerservice-2019-11-01
+ - tag: schema-containerservice-2019-10-27-preview
+ - tag: schema-containerservice-2019-10-01
+ - tag: schema-containerservice-2019-09-30
+ - tag: schema-containerservice-2019-08-01
+ - tag: schema-containerservice-2019-06-01
+ - tag: schema-containerservice-2019-04-30
+ - tag: schema-containerservice-2019-04-01
+ - tag: schema-containerservice-2019-02-01
+ - tag: schema-containerservice-2018-09-30-preview
+ - tag: schema-containerservice-2018-08-01-preview
+ - tag: schema-containerservice-2018-03-31
+ - tag: schema-containerservice-2017-09-30
+ - tag: schema-containerservice-2017-08-31
+ - tag: schema-containerservice-2017-07-01
+ - tag: schema-containerservice-2017-01-31
+ - tag: schema-containerservice-2016-09-30
+ - tag: schema-containerservice-2016-03-30
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-containerservice-2020-09-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2020-09-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2020-09-01/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2020-07-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2020-07-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2020-07-01/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2020-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2020-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2020-06-01/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2020-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2020-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2020-04-01/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2020-03-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2020-03-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2020-03-01/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2020-02-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2020-02-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2020-02-01/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2020-01-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2020-01-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2020-01-01/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2019-11-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2019-11-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2019-11-01/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2019-10-27-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2019-10-27-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/preview/2019-10-27-preview/openShiftManagedClusters.json
+
+```
+
+### Tag: schema-containerservice-2019-10-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2019-10-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2019-10-01/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2019-09-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2019-09-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/preview/2019-09-30/openShiftManagedClusters.json
+
+```
+
+### Tag: schema-containerservice-2019-08-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2019-08-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2019-08-01/location.json
+ - Microsoft.ContainerService/stable/2019-08-01/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2019-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2019-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2019-06-01/location.json
+ - Microsoft.ContainerService/stable/2019-06-01/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2019-04-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2019-04-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2019-04-30/openShiftManagedClusters.json
+
+```
+
+### Tag: schema-containerservice-2019-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2019-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2019-04-01/managedClusters.json
+ - Microsoft.ContainerService/stable/2019-04-01/location.json
+
+```
+
+### Tag: schema-containerservice-2019-02-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2019-02-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2019-02-01/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2018-09-30-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2018-09-30-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/preview/2018-09-30-preview/openShiftManagedClusters.json
+
+```
+
+### Tag: schema-containerservice-2018-08-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2018-08-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/preview/2018-08-01-preview/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2018-03-31 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2018-03-31' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2018-03-31/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2017-09-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2017-09-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2017-09-30/location.json
+
+```
+
+### Tag: schema-containerservice-2017-08-31 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2017-08-31' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2017-08-31/managedClusters.json
+
+```
+
+### Tag: schema-containerservice-2017-07-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2017-07-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2017-07-01/containerService.json
+
+```
+
+### Tag: schema-containerservice-2017-01-31 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2017-01-31' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2017-01-31/containerService.json
+
+```
+
+### Tag: schema-containerservice-2016-09-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2016-09-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2016-09-30/containerService.json
+
+```
+
+### Tag: schema-containerservice-2016-03-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-containerservice-2016-03-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ContainerService/stable/2016-03-30/containerService.json
+
+```
diff --git a/specification/containerservice/resource-manager/readme.go.md b/specification/containerservice/resource-manager/readme.go.md
index 657781427475..6e2f1df6402d 100644
--- a/specification/containerservice/resource-manager/readme.go.md
+++ b/specification/containerservice/resource-manager/readme.go.md
@@ -12,6 +12,8 @@ go:
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-2020-09
+ - tag: package-2020-07
- tag: package-2020-06
- tag: package-2020-04
- tag: package-2020-03
@@ -32,6 +34,26 @@ batch:
- tag: package-2017-08
- tag: package-2017-07
```
+### Tag: package-2020-09 and go
+
+These settings apply only when `--package-2020-09 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag)=='package-2020-09' && $(go)
+namespace: containerservice
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-09-01/$(namespace)
+```
+
+### Tag: package-2020-07 and go
+
+These settings apply only when `--package-2020-07 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag)=='package-2020-07' && $(go)
+namespace: containerservice
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-07-01/$(namespace)
+```
+
### Tag: package-2020-06 and go
These settings apply only when `--package-2020-06 --go` is specified on the command line.
@@ -149,7 +171,7 @@ Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-07' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.containerservice.v2020_07_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/containerservice/mgmt-v2020_07_01
+regenerate-manager: true
+generate-interface: true
+```
+### Tag: package-2020-09 and java
+
+These settings apply only when `--tag=package-2020-09` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(tag) == 'package-2020-09' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.containerservice.v2020_09_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/containerservice/mgmt-v2020_09_01
+regenerate-manager: true
+generate-interface: true
```
### Tag: package-2020-06 and java
@@ -194,4 +221,4 @@ java:
output-folder: $(azure-libraries-for-java-folder)/sdk/containerservice/mgmt-v2017_07_01
regenerate-manager: true
generate-interface: true
-```
\ No newline at end of file
+```
diff --git a/specification/containerservice/resource-manager/readme.md b/specification/containerservice/resource-manager/readme.md
index 296d71dd7e19..b24570f6bfd1 100644
--- a/specification/containerservice/resource-manager/readme.md
+++ b/specification/containerservice/resource-manager/readme.md
@@ -34,21 +34,45 @@ These are the global settings for the ContainerServices API.
``` yaml
openapi-type: arm
-tag: package-2020-06
+tag: package-2020-09
```
+### Tag: package-2020-09
+
+These settings apply only when `--tag=package-2020-09` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-09'
+input-file:
+ - Microsoft.ContainerService/stable/2019-04-30/openShiftManagedClusters.json
+ - Microsoft.ContainerService/stable/2017-07-01/containerService.json
+ - Microsoft.ContainerService/stable/2019-08-01/location.json
+ - Microsoft.ContainerService/stable/2020-09-01/managedClusters.json
+```
+### Tag: package-2020-07
+
+These settings apply only when `--tag=package-2020-07` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-07'
+input-file:
+ - Microsoft.ContainerService/stable/2019-04-30/openShiftManagedClusters.json
+ - Microsoft.ContainerService/stable/2017-07-01/containerService.json
+ - Microsoft.ContainerService/stable/2019-08-01/location.json
+ - Microsoft.ContainerService/stable/2020-07-01/managedClusters.json
+```
+
### Tag: package-2020-06
These settings apply only when `--tag=package-2020-06` is specified on the command line.
-```yaml $(tag) == 'package-2020-06'
+``` yaml $(tag) == 'package-2020-06'
input-file:
- Microsoft.ContainerService/stable/2019-04-30/openShiftManagedClusters.json
- Microsoft.ContainerService/stable/2017-07-01/containerService.json
- Microsoft.ContainerService/stable/2019-08-01/location.json
- Microsoft.ContainerService/stable/2020-06-01/managedClusters.json
```
+
### Tag: package-2020-04
These settings apply only when `--tag=package-2020-04` is specified on the command line.
@@ -256,6 +280,32 @@ These settings apply only when `--tag=package-2017-07` is specified on the comma
``` yaml $(tag) == 'package-2017-07'
input-file:
- Microsoft.ContainerService/stable/2017-07-01/containerService.json
+
+```
+### Tag: package-2020-09-01-only
+
+These settings apply only when `--tag=package-2020-09-01-only` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-09-01-only'
+input-file:
+- Microsoft.ContainerService/stable/2020-09-01/managedClusters.json
+directive:
+ - suppress: DefinitionsPropertiesNamesCamelCase
+ where: $.definitions.ManagedClusterProperties.properties.autoScalerProfile
+ reason: Cluster-autoscaler settings are not camel-cased
+```
+
+### Tag: package-2020-07-01-only
+
+These settings apply only when `--tag=package-2020-07-01-only` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-07-01-only'
+input-file:
+- Microsoft.ContainerService/stable/2020-07-01/managedClusters.json
+directive:
+ - suppress: DefinitionsPropertiesNamesCamelCase
+ where: $.definitions.ManagedClusterProperties.properties.autoScalerProfile
+ reason: Cluster-autoscaler settings are not camel-cased
```
### Tag: package-2020-06-01-only
@@ -508,6 +558,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_container_service']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js containerservice/resource-manager
```
## C#
@@ -545,51 +598,7 @@ directive:
reason: ACS service is deprecated so a PATCH endpoint won't be implemented
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
+## AzureResourceSchema
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.ContainerService/stable/2019-04-30/openShiftManagedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2017-07-01/containerService.json
- - $(this-folder)/Microsoft.ContainerService/stable/2019-08-01/location.json
- - $(this-folder)/Microsoft.ContainerService/stable/2020-06-01/managedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2020-04-01/managedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2020-03-01/managedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2020-02-01/managedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2020-01-01/managedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2019-11-01/managedClusters.json
- - $(this-folder)/Microsoft.ContainerService/preview/2019-10-27-preview/openShiftManagedClusters.json
- - $(this-folder)/Microsoft.ContainerService/preview/2019-09-30/openShiftManagedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2019-08-01/managedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2019-10-01/managedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2019-06-01/location.json
- - $(this-folder)/Microsoft.ContainerService/stable/2019-06-01/managedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2019-04-01/managedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2019-04-01/location.json
- - $(this-folder)/Microsoft.ContainerService/preview/2018-09-30-preview/openShiftManagedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2019-02-01/managedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2017-09-30/location.json
- - $(this-folder)/Microsoft.ContainerService/preview/2018-08-01-preview/managedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2018-03-31/managedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2017-08-31/managedClusters.json
- - $(this-folder)/Microsoft.ContainerService/stable/2017-01-31/containerService.json
- - $(this-folder)/Microsoft.ContainerService/stable/2016-09-30/containerService.json
- - $(this-folder)/Microsoft.ContainerService/stable/2016-03-30/containerService.json
-
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-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/containerservice/resource-manager/readme.python.md b/specification/containerservice/resource-manager/readme.python.md
index 5fee0ec5f9e4..7a02ff59401b 100644
--- a/specification/containerservice/resource-manager/readme.python.md
+++ b/specification/containerservice/resource-manager/readme.python.md
@@ -18,6 +18,8 @@ Generate all API versions currently shipped for this package
```yaml $(python) && $(multiapi)
batch:
+ - tag: package-2020-09-01-only
+ - tag: package-2020-07-01-only
- tag: package-2020-06-01-only
- tag: package-2020-04-01-only
- tag: package-2020-03-01-only
@@ -38,6 +40,28 @@ batch:
- tag: package-2017-07-only-extended
```
+### Tag: package-2020-09-01-only and python
+
+These settings apply only when `--tag=package-2020-09-01-only --python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-09-01-only' && $(python)
+python:
+ namespace: azure.mgmt.containerservice.v2020_09_01
+ output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_09_01
+```
+
+### Tag: package-2020-07-01-only and python
+
+These settings apply only when `--tag=package-2020-07-01-only --python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-07-01-only' && $(python)
+python:
+ namespace: azure.mgmt.containerservice.v2020_07_01
+ output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_07_01
+```
+
### Tag: package-2020-06-01-only and python
These settings apply only when `--tag=package-2020-06-01-only --python` is specified on the command line.
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/cosmos-db.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/cosmos-db.json
index 978944c453d6..cde658ad05ed 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/cosmos-db.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/cosmos-db.json
@@ -4215,7 +4215,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "#/definitions/ErrorResponseUpdatedFormat"
+ "$ref": "#/definitions/DefaultErrorResponse"
}
}
},
@@ -4251,7 +4251,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "#/definitions/ErrorResponseUpdatedFormat"
+ "$ref": "#/definitions/DefaultErrorResponse"
}
}
},
@@ -4293,7 +4293,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "#/definitions/ErrorResponseUpdatedFormat"
+ "$ref": "#/definitions/DefaultErrorResponse"
}
}
}
@@ -4483,11 +4483,11 @@
},
"description": "Error Response."
},
- "ErrorResponseUpdatedFormat": {
+ "DefaultErrorResponse": {
"description": "An error response from the service.",
"properties": {
"error": {
- "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse"
+ "$ref": "#/definitions/ErrorResponse"
}
}
},
@@ -5207,6 +5207,38 @@
"defaultConsistencyLevel"
]
},
+ "CorsPolicy": {
+ "type": "object",
+ "description": "The CORS policy for the Cosmos DB database account.",
+ "properties": {
+ "allowedOrigins": {
+ "description": "The origin domains that are permitted to make a request against the service via CORS.",
+ "type": "string"
+ },
+ "allowedMethods": {
+ "description": "The methods (HTTP request verbs) that the origin domain may use for a CORS request.",
+ "type": "string"
+ },
+ "allowedHeaders": {
+ "description": "The request headers that the origin domain may specify on the CORS request.",
+ "type": "string"
+ },
+ "exposedHeaders": {
+ "description": "The response headers that may be sent in the response to the CORS request and exposed by the browser to the request issuer.",
+ "type": "string"
+ },
+ "maxAgeInSeconds": {
+ "description": "The maximum amount time that a browser should cache the preflight OPTIONS request.",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 2147483647,
+ "format": "int64"
+ }
+ },
+ "required": [
+ "allowedOrigins"
+ ]
+ },
"DatabaseAccountGetProperties": {
"description": "Properties for the database account.",
"type": "object",
@@ -5351,6 +5383,13 @@
"description": "The object representing the policy for taking backups on an account.",
"type": "object",
"$ref": "#/definitions/BackupPolicy"
+ },
+ "cors": {
+ "type": "array",
+ "description": "The CORS policy for the Cosmos DB database account.",
+ "items": {
+ "$ref": "#/definitions/CorsPolicy"
+ }
}
}
},
@@ -5447,6 +5486,13 @@
"description": "The object representing the policy for taking backups on an account.",
"type": "object",
"$ref": "#/definitions/BackupPolicy"
+ },
+ "cors": {
+ "type": "array",
+ "description": "The CORS policy for the Cosmos DB database account.",
+ "items": {
+ "$ref": "#/definitions/CorsPolicy"
+ }
}
},
"required": [
@@ -5593,6 +5639,13 @@
"description": "The object representing the policy for taking backups on an account.",
"type": "object",
"$ref": "#/definitions/BackupPolicy"
+ },
+ "cors": {
+ "type": "array",
+ "description": "The CORS policy for the Cosmos DB database account.",
+ "items": {
+ "$ref": "#/definitions/CorsPolicy"
+ }
}
}
},
@@ -5610,6 +5663,9 @@
"properties": {
"x-ms-client-flatten": true,
"$ref": "#/definitions/DatabaseAccountUpdateProperties"
+ },
+ "identity": {
+ "$ref": "#/definitions/ManagedServiceIdentity"
}
}
},
@@ -6971,17 +7027,36 @@
},
"type": {
"type": "string",
- "description": "The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the service.",
+ "description": "The type of identity used for the resource. The type 'SystemAssigned,UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the service.",
"enum": [
"SystemAssigned",
"UserAssigned",
- "SystemAssigned, UserAssigned",
+ "SystemAssigned,UserAssigned",
"None"
],
"x-ms-enum": {
"name": "ResourceIdentityType",
"modelAsString": false
}
+ },
+ "userAssignedIdentities": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of user assigned identity."
+ },
+ "clientId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The client id of user assigned identity."
+ }
+ }
+ },
+ "description": "The list of user identities associated with resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'."
}
},
"description": "Identity for the resource."
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountCreateMax.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountCreateMax.json
index 2197eae8a3fa..c36777803418 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountCreateMax.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountCreateMax.json
@@ -8,6 +8,12 @@
"location": "westus",
"tags": {},
"kind": "MongoDB",
+ "identity": {
+ "type": "SystemAssigned,UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {}
+ }
+ },
"properties": {
"databaseAccountOfferType": "Standard",
"ipRules": [
@@ -55,7 +61,12 @@
"backupIntervalInMinutes": 240,
"backupRetentionIntervalInHours": 720
}
- }
+ },
+ "cors": [
+ {
+ "allowedOrigins": "https://test"
+ }
+ ]
}
}
},
@@ -68,6 +79,15 @@
"type": "Microsoft.DocumentDB/databaseAccounts",
"kind": "MongoDB",
"tags": {},
+ "identity": {
+ "type": "SystemAssigned,UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {
+ "clientId": "fbe75b66-01c5-4f87-a220-233af3270436",
+ "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9219"
+ }
+ }
+ },
"properties": {
"provisioningState": "Initializing",
"isVirtualNetworkFilterEnabled": true,
@@ -158,7 +178,12 @@
"backupIntervalInMinutes": 240,
"backupRetentionIntervalInHours": 720
}
- }
+ },
+ "cors": [
+ {
+ "allowedOrigins": "https://test"
+ }
+ ]
},
"systemData": {
"createdAt": "2020-06-12T22:05:09Z"
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountCreateMin.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountCreateMin.json
index 3b69dcc403f0..6219541b7ca4 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountCreateMin.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountCreateMin.json
@@ -72,6 +72,7 @@
"failoverPriority": 0
}
],
+ "cors": [],
"enableFreeTier": false,
"apiProperties": {},
"enableAnalyticalStorage": false,
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountGet.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountGet.json
index 92ae63e5ada1..6161ef424776 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountGet.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountGet.json
@@ -75,6 +75,7 @@
}
}
],
+ "cors": [],
"enableFreeTier": false,
"apiProperties": {},
"enableAnalyticalStorage": true,
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountList.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountList.json
index f4c4cc0b1429..2e78845c0e93 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountList.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountList.json
@@ -73,6 +73,7 @@
}
}
],
+ "cors": [],
"enableFreeTier": false,
"apiProperties": {},
"enableAnalyticalStorage": true,
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountListByResourceGroup.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountListByResourceGroup.json
index 65415c73b724..9a8d7e081c13 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountListByResourceGroup.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountListByResourceGroup.json
@@ -60,6 +60,7 @@
"failoverPriority": 0
}
],
+ "cors": [],
"enableFreeTier": false,
"instanceId": "d9b26648-2f53-4541-b3d8-3044f4f9810d",
"createMode": "Default",
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountPatch.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountPatch.json
index 9976e4e73f08..5c0c861f1146 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountPatch.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBDatabaseAccountPatch.json
@@ -9,6 +9,12 @@
"tags": {
"dept": "finance"
},
+ "identity": {
+ "type": "SystemAssigned,UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {}
+ }
+ },
"properties": {
"ipRules": [
{
@@ -53,6 +59,15 @@
"tags": {
"dept": "finance"
},
+ "identity": {
+ "type": "SystemAssigned,UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/eu2cgroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {
+ "clientId": "fbe75b66-01c5-4f87-a220-233af3270436",
+ "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9219"
+ }
+ }
+ },
"properties": {
"provisioningState": "Succeeded",
"documentEndpoint": "https://ddb1.documents.azure.com:443/",
@@ -106,6 +121,7 @@
"failoverPriority": 0
}
],
+ "cors": [],
"virtualNetworkRules": [
{
"id": "/subscriptions/subId/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1",
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleAssignmentCreateUpdate.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleAssignmentCreateUpdate.json
new file mode 100644
index 000000000000..dde4f7397304
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleAssignmentCreateUpdate.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "roleAssignmentId": "myRoleAssignmentId",
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "accountName": "myAccountName",
+ "api-version": "2020-06-01-preview",
+ "createUpdateSqlRoleAssignmentParameters": {
+ "properties": {
+ "roleDefinitionId": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlRoleDefinitions/myRoleDefinitionId",
+ "scope": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/dbs/purchases/colls/redmond-purchases",
+ "principalId": "myPrincipalId"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlRoleAssignments/myRoleAssignmentId",
+ "name": "myRoleAssignmentId",
+ "type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments",
+ "properties": {
+ "roleDefinitionId": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlRoleDefinitions/myRoleDefinitionId",
+ "scope": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/dbs/purchases/colls/redmond-purchases",
+ "principalId": "myPrincipalId"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleAssignmentDelete.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleAssignmentDelete.json
new file mode 100644
index 000000000000..2055244f0a8d
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleAssignmentDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "roleAssignmentId": "myRoleAssignmentId",
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "accountName": "myAccountName",
+ "api-version": "2020-06-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleAssignmentGet.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleAssignmentGet.json
new file mode 100644
index 000000000000..e42f8592a146
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleAssignmentGet.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "roleAssignmentId": "myRoleAssignmentId",
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "accountName": "myAccountName",
+ "api-version": "2020-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlRoleAssignments/myRoleAssignmentId",
+ "name": "myRoleAssignmentId",
+ "type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments",
+ "properties": {
+ "roleDefinitionId": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlRoleDefinitions/myRoleDefinitionId",
+ "scope": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/dbs/purchases/colls/redmond-purchases",
+ "principalId": "myPrincipalId"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleAssignmentList.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleAssignmentList.json
new file mode 100644
index 000000000000..5ef2595574ee
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleAssignmentList.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "accountName": "myAccountName",
+ "api-version": "2020-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlRoleAssignments/myRoleAssignmentId",
+ "name": "myRoleAssignmentId",
+ "type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments",
+ "properties": {
+ "roleDefinitionId": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlRoleDefinitions/myRoleDefinitionId",
+ "scope": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/dbs/purchases/colls/redmond-purchases",
+ "principalId": "myPrincipalId"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleDefinitionCreateUpdate.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleDefinitionCreateUpdate.json
new file mode 100644
index 000000000000..88351bec1d9e
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleDefinitionCreateUpdate.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "roleDefinitionId": "myRoleDefinitionId",
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "accountName": "myAccountName",
+ "api-version": "2020-06-01-preview",
+ "createUpdateSqlRoleDefinitionParameters": {
+ "properties": {
+ "roleName": "myRoleName",
+ "type": "CustomRole",
+ "assignableScopes": [
+ "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/dbs/sales",
+ "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/dbs/purchases"
+ ],
+ "permissions": [
+ {
+ "dataActions": [
+ "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/create",
+ "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read"
+ ],
+ "notDataActions": []
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlRoleDefinitions/myRoleDefinitionId",
+ "name": "myRoleDefinitionId",
+ "type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions",
+ "properties": {
+ "roleName": "myRoleName",
+ "type": "CustomRole",
+ "assignableScopes": [
+ "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/dbs/sales",
+ "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/dbs/purchases"
+ ],
+ "permissions": [
+ {
+ "dataActions": [
+ "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/create",
+ "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read"
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleDefinitionDelete.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleDefinitionDelete.json
new file mode 100644
index 000000000000..2208e3274038
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleDefinitionDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "roleDefinitionId": "myRoleDefinitionId",
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "accountName": "myAccountName",
+ "api-version": "2020-06-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleDefinitionGet.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleDefinitionGet.json
new file mode 100644
index 000000000000..43ee7da06029
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleDefinitionGet.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "roleDefinitionId": "myRoleDefinitionId",
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "accountName": "myAccountName",
+ "api-version": "2020-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlRoleDefinitions/myRoleDefinitionId",
+ "name": "myRoleDefinitionId",
+ "type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions",
+ "properties": {
+ "roleName": "myRoleName",
+ "type": "CustomRole",
+ "assignableScopes": [
+ "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/dbs/sales",
+ "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/dbs/purchases"
+ ],
+ "permissions": [
+ {
+ "dataActions": [
+ "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/create",
+ "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read"
+ ],
+ "notDataActions": []
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleDefinitionList.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleDefinitionList.json
new file mode 100644
index 000000000000..52933db02416
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/examples/CosmosDBSqlRoleDefinitionList.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "subscriptionId": "mySubscriptionId",
+ "resourceGroupName": "myResourceGroupName",
+ "accountName": "myAccountName",
+ "api-version": "2020-06-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlRoleDefinitions/myRoleDefinitionId",
+ "name": "myRoleDefinitionId",
+ "type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions",
+ "properties": {
+ "roleName": "myRoleName",
+ "type": "CustomRole",
+ "assignableScopes": [
+ "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/dbs/sales",
+ "/subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/dbs/purchases"
+ ],
+ "permissions": [
+ {
+ "dataActions": [
+ "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/create",
+ "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read"
+ ],
+ "notDataActions": []
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/rbac.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/rbac.json
new file mode 100644
index 000000000000..cda13ff0d7e9
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2020-06-01-preview/rbac.json
@@ -0,0 +1,573 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Cosmos DB",
+ "description": "Azure Cosmos DB Role Based Access Control Resource Provider REST API",
+ "version": "2020-06-01-preview"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "Impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleDefinitions/{roleDefinitionId}": {
+ "get": {
+ "operationId": "SqlResources_GetSqlRoleDefinition",
+ "x-ms-examples": {
+ "CosmosDBSqlRoleDefinitionGet": {
+ "$ref": "./examples/CosmosDBSqlRoleDefinitionGet.json"
+ }
+ },
+ "description": "Retrieves the properties of an existing Azure Cosmos DB SQL Role Definition with the given Id.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/roleDefinitionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "cosmos-db.json#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Role Definition was successfully retrieved.",
+ "schema": {
+ "$ref": "#/definitions/SqlRoleDefinitionGetResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "cosmos-db.json#/definitions/DefaultErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "SqlResources_CreateUpdateSqlRoleDefinition",
+ "x-ms-examples": {
+ "CosmosDBSqlRoleDefinitionCreateUpdate": {
+ "$ref": "./examples/CosmosDBSqlRoleDefinitionCreateUpdate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Creates or updates an Azure Cosmos DB SQL Role Definition.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/roleDefinitionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "cosmos-db.json#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "createUpdateSqlRoleDefinitionParameters",
+ "in": "body",
+ "required": true,
+ "description": "The properties required to create or update a Role Definition.",
+ "schema": {
+ "$ref": "#/definitions/SqlRoleDefinitionCreateUpdateParameters"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Role Definition create or update operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/SqlRoleDefinitionGetResults"
+ }
+ },
+ "202": {
+ "description": "The Role Definition create or update request was accepted and will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "cosmos-db.json#/definitions/DefaultErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "SqlResources_DeleteSqlRoleDefinition",
+ "x-ms-examples": {
+ "CosmosDBSqlRoleDefinitionDelete": {
+ "$ref": "./examples/CosmosDBSqlRoleDefinitionDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Deletes an existing Azure Cosmos DB SQL Role Definition.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/roleDefinitionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "cosmos-db.json#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Role Definition delete operation was completed successfully."
+ },
+ "202": {
+ "description": "The Role Definition delete request was accepted and will complete asynchronously."
+ },
+ "204": {
+ "description": "The requested Role Definition does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "cosmos-db.json#/definitions/DefaultErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleDefinitions": {
+ "get": {
+ "operationId": "SqlResources_ListSqlRoleDefinitions",
+ "x-ms-examples": {
+ "CosmosDBSqlRoleDefinitionList": {
+ "$ref": "./examples/CosmosDBSqlRoleDefinitionList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "description": "Retrieves the list of all Azure Cosmos DB SQL Role Definitions.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "cosmos-db.json#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The list operation completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/SqlRoleDefinitionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "cosmos-db.json#/definitions/DefaultErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleAssignments/{roleAssignmentId}": {
+ "get": {
+ "operationId": "SqlResources_GetSqlRoleAssignment",
+ "x-ms-examples": {
+ "CosmosDBSqlRoleAssignmentGet": {
+ "$ref": "./examples/CosmosDBSqlRoleAssignmentGet.json"
+ }
+ },
+ "description": "Retrieves the properties of an existing Azure Cosmos DB SQL Role Assignment with the given Id.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/roleAssignmentIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "cosmos-db.json#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Role Assignment was successfully retrieved.",
+ "schema": {
+ "$ref": "#/definitions/SqlRoleAssignmentGetResults"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "cosmos-db.json#/definitions/DefaultErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "operationId": "SqlResources_CreateUpdateSqlRoleAssignment",
+ "x-ms-examples": {
+ "CosmosDBSqlRoleAssignmentCreateUpdate": {
+ "$ref": "./examples/CosmosDBSqlRoleAssignmentCreateUpdate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Creates or updates an Azure Cosmos DB SQL Role Assignment.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/roleAssignmentIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "cosmos-db.json#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "createUpdateSqlRoleAssignmentParameters",
+ "in": "body",
+ "required": true,
+ "description": "The properties required to create or update a Role Assignment.",
+ "schema": {
+ "$ref": "#/definitions/SqlRoleAssignmentCreateUpdateParameters"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Role Assignment create or update operation was completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/SqlRoleAssignmentGetResults"
+ }
+ },
+ "202": {
+ "description": "The Role Assignment create or update request was accepted and will complete asynchronously."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "cosmos-db.json#/definitions/DefaultErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "SqlResources_DeleteSqlRoleAssignment",
+ "x-ms-examples": {
+ "CosmosDBSqlRoleAssignmentDelete": {
+ "$ref": "./examples/CosmosDBSqlRoleAssignmentDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "description": "Deletes an existing Azure Cosmos DB SQL Role Assignment.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/roleAssignmentIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "cosmos-db.json#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The Role Assignment delete operation was completed successfully."
+ },
+ "202": {
+ "description": "The Role Assignment delete request was accepted and will complete asynchronously."
+ },
+ "204": {
+ "description": "The requested Role Assignment does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "cosmos-db.json#/definitions/DefaultErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/sqlRoleAssignments": {
+ "get": {
+ "operationId": "SqlResources_ListSqlRoleAssignments",
+ "x-ms-examples": {
+ "CosmosDBSqlRoleAssignmentList": {
+ "$ref": "./examples/CosmosDBSqlRoleAssignmentList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "description": "Retrieves the list of all Azure Cosmos DB SQL Role Assignments.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "cosmos-db.json#/parameters/accountNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The list operation completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/SqlRoleAssignmentListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "cosmos-db.json#/definitions/DefaultErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "SqlRoleDefinitionResource": {
+ "properties": {
+ "roleName": {
+ "type": "string",
+ "description": "A user-friendly name for the Role Definition. Must be unique for the database account."
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "BuiltInRole",
+ "CustomRole"
+ ],
+ "description": "Indicates whether the Role Definition was built-in or user created.",
+ "x-ms-enum": {
+ "name": "RoleDefinitionType",
+ "modelAsString": false
+ }
+ },
+ "assignableScopes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A set of fully qualified Scopes at or below which Role Assignments may be created using this Role Definition. This will allow application of this Role Definition on the entire database account or any underlying Database / Collection. Must have at least one element. Scopes higher than Database account are not enforceable as assignable Scopes. Note that resources referenced in assignable Scopes need not exist."
+ },
+ "permissions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Permission"
+ },
+ "description": "The set of operations allowed through this Role Definition."
+ }
+ },
+ "description": "Azure Cosmos DB SQL Role Definition resource object."
+ },
+ "SqlRoleDefinitionCreateUpdateParameters": {
+ "description": "Parameters to create and update an Azure Cosmos DB SQL Role Definition.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Properties to create and update an Azure Cosmos DB SQL Role Definition.",
+ "$ref": "#/definitions/SqlRoleDefinitionResource"
+ }
+ }
+ },
+ "SqlRoleDefinitionGetResults": {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SqlRoleDefinitionResource",
+ "description": "Properties related to the Role Definition."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "cosmos-db.json#/definitions/ARMProxyResource"
+ }
+ ],
+ "description": "An Azure Cosmos DB SQL Role Definition."
+ },
+ "Permission": {
+ "type": "object",
+ "properties": {
+ "dataActions": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "An array of data actions that are allowed."
+ },
+ "notDataActions": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "An array of data actions that are denied."
+ }
+ },
+ "description": "The set of data plane operations permitted through this Role Definition."
+ },
+ "SqlRoleDefinitionListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/SqlRoleDefinitionGetResults"
+ },
+ "description": "List of Role Definitions and their properties."
+ }
+ },
+ "description": "The relevant Role Definitions."
+ },
+ "SqlRoleAssignmentResource": {
+ "type": "object",
+ "properties": {
+ "roleDefinitionId": {
+ "type": "string",
+ "description": "The unique identifier for the associated Role Definition."
+ },
+ "scope": {
+ "type": "string",
+ "description": "The data plane resource path for which access is being granted through this Role Assignment."
+ },
+ "principalId": {
+ "type": "string",
+ "description": "The unique identifier for the associated AAD principal in the AAD graph to which access is being granted through this Role Assignment. Tenant ID for the principal is inferred using the tenant associated with the subscription."
+ }
+ },
+ "description": "Azure Cosmos DB SQL Role Assignment resource object."
+ },
+ "SqlRoleAssignmentCreateUpdateParameters": {
+ "description": "Parameters to create and update an Azure Cosmos DB SQL Role Assignment.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Properties to create and update an Azure Cosmos DB SQL Role Assignment.",
+ "$ref": "#/definitions/SqlRoleAssignmentResource"
+ }
+ }
+ },
+ "SqlRoleAssignmentGetResults": {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/SqlRoleAssignmentResource",
+ "description": "Properties related to the Role Assignment."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "cosmos-db.json#/definitions/ARMProxyResource"
+ }
+ ],
+ "description": "An Azure Cosmos DB Role Assignment"
+ },
+ "SqlRoleAssignmentListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/SqlRoleAssignmentGetResults"
+ },
+ "description": "List of Role Assignments and their properties"
+ }
+ },
+ "description": "The relevant Role Assignments."
+ }
+ },
+ "parameters": {
+ "roleDefinitionIdParameter": {
+ "name": "roleDefinitionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method",
+ "description": "The GUID for the Role Definition."
+ },
+ "roleAssignmentIdParameter": {
+ "name": "roleAssignmentId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method",
+ "description": "The GUID for the Role Assignment."
+ }
+ }
+}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/cosmos-db.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/cosmos-db.json
index d42b4c445ae0..a56bec2b412a 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/cosmos-db.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/cosmos-db.json
@@ -5818,6 +5818,38 @@
"defaultConsistencyLevel"
]
},
+ "CorsPolicy": {
+ "type": "object",
+ "description": "The CORS policy for the Cosmos DB database account.",
+ "properties": {
+ "allowedOrigins": {
+ "description": "The origin domains that are permitted to make a request against the service via CORS.",
+ "type": "string"
+ },
+ "allowedMethods": {
+ "description": "The methods (HTTP request verbs) that the origin domain may use for a CORS request.",
+ "type": "string"
+ },
+ "allowedHeaders": {
+ "description": "The request headers that the origin domain may specify on the CORS request.",
+ "type": "string"
+ },
+ "exposedHeaders": {
+ "description": "The response headers that may be sent in the response to the CORS request and exposed by the browser to the request issuer.",
+ "type": "string"
+ },
+ "maxAgeInSeconds": {
+ "description": "The maximum amount time that a browser should cache the preflight OPTIONS request.",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 2147483647,
+ "format": "int64"
+ }
+ },
+ "required": [
+ "allowedOrigins"
+ ]
+ },
"DatabaseAccountGetProperties": {
"description": "Properties for the database account.",
"type": "object",
@@ -5941,6 +5973,13 @@
"enableAnalyticalStorage": {
"description": "Flag to indicate whether to enable storage analytics.",
"type": "boolean"
+ },
+ "cors": {
+ "type": "array",
+ "description": "The CORS policy for the Cosmos DB database account.",
+ "items": {
+ "$ref": "#/definitions/CorsPolicy"
+ }
}
}
},
@@ -6025,6 +6064,13 @@
"enableAnalyticalStorage": {
"description": "Flag to indicate whether to enable storage analytics.",
"type": "boolean"
+ },
+ "cors": {
+ "type": "array",
+ "description": "The CORS policy for the Cosmos DB database account.",
+ "items": {
+ "$ref": "#/definitions/CorsPolicy"
+ }
}
},
"required": [
@@ -6141,6 +6187,13 @@
"enableAnalyticalStorage": {
"description": "Flag to indicate whether to enable storage analytics.",
"type": "boolean"
+ },
+ "cors": {
+ "type": "array",
+ "description": "The CORS policy for the Cosmos DB database account.",
+ "items": {
+ "$ref": "#/definitions/CorsPolicy"
+ }
}
}
},
@@ -6859,6 +6912,11 @@
"conflictResolutionPolicy": {
"$ref": "#/definitions/ConflictResolutionPolicy",
"description": "The conflict resolution policy for the container."
+ },
+ "analyticalStorageTtl": {
+ "type": "integer",
+ "format": "int64",
+ "description": "Analytical TTL."
}
},
"required": [
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountCreateMax.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountCreateMax.json
index de4497935071..bd2b1b5d84ec 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountCreateMax.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountCreateMax.json
@@ -47,7 +47,12 @@
"apiProperties": {
"serverVersion": "3.2"
},
- "enableAnalyticalStorage": true
+ "enableAnalyticalStorage": true,
+ "cors": [
+ {
+ "allowedOrigins": "https://test"
+ }
+ ]
}
}
},
@@ -141,7 +146,12 @@
"apiProperties": {
"serverVersion": "3.2"
},
- "enableAnalyticalStorage": true
+ "enableAnalyticalStorage": true,
+ "cors": [
+ {
+ "allowedOrigins": "https://test"
+ }
+ ]
}
}
}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountCreateMin.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountCreateMin.json
index 6b0224bfd5e6..657a6f3669ed 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountCreateMin.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountCreateMin.json
@@ -71,6 +71,7 @@
"failoverPriority": 0
}
],
+ "cors": [],
"enableFreeTier": false,
"apiProperties": {},
"enableAnalyticalStorage": false
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountGet.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountGet.json
index a9060dbe546d..6c313a7aaece 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountGet.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountGet.json
@@ -75,6 +75,7 @@
}
}
],
+ "cors": [],
"enableFreeTier": false,
"apiProperties": {},
"enableAnalyticalStorage": true
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountList.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountList.json
index d17099aa4b0e..8a2bebe6ddbf 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountList.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountList.json
@@ -73,6 +73,7 @@
}
}
],
+ "cors": [],
"enableFreeTier": false,
"apiProperties": {},
"enableAnalyticalStorage": true
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountListByResourceGroup.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountListByResourceGroup.json
index 3e7ce126f613..909ed62bcfb2 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountListByResourceGroup.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountListByResourceGroup.json
@@ -60,6 +60,7 @@
"failoverPriority": 0
}
],
+ "cors": [],
"enableFreeTier": false
}
}
diff --git a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountPatch.json b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountPatch.json
index 4236c8ec8340..7b9052683a71 100644
--- a/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountPatch.json
+++ b/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBDatabaseAccountPatch.json
@@ -119,6 +119,7 @@
}
}
],
+ "cors": [],
"enableFreeTier": false,
"apiProperties": {},
"enableAnalyticalStorage": true
diff --git a/specification/cosmos-db/resource-manager/readme.azureresourceschema.md b/specification/cosmos-db/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..4abf996fb40b
--- /dev/null
+++ b/specification/cosmos-db/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,150 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-documentdb-2020-06-01-preview
+ - tag: schema-documentdb-2020-04-01
+ - tag: schema-documentdb-2020-03-01
+ - tag: schema-documentdb-2019-12-12
+ - tag: schema-documentdb-2019-08-01-preview
+ - tag: schema-documentdb-2019-08-01
+ - tag: schema-documentdb-2016-03-31
+ - tag: schema-documentdb-2016-03-19
+ - tag: schema-documentdb-2015-11-06
+ - tag: schema-documentdb-2015-04-08
+ - tag: schema-documentdb-2014-04-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-documentdb-2020-06-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-documentdb-2020-06-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DocumentDB/preview/2020-06-01-preview/cosmos-db.json
+ - Microsoft.DocumentDB/preview/2020-06-01-preview/notebook.json
+
+```
+
+### Tag: schema-documentdb-2020-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-documentdb-2020-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DocumentDB/stable/2020-04-01/cosmos-db.json
+ - Microsoft.DocumentDB/stable/2020-04-01/notebook.json
+
+```
+
+### Tag: schema-documentdb-2020-03-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-documentdb-2020-03-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DocumentDB/stable/2020-03-01/cosmos-db.json
+ - Microsoft.DocumentDB/stable/2020-03-01/notebook.json
+
+```
+
+### Tag: schema-documentdb-2019-12-12 and azureresourceschema
+
+``` yaml $(tag) == 'schema-documentdb-2019-12-12' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DocumentDB/stable/2019-12-12/cosmos-db.json
+ - Microsoft.DocumentDB/stable/2019-12-12/notebook.json
+
+```
+
+### Tag: schema-documentdb-2019-08-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-documentdb-2019-08-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DocumentDB/preview/2019-08-01-preview/privateLinkResources.json
+ - Microsoft.DocumentDB/preview/2019-08-01-preview/privateEndpointConnection.json
+
+```
+
+### Tag: schema-documentdb-2019-08-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-documentdb-2019-08-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DocumentDB/stable/2019-08-01/cosmos-db.json
+ - Microsoft.DocumentDB/stable/2019-08-01/notebook.json
+
+```
+
+### Tag: schema-documentdb-2016-03-31 and azureresourceschema
+
+``` yaml $(tag) == 'schema-documentdb-2016-03-31' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DocumentDB/stable/2016-03-31/cosmos-db.json
+
+```
+
+### Tag: schema-documentdb-2016-03-19 and azureresourceschema
+
+``` yaml $(tag) == 'schema-documentdb-2016-03-19' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DocumentDB/stable/2016-03-19/cosmos-db.json
+
+```
+
+### Tag: schema-documentdb-2015-11-06 and azureresourceschema
+
+``` yaml $(tag) == 'schema-documentdb-2015-11-06' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DocumentDB/stable/2015-11-06/cosmos-db.json
+
+```
+
+### Tag: schema-documentdb-2015-04-08 and azureresourceschema
+
+``` yaml $(tag) == 'schema-documentdb-2015-04-08' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DocumentDB/stable/2015-04-08/cosmos-db.json
+
+```
+
+### Tag: schema-documentdb-2014-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-documentdb-2014-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DocumentDB/stable/2014-04-01/cosmos-db.json
+
+```
diff --git a/specification/cosmos-db/resource-manager/readme.go.md b/specification/cosmos-db/resource-manager/readme.go.md
index c87fb1089fde..4a2a7bd88916 100644
--- a/specification/cosmos-db/resource-manager/readme.go.md
+++ b/specification/cosmos-db/resource-manager/readme.go.md
@@ -36,7 +36,7 @@ These settings apply only when `--tag=package-2020-04 --go` is specified on the
Please also specify `--go-sdk-folder=`.
``` yaml $(tag) == 'package-2020-04' && $(go)
-output-folder: $(go-sdk-folder)/services/cosmos-db/mgmt/2020-04-01/$(namespace)
+output-folder: $(go-sdk-folder)/services/preview/cosmos-db/mgmt/2020-04-01-preview/$(namespace)
```
### Tag: package-2020-03 and go
@@ -45,7 +45,7 @@ These settings apply only when `--tag=package-2020-03 --go` is specified on the
Please also specify `--go-sdk-folder=`.
``` yaml $(tag) == 'package-2020-03' && $(go)
-output-folder: $(go-sdk-folder)/services/cosmos-db/mgmt/2020-03-01/$(namespace)
+output-folder: $(go-sdk-folder)/services/preview/cosmos-db/mgmt/2020-03-01/$(namespace)
```
### Tag: package-2019-12 and go
@@ -54,7 +54,7 @@ These settings apply only when `--tag=package-2019-12 --go` is specified on the
Please also specify `--go-sdk-folder=`.
``` yaml $(tag) == 'package-2019-12' && $(go)
-output-folder: $(go-sdk-folder)/services/cosmos-db/mgmt/2019-12-12/$(namespace)
+output-folder: $(go-sdk-folder)/services/preview/cosmos-db/mgmt/2019-12-12/$(namespace)
```
### Tag: package-2019-08 and go
diff --git a/specification/cosmos-db/resource-manager/readme.md b/specification/cosmos-db/resource-manager/readme.md
index 3319ea5bcd1a..80054f71a6e8 100644
--- a/specification/cosmos-db/resource-manager/readme.md
+++ b/specification/cosmos-db/resource-manager/readme.md
@@ -27,7 +27,7 @@ These are the global settings for the Cosmos-DB API.
``` yaml
title: CosmosDBManagementClient
openapi-type: arm
-tag: package-2020-06-preview
+tag: package-2020-04
```
### Tag: package-2020-06-preview
@@ -38,6 +38,7 @@ These settings apply only when `--tag=package-2020-06-preview` is specified on t
input-file:
- Microsoft.DocumentDB/preview/2020-06-01-preview/cosmos-db.json
- Microsoft.DocumentDB/preview/2020-06-01-preview/notebook.json
+- Microsoft.DocumentDB/preview/2020-06-01-preview/rbac.json
- Microsoft.DocumentDB/preview/2019-08-01-preview/privateLinkResources.json
- Microsoft.DocumentDB/preview/2019-08-01-preview/privateEndpointConnection.json
```
@@ -220,6 +221,9 @@ directive:
- suppress: PathResourceProviderNamePascalCase
from: privateLinkResources.json
reason: The name of the provider is Microsoft.DocumentDB
+ - suppress: PathResourceProviderNamePascalCase
+ from: rbac.json
+ reason: The name of the provider is Microsoft.DocumentDB
```
---
@@ -238,6 +242,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js cosmos-db/resource-manager
```
@@ -266,6 +273,10 @@ See configuration in [readme.go.md](./readme.go.md)
## Java
See configuration in [readme.java.md](./readme.java.md)
+## AzureResourceSchema
+
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
+
## Multi-API/Profile support for AutoRest v3 generators
AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
@@ -280,6 +291,7 @@ require: $(this-folder)/../../../profiles/readme.md
input-file:
- $(this-folder)/Microsoft.DocumentDB/preview/2020-06-01-preview/cosmos-db.json
- $(this-folder)/Microsoft.DocumentDB/preview/2020-06-01-preview/notebook.json
+ - $(this-folder)/Microsoft.DocumentDB/preview/2020-06-01-preview/rbac.json
- $(this-folder)/Microsoft.DocumentDB/preview/2019-08-01-preview/privateLinkResources.json
- $(this-folder)/Microsoft.DocumentDB/preview/2019-08-01-preview/privateEndpointConnection.json
- $(this-folder)/Microsoft.DocumentDB/stable/2020-04-01/cosmos-db.json
@@ -305,4 +317,3 @@ uncomment the `exclude-file` section below and add the file paths.
#exclude-file:
# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
```
-
diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/costallocation.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/costallocation.json
new file mode 100644
index 000000000000..58ed986b82aa
--- /dev/null
+++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/costallocation.json
@@ -0,0 +1,601 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "CostManagementClient",
+ "version": "2020-03-01-preview"
+ },
+ "tags": [
+ {
+ "name": "CostAllocationRules",
+ "description": "An API for creating and managing cost allocation rules within a billing account or enterprise enrollment. These rules can be used to reallocate cost between resources, filtered by Resource Group, Subscription, or Tag."
+ }
+ ],
+ "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.Billing/billingAccounts/{billingAccountId}/providers/Microsoft.CostManagement/costAllocationRules": {
+ "get": {
+ "tags": [
+ "CostAllocationRules"
+ ],
+ "operationId": "CostAllocationRules_List",
+ "description": "Get the list of all cost allocation rules for a billing account or enterprise enrollment.",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "CostAllocationRulesList": {
+ "$ref": "./examples/CostAllocationRulesList.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/billingAccountIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of cost allocation rules for the billing account or enterprise enrollment.",
+ "schema": {
+ "$ref": "#/definitions/CostAllocationRuleList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/providers/Microsoft.CostManagement/costAllocationRules/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "CostAllocationRules"
+ ],
+ "operationId": "CostAllocationRules_CheckNameAvailability",
+ "description": "Checks availability and correctness of a name for a cost allocation rule",
+ "x-ms-examples": {
+ "CostAllocationRuleCheckNameAvailability": {
+ "$ref": "./examples/CostAllocationRuleCheckNameAvailability.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/billingAccountIdParameter"
+ },
+ {
+ "name": "costAllocationRuleCheckNameAvailabilityRequest",
+ "description": "Cost allocation rule to be created or updated",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CostAllocationRuleCheckNameAvailabilityRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Response of cost allocation rule name availability.",
+ "schema": {
+ "$ref": "#/definitions/CostAllocationRuleCheckNameAvailabilityResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/providers/Microsoft.CostManagement/costAllocationRules/{ruleName}": {
+ "get": {
+ "tags": [
+ "CostAllocationRules"
+ ],
+ "operationId": "CostAllocationRules_Get",
+ "description": "Get a cost allocation rule by rule name and billing account or enterprise enrollment.",
+ "x-ms-examples": {
+ "CostAllocationRules": {
+ "$ref": "./examples/CostAllocationRuleGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/billingAccountIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ruleNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/CostAllocationRuleDefinition"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "CostAllocationRules"
+ ],
+ "operationId": "CostAllocationRules_CreateOrUpdate",
+ "description": "Create/Update a rule to allocate cost between different resources within a billing account or enterprise enrollment.",
+ "x-ms-examples": {
+ "CostAllocationRulesCreateResourceGroup": {
+ "$ref": "./examples/CostAllocationRuleCreate.json"
+ },
+ "CostAllocationRulesCreateTag": {
+ "$ref": "./examples/CostAllocationRuleCreateTag.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/billingAccountIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ruleNameParameter"
+ },
+ {
+ "name": "costAllocationRule",
+ "description": "Cost allocation rule to be created or updated",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CostAllocationRuleDefinition"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/CostAllocationRuleDefinition"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "CostAllocationRules"
+ ],
+ "operationId": "CostAllocationRules_Delete",
+ "description": "Delete cost allocation rule for billing account or enterprise enrollment.",
+ "x-ms-examples": {
+ "CostAllocationRules": {
+ "$ref": "./examples/CostAllocationRuleDelete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/billingAccountIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ruleNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded."
+ },
+ "204": {
+ "description": "NoContent. Rule did not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ErrorDetails": {
+ "description": "The details of the error.",
+ "properties": {
+ "code": {
+ "description": "Error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ErrorResponse": {
+ "description": "Error response indicates that the service is not able to process the incoming request. The reason is provided in the error message. \n\nSome Error responses: \n\n * 429 TooManyRequests - Request is throttled. Retry after waiting for the time specified in the \"x-ms-ratelimit-microsoft.consumption-retry-after\" header. \n\n * 503 ServiceUnavailable - Service is temporarily unavailable. Retry after waiting for the time specified in the \"Retry-After\" header.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "description": "The details of the error.",
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "CostAllocationRuleList": {
+ "type": "object",
+ "description": "Result of listing cost allocation rules. It contains a list of available rules in the billing account or enterprise enrollment provided.",
+ "properties": {
+ "value": {
+ "description": "The list of cost allocation rules.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CostAllocationRuleDefinition"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next set of rule list results if there are any.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "CostAllocationRuleCheckNameAvailabilityRequest": {
+ "type": "object",
+ "description": "The cost allocation rule check name availability request",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Rule name"
+ },
+ "type": {
+ "type": "string",
+ "description": "Resource type. This is expected to be Microsoft.CostManagement/costAllocationRules"
+ }
+ }
+ },
+ "CostAllocationRuleCheckNameAvailabilityResponse": {
+ "type": "object",
+ "description": "The cost allocation rule check name availability response",
+ "properties": {
+ "nameAvailable": {
+ "type": "boolean",
+ "description": "Whether this rule name is available"
+ },
+ "reason": {
+ "$ref": "#/definitions/Reason",
+ "description": "The reason this name is not available"
+ },
+ "message": {
+ "type": "string",
+ "description": "Error message if the name is not available"
+ }
+ }
+ },
+ "Reason": {
+ "type": "string",
+ "description": "The reason this name is not available.",
+ "enum": [
+ "Invalid",
+ "AlreadyExists",
+ "Valid"
+ ],
+ "x-ms-enum": {
+ "name": "Reason",
+ "modelAsString": true
+ }
+ },
+ "CostAllocationRuleDefinition": {
+ "type": "object",
+ "description": "The cost allocation rule model definition",
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Azure Resource Manager Id for the rule. This is a read ony value."
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Name of the rule. This is a read only value."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource type of the rule. This is a read only value of Microsoft.CostManagement/CostAllocationRule."
+ },
+ "properties": {
+ "description": "Cost allocation rule properties",
+ "$ref": "#/definitions/CostAllocationRuleProperties"
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "CostAllocationRuleProperties": {
+ "type": "object",
+ "description": "The properties of a cost allocation rule",
+ "additionalProperties": false,
+ "required": [
+ "details",
+ "status"
+ ],
+ "properties": {
+ "description": {
+ "description": "Description of a cost allocation rule.",
+ "type": "string"
+ },
+ "details": {
+ "description": "Resource information for the cost allocation rule",
+ "$ref": "#/definitions/CostAllocationRuleDetails"
+ },
+ "status": {
+ "$ref": "#/definitions/RuleStatus",
+ "description": "Status of the rule"
+ },
+ "createdDate": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "Time at which the rule was created. Rules that change cost for the same resource are applied in order of creation."
+ },
+ "updatedDate": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "Time at which the rule was last updated."
+ }
+ }
+ },
+ "RuleStatus": {
+ "type": "string",
+ "description": "Current status of the rule.",
+ "enum": [
+ "NotActive",
+ "Active",
+ "Processing"
+ ],
+ "x-ms-enum": {
+ "name": "RuleStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "NotActive",
+ "description": "Rule is saved but not used to allocate costs.",
+ "name": "NotActive"
+ },
+ {
+ "value": "Active",
+ "description": "Rule is saved and impacting cost allocation.",
+ "name": "Active"
+ },
+ {
+ "value": "Processing",
+ "description": "Rule is saved and cost allocation is being updated. Readonly value that cannot be submitted in a put request.",
+ "name": "Processing"
+ }
+ ]
+ }
+ },
+ "CostAllocationRuleDetails": {
+ "type": "object",
+ "description": "Resource details of the cost allocation rule",
+ "properties": {
+ "sourceResources": {
+ "description": "Source resources for cost allocation. At this time, this list can contain no more than one element.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SourceCostAllocationResource"
+ }
+ },
+ "targetResources": {
+ "type": "array",
+ "description": "Target resources for cost allocation. At this time, this list can contain no more than one element.",
+ "items": {
+ "$ref": "#/definitions/TargetCostAllocationResource"
+ }
+ }
+ }
+ },
+ "CostAllocationResource": {
+ "type": "object",
+ "description": "Common values for resources for cost allocation",
+ "required": [
+ "resourceType",
+ "name"
+ ],
+ "properties": {
+ "resourceType": {
+ "description": "Type of resources contained in this cost allocation rule",
+ "$ref": "#/definitions/CostAllocationResourceType"
+ },
+ "name": {
+ "description": "If resource type is dimension, this must be either ResourceGroupName or SubscriptionId. If resource type is tag, this must be a valid Azure tag",
+ "type": "string"
+ }
+ }
+ },
+ "SourceCostAllocationResource": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/CostAllocationResource"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "values": {
+ "description": "Source Resources for cost allocation. This list cannot contain more than 25 values.",
+ "type": "array",
+ "items": {
+ "description": "Source resource for cost allocation",
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "values"
+ ]
+ }
+ ],
+ "description": "Source resources for cost allocation"
+ },
+ "TargetCostAllocationResource": {
+ "description": "Target resources for cost allocation.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CostAllocationResource"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "values": {
+ "description": "Target resources for cost allocation. This list cannot contain more than 25 values.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CostAllocationProportion"
+ }
+ },
+ "policyType": {
+ "description": "Method of cost allocation for the rule",
+ "$ref": "#/definitions/CostAllocationPolicyType"
+ }
+ },
+ "required": [
+ "values",
+ "policyType"
+ ]
+ }
+ ]
+ },
+ "CostAllocationResourceType": {
+ "type": "string",
+ "description": "Category of resource to use for allocation.",
+ "enum": [
+ "Dimension",
+ "Tag"
+ ],
+ "x-ms-enum": {
+ "name": "CostAllocationResourceType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Dimension",
+ "description": "Indicates an Azure dimension such as a subscription id or resource group name is being used for allocation.",
+ "name": "Dimension"
+ },
+ {
+ "value": "Tag",
+ "description": "Allocates cost based on Azure Tag key value pairs.",
+ "name": "Tag"
+ }
+ ]
+ }
+ },
+ "CostAllocationProportion": {
+ "type": "object",
+ "description": "Target resources and allocation",
+ "required": [
+ "percentage",
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "description": "Target resource for cost allocation",
+ "type": "string"
+ },
+ "percentage": {
+ "description": "Percentage of source cost to allocate to this resource. This value can be specified to two decimal places and the total percentage of all resources in this rule must sum to 100.00.",
+ "type": "number"
+ }
+ }
+ },
+ "CostAllocationPolicyType": {
+ "type": "string",
+ "description": "Method to use for allocating cost. FixedProportion indicates that cost will be split based on specified percentage values.",
+ "enum": [
+ "FixedProportion"
+ ],
+ "x-ms-enum": {
+ "name": "CostAllocationPolicyType",
+ "modelAsString": true
+ }
+ }
+ },
+ "parameters": {
+ "apiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Version of the API to be used with the client request (e.g. '2020-06-01')."
+ },
+ "billingAccountIdParameter": {
+ "name": "billingAccountId",
+ "in": "path",
+ "description": "BillingAccount ID",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "ruleNameParameter": {
+ "name": "ruleName",
+ "in": "path",
+ "description": "Cost allocation rule name. The name cannot include spaces or any non alphanumeric characters other than '_' and '-'. The max length is 260 characters.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleCheckNameAvailability.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleCheckNameAvailability.json
new file mode 100644
index 000000000000..01dce08d0ffc
--- /dev/null
+++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleCheckNameAvailability.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview",
+ "billingAccountId": "100",
+ "costAllocationRuleCheckNameAvailabilityRequest": {
+ "name": "testRule",
+ "type": "Microsoft.CostManagement/costAllocationRules"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": false,
+ "reason": "AlreadyExists",
+ "message": "A cost allocation rule with name testRule is already present for the billing account 100. Please specify a differnt name."
+ }
+ }
+ }
+}
diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleCreate.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleCreate.json
new file mode 100644
index 000000000000..82d5cefa2b2e
--- /dev/null
+++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleCreate.json
@@ -0,0 +1,85 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview",
+ "billingAccountId": "100",
+ "ruleName": "testRule",
+ "costAllocationRule": {
+ "properties": {
+ "description": "This is a testRule",
+ "status": "Active",
+ "details": {
+ "sourceResources": [
+ {
+ "resourceType": "Dimension",
+ "name": "ResourceGroupName",
+ "values": [
+ "sampleRG",
+ "secondRG"
+ ]
+ }
+ ],
+ "targetResources": [
+ {
+ "resourceType": "Dimension",
+ "policyType": "FixedProportion",
+ "name": "ResourceGroupName",
+ "values": [
+ {
+ "name": "destinationRG",
+ "percentage": 45
+ },
+ {
+ "name": "destinationRG2",
+ "percentage": 54
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "providers/Microsoft.Billing/billingAccounts/100/providers/Microsoft.CostManagement/costAllocationRules/testRule",
+ "name": "testRule",
+ "type": "Microsoft.CostManagement/costAllocationRules",
+ "properties": {
+ "description": "This is a testRule",
+ "createdDate": "2020-06-18T22:21:51.1287144Z",
+ "updatedDate": "2020-06-18T22:21:51.1287144Z",
+ "status": "Creating",
+ "details": {
+ "sourceResources": [
+ {
+ "resourceType": "Dimension",
+ "name": "ResourceGroupName",
+ "values": [
+ "sampleRG"
+ ]
+ }
+ ],
+ "targetResources": [
+ {
+ "resourceType": "Dimension",
+ "policyType": "FixedProportion",
+ "name": "ResourceGroupName",
+ "values": [
+ {
+ "name": "destinationRG",
+ "percentage": 50
+ },
+ {
+ "name": "destinationRG2",
+ "percentage": 50
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleCreateTag.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleCreateTag.json
new file mode 100644
index 000000000000..87edfcec150c
--- /dev/null
+++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleCreateTag.json
@@ -0,0 +1,88 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview",
+ "billingAccountId": "100",
+ "ruleName": "testRule",
+ "costAllocationRule": {
+ "properties": {
+ "description": "This is a testRule",
+ "status": "Active",
+ "details": {
+ "sourceResources": [
+ {
+ "resourceType": "Tag",
+ "name": "category",
+ "values": [
+ "devops"
+ ]
+ }
+ ],
+ "targetResources": [
+ {
+ "resourceType": "Dimension",
+ "policyType": "FixedProportion",
+ "name": "ResourceGroupName",
+ "values": [
+ {
+ "name": "destinationRG",
+ "percentage": 33.33
+ },
+ {
+ "name": "destinationRG2",
+ "percentage": 33.33
+ },
+ {
+ "name": "destinationRG3",
+ "percentage": 33.34
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "providers/Microsoft.Billing/billingAccounts/100/providers/Microsoft.CostManagement/costAllocationRules/testRule",
+ "name": "testRule",
+ "type": "Microsoft.CostManagement/costAllocationRules",
+ "properties": {
+ "description": "This is a testRule",
+ "createdDate": "2020-06-18T22:21:51.1287144Z",
+ "updatedDate": "2020-06-18T22:21:51.1287144Z",
+ "status": "Creating",
+ "details": {
+ "sourceResources": [
+ {
+ "resourceType": "Dimension",
+ "name": "ResourceGroupName",
+ "values": [
+ "sampleRG"
+ ]
+ }
+ ],
+ "targetResources": [
+ {
+ "resourceType": "Dimension",
+ "policyType": "FixedProportion",
+ "name": "ResourceGroupName",
+ "values": [
+ {
+ "name": "destinationRG",
+ "percentage": 50
+ },
+ {
+ "name": "destinationRG2",
+ "percentage": 50
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleDelete.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleDelete.json
new file mode 100644
index 000000000000..3a796c1a47b5
--- /dev/null
+++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleDelete.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview",
+ "billingAccountId": "100",
+ "ruleName": "testRule"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleGet.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleGet.json
new file mode 100644
index 000000000000..c2e38a9710ed
--- /dev/null
+++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRuleGet.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview",
+ "billingAccountId": "100",
+ "ruleName": "testRule"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "providers/Microsoft.Billing/billingAccounts/100/providers/Microsoft.CostManagement/costAllocationRules/testRule",
+ "name": "testRule",
+ "type": "Microsoft.CostManagement/costAllocationRules",
+ "properties": {
+ "description": "This is a testRule",
+ "createdDate": "2020-06-18T22:21:51.1287144Z",
+ "updatedDate": "2020-06-18T22:21:51.1287144Z",
+ "status": "NotActive",
+ "details": {
+ "sourceResources": [
+ {
+ "resourceType": "Dimension",
+ "name": "ResourceGroupName",
+ "values": [
+ "sampleRG"
+ ]
+ }
+ ],
+ "targetResources": [
+ {
+ "resourceType": "Dimension",
+ "policyType": "FixedProportion",
+ "name": "ResourceGroupName",
+ "values": [
+ {
+ "name": "destinationRG",
+ "percentage": 50
+ },
+ {
+ "name": "destinationRG2",
+ "percentage": 50
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRulesList.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRulesList.json
new file mode 100644
index 000000000000..96642fa6fdb5
--- /dev/null
+++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2020-03-01-preview/examples/CostAllocationRulesList.json
@@ -0,0 +1,128 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01-preview",
+ "billingAccountId": "100"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "providers/Microsoft.Billing/billingAccounts/100/providers/Microsoft.CostManagement/costAllocationRules/testRule",
+ "name": "testRule",
+ "type": "Microsoft.CostManagement/costAllocationRules",
+ "properties": {
+ "description": "This is a testRule",
+ "createdDate": "2020-06-18T22:21:51.1287144Z",
+ "updatedDate": "2020-06-18T22:21:51.1287144Z",
+ "status": "NotActive",
+ "details": {
+ "sourceResources": [
+ {
+ "resourceType": "Dimension",
+ "name": "ResourceGroupName",
+ "values": [
+ "sampleRG"
+ ]
+ }
+ ],
+ "targetResources": [
+ {
+ "resourceType": "Dimension",
+ "policyType": "FixedProportion",
+ "name": "ResourceGroupName",
+ "values": [
+ {
+ "name": "destinationRG",
+ "percentage": 50
+ },
+ {
+ "name": "destinationRG2",
+ "percentage": 50
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ {
+ "id": "providers/Microsoft.Billing/billingAccounts/100/providers/Microsoft.CostManagement/costAllocationRules/testRule2",
+ "name": "testRule2",
+ "type": "Microsoft.CostManagement/costAllocationRules",
+ "properties": {
+ "description": "This is a second test Rule",
+ "createdDate": "2020-06-18T22:21:51.1287144Z",
+ "updatedDate": "2020-06-18T22:21:51.1287144Z",
+ "status": "Active",
+ "details": {
+ "sourceResources": [
+ {
+ "resourceType": "Dimension",
+ "name": "SubscriptionId",
+ "values": [
+ "2A002F2D-536F-4D7C-90DA-3D0BAE879B0E"
+ ]
+ }
+ ],
+ "targetResources": [
+ {
+ "resourceType": "Tag",
+ "policyType": "FixedProportion",
+ "name": "category",
+ "values": [
+ {
+ "name": "devops",
+ "percentage": 100
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ {
+ "id": "providers/Microsoft.Billing/billingAccounts/100/providers/Microsoft.CostManagement/costAllocationRules/testRule3",
+ "name": "testRule3",
+ "type": "Microsoft.CostManagement/costAllocationRules",
+ "properties": {
+ "description": "This is a third test Rule",
+ "createdDate": "2020-06-18T22:21:51.1287144Z",
+ "updatedDate": "2020-06-18T22:21:51.1287144Z",
+ "status": "Active",
+ "details": {
+ "sourceResources": [
+ {
+ "resourceType": "Tag",
+ "name": "category",
+ "values": [
+ "devops"
+ ]
+ }
+ ],
+ "targetResources": [
+ {
+ "resourceType": "Dimension",
+ "policyType": "FixedProportion",
+ "name": "ResourceGroupName",
+ "values": [
+ {
+ "name": "ResourceGroup",
+ "percentage": 55.55
+ },
+ {
+ "name": "ResourceGroupSecond",
+ "percentage": 44.45
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/costmanagement.exports.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/costmanagement.exports.json
new file mode 100644
index 000000000000..00b0485fcc45
--- /dev/null
+++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/costmanagement.exports.json
@@ -0,0 +1,951 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2019-11-01",
+ "title": "CostManagementClient"
+ },
+ "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.CostManagement/exports": {
+ "get": {
+ "tags": [
+ "Exports"
+ ],
+ "operationId": "Exports_List",
+ "description": "The operation to list all exports at the given scope.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
+ },
+ "x-ms-examples": {
+ "SubscriptionExportList": {
+ "$ref": "./examples/ExportListBySubscription.json"
+ },
+ "ResourceGroupExportList": {
+ "$ref": "./examples/ExportListByResourceGroup.json"
+ },
+ "BillingAccountExportList": {
+ "$ref": "./examples/ExportListByBillingAccount.json"
+ },
+ "DepartmentExportList": {
+ "$ref": "./examples/ExportListByDepartment.json"
+ },
+ "EnrollmentAccountExportList": {
+ "$ref": "./examples/ExportListByEnrollmentAccount.json"
+ },
+ "ManagementGroupExportList": {
+ "$ref": "./examples/ExportListByManagementGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/scopeQueryParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/ExportListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/{scope}/providers/Microsoft.CostManagement/exports/{exportName}": {
+ "get": {
+ "tags": [
+ "Exports"
+ ],
+ "operationId": "Exports_Get",
+ "description": "The operation to get the export for the defined scope by export name.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
+ },
+ "x-ms-examples": {
+ "SubscriptionExport": {
+ "$ref": "./examples/ExportBySubscription.json"
+ },
+ "ResourceGroupExport": {
+ "$ref": "./examples/ExportByResourceGroup.json"
+ },
+ "BillingAccountExport": {
+ "$ref": "./examples/ExportByBillingAccount.json"
+ },
+ "DepartmentExport": {
+ "$ref": "./examples/ExportByDepartment.json"
+ },
+ "EnrollmentAccountExport": {
+ "$ref": "./examples/ExportByEnrollmentAccount.json"
+ },
+ "ManagementGroupExport": {
+ "$ref": "./examples/ExportByManagementGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/scopeQueryParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/exportNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/Export"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Exports"
+ ],
+ "operationId": "Exports_CreateOrUpdate",
+ "description": "The operation to create or update a export. Update operation requires latest eTag to be set in the request. You may obtain the latest eTag by performing a get operation. Create operation does not require eTag.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
+ },
+ "x-ms-examples": {
+ "SubscriptionCreateOrUpdateExport": {
+ "$ref": "./examples/ExportCreateOrUpdateBySubscription.json"
+ },
+ "ResourceGroupCreateOrUpdateExport": {
+ "$ref": "./examples/ExportCreateOrUpdateByResourceGroup.json"
+ },
+ "BillingAccountCreateOrUpdateExport": {
+ "$ref": "./examples/ExportCreateOrUpdateByBillingAccount.json"
+ },
+ "DepartmentCreateOrUpdateExport": {
+ "$ref": "./examples/ExportCreateOrUpdateByDepartment.json"
+ },
+ "EnrollmentAccountCreateOrUpdateExport": {
+ "$ref": "./examples/ExportCreateOrUpdateByEnrollmentAccount.json"
+ },
+ "ManagementGroupCreateOrUpdateExport": {
+ "$ref": "./examples/ExportCreateOrUpdateByManagementGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/scopeQueryParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/exportNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Export"
+ },
+ "description": "Parameters supplied to the CreateOrUpdate Export operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/Export"
+ }
+ },
+ "201": {
+ "description": "Created.",
+ "schema": {
+ "$ref": "#/definitions/Export"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Exports"
+ ],
+ "operationId": "Exports_Delete",
+ "description": "The operation to delete a export.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
+ },
+ "x-ms-examples": {
+ "SubscriptionDeleteExport": {
+ "$ref": "./examples/ExportDeleteBySubscription.json"
+ },
+ "ResourceGroupDeleteExport": {
+ "$ref": "./examples/ExportDeleteByResourceGroup.json"
+ },
+ "BillingAccountDeleteExport": {
+ "$ref": "./examples/ExportDeleteByBillingAccount.json"
+ },
+ "EnrollmentAccountDeleteExport": {
+ "$ref": "./examples/ExportDeleteByEnrollmentAccount.json"
+ },
+ "DepartmentDeleteExport": {
+ "$ref": "./examples/ExportDeleteByDepartment.json"
+ },
+ "ManagementGroupDeleteExport": {
+ "$ref": "./examples/ExportDeleteByManagementGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/scopeQueryParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/exportNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/{scope}/providers/Microsoft.CostManagement/exports/{exportName}/run": {
+ "post": {
+ "tags": [
+ "Exports"
+ ],
+ "operationId": "Exports_Execute",
+ "description": "The operation to execute a export.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
+ },
+ "x-ms-examples": {
+ "SubscriptionExecuteExport": {
+ "$ref": "./examples/ExportExecutionBySubscription.json"
+ },
+ "ResourceGroupExecuteExport": {
+ "$ref": "./examples/ExportExecutionByResourceGroup.json"
+ },
+ "BillingAccountExecuteExport": {
+ "$ref": "./examples/ExportExecutionByBillingAccount.json"
+ },
+ "DepartmentExecuteExport": {
+ "$ref": "./examples/ExportExecutionByDepartment.json"
+ },
+ "EnrollmentAccountExecuteExport": {
+ "$ref": "./examples/ExportExecutionByEnrollmentAccount.json"
+ },
+ "ManagementGroupExecuteExport": {
+ "$ref": "./examples/ExportExecutionByManagementGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/scopeQueryParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/exportNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/{scope}/providers/Microsoft.CostManagement/exports/{exportName}/runHistory": {
+ "get": {
+ "tags": [
+ "Exports"
+ ],
+ "operationId": "Exports_GetExecutionHistory",
+ "description": "The operation to get the execution history of an export for the defined scope by export name.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
+ },
+ "x-ms-examples": {
+ "SubscriptionExecutionHistoryExport": {
+ "$ref": "./examples/ExportExecutionListBySubscription.json"
+ },
+ "ResourceGroupExecutionHistoryExport": {
+ "$ref": "./examples/ExportExecutionListByResourceGroup.json"
+ },
+ "BillingAccountExecutionHistoryExport": {
+ "$ref": "./examples/ExportExecutionListByBillingAccount.json"
+ },
+ "DepartmentExecutionHistoryExport": {
+ "$ref": "./examples/ExportExecutionListByDepartment.json"
+ },
+ "EnrollmentAccountExecutionHistoryExport": {
+ "$ref": "./examples/ExportExecutionListByEnrollmentAccount.json"
+ },
+ "ManagementGroupExecutionHistoryExport": {
+ "$ref": "./examples/ExportExecutionListByManagementGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/scopeQueryParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/exportNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/ExportExecutionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ErrorDetails": {
+ "description": "The details of the error.",
+ "properties": {
+ "code": {
+ "description": "Error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Error message indicating why the operation failed.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ErrorResponse": {
+ "description": "Error response indicates that the service is not able to process the incoming request. The reason is provided in the error message. \n\nSome Error responses: \n\n * 429 TooManyRequests - Request is throttled. Retry after waiting for the time specified in the \"x-ms-ratelimit-microsoft.consumption-retry-after\" header. \n\n * 503 ServiceUnavailable - Service is temporarily unavailable. Retry after waiting for the time specified in the \"Retry-After\" header.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "description": "The details of the error.",
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "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."
+ },
+ "tags": {
+ "readOnly": true,
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "QueryDefinition": {
+ "description": "The definition of a query.",
+ "properties": {
+ "type": {
+ "description": "The type of the query.",
+ "type": "string",
+ "enum": [
+ "Usage",
+ "ActualCost",
+ "AmortizedCost"
+ ],
+ "x-ms-enum": {
+ "name": "ExportType",
+ "modelAsString": true
+ }
+ },
+ "timeframe": {
+ "description": "The time frame for pulling data for the query. If custom, then a specific time period must be provided.",
+ "type": "string",
+ "enum": [
+ "MonthToDate",
+ "BillingMonthToDate",
+ "TheLastMonth",
+ "TheLastBillingMonth",
+ "WeekToDate",
+ "Custom"
+ ],
+ "x-ms-enum": {
+ "name": "TimeframeType",
+ "modelAsString": true
+ }
+ },
+ "timePeriod": {
+ "description": "Has time period for pulling data for the query.",
+ "$ref": "#/definitions/QueryTimePeriod"
+ },
+ "dataset": {
+ "description": "Has definition for data in this query.",
+ "$ref": "#/definitions/QueryDataset"
+ }
+ },
+ "required": [
+ "type",
+ "timeframe"
+ ]
+ },
+ "QueryTimePeriod": {
+ "description": "The start and end date for pulling data for the query.",
+ "properties": {
+ "from": {
+ "description": "The start date to pull data from.",
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "description": "The end date to pull data to.",
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "from",
+ "to"
+ ]
+ },
+ "QueryDataset": {
+ "description": "The definition of data present in the query.",
+ "properties": {
+ "granularity": {
+ "description": "The granularity of rows in the query.",
+ "type": "string",
+ "enum": [
+ "Daily"
+ ],
+ "x-ms-enum": {
+ "name": "GranularityType",
+ "modelAsString": true
+ }
+ },
+ "configuration": {
+ "description": "Has configuration information for the data in the export. The configuration will be ignored if aggregation and grouping are provided.",
+ "$ref": "#/definitions/QueryDatasetConfiguration"
+ },
+ "aggregation": {
+ "type": "object",
+ "description": "Dictionary of aggregation expression to use in the query. The key of each item in the dictionary is the alias for the aggregated column. Query can have up to 2 aggregation clauses.",
+ "additionalProperties": {
+ "type": "object",
+ "$ref": "#/definitions/QueryAggregation"
+ },
+ "maxItems": 2
+ },
+ "grouping": {
+ "description": "Array of group by expression to use in the query. Query can have up to 2 group by clauses.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QueryGrouping"
+ },
+ "maxItems": 2
+ },
+ "filter": {
+ "type": "object",
+ "description": "Has filter expression to use in the query.",
+ "$ref": "#/definitions/QueryFilter"
+ }
+ }
+ },
+ "QueryDatasetConfiguration": {
+ "description": "The configuration of dataset in the query.",
+ "properties": {
+ "columns": {
+ "description": "Array of column names to be included in the query. Any valid query column name is allowed. If not provided, then query includes all columns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "QueryAggregation": {
+ "description": "The aggregation expression to be used in the query.",
+ "properties": {
+ "name": {
+ "description": "The name of the column to aggregate.",
+ "type": "string"
+ },
+ "function": {
+ "description": "The name of the aggregation function to use.",
+ "type": "string",
+ "enum": [
+ "Sum"
+ ],
+ "x-ms-enum": {
+ "name": "FunctionType",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "name",
+ "function"
+ ]
+ },
+ "QueryGrouping": {
+ "description": "The group by expression to be used in the query.",
+ "properties": {
+ "type": {
+ "description": "Has type of the column to group.",
+ "$ref": "#/definitions/QueryColumnType"
+ },
+ "name": {
+ "description": "The name of the column to group.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "name"
+ ]
+ },
+ "QueryFilter": {
+ "description": "The filter expression to be used in the export.",
+ "properties": {
+ "and": {
+ "description": "The logical \"AND\" expression. Must have at least 2 items.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QueryFilter"
+ },
+ "minItems": 2
+ },
+ "or": {
+ "description": "The logical \"OR\" expression. Must have at least 2 items.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QueryFilter"
+ },
+ "minItems": 2
+ },
+ "not": {
+ "description": "The logical \"NOT\" expression.",
+ "$ref": "#/definitions/QueryFilter"
+ },
+ "dimension": {
+ "description": "Has comparison expression for a dimension",
+ "$ref": "#/definitions/QueryComparisonExpression"
+ },
+ "tag": {
+ "description": "Has comparison expression for a tag",
+ "$ref": "#/definitions/QueryComparisonExpression"
+ }
+ }
+ },
+ "QueryColumnType": {
+ "description": "The type of the column in the export.",
+ "type": "string",
+ "enum": [
+ "Tag",
+ "Dimension"
+ ],
+ "x-ms-enum": {
+ "name": "QueryColumnType",
+ "modelAsString": true
+ }
+ },
+ "QueryComparisonExpression": {
+ "description": "The comparison expression to be used in the query.",
+ "properties": {
+ "name": {
+ "description": "The name of the column to use in comparison.",
+ "type": "string"
+ },
+ "operator": {
+ "description": "The operator to use for comparison.",
+ "type": "string",
+ "enum": [
+ "In"
+ ],
+ "x-ms-enum": {
+ "name": "OperatorType",
+ "modelAsString": true
+ }
+ },
+ "values": {
+ "description": "Array of values to use for comparison",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ }
+ },
+ "required": [
+ "name",
+ "operator",
+ "values"
+ ]
+ },
+ "ExportListResult": {
+ "description": "Result of listing exports. It contains a list of available exports in the scope provided.",
+ "properties": {
+ "value": {
+ "description": "The list of exports.",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/Export"
+ }
+ }
+ }
+ },
+ "Export": {
+ "description": "A export resource.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExportProperties",
+ "title": "Export properties"
+ }
+ }
+ },
+ "ExportProperties": {
+ "description": "The properties of the export.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CommonExportProperties"
+ }
+ ],
+ "properties": {
+ "schedule": {
+ "description": "Has schedule information for the export.",
+ "$ref": "#/definitions/ExportSchedule"
+ }
+ }
+ },
+ "CommonExportProperties": {
+ "description": "The common properties of the export.",
+ "properties": {
+ "format": {
+ "description": "The format of the export being delivered.",
+ "type": "string",
+ "enum": [
+ "Csv"
+ ],
+ "x-ms-enum": {
+ "name": "FormatType",
+ "modelAsString": true
+ }
+ },
+ "deliveryInfo": {
+ "description": "Has delivery information for the export.",
+ "$ref": "#/definitions/ExportDeliveryInfo"
+ },
+ "definition": {
+ "description": "Has definition for the export.",
+ "$ref": "#/definitions/QueryDefinition"
+ }
+ },
+ "required": [
+ "deliveryInfo",
+ "definition"
+ ]
+ },
+ "ExportSchedule": {
+ "description": "The schedule associated with a export.",
+ "properties": {
+ "status": {
+ "description": "The status of the schedule. Whether active or not. If inactive, the export's scheduled execution is paused.",
+ "type": "string",
+ "enum": [
+ "Active",
+ "Inactive"
+ ],
+ "x-ms-enum": {
+ "name": "StatusType",
+ "modelAsString": true
+ }
+ },
+ "recurrence": {
+ "description": "The schedule recurrence.",
+ "type": "string",
+ "enum": [
+ "Daily",
+ "Weekly",
+ "Monthly",
+ "Annually"
+ ],
+ "x-ms-enum": {
+ "name": "RecurrenceType",
+ "modelAsString": true
+ }
+ },
+ "recurrencePeriod": {
+ "description": "Has start and end date of the recurrence. The start date must be in future. If present, the end date must be greater than start date.",
+ "$ref": "#/definitions/ExportRecurrencePeriod"
+ }
+ },
+ "required": [
+ "recurrence"
+ ]
+ },
+ "ExportDeliveryInfo": {
+ "description": "The delivery information associated with a export.",
+ "properties": {
+ "destination": {
+ "description": "Has destination for the export being delivered.",
+ "$ref": "#/definitions/ExportDeliveryDestination"
+ }
+ },
+ "required": [
+ "destination"
+ ]
+ },
+ "ExportRecurrencePeriod": {
+ "description": "The start and end date for recurrence schedule.",
+ "properties": {
+ "from": {
+ "description": "The start date of recurrence.",
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "description": "The end date of recurrence.",
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "from"
+ ]
+ },
+ "ExportDeliveryDestination": {
+ "description": "The destination information for the delivery of the export. To allow access to a storage account, you must register the account's subscription with the Microsoft.CostManagementExports resource provider. This is required once per subscription. When creating an export in the Azure portal, it is done automatically, however API users need to register the subscription. For more information see https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-supported-services .",
+ "properties": {
+ "resourceId": {
+ "description": "The resource id of the storage account where exports will be delivered.",
+ "type": "string"
+ },
+ "container": {
+ "description": "The name of the container where exports will be uploaded.",
+ "type": "string"
+ },
+ "rootFolderPath": {
+ "description": "The name of the directory where exports will be uploaded.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "resourceId",
+ "container"
+ ]
+ },
+ "ExportExecutionListResult": {
+ "description": "Result of listing exports execution history of a export by name",
+ "properties": {
+ "value": {
+ "description": "The list of export executions.",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/ExportExecution"
+ }
+ }
+ }
+ },
+ "ExportExecution": {
+ "description": "A export execution.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExportExecutionProperties",
+ "title": "Export execution properties"
+ }
+ }
+ },
+ "ExportExecutionProperties": {
+ "description": "The properties of the export execution.",
+ "properties": {
+ "executionType": {
+ "description": "The type of the export execution.",
+ "type": "string",
+ "enum": [
+ "OnDemand",
+ "Scheduled"
+ ],
+ "x-ms-enum": {
+ "name": "ExecutionType",
+ "modelAsString": true
+ }
+ },
+ "status": {
+ "description": "The status of the export execution.",
+ "type": "string",
+ "enum": [
+ "Queued",
+ "InProgress",
+ "Completed",
+ "Failed",
+ "Timeout",
+ "NewDataNotAvailable",
+ "DataNotAvailable"
+ ],
+ "x-ms-enum": {
+ "name": "ExecutionStatus",
+ "modelAsString": true
+ }
+ },
+ "submittedBy": {
+ "description": "The identifier for the entity that executed the export. For OnDemand executions, it is the email id. For Scheduled executions, it is the constant value - System.",
+ "type": "string"
+ },
+ "submittedTime": {
+ "description": "The time when export was queued to be executed.",
+ "type": "string",
+ "format": "date-time"
+ },
+ "processingStartTime": {
+ "description": "The time when export was picked up to be executed.",
+ "type": "string",
+ "format": "date-time"
+ },
+ "processingEndTime": {
+ "description": "The time when export execution finished.",
+ "type": "string",
+ "format": "date-time"
+ },
+ "fileName": {
+ "description": "The name of the file export got written to.",
+ "type": "string"
+ },
+ "runSettings": {
+ "$ref": "#/definitions/CommonExportProperties"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "apiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Version of the API to be used with the client request. The current version is 2019-11-01."
+ },
+ "exportNameParameter": {
+ "name": "exportName",
+ "in": "path",
+ "description": "Export Name.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "scopeQueryParameter": {
+ "name": "scope",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The scope associated with query and export operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope, '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' for invoiceSection scope, and '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' specific for partners.",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true
+ }
+ }
+}
diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/costmanagement.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/costmanagement.json
index 2f0fc9a8dc97..16f9d8c22663 100644
--- a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/costmanagement.json
+++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2019-11-01/costmanagement.json
@@ -1098,350 +1098,6 @@
}
}
},
- "/{scope}/providers/Microsoft.CostManagement/exports": {
- "get": {
- "tags": [
- "Exports"
- ],
- "operationId": "Exports_List",
- "description": "The operation to list all exports at the given scope.",
- "externalDocs": {
- "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
- },
- "x-ms-examples": {
- "SubscriptionExportList": {
- "$ref": "./examples/ExportListBySubscription.json"
- },
- "ResourceGroupExportList": {
- "$ref": "./examples/ExportListByResourceGroup.json"
- },
- "BillingAccountExportList": {
- "$ref": "./examples/ExportListByBillingAccount.json"
- },
- "DepartmentExportList": {
- "$ref": "./examples/ExportListByDepartment.json"
- },
- "EnrollmentAccountExportList": {
- "$ref": "./examples/ExportListByEnrollmentAccount.json"
- },
- "ManagementGroupExportList": {
- "$ref": "./examples/ExportListByManagementGroup.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/scopeQueryParameter"
- },
- {
- "$ref": "#/parameters/apiVersionParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. The request has succeeded.",
- "schema": {
- "$ref": "#/definitions/ExportListResult"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- }
- }
- },
- "/{scope}/providers/Microsoft.CostManagement/exports/{exportName}": {
- "get": {
- "tags": [
- "Exports"
- ],
- "operationId": "Exports_Get",
- "description": "The operation to get the export for the defined scope by export name.",
- "externalDocs": {
- "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
- },
- "x-ms-examples": {
- "SubscriptionExport": {
- "$ref": "./examples/ExportBySubscription.json"
- },
- "ResourceGroupExport": {
- "$ref": "./examples/ExportByResourceGroup.json"
- },
- "BillingAccountExport": {
- "$ref": "./examples/ExportByBillingAccount.json"
- },
- "DepartmentExport": {
- "$ref": "./examples/ExportByDepartment.json"
- },
- "EnrollmentAccountExport": {
- "$ref": "./examples/ExportByEnrollmentAccount.json"
- },
- "ManagementGroupExport": {
- "$ref": "./examples/ExportByManagementGroup.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/scopeQueryParameter"
- },
- {
- "$ref": "#/parameters/apiVersionParameter"
- },
- {
- "$ref": "#/parameters/exportNameParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. The request has succeeded.",
- "schema": {
- "$ref": "#/definitions/Export"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- }
- },
- "put": {
- "tags": [
- "Exports"
- ],
- "operationId": "Exports_CreateOrUpdate",
- "description": "The operation to create or update a export. Update operation requires latest eTag to be set in the request. You may obtain the latest eTag by performing a get operation. Create operation does not require eTag.",
- "externalDocs": {
- "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
- },
- "x-ms-examples": {
- "SubscriptionCreateOrUpdateExport": {
- "$ref": "./examples/ExportCreateOrUpdateBySubscription.json"
- },
- "ResourceGroupCreateOrUpdateExport": {
- "$ref": "./examples/ExportCreateOrUpdateByResourceGroup.json"
- },
- "BillingAccountCreateOrUpdateExport": {
- "$ref": "./examples/ExportCreateOrUpdateByBillingAccount.json"
- },
- "DepartmentCreateOrUpdateExport": {
- "$ref": "./examples/ExportCreateOrUpdateByDepartment.json"
- },
- "EnrollmentAccountCreateOrUpdateExport": {
- "$ref": "./examples/ExportCreateOrUpdateByEnrollmentAccount.json"
- },
- "ManagementGroupCreateOrUpdateExport": {
- "$ref": "./examples/ExportCreateOrUpdateByManagementGroup.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/scopeQueryParameter"
- },
- {
- "$ref": "#/parameters/apiVersionParameter"
- },
- {
- "$ref": "#/parameters/exportNameParameter"
- },
- {
- "name": "parameters",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/Export"
- },
- "description": "Parameters supplied to the CreateOrUpdate Export operation."
- }
- ],
- "responses": {
- "200": {
- "description": "OK. The request has succeeded.",
- "schema": {
- "$ref": "#/definitions/Export"
- }
- },
- "201": {
- "description": "Created.",
- "schema": {
- "$ref": "#/definitions/Export"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- }
- },
- "delete": {
- "tags": [
- "Exports"
- ],
- "operationId": "Exports_Delete",
- "description": "The operation to delete a export.",
- "externalDocs": {
- "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
- },
- "x-ms-examples": {
- "SubscriptionDeleteExport": {
- "$ref": "./examples/ExportDeleteBySubscription.json"
- },
- "ResourceGroupDeleteExport": {
- "$ref": "./examples/ExportDeleteByResourceGroup.json"
- },
- "BillingAccountDeleteExport": {
- "$ref": "./examples/ExportDeleteByBillingAccount.json"
- },
- "EnrollmentAccountDeleteExport": {
- "$ref": "./examples/ExportDeleteByEnrollmentAccount.json"
- },
- "DepartmentDeleteExport": {
- "$ref": "./examples/ExportDeleteByDepartment.json"
- },
- "ManagementGroupDeleteExport": {
- "$ref": "./examples/ExportDeleteByManagementGroup.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/scopeQueryParameter"
- },
- {
- "$ref": "#/parameters/apiVersionParameter"
- },
- {
- "$ref": "#/parameters/exportNameParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. The request has succeeded."
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- }
- }
- },
- "/{scope}/providers/Microsoft.CostManagement/exports/{exportName}/run": {
- "post": {
- "tags": [
- "Exports"
- ],
- "operationId": "Exports_Execute",
- "description": "The operation to execute a export.",
- "externalDocs": {
- "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
- },
- "x-ms-examples": {
- "SubscriptionExecuteExport": {
- "$ref": "./examples/ExportExecutionBySubscription.json"
- },
- "ResourceGroupExecuteExport": {
- "$ref": "./examples/ExportExecutionByResourceGroup.json"
- },
- "BillingAccountExecuteExport": {
- "$ref": "./examples/ExportExecutionByBillingAccount.json"
- },
- "DepartmentExecuteExport": {
- "$ref": "./examples/ExportExecutionByDepartment.json"
- },
- "EnrollmentAccountExecuteExport": {
- "$ref": "./examples/ExportExecutionByEnrollmentAccount.json"
- },
- "ManagementGroupExecuteExport": {
- "$ref": "./examples/ExportExecutionByManagementGroup.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/scopeQueryParameter"
- },
- {
- "$ref": "#/parameters/apiVersionParameter"
- },
- {
- "$ref": "#/parameters/exportNameParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. The request has succeeded."
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- }
- }
- },
- "/{scope}/providers/Microsoft.CostManagement/exports/{exportName}/runHistory": {
- "get": {
- "tags": [
- "Exports"
- ],
- "operationId": "Exports_GetExecutionHistory",
- "description": "The operation to get the execution history of an export for the defined scope by export name.",
- "externalDocs": {
- "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
- },
- "x-ms-examples": {
- "SubscriptionExecutionHistoryExport": {
- "$ref": "./examples/ExportExecutionListBySubscription.json"
- },
- "ResourceGroupExecutionHistoryExport": {
- "$ref": "./examples/ExportExecutionListByResourceGroup.json"
- },
- "BillingAccountExecutionHistoryExport": {
- "$ref": "./examples/ExportExecutionListByBillingAccount.json"
- },
- "DepartmentExecutionHistoryExport": {
- "$ref": "./examples/ExportExecutionListByDepartment.json"
- },
- "EnrollmentAccountExecutionHistoryExport": {
- "$ref": "./examples/ExportExecutionListByEnrollmentAccount.json"
- },
- "ManagementGroupExecutionHistoryExport": {
- "$ref": "./examples/ExportExecutionListByManagementGroup.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/scopeQueryParameter"
- },
- {
- "$ref": "#/parameters/apiVersionParameter"
- },
- {
- "$ref": "#/parameters/exportNameParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. The request has succeeded.",
- "schema": {
- "$ref": "#/definitions/ExportExecutionListResult"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- }
- }
- },
"/providers/Microsoft.CostManagement/operations": {
"get": {
"tags": [
@@ -2741,256 +2397,6 @@
"operator",
"values"
]
- },
- "ExportListResult": {
- "description": "Result of listing exports. It contains a list of available exports in the scope provided.",
- "properties": {
- "value": {
- "description": "The list of exports.",
- "type": "array",
- "readOnly": true,
- "items": {
- "$ref": "#/definitions/Export"
- }
- }
- }
- },
- "Export": {
- "description": "A export resource.",
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/Resource"
- }
- ],
- "properties": {
- "properties": {
- "x-ms-client-flatten": true,
- "$ref": "#/definitions/ExportProperties",
- "title": "Export properties"
- }
- }
- },
- "ExportProperties": {
- "description": "The properties of the export.",
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/CommonExportProperties"
- }
- ],
- "properties": {
- "schedule": {
- "description": "Has schedule information for the export.",
- "$ref": "#/definitions/ExportSchedule"
- }
- }
- },
- "CommonExportProperties": {
- "description": "The common properties of the export.",
- "properties": {
- "format": {
- "description": "The format of the export being delivered.",
- "type": "string",
- "enum": [
- "Csv"
- ],
- "x-ms-enum": {
- "name": "FormatType",
- "modelAsString": true
- }
- },
- "deliveryInfo": {
- "description": "Has delivery information for the export.",
- "$ref": "#/definitions/ExportDeliveryInfo"
- },
- "definition": {
- "description": "Has definition for the export.",
- "$ref": "#/definitions/QueryDefinition"
- }
- },
- "required": [
- "deliveryInfo",
- "definition"
- ]
- },
- "ExportSchedule": {
- "description": "The schedule associated with a export.",
- "properties": {
- "status": {
- "description": "The status of the schedule. Whether active or not. If inactive, the export's scheduled execution is paused.",
- "type": "string",
- "enum": [
- "Active",
- "Inactive"
- ],
- "x-ms-enum": {
- "name": "StatusType",
- "modelAsString": true
- }
- },
- "recurrence": {
- "description": "The schedule recurrence.",
- "type": "string",
- "enum": [
- "Daily",
- "Weekly",
- "Monthly",
- "Annually"
- ],
- "x-ms-enum": {
- "name": "RecurrenceType",
- "modelAsString": true
- }
- },
- "recurrencePeriod": {
- "description": "Has start and end date of the recurrence. The start date must be in future. If present, the end date must be greater than start date.",
- "$ref": "#/definitions/ExportRecurrencePeriod"
- }
- },
- "required": [
- "recurrence"
- ]
- },
- "ExportDeliveryInfo": {
- "description": "The delivery information associated with a export.",
- "properties": {
- "destination": {
- "description": "Has destination for the export being delivered.",
- "$ref": "#/definitions/ExportDeliveryDestination"
- }
- },
- "required": [
- "destination"
- ]
- },
- "ExportRecurrencePeriod": {
- "description": "The start and end date for recurrence schedule.",
- "properties": {
- "from": {
- "description": "The start date of recurrence.",
- "type": "string",
- "format": "date-time"
- },
- "to": {
- "description": "The end date of recurrence.",
- "type": "string",
- "format": "date-time"
- }
- },
- "required": [
- "from"
- ]
- },
- "ExportDeliveryDestination": {
- "description": "The destination information for the delivery of the export. To allow access to a storage account, you must register the account's subscription with the Microsoft.CostManagementExports resource provider. This is required once per subscription. When creating an export in the Azure portal, it is done automatically, however API users need to register the subscription. For more information see https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-supported-services .",
- "properties": {
- "resourceId": {
- "description": "The resource id of the storage account where exports will be delivered.",
- "type": "string"
- },
- "container": {
- "description": "The name of the container where exports will be uploaded.",
- "type": "string"
- },
- "rootFolderPath": {
- "description": "The name of the directory where exports will be uploaded.",
- "type": "string"
- }
- },
- "required": [
- "resourceId",
- "container"
- ]
- },
- "ExportExecutionListResult": {
- "description": "Result of listing exports execution history of a export by name",
- "properties": {
- "value": {
- "description": "The list of export executions.",
- "type": "array",
- "readOnly": true,
- "items": {
- "$ref": "#/definitions/ExportExecution"
- }
- }
- }
- },
- "ExportExecution": {
- "description": "A export execution.",
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/Resource"
- }
- ],
- "properties": {
- "properties": {
- "x-ms-client-flatten": true,
- "$ref": "#/definitions/ExportExecutionProperties",
- "title": "Export execution properties"
- }
- }
- },
- "ExportExecutionProperties": {
- "description": "The properties of the export execution.",
- "properties": {
- "executionType": {
- "description": "The type of the export execution.",
- "type": "string",
- "enum": [
- "OnDemand",
- "Scheduled"
- ],
- "x-ms-enum": {
- "name": "ExecutionType",
- "modelAsString": true
- }
- },
- "status": {
- "description": "The status of the export execution.",
- "type": "string",
- "enum": [
- "Queued",
- "InProgress",
- "Completed",
- "Failed",
- "Timeout",
- "NewDataNotAvailable",
- "DataNotAvailable"
- ],
- "x-ms-enum": {
- "name": "ExecutionStatus",
- "modelAsString": true
- }
- },
- "submittedBy": {
- "description": "The identifier for the entity that executed the export. For OnDemand executions, it is the email id. For Scheduled executions, it is the constant value - System.",
- "type": "string"
- },
- "submittedTime": {
- "description": "The time when export was queued to be executed.",
- "type": "string",
- "format": "date-time"
- },
- "processingStartTime": {
- "description": "The time when export was picked up to be executed.",
- "type": "string",
- "format": "date-time"
- },
- "processingEndTime": {
- "description": "The time when export execution finished.",
- "type": "string",
- "format": "date-time"
- },
- "fileName": {
- "description": "The name of the file export got written to.",
- "type": "string"
- },
- "runSettings": {
- "$ref": "#/definitions/CommonExportProperties"
- }
- }
}
},
"parameters": {
@@ -3100,14 +2506,6 @@
"type": "string",
"x-ms-parameter-location": "method"
},
- "exportNameParameter": {
- "name": "exportName",
- "in": "path",
- "description": "Export Name.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
"externalCloudProviderTypeParameter": {
"name": "externalCloudProviderType",
"in": "path",
diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2020-06-01/costmanagement.exports.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2020-06-01/costmanagement.exports.json
new file mode 100644
index 000000000000..6f5153b995a9
--- /dev/null
+++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2020-06-01/costmanagement.exports.json
@@ -0,0 +1,1139 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-06-01",
+ "title": "CostManagementClient"
+ },
+ "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.CostManagement/exports": {
+ "get": {
+ "tags": [
+ "Exports"
+ ],
+ "operationId": "Exports_List",
+ "description": "The operation to list all exports at the given scope.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
+ },
+ "x-ms-examples": {
+ "ExportsGetBySubscription": {
+ "$ref": "./examples/ExportsGetBySubscription.json"
+ },
+ "ExportsGetByResourceGroup": {
+ "$ref": "./examples/ExportsGetByResourceGroup.json"
+ },
+ "ExportsGetByBillingAccount": {
+ "$ref": "./examples/ExportsGetByBillingAccount.json"
+ },
+ "ExportsGetByDepartment": {
+ "$ref": "./examples/ExportsGetByDepartment.json"
+ },
+ "ExportsGetByEnrollmentAccount": {
+ "$ref": "./examples/ExportsGetByEnrollmentAccount.json"
+ },
+ "ExportsGetByManagementGroup": {
+ "$ref": "./examples/ExportsGetByManagementGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/scopeExportParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "$expand",
+ "description": "May be used to expand the properties within an export. Currently only 'runHistory' is supported and will return information for the last execution of each export.",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/ExportListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/{scope}/providers/Microsoft.CostManagement/exports/{exportName}": {
+ "get": {
+ "tags": [
+ "Exports"
+ ],
+ "operationId": "Exports_Get",
+ "description": "The operation to get the export for the defined scope by export name.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
+ },
+ "x-ms-examples": {
+ "ExportGetBySubscription": {
+ "$ref": "./examples/ExportGetBySubscription.json"
+ },
+ "ExportGetByResourceGroup": {
+ "$ref": "./examples/ExportGetByResourceGroup.json"
+ },
+ "ExportGetByBillingAccount": {
+ "$ref": "./examples/ExportGetByBillingAccount.json"
+ },
+ "ExportGetByDepartment": {
+ "$ref": "./examples/ExportGetByDepartment.json"
+ },
+ "ExportGetByEnrollmentAccount": {
+ "$ref": "./examples/ExportGetByEnrollmentAccount.json"
+ },
+ "ExportGetByManagementGroup": {
+ "$ref": "./examples/ExportGetByManagementGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/scopeExportParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/exportNameParameter"
+ },
+ {
+ "name": "$expand",
+ "description": "May be used to expand the properties within an export. Currently only 'runHistory' is supported and will return information for the last 10 executions of the export.",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/Export"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Exports"
+ ],
+ "operationId": "Exports_CreateOrUpdate",
+ "description": "The operation to create or update a export. Update operation requires latest eTag to be set in the request. You may obtain the latest eTag by performing a get operation. Create operation does not require eTag.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
+ },
+ "x-ms-examples": {
+ "ExportCreateOrUpdateBySubscription": {
+ "$ref": "./examples/ExportCreateOrUpdateBySubscription.json"
+ },
+ "ExportCreateOrUpdateByResourceGroup": {
+ "$ref": "./examples/ExportCreateOrUpdateByResourceGroup.json"
+ },
+ "ExportCreateOrUpdateByBillingAccount": {
+ "$ref": "./examples/ExportCreateOrUpdateByBillingAccount.json"
+ },
+ "ExportCreateOrUpdateByDepartment": {
+ "$ref": "./examples/ExportCreateOrUpdateByDepartment.json"
+ },
+ "ExportCreateOrUpdateByEnrollmentAccount": {
+ "$ref": "./examples/ExportCreateOrUpdateByEnrollmentAccount.json"
+ },
+ "ExportCreateOrUpdateByManagementGroup": {
+ "$ref": "./examples/ExportCreateOrUpdateByManagementGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/scopeExportParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/exportNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Export"
+ },
+ "description": "Parameters supplied to the CreateOrUpdate Export operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/Export"
+ }
+ },
+ "201": {
+ "description": "Created.",
+ "schema": {
+ "$ref": "#/definitions/Export"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Exports"
+ ],
+ "operationId": "Exports_Delete",
+ "description": "The operation to delete a export.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
+ },
+ "x-ms-examples": {
+ "ExportDeleteBySubscription": {
+ "$ref": "./examples/ExportDeleteBySubscription.json"
+ },
+ "ExportDeleteByResourceGroup": {
+ "$ref": "./examples/ExportDeleteByResourceGroup.json"
+ },
+ "ExportDeleteByBillingAccount": {
+ "$ref": "./examples/ExportDeleteByBillingAccount.json"
+ },
+ "ExportDeleteByEnrollmentAccount": {
+ "$ref": "./examples/ExportDeleteByEnrollmentAccount.json"
+ },
+ "ExportDeleteByDepartment": {
+ "$ref": "./examples/ExportDeleteByDepartment.json"
+ },
+ "ExportDeleteByManagementGroup": {
+ "$ref": "./examples/ExportDeleteByManagementGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/scopeExportParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/exportNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/{scope}/providers/Microsoft.CostManagement/exports/{exportName}/run": {
+ "post": {
+ "tags": [
+ "Exports"
+ ],
+ "operationId": "Exports_Execute",
+ "description": "The operation to execute an export.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
+ },
+ "x-ms-examples": {
+ "ExportRunBySubscription": {
+ "$ref": "./examples/ExportRunBySubscription.json"
+ },
+ "ExportRunByResourceGroup": {
+ "$ref": "./examples/ExportRunByResourceGroup.json"
+ },
+ "ExportRunByBillingAccount": {
+ "$ref": "./examples/ExportRunByBillingAccount.json"
+ },
+ "ExportRunByDepartment": {
+ "$ref": "./examples/ExportRunByDepartment.json"
+ },
+ "ExportRunByEnrollmentAccount": {
+ "$ref": "./examples/ExportRunByEnrollmentAccount.json"
+ },
+ "ExportRunByManagementGroup": {
+ "$ref": "./examples/ExportRunByManagementGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/scopeExportParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/exportNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/{scope}/providers/Microsoft.CostManagement/exports/{exportName}/runHistory": {
+ "get": {
+ "tags": [
+ "Exports"
+ ],
+ "operationId": "Exports_GetExecutionHistory",
+ "description": "The operation to get the execution history of an export for the defined scope and export name.",
+ "externalDocs": {
+ "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
+ },
+ "x-ms-examples": {
+ "ExportRunHistoryGetBySubscription": {
+ "$ref": "./examples/ExportRunHistoryGetBySubscription.json"
+ },
+ "ExportRunHistoryGetByResourceGroup": {
+ "$ref": "./examples/ExportRunHistoryGetByResourceGroup.json"
+ },
+ "ExportRunHistoryGetByBillingAccount": {
+ "$ref": "./examples/ExportRunHistoryGetByBillingAccount.json"
+ },
+ "ExportRunHistoryGetByDepartment": {
+ "$ref": "./examples/ExportRunHistoryGetByDepartment.json"
+ },
+ "ExportRunHistoryGetByEnrollmentAccount": {
+ "$ref": "./examples/ExportRunHistoryGetByEnrollmentAccount.json"
+ },
+ "ExportRunHistoryGetByManagementGroup": {
+ "$ref": "./examples/ExportRunHistoryGetByManagementGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/scopeExportParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/exportNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/ExportExecutionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ReportConfigDefinition": {
+ "description": "The definition of a report config.",
+ "properties": {
+ "type": {
+ "description": "The type of the report. Usage represents actual usage, forecast represents forecasted data and UsageAndForecast represents both usage and forecasted data. Actual usage and forecasted data can be differentiated based on dates.",
+ "type": "string",
+ "enum": [
+ "Usage"
+ ],
+ "x-ms-enum": {
+ "name": "ReportType",
+ "modelAsString": true
+ }
+ },
+ "timeframe": {
+ "description": "The time frame for pulling data for the report. If custom, then a specific time period must be provided.",
+ "type": "string",
+ "enum": [
+ "WeekToDate",
+ "MonthToDate",
+ "YearToDate",
+ "Custom"
+ ],
+ "x-ms-enum": {
+ "name": "ReportTimeframeType",
+ "modelAsString": true
+ }
+ },
+ "timePeriod": {
+ "description": "Has time period for pulling data for the report.",
+ "$ref": "#/definitions/ReportConfigTimePeriod"
+ },
+ "dataset": {
+ "description": "Has definition for data in this report config.",
+ "$ref": "#/definitions/ReportConfigDataset"
+ }
+ },
+ "required": [
+ "type",
+ "timeframe"
+ ]
+ },
+ "ReportConfigTimePeriod": {
+ "description": "The start and end date for pulling data for the report.",
+ "properties": {
+ "from": {
+ "description": "The start date to pull data from.",
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "description": "The end date to pull data to.",
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "from",
+ "to"
+ ]
+ },
+ "ReportConfigDataset": {
+ "description": "The definition of data present in the report.",
+ "properties": {
+ "granularity": {
+ "description": "The granularity of rows in the report.",
+ "type": "string",
+ "enum": [
+ "Daily",
+ "Monthly"
+ ],
+ "x-ms-enum": {
+ "name": "ReportGranularityType",
+ "modelAsString": true
+ }
+ },
+ "configuration": {
+ "description": "Has configuration information for the data in the report. The configuration will be ignored if aggregation and grouping are provided.",
+ "$ref": "#/definitions/ReportConfigDatasetConfiguration"
+ },
+ "aggregation": {
+ "type": "object",
+ "description": "Dictionary of aggregation expression to use in the report. The key of each item in the dictionary is the alias for the aggregated column. Report can have up to 2 aggregation clauses.",
+ "additionalProperties": {
+ "type": "object",
+ "$ref": "#/definitions/ReportConfigAggregation"
+ },
+ "maxItems": 2
+ },
+ "grouping": {
+ "description": "Array of group by expression to use in the report. Report can have up to 2 group by clauses.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReportConfigGrouping"
+ },
+ "maxItems": 2
+ },
+ "sorting": {
+ "description": "Array of order by expression to use in the report.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReportConfigSorting"
+ }
+ },
+ "filter": {
+ "type": "object",
+ "description": "Has filter expression to use in the report.",
+ "$ref": "#/definitions/ReportConfigFilter"
+ }
+ }
+ },
+ "ReportConfigDatasetConfiguration": {
+ "description": "The configuration of dataset in the report.",
+ "properties": {
+ "columns": {
+ "description": "Array of column names to be included in the report. Any valid report column name is allowed. If not provided, then report includes all columns.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "ReportConfigAggregation": {
+ "description": "The aggregation expression to be used in the report.",
+ "properties": {
+ "name": {
+ "description": "The name of the column to aggregate.",
+ "type": "string"
+ },
+ "function": {
+ "description": "The name of the aggregation function to use.",
+ "type": "string",
+ "enum": [
+ "Sum"
+ ],
+ "x-ms-enum": {
+ "name": "FunctionType",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "name",
+ "function"
+ ]
+ },
+ "ReportConfigSorting": {
+ "description": "The order by expression to be used in the report.",
+ "properties": {
+ "direction": {
+ "description": "Direction of sort.",
+ "type": "string",
+ "enum": [
+ "Ascending",
+ "Descending"
+ ]
+ },
+ "name": {
+ "description": "The name of the column to sort.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "ReportConfigGrouping": {
+ "description": "The group by expression to be used in the report.",
+ "properties": {
+ "type": {
+ "description": "Has type of the column to group.",
+ "$ref": "#/definitions/ReportConfigColumnType"
+ },
+ "name": {
+ "description": "The name of the column to group. This version supports subscription lowest possible grain.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "name"
+ ]
+ },
+ "ReportConfigFilter": {
+ "description": "The filter expression to be used in the report.",
+ "properties": {
+ "and": {
+ "description": "The logical \"AND\" expression. Must have at least 2 items.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReportConfigFilter"
+ },
+ "minItems": 2
+ },
+ "or": {
+ "description": "The logical \"OR\" expression. Must have at least 2 items.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ReportConfigFilter"
+ },
+ "minItems": 2
+ },
+ "not": {
+ "description": "The logical \"NOT\" expression.",
+ "$ref": "#/definitions/ReportConfigFilter"
+ },
+ "dimension": {
+ "description": "Has comparison expression for a dimension",
+ "$ref": "#/definitions/ReportConfigComparisonExpression"
+ },
+ "tag": {
+ "description": "Has comparison expression for a tag",
+ "$ref": "#/definitions/ReportConfigComparisonExpression"
+ }
+ }
+ },
+ "ReportConfigColumnType": {
+ "description": "The type of the column in the report.",
+ "type": "string",
+ "enum": [
+ "Tag",
+ "Dimension"
+ ],
+ "x-ms-enum": {
+ "name": "ReportConfigColumnType",
+ "modelAsString": true
+ }
+ },
+ "ReportConfigComparisonExpression": {
+ "description": "The comparison expression to be used in the report.",
+ "properties": {
+ "name": {
+ "description": "The name of the column to use in comparison.",
+ "type": "string"
+ },
+ "operator": {
+ "description": "The operator to use for comparison.",
+ "type": "string",
+ "enum": [
+ "In",
+ "Contains"
+ ],
+ "x-ms-enum": {
+ "name": "OperatorType",
+ "modelAsString": true
+ }
+ },
+ "values": {
+ "description": "Array of values to use for comparison",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ }
+ },
+ "required": [
+ "name",
+ "operator",
+ "values"
+ ]
+ },
+ "ErrorResponse": {
+ "description": "Error response indicates that the service is not able to process the incoming request. The reason is provided in the error message. \n\nSome Error responses: \n\n * 429 TooManyRequests - Request is throttled. Retry after waiting for the time specified in the \"x-ms-ratelimit-microsoft.consumption-retry-after\" header. \n\n * 503 ServiceUnavailable - Service is temporarily unavailable. Retry after waiting for the time specified in the \"Retry-After\" header.",
+ "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
+ }
+ }
+ },
+ "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."
+ },
+ "tags": {
+ "readOnly": true,
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "ProxyResource": {
+ "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."
+ },
+ "eTag": {
+ "type": "string",
+ "description": "eTag of the resource. To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "ExportListResult": {
+ "description": "Result of listing exports. It contains a list of available exports in the scope provided.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The list of exports.",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/Export"
+ }
+ }
+ }
+ },
+ "Export": {
+ "description": "An export resource.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExportProperties",
+ "title": "Export properties"
+ }
+ }
+ },
+ "ExportProperties": {
+ "description": "The properties of the export.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CommonExportProperties"
+ }
+ ],
+ "properties": {
+ "schedule": {
+ "description": "Has schedule information for the export.",
+ "$ref": "#/definitions/ExportSchedule"
+ }
+ }
+ },
+ "CommonExportProperties": {
+ "description": "The common properties of the export.",
+ "type": "object",
+ "properties": {
+ "format": {
+ "description": "The format of the export being delivered. Currently only 'Csv' is supported.",
+ "type": "string",
+ "enum": [
+ "Csv"
+ ],
+ "x-ms-enum": {
+ "name": "FormatType",
+ "modelAsString": true
+ }
+ },
+ "deliveryInfo": {
+ "description": "Has delivery information for the export.",
+ "$ref": "#/definitions/ExportDeliveryInfo"
+ },
+ "definition": {
+ "description": "Has the definition for the export.",
+ "$ref": "#/definitions/ExportDefinition"
+ },
+ "runHistory": {
+ "description": "If requested, has the most recent execution history for the export.",
+ "$ref": "#/definitions/ExportExecutionListResult"
+ },
+ "nextRunTimeEstimate": {
+ "description": "If the export has an active schedule, provides an estimate of the next execution time.",
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "deliveryInfo",
+ "definition"
+ ]
+ },
+ "ExportSchedule": {
+ "description": "The schedule associated with the export.",
+ "type": "object",
+ "properties": {
+ "status": {
+ "description": "The status of the export's schedule. If 'Inactive', the export's schedule is paused.",
+ "type": "string",
+ "enum": [
+ "Active",
+ "Inactive"
+ ],
+ "x-ms-enum": {
+ "name": "StatusType",
+ "modelAsString": true
+ }
+ },
+ "recurrence": {
+ "description": "The schedule recurrence.",
+ "type": "string",
+ "enum": [
+ "Daily",
+ "Weekly",
+ "Monthly",
+ "Annually"
+ ],
+ "x-ms-enum": {
+ "name": "RecurrenceType",
+ "modelAsString": true
+ }
+ },
+ "recurrencePeriod": {
+ "description": "Has start and end date of the recurrence. The start date must be in future. If present, the end date must be greater than start date.",
+ "$ref": "#/definitions/ExportRecurrencePeriod"
+ }
+ },
+ "required": [
+ "recurrence"
+ ]
+ },
+ "ExportDeliveryInfo": {
+ "description": "The delivery information associated with a export.",
+ "type": "object",
+ "properties": {
+ "destination": {
+ "description": "Has destination for the export being delivered.",
+ "$ref": "#/definitions/ExportDeliveryDestination"
+ }
+ },
+ "required": [
+ "destination"
+ ]
+ },
+ "ExportRecurrencePeriod": {
+ "description": "The start and end date for recurrence schedule.",
+ "type": "object",
+ "properties": {
+ "from": {
+ "description": "The start date of recurrence.",
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "description": "The end date of recurrence.",
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "from"
+ ]
+ },
+ "ExportDeliveryDestination": {
+ "description": "The destination information for the delivery of the export. To allow access to a storage account, you must register the account's subscription with the Microsoft.CostManagementExports resource provider. This is required once per subscription. When creating an export in the Azure portal, it is done automatically, however API users need to register the subscription. For more information see https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-supported-services .",
+ "type": "object",
+ "properties": {
+ "resourceId": {
+ "description": "The resource id of the storage account where exports will be delivered.",
+ "type": "string"
+ },
+ "container": {
+ "description": "The name of the container where exports will be uploaded.",
+ "type": "string"
+ },
+ "rootFolderPath": {
+ "description": "The name of the directory where exports will be uploaded.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "resourceId",
+ "container"
+ ]
+ },
+ "ExportDefinition": {
+ "description": "The definition of an export.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "The type of the export. Note that 'Usage' is equivalent to 'ActualCost' and is applicable to exports that do not yet provide data for charges or amortization for service reservations.",
+ "type": "string",
+ "enum": [
+ "Usage",
+ "ActualCost",
+ "AmortizedCost"
+ ],
+ "x-ms-enum": {
+ "name": "ExportType",
+ "modelAsString": true
+ }
+ },
+ "timeframe": {
+ "description": "The time frame for pulling data for the export. If custom, then a specific time period must be provided.",
+ "type": "string",
+ "enum": [
+ "MonthToDate",
+ "BillingMonthToDate",
+ "TheLastMonth",
+ "TheLastBillingMonth",
+ "WeekToDate",
+ "Custom"
+ ],
+ "x-ms-enum": {
+ "name": "TimeframeType",
+ "modelAsString": true
+ }
+ },
+ "timePeriod": {
+ "description": "Has time period for pulling data for the export.",
+ "$ref": "#/definitions/ExportTimePeriod"
+ },
+ "dataSet": {
+ "description": "The definition for data in the export.",
+ "$ref": "#/definitions/ExportDataset"
+ }
+ },
+ "required": [
+ "type",
+ "timeframe"
+ ]
+ },
+ "ExportDataset": {
+ "description": "The definition for data in the export.",
+ "type": "object",
+ "properties": {
+ "granularity": {
+ "description": "The granularity of rows in the export. Currently only 'Daily' is supported.",
+ "type": "string",
+ "enum": [
+ "Daily"
+ ],
+ "x-ms-enum": {
+ "name": "GranularityType",
+ "modelAsString": true
+ }
+ },
+ "configuration": {
+ "description": "The export dataset configuration.",
+ "$ref": "#/definitions/ExportDatasetConfiguration"
+ }
+ }
+ },
+ "ExportDatasetConfiguration": {
+ "description": "The export dataset configuration. Allows columns to be selected for the export. If not provided then the export will include all available columns.",
+ "type": "object",
+ "properties": {
+ "columns": {
+ "description": "Array of column names to be included in the export. If not provided then the export will include all available columns. The available columns can vary by customer channel (see examples).",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "ExportTimePeriod": {
+ "description": "The date range for data in the export. This should only be specified with timeFrame set to 'Custom'. The maximum date range is 3 months.",
+ "type": "object",
+ "properties": {
+ "from": {
+ "description": "The start date for export data.",
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "description": "The end date for export data.",
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "from",
+ "to"
+ ]
+ },
+ "ExportExecutionListResult": {
+ "description": "Result of listing the execution history of an export.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "A list of export executions.",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/ExportExecution"
+ }
+ }
+ }
+ },
+ "ExportExecution": {
+ "description": "An export execution.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ExportExecutionProperties",
+ "title": "Export execution properties"
+ }
+ }
+ },
+ "ExportExecutionProperties": {
+ "description": "The properties of the export execution.",
+ "type": "object",
+ "properties": {
+ "executionType": {
+ "description": "The type of the export execution.",
+ "type": "string",
+ "enum": [
+ "OnDemand",
+ "Scheduled"
+ ],
+ "x-ms-enum": {
+ "name": "ExecutionType",
+ "modelAsString": true
+ }
+ },
+ "status": {
+ "description": "The last known status of the export execution.",
+ "type": "string",
+ "enum": [
+ "Queued",
+ "InProgress",
+ "Completed",
+ "Failed",
+ "Timeout",
+ "NewDataNotAvailable",
+ "DataNotAvailable"
+ ],
+ "x-ms-enum": {
+ "name": "ExecutionStatus",
+ "modelAsString": true
+ }
+ },
+ "submittedBy": {
+ "description": "The identifier for the entity that executed the export. For OnDemand executions it is the user email. For scheduled executions it is 'System'.",
+ "type": "string"
+ },
+ "submittedTime": {
+ "description": "The time when export was queued to be executed.",
+ "type": "string",
+ "format": "date-time"
+ },
+ "processingStartTime": {
+ "description": "The time when export was picked up to be executed.",
+ "type": "string",
+ "format": "date-time"
+ },
+ "processingEndTime": {
+ "description": "The time when the export execution finished.",
+ "type": "string",
+ "format": "date-time"
+ },
+ "fileName": {
+ "description": "The name of the exported file.",
+ "type": "string"
+ },
+ "runSettings": {
+ "description": "The export settings that were in effect for this execution.",
+ "$ref": "#/definitions/CommonExportProperties"
+ },
+ "error": {
+ "description": "The details of any error.",
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "apiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Version of the API to be used with the client request. The current version is 2020-06-01."
+ },
+ "scopeExportParameter": {
+ "name": "scope",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The scope associated with export operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope, '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' for invoiceSection scope, and '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' specific for partners.",
+ "x-ms-parameter-location": "method",
+ "x-ms-skip-url-encoding": true
+ },
+ "exportNameParameter": {
+ "name": "exportName",
+ "in": "path",
+ "description": "Export Name.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2020-06-01/costmanagement.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2020-06-01/costmanagement.json
index 456686294225..1bf76b2ce885 100644
--- a/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2020-06-01/costmanagement.json
+++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2020-06-01/costmanagement.json
@@ -1098,364 +1098,6 @@
}
}
},
- "/{scope}/providers/Microsoft.CostManagement/exports": {
- "get": {
- "tags": [
- "Exports"
- ],
- "operationId": "Exports_List",
- "description": "The operation to list all exports at the given scope.",
- "externalDocs": {
- "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
- },
- "x-ms-examples": {
- "ExportsGetBySubscription": {
- "$ref": "./examples/ExportsGetBySubscription.json"
- },
- "ExportsGetByResourceGroup": {
- "$ref": "./examples/ExportsGetByResourceGroup.json"
- },
- "ExportsGetByBillingAccount": {
- "$ref": "./examples/ExportsGetByBillingAccount.json"
- },
- "ExportsGetByDepartment": {
- "$ref": "./examples/ExportsGetByDepartment.json"
- },
- "ExportsGetByEnrollmentAccount": {
- "$ref": "./examples/ExportsGetByEnrollmentAccount.json"
- },
- "ExportsGetByManagementGroup": {
- "$ref": "./examples/ExportsGetByManagementGroup.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/scopeQueryParameter"
- },
- {
- "$ref": "#/parameters/apiVersionParameter"
- },
- {
- "name": "$expand",
- "description": "May be used to expand the properties within an export. Currently only 'runHistory' is supported and will return information for the last execution of each export.",
- "in": "query",
- "required": false,
- "type": "string"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. The request has succeeded.",
- "schema": {
- "$ref": "#/definitions/ExportListResult"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- }
- }
- },
- "/{scope}/providers/Microsoft.CostManagement/exports/{exportName}": {
- "get": {
- "tags": [
- "Exports"
- ],
- "operationId": "Exports_Get",
- "description": "The operation to get the export for the defined scope by export name.",
- "externalDocs": {
- "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
- },
- "x-ms-examples": {
- "ExportGetBySubscription": {
- "$ref": "./examples/ExportGetBySubscription.json"
- },
- "ExportGetByResourceGroup": {
- "$ref": "./examples/ExportGetByResourceGroup.json"
- },
- "ExportGetByBillingAccount": {
- "$ref": "./examples/ExportGetByBillingAccount.json"
- },
- "ExportGetByDepartment": {
- "$ref": "./examples/ExportGetByDepartment.json"
- },
- "ExportGetByEnrollmentAccount": {
- "$ref": "./examples/ExportGetByEnrollmentAccount.json"
- },
- "ExportGetByManagementGroup": {
- "$ref": "./examples/ExportGetByManagementGroup.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/scopeQueryParameter"
- },
- {
- "$ref": "#/parameters/apiVersionParameter"
- },
- {
- "$ref": "#/parameters/exportNameParameter"
- },
- {
- "name": "$expand",
- "description": "May be used to expand the properties within an export. Currently only 'runHistory' is supported and will return information for the last 10 executions of the export.",
- "in": "query",
- "required": false,
- "type": "string"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. The request has succeeded.",
- "schema": {
- "$ref": "#/definitions/Export"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- }
- },
- "put": {
- "tags": [
- "Exports"
- ],
- "operationId": "Exports_CreateOrUpdate",
- "description": "The operation to create or update a export. Update operation requires latest eTag to be set in the request. You may obtain the latest eTag by performing a get operation. Create operation does not require eTag.",
- "externalDocs": {
- "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
- },
- "x-ms-examples": {
- "ExportCreateOrUpdateBySubscription": {
- "$ref": "./examples/ExportCreateOrUpdateBySubscription.json"
- },
- "ExportCreateOrUpdateByResourceGroup": {
- "$ref": "./examples/ExportCreateOrUpdateByResourceGroup.json"
- },
- "ExportCreateOrUpdateByBillingAccount": {
- "$ref": "./examples/ExportCreateOrUpdateByBillingAccount.json"
- },
- "ExportCreateOrUpdateByDepartment": {
- "$ref": "./examples/ExportCreateOrUpdateByDepartment.json"
- },
- "ExportCreateOrUpdateByEnrollmentAccount": {
- "$ref": "./examples/ExportCreateOrUpdateByEnrollmentAccount.json"
- },
- "ExportCreateOrUpdateByManagementGroup": {
- "$ref": "./examples/ExportCreateOrUpdateByManagementGroup.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/scopeQueryParameter"
- },
- {
- "$ref": "#/parameters/apiVersionParameter"
- },
- {
- "$ref": "#/parameters/exportNameParameter"
- },
- {
- "name": "parameters",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/Export"
- },
- "description": "Parameters supplied to the CreateOrUpdate Export operation."
- }
- ],
- "responses": {
- "200": {
- "description": "OK. The request has succeeded.",
- "schema": {
- "$ref": "#/definitions/Export"
- }
- },
- "201": {
- "description": "Created.",
- "schema": {
- "$ref": "#/definitions/Export"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- }
- },
- "delete": {
- "tags": [
- "Exports"
- ],
- "operationId": "Exports_Delete",
- "description": "The operation to delete a export.",
- "externalDocs": {
- "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
- },
- "x-ms-examples": {
- "ExportDeleteBySubscription": {
- "$ref": "./examples/ExportDeleteBySubscription.json"
- },
- "ExportDeleteByResourceGroup": {
- "$ref": "./examples/ExportDeleteByResourceGroup.json"
- },
- "ExportDeleteByBillingAccount": {
- "$ref": "./examples/ExportDeleteByBillingAccount.json"
- },
- "ExportDeleteByEnrollmentAccount": {
- "$ref": "./examples/ExportDeleteByEnrollmentAccount.json"
- },
- "ExportDeleteByDepartment": {
- "$ref": "./examples/ExportDeleteByDepartment.json"
- },
- "ExportDeleteByManagementGroup": {
- "$ref": "./examples/ExportDeleteByManagementGroup.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/scopeQueryParameter"
- },
- {
- "$ref": "#/parameters/apiVersionParameter"
- },
- {
- "$ref": "#/parameters/exportNameParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. The request has succeeded."
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- }
- }
- },
- "/{scope}/providers/Microsoft.CostManagement/exports/{exportName}/run": {
- "post": {
- "tags": [
- "Exports"
- ],
- "operationId": "Exports_Execute",
- "description": "The operation to execute an export.",
- "externalDocs": {
- "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
- },
- "x-ms-examples": {
- "ExportRunBySubscription": {
- "$ref": "./examples/ExportRunBySubscription.json"
- },
- "ExportRunByResourceGroup": {
- "$ref": "./examples/ExportRunByResourceGroup.json"
- },
- "ExportRunByBillingAccount": {
- "$ref": "./examples/ExportRunByBillingAccount.json"
- },
- "ExportRunByDepartment": {
- "$ref": "./examples/ExportRunByDepartment.json"
- },
- "ExportRunByEnrollmentAccount": {
- "$ref": "./examples/ExportRunByEnrollmentAccount.json"
- },
- "ExportRunByManagementGroup": {
- "$ref": "./examples/ExportRunByManagementGroup.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/scopeQueryParameter"
- },
- {
- "$ref": "#/parameters/apiVersionParameter"
- },
- {
- "$ref": "#/parameters/exportNameParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. The request has succeeded."
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- }
- }
- },
- "/{scope}/providers/Microsoft.CostManagement/exports/{exportName}/runHistory": {
- "get": {
- "tags": [
- "Exports"
- ],
- "operationId": "Exports_GetExecutionHistory",
- "description": "The operation to get the execution history of an export for the defined scope and export name.",
- "externalDocs": {
- "url": "https://docs.microsoft.com/en-us/rest/api/costmanagement/"
- },
- "x-ms-examples": {
- "ExportRunHistoryGetBySubscription": {
- "$ref": "./examples/ExportRunHistoryGetBySubscription.json"
- },
- "ExportRunHistoryGetByResourceGroup": {
- "$ref": "./examples/ExportRunHistoryGetByResourceGroup.json"
- },
- "ExportRunHistoryGetByBillingAccount": {
- "$ref": "./examples/ExportRunHistoryGetByBillingAccount.json"
- },
- "ExportRunHistoryGetByDepartment": {
- "$ref": "./examples/ExportRunHistoryGetByDepartment.json"
- },
- "ExportRunHistoryGetByEnrollmentAccount": {
- "$ref": "./examples/ExportRunHistoryGetByEnrollmentAccount.json"
- },
- "ExportRunHistoryGetByManagementGroup": {
- "$ref": "./examples/ExportRunHistoryGetByManagementGroup.json"
- }
- },
- "parameters": [
- {
- "$ref": "#/parameters/scopeQueryParameter"
- },
- {
- "$ref": "#/parameters/apiVersionParameter"
- },
- {
- "$ref": "#/parameters/exportNameParameter"
- }
- ],
- "responses": {
- "200": {
- "description": "OK. The request has succeeded.",
- "schema": {
- "$ref": "#/definitions/ExportExecutionListResult"
- }
- },
- "default": {
- "description": "Error response describing why the operation failed.",
- "schema": {
- "$ref": "#/definitions/ErrorResponse"
- }
- }
- }
- }
- },
"/providers/Microsoft.CostManagement/operations": {
"get": {
"tags": [
@@ -2502,7 +2144,7 @@
},
"dataset": {
"description": "Has definition for data in this forecast.",
- "$ref": "#/definitions/QueryDataset"
+ "$ref": "#/definitions/ForecastDataset"
},
"includeActualCost": {
"description": "a boolean determining if actualCost will be included",
@@ -2518,11 +2160,45 @@
"timeframe"
]
},
- "QueryDefinition": {
- "description": "The definition of a query.",
+ "ForecastDataset": {
+ "description": "The definition of data present in the forecast.",
"properties": {
- "type": {
- "description": "The type of the query.",
+ "granularity": {
+ "description": "The granularity of rows in the forecast.",
+ "type": "string",
+ "enum": [
+ "Daily"
+ ],
+ "x-ms-enum": {
+ "name": "GranularityType",
+ "modelAsString": true
+ }
+ },
+ "configuration": {
+ "description": "Has configuration information for the data in the export. The configuration will be ignored if aggregation and grouping are provided.",
+ "$ref": "#/definitions/QueryDatasetConfiguration"
+ },
+ "aggregation": {
+ "type": "object",
+ "description": "Dictionary of aggregation expression to use in the forecast. The key of each item in the dictionary is the alias for the aggregated column. forecast can have up to 2 aggregation clauses.",
+ "additionalProperties": {
+ "type": "object",
+ "$ref": "#/definitions/QueryAggregation"
+ },
+ "maxItems": 2
+ },
+ "filter": {
+ "type": "object",
+ "description": "Has filter expression to use in the forecast.",
+ "$ref": "#/definitions/QueryFilter"
+ }
+ }
+ },
+ "QueryDefinition": {
+ "description": "The definition of a query.",
+ "properties": {
+ "type": {
+ "description": "The type of the query.",
"type": "string",
"enum": [
"Usage",
@@ -2755,383 +2431,16 @@
"operator",
"values"
]
- },
- "ExportListResult": {
- "description": "Result of listing exports. It contains a list of available exports in the scope provided.",
- "type": "object",
- "properties": {
- "value": {
- "description": "The list of exports.",
- "type": "array",
- "readOnly": true,
- "items": {
- "$ref": "#/definitions/Export"
- }
- }
- }
- },
- "Export": {
- "description": "An export resource.",
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/ProxyResource"
- }
- ],
- "properties": {
- "properties": {
- "x-ms-client-flatten": true,
- "$ref": "#/definitions/ExportProperties",
- "title": "Export properties"
- }
- }
- },
- "ExportProperties": {
- "description": "The properties of the export.",
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/CommonExportProperties"
- }
- ],
- "properties": {
- "schedule": {
- "description": "Has schedule information for the export.",
- "$ref": "#/definitions/ExportSchedule"
- }
- }
- },
- "CommonExportProperties": {
- "description": "The common properties of the export.",
- "type": "object",
- "properties": {
- "format": {
- "description": "The format of the export being delivered. Currently only 'Csv' is supported.",
- "type": "string",
- "enum": [
- "Csv"
- ],
- "x-ms-enum": {
- "name": "FormatType",
- "modelAsString": true
- }
- },
- "deliveryInfo": {
- "description": "Has delivery information for the export.",
- "$ref": "#/definitions/ExportDeliveryInfo"
- },
- "definition": {
- "description": "Has the definition for the export.",
- "$ref": "#/definitions/ExportDefinition"
- },
- "runHistory": {
- "description": "If requested, has the most recent execution history for the export.",
- "$ref": "#/definitions/ExportExecutionListResult"
- },
- "nextRunTimeEstimate": {
- "description": "If the export has an active schedule, provides an estimate of the next execution time.",
- "type": "string",
- "format": "date-time",
- "readOnly": true
- }
- },
- "required": [
- "deliveryInfo",
- "definition"
- ]
- },
- "ExportSchedule": {
- "description": "The schedule associated with the export.",
- "type": "object",
- "properties": {
- "status": {
- "description": "The status of the export's schedule. If 'Inactive', the export's schedule is paused.",
- "type": "string",
- "enum": [
- "Active",
- "Inactive"
- ],
- "x-ms-enum": {
- "name": "StatusType",
- "modelAsString": true
- }
- },
- "recurrence": {
- "description": "The schedule recurrence.",
- "type": "string",
- "enum": [
- "Daily",
- "Weekly",
- "Monthly",
- "Annually"
- ],
- "x-ms-enum": {
- "name": "RecurrenceType",
- "modelAsString": true
- }
- },
- "recurrencePeriod": {
- "description": "Has start and end date of the recurrence. The start date must be in future. If present, the end date must be greater than start date.",
- "$ref": "#/definitions/ExportRecurrencePeriod"
- }
- },
- "required": [
- "recurrence"
- ]
- },
- "ExportDeliveryInfo": {
- "description": "The delivery information associated with a export.",
- "type": "object",
- "properties": {
- "destination": {
- "description": "Has destination for the export being delivered.",
- "$ref": "#/definitions/ExportDeliveryDestination"
- }
- },
- "required": [
- "destination"
- ]
- },
- "ExportRecurrencePeriod": {
- "description": "The start and end date for recurrence schedule.",
- "type": "object",
- "properties": {
- "from": {
- "description": "The start date of recurrence.",
- "type": "string",
- "format": "date-time"
- },
- "to": {
- "description": "The end date of recurrence.",
- "type": "string",
- "format": "date-time"
- }
- },
- "required": [
- "from"
- ]
- },
- "ExportDeliveryDestination": {
- "description": "The destination information for the delivery of the export. To allow access to a storage account, you must register the account's subscription with the Microsoft.CostManagementExports resource provider. This is required once per subscription. When creating an export in the Azure portal, it is done automatically, however API users need to register the subscription. For more information see https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-supported-services .",
- "type": "object",
- "properties": {
- "resourceId": {
- "description": "The resource id of the storage account where exports will be delivered.",
- "type": "string"
- },
- "container": {
- "description": "The name of the container where exports will be uploaded.",
- "type": "string"
- },
- "rootFolderPath": {
- "description": "The name of the directory where exports will be uploaded.",
- "type": "string"
- }
- },
- "required": [
- "resourceId",
- "container"
- ]
- },
- "ExportDefinition": {
- "description": "The definition of an export.",
- "type": "object",
- "properties": {
- "type": {
- "description": "The type of the export. Note that 'Usage' is equivalent to 'ActualCost' and is applicable to exports that do not yet provide data for charges or amortization for service reservations.",
- "type": "string",
- "enum": [
- "Usage",
- "ActualCost",
- "AmortizedCost"
- ],
- "x-ms-enum": {
- "name": "ExportType",
- "modelAsString": true
- }
- },
- "timeframe": {
- "description": "The time frame for pulling data for the export. If custom, then a specific time period must be provided.",
- "type": "string",
- "enum": [
- "MonthToDate",
- "BillingMonthToDate",
- "TheLastMonth",
- "TheLastBillingMonth",
- "WeekToDate",
- "Custom"
- ],
- "x-ms-enum": {
- "name": "TimeframeType",
- "modelAsString": true
- }
- },
- "timePeriod": {
- "description": "Has time period for pulling data for the export.",
- "$ref": "#/definitions/ExportTimePeriod"
- },
- "dataSet": {
- "description": "The definition for data in the export.",
- "$ref": "#/definitions/ExportDataset"
- }
- },
- "required": [
- "type",
- "timeframe"
- ]
- },
- "ExportDataset": {
- "description": "The definition for data in the export.",
- "type": "object",
- "properties": {
- "granularity": {
- "description": "The granularity of rows in the export. Currently only 'Daily' is supported.",
- "type": "string",
- "enum": [
- "Daily"
- ],
- "x-ms-enum": {
- "name": "GranularityType",
- "modelAsString": true
- }
- },
- "configuration": {
- "description": "The export dataset configuration.",
- "$ref": "#/definitions/ExportDatasetConfiguration"
- }
- }
- },
- "ExportDatasetConfiguration": {
- "description": "The export dataset configuration. Allows columns to be selected for the export. If not provided then the export will include all available columns.",
- "type": "object",
- "properties": {
- "columns": {
- "description": "Array of column names to be included in the export. If not provided then the export will include all available columns. The available columns can vary by customer channel (see examples).",
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- }
- },
- "ExportTimePeriod": {
- "description": "The date range for data in the export. This should only be specified with timeFrame set to 'Custom'. The maximum date range is 3 months.",
- "type": "object",
- "properties": {
- "from": {
- "description": "The start date for export data.",
- "type": "string",
- "format": "date-time"
- },
- "to": {
- "description": "The end date for export data.",
- "type": "string",
- "format": "date-time"
- }
- },
- "required": [
- "from",
- "to"
- ]
- },
- "ExportExecutionListResult": {
- "description": "Result of listing the execution history of an export.",
- "type": "object",
- "properties": {
- "value": {
- "description": "A list of export executions.",
- "type": "array",
- "readOnly": true,
- "items": {
- "$ref": "#/definitions/ExportExecution"
- }
- }
- }
- },
- "ExportExecution": {
- "description": "An export execution.",
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/Resource"
- }
- ],
- "properties": {
- "properties": {
- "x-ms-client-flatten": true,
- "$ref": "#/definitions/ExportExecutionProperties",
- "title": "Export execution properties"
- }
- }
- },
- "ExportExecutionProperties": {
- "description": "The properties of the export execution.",
- "type": "object",
- "properties": {
- "executionType": {
- "description": "The type of the export execution.",
- "type": "string",
- "enum": [
- "OnDemand",
- "Scheduled"
- ],
- "x-ms-enum": {
- "name": "ExecutionType",
- "modelAsString": true
- }
- },
- "status": {
- "description": "The last known status of the export execution.",
- "type": "string",
- "enum": [
- "Queued",
- "InProgress",
- "Completed",
- "Failed",
- "Timeout",
- "NewDataNotAvailable",
- "DataNotAvailable"
- ],
- "x-ms-enum": {
- "name": "ExecutionStatus",
- "modelAsString": true
- }
- },
- "submittedBy": {
- "description": "The identifier for the entity that executed the export. For OnDemand executions it is the user email. For scheduled executions it is 'System'.",
- "type": "string"
- },
- "submittedTime": {
- "description": "The time when export was queued to be executed.",
- "type": "string",
- "format": "date-time"
- },
- "processingStartTime": {
- "description": "The time when export was picked up to be executed.",
- "type": "string",
- "format": "date-time"
- },
- "processingEndTime": {
- "description": "The time when the export execution finished.",
- "type": "string",
- "format": "date-time"
- },
- "fileName": {
- "description": "The name of the exported file.",
- "type": "string"
- },
- "runSettings": {
- "description": "The export settings that were in effect for this execution.",
- "$ref": "#/definitions/CommonExportProperties"
- },
- "error": {
- "description": "The details of any error.",
- "$ref": "#/definitions/ErrorDetails"
- }
- }
}
},
"parameters": {
+ "apiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Version of the API to be used with the client request. The current version is 2020-06-01."
+ },
"viewNameParameter": {
"name": "viewName",
"in": "path",
@@ -3184,13 +2493,6 @@
"x-ms-parameter-location": "method",
"x-ms-skip-url-encoding": true
},
- "apiVersionParameter": {
- "name": "api-version",
- "in": "query",
- "required": true,
- "type": "string",
- "description": "Version of the API to be used with the client request (e.g. '2020-06-01')."
- },
"subscriptionIdParameter": {
"name": "subscriptionId",
"in": "path",
@@ -3238,14 +2540,6 @@
"type": "string",
"x-ms-parameter-location": "method"
},
- "exportNameParameter": {
- "name": "exportName",
- "in": "path",
- "description": "Export Name.",
- "required": true,
- "type": "string",
- "x-ms-parameter-location": "method"
- },
"externalCloudProviderTypeParameter": {
"name": "externalCloudProviderType",
"in": "path",
diff --git a/specification/cost-management/resource-manager/readme.azureresourceschema.md b/specification/cost-management/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..c684505db1d6
--- /dev/null
+++ b/specification/cost-management/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,145 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-costmanagement-2020-06-01
+ - tag: schema-costmanagement-2020-03-01-preview
+ - tag: schema-costmanagement-2019-11-01
+ - tag: schema-costmanagement-2019-10-01
+ - tag: schema-costmanagement-2019-09-01
+ - tag: schema-costmanagement-2019-04-01-preview
+ - tag: schema-costmanagement-2019-03-01-preview
+ - tag: schema-costmanagement-2019-01-01
+ - tag: schema-costmanagement-2018-12-01-preview
+ - tag: schema-costmanagement-2018-08-01-preview
+ - tag: schema-costmanagement-2018-05-31
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-costmanagement-2020-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-costmanagement-2020-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CostManagement/stable/2020-06-01/costmanagement.json
+
+```
+
+### Tag: schema-costmanagement-2020-03-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-costmanagement-2020-03-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CostManagement/preview/2020-03-01-preview/costallocation.json
+
+```
+
+### Tag: schema-costmanagement-2019-11-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-costmanagement-2019-11-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CostManagement/stable/2019-11-01/costmanagement.json
+ - Microsoft.CostManagement/stable/2019-11-01/costmanagement.exports.json
+
+```
+
+### Tag: schema-costmanagement-2019-10-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-costmanagement-2019-10-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CostManagement/stable/2019-10-01/costmanagement.json
+
+```
+
+### Tag: schema-costmanagement-2019-09-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-costmanagement-2019-09-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CostManagement/stable/2019-09-01/costmanagement.json
+
+```
+
+### Tag: schema-costmanagement-2019-04-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-costmanagement-2019-04-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CostManagement/preview/2019-04-01-preview/costmanagement.json
+
+```
+
+### Tag: schema-costmanagement-2019-03-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-costmanagement-2019-03-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CostManagement/preview/2019-03-01-preview/costmanagement.json
+
+```
+
+### Tag: schema-costmanagement-2019-01-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-costmanagement-2019-01-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CostManagement/stable/2019-01-01/costmanagement.json
+
+```
+
+### Tag: schema-costmanagement-2018-12-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-costmanagement-2018-12-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CostManagement/preview/2018-12-01-preview/costmanagement.json
+
+```
+
+### Tag: schema-costmanagement-2018-08-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-costmanagement-2018-08-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CostManagement/preview/2018-08-01-preview/costmanagement.json
+
+```
+
+### Tag: schema-costmanagement-2018-05-31 and azureresourceschema
+
+``` yaml $(tag) == 'schema-costmanagement-2018-05-31' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CostManagement/stable/2018-05-31/costmanagement.json
+
+```
diff --git a/specification/cost-management/resource-manager/readme.md b/specification/cost-management/resource-manager/readme.md
index 85e079d2ccba..b8127660918f 100644
--- a/specification/cost-management/resource-manager/readme.md
+++ b/specification/cost-management/resource-manager/readme.md
@@ -33,6 +33,16 @@ azure-validator: false
---
+### Tag: package-preview-2020-03
+
+These settings apply only when `--tag=package-preview-2020-03` is specified on the command line.
+
+```yaml $(tag) == 'package-preview-2020-03'
+input-file:
+ - Microsoft.CostManagement/stable/2020-06-01/costmanagement.json
+ - Microsoft.CostManagement/preview/2020-03-01-preview/costallocation.json
+```
+
### Tag: package-2020-06
These settings apply only when `--tag=package-2020-06` is specified on the command line.
@@ -40,11 +50,10 @@ These settings apply only when `--tag=package-2020-06` is specified on the comma
```yaml $(tag) == 'package-2020-06'
input-file:
- Microsoft.CostManagement/stable/2020-06-01/costmanagement.json
+ - Microsoft.CostManagement/stable/2020-06-01/costmanagement.exports.json
```
-=======
->>>>>>> Stashed changes
### Tag: package-2019-11
These settings apply only when `--tag=package-2019-11` is specified on the command line.
@@ -52,6 +61,7 @@ These settings apply only when `--tag=package-2019-11` is specified on the comma
``` yaml $(tag) == 'package-2019-11'
input-file:
- Microsoft.CostManagement/stable/2019-11-01/costmanagement.json
+ - Microsoft.CostManagement/stable/2019-11-01/costmanagement.exports.json
```
### Tag: package-2019-10
@@ -204,6 +214,9 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_costmanagement']
- repo: azure-cli-extensions
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js cost-management/resource-manager
```
## C#
@@ -327,35 +340,7 @@ regenerate-manager: true
generate-interface: true
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
+## AzureResourceSchema
-This block is updated by an automatic script. Edits may be lost!
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.CostManagement/stable/2020-06-01/costmanagement.json
- - $(this-folder)/Microsoft.CostManagement/stable/2019-11-01/costmanagement.json
- - $(this-folder)/Microsoft.CostManagement/stable/2019-10-01/costmanagement.json
- - $(this-folder)/Microsoft.CostManagement/stable/2019-09-01/costmanagement.json
- - $(this-folder)/Microsoft.CostManagement/preview/2019-04-01-preview/costmanagement.json
- - $(this-folder)/Microsoft.CostManagement/stable/2019-01-01/costmanagement.json
- - $(this-folder)/Microsoft.CostManagement/preview/2019-03-01-preview/costmanagement.json
- - $(this-folder)/Microsoft.CostManagement/stable/2018-05-31/costmanagement.json
- - $(this-folder)/Microsoft.CostManagement/preview/2018-08-01-preview/costmanagement.json
- - $(this-folder)/Microsoft.CostManagement/preview/2018-12-01-preview/costmanagement.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
diff --git a/specification/cpim/resource-manager/readme.azureresourceschema.md b/specification/cpim/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..b627d4375146
--- /dev/null
+++ b/specification/cpim/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-azureactivedirectory-2020-05-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-azureactivedirectory-2020-05-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-azureactivedirectory-2020-05-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.AzureActiveDirectory/preview/2020-05-01-preview/cpim.json
+
+```
diff --git a/specification/cpim/resource-manager/readme.md b/specification/cpim/resource-manager/readme.md
index d9bdf7941d0a..acc5245c5750 100644
--- a/specification/cpim/resource-manager/readme.md
+++ b/specification/cpim/resource-manager/readme.md
@@ -56,6 +56,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_cpim']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js cpim/resource-manager
```
## Go
@@ -78,27 +81,7 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
See configuration in [readme.csharp.md](./readme.csharp.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.AzureActiveDirectory/preview/2020-05-01-preview/cpim.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/customer-insights/resource-manager/readme.azureresourceschema.md b/specification/customer-insights/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..856e894fb719
--- /dev/null
+++ b/specification/customer-insights/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,36 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-customerinsights-2017-04-26
+ - tag: schema-customerinsights-2017-01-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-customerinsights-2017-04-26 and azureresourceschema
+
+``` yaml $(tag) == 'schema-customerinsights-2017-04-26' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CustomerInsights/stable/2017-04-26/customer-insights.json
+
+```
+
+### Tag: schema-customerinsights-2017-01-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-customerinsights-2017-01-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CustomerInsights/stable/2017-01-01/customer-insights.json
+
+```
diff --git a/specification/customer-insights/resource-manager/readme.md b/specification/customer-insights/resource-manager/readme.md
index 7dae56441cff..c75b5444e49c 100644
--- a/specification/customer-insights/resource-manager/readme.md
+++ b/specification/customer-insights/resource-manager/readme.md
@@ -68,6 +68,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_customer_insights']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js customer-insights/resource-manager
```
@@ -140,28 +143,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.CustomerInsights/stable/2017-04-26/customer-insights.json
- - $(this-folder)/Microsoft.CustomerInsights/stable/2017-01-01/customer-insights.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/customerlockbox/resource-manager/readme.azureresourceschema.md b/specification/customerlockbox/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..c4bfaba99a75
--- /dev/null
+++ b/specification/customerlockbox/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-customerlockbox-2018-02-28-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-customerlockbox-2018-02-28-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-customerlockbox-2018-02-28-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CustomerLockbox/preview/2018-02-28-preview/customerlockbox.json
+
+```
diff --git a/specification/customerlockbox/resource-manager/readme.md b/specification/customerlockbox/resource-manager/readme.md
index 0e67eb17a65c..0b8ea5704f95 100644
--- a/specification/customerlockbox/resource-manager/readme.md
+++ b/specification/customerlockbox/resource-manager/readme.md
@@ -56,6 +56,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_customerlockbox']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js customerlockbox/resource-manager
```
## Go
@@ -78,27 +81,7 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
See configuration in [readme.csharp.md](./readme.csharp.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.CustomerLockbox/preview/2018-02-28-preview/customerlockbox.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/customproviders/resource-manager/readme.azureresourceschema.md b/specification/customproviders/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..cfe5cfcbb11e
--- /dev/null
+++ b/specification/customproviders/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-customproviders-2018-09-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-customproviders-2018-09-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-customproviders-2018-09-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.CustomProviders/preview/2018-09-01-preview/customproviders.json
+
+```
diff --git a/specification/customproviders/resource-manager/readme.md b/specification/customproviders/resource-manager/readme.md
index 27afdefab93c..0574110e0f4b 100644
--- a/specification/customproviders/resource-manager/readme.md
+++ b/specification/customproviders/resource-manager/readme.md
@@ -60,6 +60,9 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_customproviders']
- repo: azure-cli-extensions
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js customproviders/resource-manager
```
## Go
@@ -90,29 +93,9 @@ See configuration in [readme.nodejs.md](./readme.nodejs.md)
See configuration in [readme.trenton.md](./readme.trenton.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.CustomProviders/preview/2018-09-01-preview/customproviders.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
## cli
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/databox.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/databox.json
new file mode 100644
index 000000000000..93a9fd590650
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/databox.json
@@ -0,0 +1,4689 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-04-01",
+ "title": "DataBoxManagementClient"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/providers/Microsoft.DataBox/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "This method gets all the operations.",
+ "operationId": "Operations_List",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The supported operations list.",
+ "schema": {
+ "$ref": "#/definitions/OperationList"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "OperationsGet": {
+ "$ref": "./examples/OperationsGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DataBox/jobs": {
+ "get": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "Lists all the jobs available under the subscription.",
+ "operationId": "Jobs_List",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "$skipToken is supported on Get list of jobs, which provides the next page in the list of jobs.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of jobs available under the subscription.",
+ "schema": {
+ "$ref": "#/definitions/JobResourceList"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "JobsList": {
+ "$ref": "./examples/JobsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/locations/{location}/availableSkus": {
+ "post": {
+ "tags": [
+ "Service"
+ ],
+ "description": "This method provides the list of available skus for the given subscription, resource group and location.",
+ "operationId": "Service_ListAvailableSkusByResourceGroup",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "availableSkuRequest",
+ "in": "body",
+ "description": "Filters for showing the available skus.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AvailableSkuRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The list of available skus under Resource group.",
+ "schema": {
+ "$ref": "#/definitions/AvailableSkusResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "AvailableSkusPost": {
+ "$ref": "./examples/AvailableSkusPost.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DataBox/locations/{location}/validateAddress": {
+ "post": {
+ "tags": [
+ "Service"
+ ],
+ "description": "[DEPRECATED NOTICE: This operation will soon be removed]. This method validates the customer shipping address and provide alternate addresses if any.",
+ "operationId": "Service_ValidateAddress",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "validateAddress",
+ "in": "body",
+ "description": "Shipping address of the customer.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ValidateAddress"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The valid and alternate addresses.",
+ "schema": {
+ "$ref": "#/definitions/AddressValidationOutput"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "deprecated": true,
+ "x-ms-examples": {
+ "ValidateAddressPost": {
+ "$ref": "./examples/ValidateAddressPost.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/locations/{location}/validateInputs": {
+ "post": {
+ "tags": [
+ "Service"
+ ],
+ "description": "This method does all necessary pre-job creation validation under resource group.",
+ "operationId": "Service_ValidateInputsByResourceGroup",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "validationRequest",
+ "in": "body",
+ "description": "Inputs of the customer.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ValidationRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The validation status and responses of each validating parameter.",
+ "schema": {
+ "$ref": "#/definitions/ValidationResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ValidateInputsByResourceGroup": {
+ "$ref": "./examples/ValidateInputsByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DataBox/locations/{location}/validateInputs": {
+ "post": {
+ "tags": [
+ "Service"
+ ],
+ "description": "This method does all necessary pre-job creation validation under subscription.",
+ "operationId": "Service_ValidateInputs",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "validationRequest",
+ "in": "body",
+ "description": "Inputs of the customer.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ValidationRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The validation status and responses of each validating parameter.",
+ "schema": {
+ "$ref": "#/definitions/ValidationResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "ValidateInputs": {
+ "$ref": "./examples/ValidateInputs.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs": {
+ "get": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "Lists all the jobs available under the given resource group.",
+ "operationId": "Jobs_ListByResourceGroup",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "$skipToken is supported on Get list of jobs, which provides the next page in the list of jobs.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of jobs by resource group.",
+ "schema": {
+ "$ref": "#/definitions/JobResourceList"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "JobsListByResourceGroup": {
+ "$ref": "./examples/JobsListByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}": {
+ "get": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "Gets information about the specified job.",
+ "operationId": "Jobs_Get",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/jobNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "description": "$expand is supported on details parameter for job, which provides details on the job stages.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Job object.",
+ "schema": {
+ "$ref": "#/definitions/JobResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "JobsGet": {
+ "$ref": "./examples/JobsGet.json"
+ },
+ "JobsGetCmk": {
+ "$ref": "./examples/JobsGetCmk.json"
+ },
+ "JobsGetExport": {
+ "$ref": "./examples/JobsGetExport.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "Creates a new job with the specified parameters. Existing job cannot be updated with this API and should instead be updated with the Update job API.",
+ "operationId": "Jobs_Create",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/jobNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "jobResource",
+ "in": "body",
+ "description": "Job details from request body.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/JobResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Job object.",
+ "schema": {
+ "$ref": "#/definitions/JobResource"
+ }
+ },
+ "202": {
+ "description": "Accepted request for create Job."
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "JobsCreate": {
+ "$ref": "./examples/JobsCreate.json"
+ },
+ "JobsCreateDevicePassword": {
+ "$ref": "./examples/JobsCreateDevicePassword.json"
+ },
+ "JobsCreateExport": {
+ "$ref": "./examples/JobsCreateExport.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "Deletes a job.",
+ "operationId": "Jobs_Delete",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/jobNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Just for swagger we are adding this status code."
+ },
+ "202": {
+ "description": "Accepted request for delete Job."
+ },
+ "204": {
+ "description": "Job deleted."
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "JobsDelete": {
+ "$ref": "./examples/JobsDelete.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "Updates the properties of an existing job.",
+ "operationId": "Jobs_Update",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/jobNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "description": "Defines the If-Match condition. The patch will be performed only if the ETag of the job on the server matches this value.",
+ "type": "string"
+ },
+ {
+ "name": "jobResourceUpdateParameter",
+ "in": "body",
+ "description": "Job update parameters from request body.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/JobResourceUpdateParameter"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Job object.",
+ "schema": {
+ "$ref": "#/definitions/JobResource"
+ }
+ },
+ "202": {
+ "description": "Accepted request for job updated."
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "JobsPatch": {
+ "$ref": "./examples/JobsPatch.json"
+ },
+ "JobsPatchCmk": {
+ "$ref": "./examples/JobsPatchCmk.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}/bookShipmentPickUp": {
+ "post": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "Book shipment pick up.",
+ "operationId": "Jobs_BookShipmentPickUp",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/jobNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "shipmentPickUpRequest",
+ "in": "body",
+ "description": "Details of shipment pick up request.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ShipmentPickUpRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Booked shipment pick up successfully.",
+ "schema": {
+ "$ref": "#/definitions/ShipmentPickUpResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "BookShipmentPickupPost": {
+ "$ref": "./examples/BookShipmentPickupPost.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}/cancel": {
+ "post": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "CancelJob.",
+ "operationId": "Jobs_Cancel",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/jobNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "cancellationReason",
+ "in": "body",
+ "description": "Reason for cancellation.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CancellationReason"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Job cancelled."
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "JobsCancelPost": {
+ "$ref": "./examples/JobsCancelPost.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}/listCredentials": {
+ "post": {
+ "tags": [
+ "Jobs"
+ ],
+ "description": "This method gets the unencrypted secrets related to the job.",
+ "operationId": "Jobs_ListCredentials",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/jobNameParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of unencrypted credentials of the job.",
+ "schema": {
+ "$ref": "#/definitions/UnencryptedCredentialsList"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "JobsListCredentials": {
+ "$ref": "./examples/JobsListCredentials.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DataBox/locations/{location}/regionConfiguration": {
+ "post": {
+ "tags": [
+ "Service"
+ ],
+ "description": "This API provides configuration details specific to given region/location at Subscription level.",
+ "operationId": "Service_RegionConfiguration",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "regionConfigurationRequest",
+ "in": "body",
+ "description": "Request body to get the configuration for the region.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RegionConfigurationRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Region configuration response.",
+ "schema": {
+ "$ref": "#/definitions/RegionConfigurationResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "RegionConfiguration": {
+ "$ref": "./examples/RegionConfiguration.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/locations/{location}/regionConfiguration": {
+ "post": {
+ "tags": [
+ "Service"
+ ],
+ "description": "This API provides configuration details specific to given region/location at Resource group level.",
+ "operationId": "Service_RegionConfigurationByResourceGroup",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/locationParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "regionConfigurationRequest",
+ "in": "body",
+ "description": "Request body to get the configuration for the region at resource group level.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/RegionConfigurationRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Region configuration response.",
+ "schema": {
+ "$ref": "#/definitions/RegionConfigurationResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing reason for operation failure.",
+ "schema": {
+ "$ref": "#/definitions/ApiError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "RegionConfigurationByResourceGroup": {
+ "$ref": "./examples/RegionConfigurationByResourceGroup.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AccountCredentialDetails": {
+ "description": "Credential details of the account.",
+ "type": "object",
+ "properties": {
+ "accountName": {
+ "description": "Name of the account.",
+ "type": "string",
+ "readOnly": true
+ },
+ "dataAccountType": {
+ "description": "Type of the account.",
+ "enum": [
+ "StorageAccount",
+ "ManagedDisk"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "DataAccountType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "StorageAccount",
+ "description": "Storage Accounts ."
+ },
+ {
+ "value": "ManagedDisk",
+ "description": "Azure Managed disk storage."
+ }
+ ]
+ }
+ },
+ "accountConnectionString": {
+ "description": "Connection string of the account endpoint to use the account as a storage endpoint on the device.",
+ "type": "string",
+ "readOnly": true
+ },
+ "shareCredentialDetails": {
+ "description": "Per share level unencrypted access credentials.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ShareCredentialDetails"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "AdditionalErrorInfo": {
+ "type": "object",
+ "description": "Additional error info.",
+ "properties": {
+ "type": {
+ "description": "Additional error type.",
+ "type": "string"
+ },
+ "info": {
+ "description": "Additional error info.",
+ "type": "object"
+ }
+ }
+ },
+ "AddressValidationOutput": {
+ "description": "Output of the address validation api.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/AddressValidationProperties",
+ "description": "The address validation properties.",
+ "readOnly": true,
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "AddressValidationProperties": {
+ "description": "The address validation output.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputResponse"
+ }
+ ],
+ "properties": {
+ "validationStatus": {
+ "description": "The address validation status.",
+ "enum": [
+ "Valid",
+ "Invalid",
+ "Ambiguous"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "AddressValidationStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Valid",
+ "description": "Address provided is valid."
+ },
+ {
+ "value": "Invalid",
+ "description": "Address provided is invalid or not supported."
+ },
+ {
+ "value": "Ambiguous",
+ "description": "Address provided is ambiguous, please choose one of the alternate addresses returned."
+ }
+ ]
+ }
+ },
+ "alternateAddresses": {
+ "description": "List of alternate addresses.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ShippingAddress"
+ },
+ "readOnly": true
+ }
+ },
+ "x-ms-discriminator-value": "ValidateAddress"
+ },
+ "ApiError": {
+ "required": [
+ "error"
+ ],
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/ErrorDetail"
+ }
+ }
+ },
+ "ApplianceNetworkConfiguration": {
+ "description": "The Network Adapter configuration of a DataBox.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the network.",
+ "type": "string",
+ "readOnly": true
+ },
+ "macAddress": {
+ "description": "Mac Address.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ArmBaseObject": {
+ "description": "Base class for all objects under resource.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the object.",
+ "type": "string",
+ "readOnly": true
+ },
+ "id": {
+ "description": "Id of the object.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "Type of the object.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "AvailableSkuRequest": {
+ "description": "The filters for showing the available skus.",
+ "required": [
+ "transferType",
+ "country",
+ "location"
+ ],
+ "type": "object",
+ "properties": {
+ "transferType": {
+ "description": "Type of the transfer.",
+ "enum": [
+ "ImportToAzure",
+ "ExportFromAzure"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TransferType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "ImportToAzure",
+ "description": "Import data to azure."
+ },
+ {
+ "value": "ExportFromAzure",
+ "description": "Export data from azure."
+ }
+ ]
+ }
+ },
+ "country": {
+ "description": "ISO country code. Country for hardware shipment. For codes check: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements",
+ "type": "string"
+ },
+ "location": {
+ "description": "Location for data transfer. For locations check: https://management.azure.com/subscriptions/SUBSCRIPTIONID/locations?api-version=2018-01-01",
+ "type": "string"
+ },
+ "skuNames": {
+ "description": "Sku Names to filter for available skus",
+ "type": "array",
+ "items": {
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "AvailableSkusResult": {
+ "description": "The available skus operation response.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of available skus.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SkuInformation"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link for the next set of skus.",
+ "type": "string"
+ }
+ }
+ },
+ "AzureFileFilterDetails": {
+ "description": "Filter details to transfer Azure files",
+ "type": "object",
+ "properties": {
+ "filePrefixList": {
+ "description": "Prefix list of the Azure files to be transferred.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "filePathList": {
+ "description": "List of full path of the files to be transferred.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fileShareList": {
+ "description": "List of file shares to be transferred.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "BlobFilterDetails": {
+ "description": "Filter details to transfer Azure Blobs",
+ "type": "object",
+ "properties": {
+ "blobPrefixList": {
+ "description": "Prefix list of the Azure blobs to be transferred.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "blobPathList": {
+ "description": "List of full path of the blobs to be transferred.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "containerList": {
+ "description": "List of blob containers to be transferred.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "CancellationReason": {
+ "description": "Reason for cancellation.",
+ "required": [
+ "reason"
+ ],
+ "type": "object",
+ "properties": {
+ "reason": {
+ "description": "Reason for cancellation.",
+ "type": "string"
+ }
+ }
+ },
+ "CloudError": {
+ "description": "Cloud error.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "Cloud error code.",
+ "type": "string"
+ },
+ "message": {
+ "description": "Cloud error message.",
+ "type": "string"
+ },
+ "target": {
+ "description": "Cloud error target.",
+ "type": "string"
+ },
+ "details": {
+ "description": "Cloud error details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudError"
+ },
+ "readOnly": true
+ },
+ "additionalInfo": {
+ "description": "Cloud error additional info.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AdditionalErrorInfo"
+ },
+ "readOnly": true
+ }
+ },
+ "x-ms-external": true
+ },
+ "ContactDetails": {
+ "description": "Contact Details.",
+ "required": [
+ "contactName",
+ "phone",
+ "emailList"
+ ],
+ "type": "object",
+ "properties": {
+ "contactName": {
+ "description": "Contact name of the person.",
+ "type": "string"
+ },
+ "phone": {
+ "description": "Phone number of the contact person.",
+ "type": "string"
+ },
+ "phoneExtension": {
+ "description": "Phone extension number of the contact person.",
+ "type": "string"
+ },
+ "mobile": {
+ "description": "Mobile number of the contact person.",
+ "type": "string"
+ },
+ "emailList": {
+ "description": "List of Email-ids to be notified about job progress.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "notificationPreference": {
+ "description": "Notification preference for a job stage.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotificationPreference"
+ }
+ }
+ }
+ },
+ "CopyLogDetails": {
+ "description": "Details for log generated during copy.",
+ "required": [
+ "copyLogDetailsType"
+ ],
+ "type": "object",
+ "properties": {
+ "copyLogDetailsType": {
+ "description": "Indicates the type of job details.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ClassDiscriminator",
+ "modelAsExtensible": false,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box orders."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk orders."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy orders."
+ }
+ ]
+ }
+ }
+ },
+ "discriminator": "copyLogDetailsType"
+ },
+ "CopyProgress": {
+ "description": "Copy progress.",
+ "type": "object",
+ "properties": {
+ "storageAccountName": {
+ "description": "Name of the storage account. This will be empty for data account types other than storage account.",
+ "type": "string",
+ "readOnly": true
+ },
+ "transferType": {
+ "description": "Transfer type of data",
+ "enum": [
+ "ImportToAzure",
+ "ExportFromAzure"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "TransferType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "ImportToAzure",
+ "description": "Import data to azure."
+ },
+ {
+ "value": "ExportFromAzure",
+ "description": "Export data from azure."
+ }
+ ]
+ }
+ },
+ "dataAccountType": {
+ "description": "Data Account Type.",
+ "enum": [
+ "StorageAccount",
+ "ManagedDisk"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "DataAccountType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "StorageAccount",
+ "description": "Storage Accounts ."
+ },
+ {
+ "value": "ManagedDisk",
+ "description": "Azure Managed disk storage."
+ }
+ ]
+ }
+ },
+ "accountId": {
+ "description": "Id of the account where the data needs to be uploaded.",
+ "type": "string",
+ "readOnly": true
+ },
+ "bytesProcessed": {
+ "format": "int64",
+ "description": "To indicate bytes transferred.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "totalBytesToProcess": {
+ "format": "int64",
+ "description": "Total amount of data to be processed by the job.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "filesProcessed": {
+ "format": "int64",
+ "description": "Number of files processed",
+ "type": "integer",
+ "readOnly": true
+ },
+ "totalFilesToProcess": {
+ "format": "int64",
+ "description": "Total files to process",
+ "type": "integer",
+ "readOnly": true
+ },
+ "invalidFilesProcessed": {
+ "format": "int64",
+ "description": "Number of files not adhering to azure naming conventions which were processed by automatic renaming",
+ "type": "integer",
+ "readOnly": true
+ },
+ "invalidFileBytesUploaded": {
+ "format": "int64",
+ "description": "Total amount of data not adhering to azure naming conventions which were processed by automatic renaming",
+ "type": "integer",
+ "readOnly": true
+ },
+ "renamedContainerCount": {
+ "format": "int64",
+ "description": "Number of folders not adhering to azure naming conventions which were processed by automatic renaming",
+ "type": "integer",
+ "readOnly": true
+ },
+ "filesErroredOut": {
+ "format": "int64",
+ "description": "Number of files which could not be copied",
+ "type": "integer",
+ "readOnly": true
+ },
+ "directoriesErroredOut": {
+ "format": "int64",
+ "description": "To indicate directories errored out in the job.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "invalidDirectoriesProcessed": {
+ "format": "int64",
+ "description": "To indicate directories renamed",
+ "type": "integer",
+ "readOnly": true
+ },
+ "isEnumerationInProgress": {
+ "description": "To indicate if enumeration of data is in progress. \r\nUntil this is true, the TotalBytesToProcess may not be valid.",
+ "type": "boolean",
+ "readOnly": true
+ }
+ }
+ },
+ "CreateJobValidations": {
+ "description": "It does all pre-job creation validations.",
+ "required": [
+ "validationCategory",
+ "individualRequestDetails"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationRequest"
+ }
+ ],
+ "properties": {},
+ "x-ms-discriminator-value": "JobCreationValidation"
+ },
+ "CreateOrderLimitForSubscriptionValidationRequest": {
+ "description": "Request to validate create order limit for current subscription.",
+ "required": [
+ "deviceType",
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputRequest"
+ }
+ ],
+ "properties": {
+ "deviceType": {
+ "description": "Device type to be used for the job.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidateCreateOrderLimit"
+ },
+ "CreateOrderLimitForSubscriptionValidationResponseProperties": {
+ "description": "Properties of create order limit for subscription validation response.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputResponse"
+ }
+ ],
+ "properties": {
+ "status": {
+ "description": "Create order limit validation status.",
+ "enum": [
+ "Valid",
+ "Invalid",
+ "Skipped"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ValidationStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Valid",
+ "description": "Validation is successful"
+ },
+ {
+ "value": "Invalid",
+ "description": "Validation is not successful"
+ },
+ {
+ "value": "Skipped",
+ "description": "Validation is skipped"
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidateCreateOrderLimit"
+ },
+ "DataAccountDetails": {
+ "description": "Account details of the data to be transferred",
+ "required": [
+ "dataAccountType"
+ ],
+ "type": "object",
+ "properties": {
+ "dataAccountType": {
+ "description": "Account Type of the data to be transferred.",
+ "enum": [
+ "StorageAccount",
+ "ManagedDisk"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "DataAccountType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "StorageAccount",
+ "description": "Storage Accounts ."
+ },
+ {
+ "value": "ManagedDisk",
+ "description": "Azure Managed disk storage."
+ }
+ ]
+ }
+ },
+ "sharePassword": {
+ "description": "Password for all the shares to be created on the device. Should not be passed for TransferType:ExportFromAzure jobs. If this is not passed, the service will generate password itself. This will not be returned in Get Call. Password Requirements : Password must be minimum of 12 and maximum of 64 characters. Password must have at least one uppercase alphabet, one number and one special character. Password cannot have the following characters : IilLoO0 Password can have only alphabets, numbers and these characters : @#\\-$%^!+=;:_()]+",
+ "type": "string",
+ "x-ms-secret": true,
+ "x-ms-mutability": [
+ "create"
+ ]
+ }
+ },
+ "discriminator": "dataAccountType"
+ },
+ "DataBoxAccountCopyLogDetails": {
+ "description": "Copy log details for a storage account of a DataBox job",
+ "required": [
+ "copyLogDetailsType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CopyLogDetails"
+ }
+ ],
+ "properties": {
+ "accountName": {
+ "description": "Account name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "copyLogLink": {
+ "description": "Link for copy logs.",
+ "type": "string",
+ "readOnly": true
+ },
+ "copyVerboseLogLink": {
+ "description": "Link for copy verbose logs. This will be set only when LogCollectionLevel is set to Verbose.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "x-ms-discriminator-value": "DataBox"
+ },
+ "DataBoxDiskCopyLogDetails": {
+ "description": "Copy Log Details for a disk",
+ "required": [
+ "copyLogDetailsType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CopyLogDetails"
+ }
+ ],
+ "properties": {
+ "diskSerialNumber": {
+ "description": "Disk Serial Number.",
+ "type": "string",
+ "readOnly": true
+ },
+ "errorLogLink": {
+ "description": "Link for copy error logs.",
+ "type": "string",
+ "readOnly": true
+ },
+ "verboseLogLink": {
+ "description": "Link for copy verbose logs.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "x-ms-discriminator-value": "DataBoxDisk"
+ },
+ "DataBoxDiskCopyProgress": {
+ "description": "DataBox Disk Copy Progress",
+ "type": "object",
+ "properties": {
+ "serialNumber": {
+ "description": "The serial number of the disk",
+ "type": "string",
+ "readOnly": true
+ },
+ "bytesCopied": {
+ "format": "int64",
+ "description": "Bytes copied during the copy of disk.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "percentComplete": {
+ "format": "int32",
+ "description": "Indicates the percentage completed for the copy of the disk.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "status": {
+ "description": "The Status of the copy",
+ "enum": [
+ "NotStarted",
+ "InProgress",
+ "Completed",
+ "CompletedWithErrors",
+ "Failed",
+ "NotReturned",
+ "HardwareError",
+ "DeviceFormatted",
+ "DeviceMetadataModified",
+ "StorageAccountNotAccessible",
+ "UnsupportedData"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "CopyStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "NotStarted",
+ "description": "Data copy hasn't started yet."
+ },
+ {
+ "value": "InProgress",
+ "description": "Data copy is in progress."
+ },
+ {
+ "value": "Completed",
+ "description": "Data copy completed."
+ },
+ {
+ "value": "CompletedWithErrors",
+ "description": "Data copy completed with errors."
+ },
+ {
+ "value": "Failed",
+ "description": "Data copy failed. No data was copied."
+ },
+ {
+ "value": "NotReturned",
+ "description": "No copy triggered as device was not returned."
+ },
+ {
+ "value": "HardwareError",
+ "description": "The Device has hit hardware issues."
+ },
+ {
+ "value": "DeviceFormatted",
+ "description": "Data copy failed. The Device was formatted by user."
+ },
+ {
+ "value": "DeviceMetadataModified",
+ "description": "Data copy failed. Device metadata was modified by user."
+ },
+ {
+ "value": "StorageAccountNotAccessible",
+ "description": "Data copy failed. Storage Account was not accessible during copy."
+ },
+ {
+ "value": "UnsupportedData",
+ "description": "Data copy failed. The Device data content is not supported."
+ }
+ ]
+ }
+ }
+ }
+ },
+ "DataBoxDiskJobDetails": {
+ "description": "DataBox Disk Job Details.",
+ "required": [
+ "contactDetails",
+ "jobDetailsType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobDetails"
+ }
+ ],
+ "properties": {
+ "preferredDisks": {
+ "description": "User preference on what size disks are needed for the job. The map is from the disk size in TB to the count. Eg. {2,5} means 5 disks of 2 TB size. Key is string but will be checked against an int.",
+ "type": "object",
+ "additionalProperties": {
+ "format": "int32",
+ "type": "integer"
+ }
+ },
+ "copyProgress": {
+ "description": "Copy progress per disk.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataBoxDiskCopyProgress"
+ },
+ "readOnly": true
+ },
+ "disksAndSizeDetails": {
+ "description": "Contains the map of disk serial number to the disk size being used for the job. Is returned only after the disks are shipped to the customer.",
+ "type": "object",
+ "additionalProperties": {
+ "format": "int32",
+ "type": "integer"
+ },
+ "readOnly": true
+ },
+ "passkey": {
+ "description": "User entered passkey for DataBox Disk job.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "DataBoxDisk"
+ },
+ "DataBoxDiskJobSecrets": {
+ "description": "The secrets related to disk job.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobSecrets"
+ }
+ ],
+ "properties": {
+ "diskSecrets": {
+ "description": "Contains the list of secrets object for that device.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DiskSecret"
+ },
+ "readOnly": true
+ },
+ "passKey": {
+ "description": "PassKey for the disk Job.",
+ "type": "string",
+ "readOnly": true
+ },
+ "isPasskeyUserDefined": {
+ "description": "Whether passkey was provided by user.",
+ "type": "boolean",
+ "readOnly": true
+ }
+ },
+ "x-ms-discriminator-value": "DataBoxDisk"
+ },
+ "DataBoxHeavyAccountCopyLogDetails": {
+ "description": "Copy log details for a storage account for Databox heavy",
+ "required": [
+ "copyLogDetailsType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CopyLogDetails"
+ }
+ ],
+ "properties": {
+ "accountName": {
+ "description": "Account name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "copyLogLink": {
+ "description": "Link for copy logs.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "copyVerboseLogLink": {
+ "description": "Link for copy verbose logs. This will be set only when the LogCollectionLevel is set to verbose.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ }
+ },
+ "x-ms-discriminator-value": "DataBoxHeavy"
+ },
+ "DataBoxHeavyJobDetails": {
+ "description": "Databox Heavy Device Job Details",
+ "required": [
+ "contactDetails",
+ "jobDetailsType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobDetails"
+ }
+ ],
+ "properties": {
+ "copyProgress": {
+ "description": "Copy progress per account.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CopyProgress"
+ },
+ "readOnly": true
+ },
+ "devicePassword": {
+ "description": "Set Device password for unlocking Databox Heavy. Should not be passed for TransferType:ExportFromAzure jobs. If this is not passed, the service will generate password itself. This will not be returned in Get Call. Password Requirements : Password must be minimum of 12 and maximum of 64 characters. Password must have at least one uppercase alphabet, one number and one special character. Password cannot have the following characters : IilLoO0 Password can have only alphabets, numbers and these characters : @#\\-$%^!+=;:_()]+",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "DataBoxHeavy"
+ },
+ "DataBoxHeavyJobSecrets": {
+ "description": "The secrets related to a databox heavy job.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobSecrets"
+ }
+ ],
+ "properties": {
+ "cabinetPodSecrets": {
+ "description": "Contains the list of secret objects for a databox heavy job.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataBoxHeavySecret"
+ },
+ "readOnly": true
+ }
+ },
+ "x-ms-discriminator-value": "DataBoxHeavy"
+ },
+ "DataBoxHeavySecret": {
+ "description": "The secrets related to a databox heavy.",
+ "type": "object",
+ "properties": {
+ "deviceSerialNumber": {
+ "description": "Serial number of the assigned device.",
+ "type": "string",
+ "readOnly": true
+ },
+ "devicePassword": {
+ "description": "Password for out of the box experience on device.",
+ "type": "string",
+ "readOnly": true
+ },
+ "networkConfigurations": {
+ "description": "Network configuration of the appliance.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplianceNetworkConfiguration"
+ },
+ "readOnly": true
+ },
+ "encodedValidationCertPubKey": {
+ "description": "The base 64 encoded public key to authenticate with the device",
+ "type": "string",
+ "readOnly": true
+ },
+ "accountCredentialDetails": {
+ "description": "Per account level access credentials.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AccountCredentialDetails"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "DataBoxJobDetails": {
+ "description": "Databox Job Details",
+ "required": [
+ "contactDetails",
+ "jobDetailsType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobDetails"
+ }
+ ],
+ "properties": {
+ "copyProgress": {
+ "description": "Copy progress per storage account.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CopyProgress"
+ },
+ "readOnly": true
+ },
+ "devicePassword": {
+ "description": "Set Device password for unlocking Databox. Should not be passed for TransferType:ExportFromAzure jobs. If this is not passed, the service will generate password itself. This will not be returned in Get Call. Password Requirements : Password must be minimum of 12 and maximum of 64 characters. Password must have at least one uppercase alphabet, one number and one special character. Password cannot have the following characters : IilLoO0 Password can have only alphabets, numbers and these characters : @#\\-$%^!+=;:_()]+",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "DataBox"
+ },
+ "DataboxJobSecrets": {
+ "description": "The secrets related to a databox job.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/JobSecrets"
+ }
+ ],
+ "properties": {
+ "podSecrets": {
+ "description": "Contains the list of secret objects for a job.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataBoxSecret"
+ }
+ }
+ },
+ "x-ms-discriminator-value": "DataBox"
+ },
+ "DataBoxScheduleAvailabilityRequest": {
+ "description": "Request body to get the availability for scheduling data box orders orders.",
+ "required": [
+ "storageLocation",
+ "skuName"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ScheduleAvailabilityRequest"
+ }
+ ],
+ "properties": {},
+ "x-ms-discriminator-value": "DataBox"
+ },
+ "DataBoxSecret": {
+ "description": "The secrets related to a DataBox.",
+ "type": "object",
+ "properties": {
+ "deviceSerialNumber": {
+ "description": "Serial number of the assigned device.",
+ "type": "string",
+ "readOnly": true
+ },
+ "devicePassword": {
+ "description": "Password for out of the box experience on device.",
+ "type": "string",
+ "readOnly": true
+ },
+ "networkConfigurations": {
+ "description": "Network configuration of the appliance.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplianceNetworkConfiguration"
+ },
+ "readOnly": true
+ },
+ "encodedValidationCertPubKey": {
+ "description": "The base 64 encoded public key to authenticate with the device",
+ "type": "string",
+ "readOnly": true
+ },
+ "accountCredentialDetails": {
+ "description": "Per account level access credentials.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AccountCredentialDetails"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "DataExportDetails": {
+ "description": "Details of the data to be used for exporting data from azure.",
+ "required": [
+ "transferConfiguration",
+ "accountDetails"
+ ],
+ "type": "object",
+ "properties": {
+ "transferConfiguration": {
+ "$ref": "#/definitions/TransferConfiguration",
+ "description": "Configuration for the data transfer."
+ },
+ "logCollectionLevel": {
+ "description": "Level of the logs to be collected.",
+ "enum": [
+ "Error",
+ "Verbose"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "LogCollectionLevel",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Error",
+ "description": "Only Errors will be collected in the logs."
+ },
+ {
+ "value": "Verbose",
+ "description": "Verbose logging (includes Errors, CRC, size information and others)."
+ }
+ ]
+ }
+ },
+ "accountDetails": {
+ "$ref": "#/definitions/DataAccountDetails",
+ "description": "Account details of the data to be transferred"
+ }
+ }
+ },
+ "DataImportDetails": {
+ "description": "Details of the data to be used for importing data to azure.",
+ "required": [
+ "accountDetails"
+ ],
+ "type": "object",
+ "properties": {
+ "accountDetails": {
+ "$ref": "#/definitions/DataAccountDetails",
+ "description": "Account details of the data to be transferred"
+ }
+ }
+ },
+ "DataLocationToServiceLocationMap": {
+ "description": "Map of data location to service location",
+ "type": "object",
+ "properties": {
+ "dataLocation": {
+ "description": "Location of the data.",
+ "type": "string",
+ "readOnly": true
+ },
+ "serviceLocation": {
+ "description": "Location of the service.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "DataTransferDetailsValidationRequest": {
+ "description": "Request to validate export and import data details.",
+ "required": [
+ "deviceType",
+ "transferType",
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputRequest"
+ }
+ ],
+ "properties": {
+ "dataExportDetails": {
+ "description": "List of DataTransfer details to be used to export data from azure.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataExportDetails"
+ }
+ },
+ "dataImportDetails": {
+ "description": "List of DataTransfer details to be used to import data to azure.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataImportDetails"
+ }
+ },
+ "deviceType": {
+ "description": "Device type.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ },
+ "transferType": {
+ "description": "Type of the transfer.",
+ "enum": [
+ "ImportToAzure",
+ "ExportFromAzure"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TransferType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "ImportToAzure",
+ "description": "Import data to azure."
+ },
+ {
+ "value": "ExportFromAzure",
+ "description": "Export data from azure."
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidateDataTransferDetails"
+ },
+ "DataTransferDetailsValidationResponseProperties": {
+ "description": "Properties of data transfer details validation response.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputResponse"
+ }
+ ],
+ "properties": {
+ "status": {
+ "description": "Data transfer details validation status.",
+ "enum": [
+ "Valid",
+ "Invalid",
+ "Skipped"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ValidationStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Valid",
+ "description": "Validation is successful"
+ },
+ {
+ "value": "Invalid",
+ "description": "Validation is not successful"
+ },
+ {
+ "value": "Skipped",
+ "description": "Validation is skipped"
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidateDataTransferDetails"
+ },
+ "DcAccessSecurityCode": {
+ "description": "Dc access security code",
+ "type": "object",
+ "properties": {
+ "reverseDcAccessCode": {
+ "description": "Reverse Dc access security code.",
+ "type": "string"
+ },
+ "forwardDcAccessCode": {
+ "description": "Forward Dc access security code.",
+ "type": "string"
+ }
+ }
+ },
+ "Details": {
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ }
+ }
+ },
+ "DiskScheduleAvailabilityRequest": {
+ "description": "Request body to get the availability for scheduling disk orders.",
+ "required": [
+ "storageLocation",
+ "skuName",
+ "expectedDataSizeInTerabytes"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ScheduleAvailabilityRequest"
+ }
+ ],
+ "properties": {
+ "expectedDataSizeInTerabytes": {
+ "format": "int32",
+ "description": "The expected size of the data, which needs to be transferred in this job, in terabytes.",
+ "type": "integer"
+ }
+ },
+ "x-ms-discriminator-value": "DataBoxDisk"
+ },
+ "DiskSecret": {
+ "description": "Contains all the secrets of a Disk.",
+ "type": "object",
+ "properties": {
+ "diskSerialNumber": {
+ "description": "Serial number of the assigned disk.",
+ "type": "string",
+ "readOnly": true
+ },
+ "bitLockerKey": {
+ "description": "Bit Locker key of the disk which can be used to unlock the disk to copy data.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ErrorDetail": {
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Details"
+ }
+ },
+ "target": {
+ "type": "string"
+ }
+ }
+ },
+ "FilterFileDetails": {
+ "description": "Details of the filter files to be used for data transfer.",
+ "required": [
+ "filterFileType",
+ "filterFilePath"
+ ],
+ "type": "object",
+ "properties": {
+ "filterFileType": {
+ "description": "Type of the filter file.",
+ "enum": [
+ "AzureBlob",
+ "AzureFile"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "FilterFileType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "AzureBlob",
+ "description": "Filter file is of the type AzureBlob."
+ },
+ {
+ "value": "AzureFile",
+ "description": "Filter file is of the type AzureFiles."
+ }
+ ]
+ }
+ },
+ "filterFilePath": {
+ "description": "Path of the file that contains the details of all items to transfer.",
+ "type": "string"
+ }
+ }
+ },
+ "HeavyScheduleAvailabilityRequest": {
+ "description": "Request body to get the availability for scheduling heavy orders.",
+ "required": [
+ "storageLocation",
+ "skuName"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ScheduleAvailabilityRequest"
+ }
+ ],
+ "properties": {},
+ "x-ms-discriminator-value": "DataBoxHeavy"
+ },
+ "JobDeliveryInfo": {
+ "description": "Additional delivery info.",
+ "type": "object",
+ "properties": {
+ "scheduledDateTime": {
+ "format": "date-time",
+ "description": "Scheduled date time.",
+ "type": "string"
+ }
+ }
+ },
+ "JobDetails": {
+ "description": "Job details.",
+ "required": [
+ "contactDetails",
+ "jobDetailsType"
+ ],
+ "type": "object",
+ "properties": {
+ "jobStages": {
+ "description": "List of stages that run in the job.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/JobStages"
+ },
+ "readOnly": true
+ },
+ "contactDetails": {
+ "$ref": "#/definitions/ContactDetails",
+ "description": "Contact details for notification and shipping."
+ },
+ "shippingAddress": {
+ "$ref": "#/definitions/ShippingAddress",
+ "description": "Shipping address of the customer."
+ },
+ "deliveryPackage": {
+ "$ref": "#/definitions/PackageShippingDetails",
+ "description": "Delivery package shipping details.",
+ "readOnly": true
+ },
+ "returnPackage": {
+ "$ref": "#/definitions/PackageShippingDetails",
+ "description": "Return package shipping details.",
+ "readOnly": true
+ },
+ "dataImportDetails": {
+ "description": "Details of the data to be imported into azure.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataImportDetails"
+ }
+ },
+ "dataExportDetails": {
+ "description": "Details of the data to be exported from azure.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataExportDetails"
+ }
+ },
+ "jobDetailsType": {
+ "description": "Indicates the type of job details.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ClassDiscriminator",
+ "modelAsExtensible": false,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box orders."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk orders."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy orders."
+ }
+ ]
+ }
+ },
+ "preferences": {
+ "$ref": "#/definitions/Preferences",
+ "description": "Preferences for the order."
+ },
+ "copyLogDetails": {
+ "description": "List of copy log details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CopyLogDetails"
+ },
+ "readOnly": true
+ },
+ "reverseShipmentLabelSasKey": {
+ "description": "Shared access key to download the return shipment label",
+ "type": "string",
+ "readOnly": true
+ },
+ "chainOfCustodySasKey": {
+ "description": "Shared access key to download the chain of custody logs",
+ "type": "string",
+ "readOnly": true
+ },
+ "keyEncryptionKey": {
+ "$ref": "#/definitions/KeyEncryptionKey",
+ "description": "Details about which key encryption type is being used.",
+ "readOnly": true
+ },
+ "expectedDataSizeInTerabytes": {
+ "format": "int32",
+ "description": "The expected size of the data, which needs to be transferred in this job, in terabytes.",
+ "type": "integer"
+ }
+ },
+ "discriminator": "jobDetailsType"
+ },
+ "JobProperties": {
+ "description": "Job Properties",
+ "required": [
+ "transferType"
+ ],
+ "type": "object",
+ "properties": {
+ "transferType": {
+ "description": "Type of the data transfer.",
+ "enum": [
+ "ImportToAzure",
+ "ExportFromAzure"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TransferType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "ImportToAzure",
+ "description": "Import data to azure."
+ },
+ {
+ "value": "ExportFromAzure",
+ "description": "Export data from azure."
+ }
+ ]
+ }
+ },
+ "isCancellable": {
+ "description": "Describes whether the job is cancellable or not.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "isDeletable": {
+ "description": "Describes whether the job is deletable or not.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "isShippingAddressEditable": {
+ "description": "Describes whether the shipping address is editable or not.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "isPrepareToShipEnabled": {
+ "description": "Is Prepare To Ship Enabled on this job",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Name of the stage which is in progress.",
+ "enum": [
+ "DeviceOrdered",
+ "DevicePrepared",
+ "Dispatched",
+ "Delivered",
+ "PickedUp",
+ "AtAzureDC",
+ "DataCopy",
+ "Completed",
+ "CompletedWithErrors",
+ "Cancelled",
+ "Failed_IssueReportedAtCustomer",
+ "Failed_IssueDetectedAtAzureDC",
+ "Aborted",
+ "CompletedWithWarnings",
+ "ReadyToDispatchFromAzureDC",
+ "ReadyToReceiveAtAzureDC"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "StageName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DeviceOrdered",
+ "description": "An order has been created."
+ },
+ {
+ "value": "DevicePrepared",
+ "description": "A device has been prepared for the order."
+ },
+ {
+ "value": "Dispatched",
+ "description": "Device has been dispatched to the user of the order."
+ },
+ {
+ "value": "Delivered",
+ "description": "Device has been delivered to the user of the order."
+ },
+ {
+ "value": "PickedUp",
+ "description": "Device has been picked up from user and in transit to Azure datacenter."
+ },
+ {
+ "value": "AtAzureDC",
+ "description": "Device has been received at Azure datacenter from the user."
+ },
+ {
+ "value": "DataCopy",
+ "description": "Data copy from the device at Azure datacenter."
+ },
+ {
+ "value": "Completed",
+ "description": "Order has completed."
+ },
+ {
+ "value": "CompletedWithErrors",
+ "description": "Order has completed with errors."
+ },
+ {
+ "value": "Cancelled",
+ "description": "Order has been cancelled."
+ },
+ {
+ "value": "Failed_IssueReportedAtCustomer",
+ "description": "Order has failed due to issue reported by user."
+ },
+ {
+ "value": "Failed_IssueDetectedAtAzureDC",
+ "description": "Order has failed due to issue detected at Azure datacenter."
+ },
+ {
+ "value": "Aborted",
+ "description": "Order has been aborted."
+ },
+ {
+ "value": "CompletedWithWarnings",
+ "description": "Order has completed with warnings."
+ },
+ {
+ "value": "ReadyToDispatchFromAzureDC",
+ "description": "Device is ready to be handed to customer from Azure DC."
+ },
+ {
+ "value": "ReadyToReceiveAtAzureDC",
+ "description": "Device can be dropped off at Azure DC."
+ }
+ ]
+ }
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "Time at which the job was started in UTC ISO 8601 format.",
+ "type": "string",
+ "readOnly": true
+ },
+ "error": {
+ "$ref": "#/definitions/CloudError",
+ "description": "Top level error for the job.",
+ "readOnly": true
+ },
+ "details": {
+ "$ref": "#/definitions/JobDetails",
+ "description": "Details of a job run. This field will only be sent for expand details filter."
+ },
+ "cancellationReason": {
+ "description": "Reason for cancellation.",
+ "type": "string",
+ "readOnly": true
+ },
+ "deliveryType": {
+ "description": "Delivery type of Job.",
+ "enum": [
+ "NonScheduled",
+ "Scheduled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "JobDeliveryType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "NonScheduled",
+ "description": "Non Scheduled job."
+ },
+ {
+ "value": "Scheduled",
+ "description": "Scheduled job."
+ }
+ ]
+ }
+ },
+ "deliveryInfo": {
+ "$ref": "#/definitions/JobDeliveryInfo",
+ "description": "Delivery Info of Job."
+ },
+ "isCancellableWithoutFee": {
+ "description": "Flag to indicate cancellation of scheduled job.",
+ "type": "boolean",
+ "readOnly": true
+ }
+ }
+ },
+ "JobResource": {
+ "description": "Job Resource.",
+ "required": [
+ "properties"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/JobProperties",
+ "description": "Properties of a job.",
+ "x-ms-client-flatten": true
+ },
+ "name": {
+ "description": "Name of the object.",
+ "type": "string",
+ "readOnly": true
+ },
+ "id": {
+ "description": "Id of the object.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "Type of the object.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "JobResourceList": {
+ "description": "Job Resource Collection",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of job resources.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/JobResource"
+ }
+ },
+ "nextLink": {
+ "description": "Link for the next set of job resources.",
+ "type": "string"
+ }
+ }
+ },
+ "JobResourceUpdateParameter": {
+ "description": "The JobResourceUpdateParameter.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/UpdateJobProperties",
+ "description": "Properties of a job to be updated.",
+ "x-ms-client-flatten": true
+ },
+ "tags": {
+ "description": "The list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups).",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "identity": {
+ "$ref": "#/definitions/ResourceIdentity",
+ "description": "Msi identity of the resource"
+ }
+ }
+ },
+ "JobSecrets": {
+ "description": "The base class for the secrets",
+ "required": [
+ "jobSecretsType"
+ ],
+ "type": "object",
+ "properties": {
+ "jobSecretsType": {
+ "description": "Used to indicate what type of job secrets object.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ClassDiscriminator",
+ "modelAsExtensible": false,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box orders."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk orders."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy orders."
+ }
+ ]
+ }
+ },
+ "dcAccessSecurityCode": {
+ "$ref": "#/definitions/DcAccessSecurityCode",
+ "description": "Dc Access Security Code for Customer Managed Shipping",
+ "readOnly": true
+ },
+ "error": {
+ "$ref": "#/definitions/CloudError",
+ "description": "Error while fetching the secrets.",
+ "readOnly": true
+ }
+ },
+ "discriminator": "jobSecretsType"
+ },
+ "JobStages": {
+ "description": "Job stages.",
+ "type": "object",
+ "properties": {
+ "stageName": {
+ "description": "Name of the job stage.",
+ "enum": [
+ "DeviceOrdered",
+ "DevicePrepared",
+ "Dispatched",
+ "Delivered",
+ "PickedUp",
+ "AtAzureDC",
+ "DataCopy",
+ "Completed",
+ "CompletedWithErrors",
+ "Cancelled",
+ "Failed_IssueReportedAtCustomer",
+ "Failed_IssueDetectedAtAzureDC",
+ "Aborted",
+ "CompletedWithWarnings",
+ "ReadyToDispatchFromAzureDC",
+ "ReadyToReceiveAtAzureDC"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "StageName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DeviceOrdered",
+ "description": "An order has been created."
+ },
+ {
+ "value": "DevicePrepared",
+ "description": "A device has been prepared for the order."
+ },
+ {
+ "value": "Dispatched",
+ "description": "Device has been dispatched to the user of the order."
+ },
+ {
+ "value": "Delivered",
+ "description": "Device has been delivered to the user of the order."
+ },
+ {
+ "value": "PickedUp",
+ "description": "Device has been picked up from user and in transit to Azure datacenter."
+ },
+ {
+ "value": "AtAzureDC",
+ "description": "Device has been received at Azure datacenter from the user."
+ },
+ {
+ "value": "DataCopy",
+ "description": "Data copy from the device at Azure datacenter."
+ },
+ {
+ "value": "Completed",
+ "description": "Order has completed."
+ },
+ {
+ "value": "CompletedWithErrors",
+ "description": "Order has completed with errors."
+ },
+ {
+ "value": "Cancelled",
+ "description": "Order has been cancelled."
+ },
+ {
+ "value": "Failed_IssueReportedAtCustomer",
+ "description": "Order has failed due to issue reported by user."
+ },
+ {
+ "value": "Failed_IssueDetectedAtAzureDC",
+ "description": "Order has failed due to issue detected at Azure datacenter."
+ },
+ {
+ "value": "Aborted",
+ "description": "Order has been aborted."
+ },
+ {
+ "value": "CompletedWithWarnings",
+ "description": "Order has completed with warnings."
+ },
+ {
+ "value": "ReadyToDispatchFromAzureDC",
+ "description": "Device is ready to be handed to customer from Azure DC."
+ },
+ {
+ "value": "ReadyToReceiveAtAzureDC",
+ "description": "Device can be dropped off at Azure DC."
+ }
+ ]
+ }
+ },
+ "displayName": {
+ "description": "Display name of the job stage.",
+ "type": "string",
+ "readOnly": true
+ },
+ "stageStatus": {
+ "description": "Status of the job stage.",
+ "enum": [
+ "None",
+ "InProgress",
+ "Succeeded",
+ "Failed",
+ "Cancelled",
+ "Cancelling",
+ "SucceededWithErrors",
+ "WaitingForCustomerAction",
+ "SucceededWithWarnings"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "StageStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "None",
+ "description": "No status available yet."
+ },
+ {
+ "value": "InProgress",
+ "description": "Stage is in progress."
+ },
+ {
+ "value": "Succeeded",
+ "description": "Stage has succeeded."
+ },
+ {
+ "value": "Failed",
+ "description": "Stage has failed."
+ },
+ {
+ "value": "Cancelled",
+ "description": "Stage has been cancelled."
+ },
+ {
+ "value": "Cancelling",
+ "description": "Stage is cancelling."
+ },
+ {
+ "value": "SucceededWithErrors",
+ "description": "Stage has succeeded with errors."
+ },
+ {
+ "value": "WaitingForCustomerAction",
+ "description": "Stage is stuck until customer takes some action."
+ },
+ {
+ "value": "SucceededWithWarnings",
+ "description": "Stage has succeeded with warnings."
+ }
+ ]
+ }
+ },
+ "stageTime": {
+ "format": "date-time",
+ "description": "Time for the job stage in UTC ISO 8601 format.",
+ "type": "string",
+ "readOnly": true
+ },
+ "jobStageDetails": {
+ "description": "Job Stage Details",
+ "type": "object",
+ "readOnly": true
+ }
+ }
+ },
+ "KeyEncryptionKey": {
+ "description": "Encryption key containing details about key to encrypt different keys.",
+ "required": [
+ "kekType"
+ ],
+ "type": "object",
+ "properties": {
+ "kekType": {
+ "description": "Type of encryption key used for key encryption.",
+ "enum": [
+ "MicrosoftManaged",
+ "CustomerManaged"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "KekType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "MicrosoftManaged",
+ "description": "Key encryption key is managed by Microsoft."
+ },
+ {
+ "value": "CustomerManaged",
+ "description": "Key encryption key is managed by the Customer."
+ }
+ ]
+ }
+ },
+ "kekUrl": {
+ "description": "Key encryption key. It is required in case of Customer managed KekType.",
+ "type": "string"
+ },
+ "kekVaultResourceID": {
+ "description": "Kek vault resource id. It is required in case of Customer managed KekType.",
+ "type": "string"
+ }
+ }
+ },
+ "ManagedDiskDetails": {
+ "description": "Details of the managed disks.",
+ "required": [
+ "resourceGroupId",
+ "stagingStorageAccountId",
+ "dataAccountType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataAccountDetails"
+ }
+ ],
+ "properties": {
+ "resourceGroupId": {
+ "description": "Resource Group Id of the compute disks.",
+ "type": "string"
+ },
+ "stagingStorageAccountId": {
+ "description": "Resource Id of the storage account that can be used to copy the vhd for staging.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "ManagedDisk"
+ },
+ "NotificationPreference": {
+ "description": "Notification preference for a job stage.",
+ "required": [
+ "stageName",
+ "sendNotification"
+ ],
+ "type": "object",
+ "properties": {
+ "stageName": {
+ "description": "Name of the stage.",
+ "enum": [
+ "DevicePrepared",
+ "Dispatched",
+ "Delivered",
+ "PickedUp",
+ "AtAzureDC",
+ "DataCopy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "NotificationStageName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DevicePrepared",
+ "description": "Notification at device prepared stage."
+ },
+ {
+ "value": "Dispatched",
+ "description": "Notification at device dispatched stage."
+ },
+ {
+ "value": "Delivered",
+ "description": "Notification at device delivered stage."
+ },
+ {
+ "value": "PickedUp",
+ "description": "Notification at device picked up from user stage."
+ },
+ {
+ "value": "AtAzureDC",
+ "description": "Notification at device received at Azure datacenter stage."
+ },
+ {
+ "value": "DataCopy",
+ "description": "Notification at data copy started stage."
+ }
+ ]
+ }
+ },
+ "sendNotification": {
+ "description": "Notification is required or not.",
+ "type": "boolean"
+ }
+ }
+ },
+ "Operation": {
+ "description": "Operation entity.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the operation. Format: {resourceProviderNamespace}/{resourceType}/{read|write|delete|action}",
+ "type": "string",
+ "readOnly": true
+ },
+ "display": {
+ "$ref": "#/definitions/OperationDisplay",
+ "description": "Operation display values.",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/OperationProperties",
+ "description": "Operation properties.",
+ "readOnly": true,
+ "x-ms-client-flatten": true
+ },
+ "origin": {
+ "description": "Origin of the operation. Can be : user|system|user,system",
+ "type": "string",
+ "readOnly": true
+ },
+ "isDataAction": {
+ "description": "Indicates whether the operation is a data action",
+ "type": "boolean"
+ }
+ }
+ },
+ "OperationDisplay": {
+ "description": "Operation display",
+ "type": "object",
+ "properties": {
+ "provider": {
+ "description": "Provider name.",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource name.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Localized name of the operation for display purpose.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Localized description of the operation for display purpose.",
+ "type": "string"
+ }
+ }
+ },
+ "OperationList": {
+ "description": "Operation Collection.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of operations.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link for the next set of operations.",
+ "type": "string"
+ }
+ }
+ },
+ "OperationProperties": {
+ "description": "Operation properties.",
+ "type": "object",
+ "properties": {}
+ },
+ "PackageShippingDetails": {
+ "description": "Shipping details.",
+ "type": "object",
+ "properties": {
+ "carrierName": {
+ "description": "Name of the carrier.",
+ "type": "string",
+ "readOnly": true
+ },
+ "trackingId": {
+ "description": "Tracking Id of shipment.",
+ "type": "string",
+ "readOnly": true
+ },
+ "trackingUrl": {
+ "description": "Url where shipment can be tracked.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "Preferences": {
+ "description": "Preferences related to the order",
+ "type": "object",
+ "properties": {
+ "preferredDataCenterRegion": {
+ "description": "Preferred data center region.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "transportPreferences": {
+ "$ref": "#/definitions/TransportPreferences",
+ "description": "Preferences related to the shipment logistics of the sku."
+ }
+ }
+ },
+ "PreferencesValidationRequest": {
+ "description": "Request to validate preference of transport and data center.",
+ "required": [
+ "deviceType",
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputRequest"
+ }
+ ],
+ "properties": {
+ "preference": {
+ "description": "Preference of transport and data center.",
+ "$ref": "#/definitions/Preferences"
+ },
+ "deviceType": {
+ "description": "Device type to be used for the job.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidatePreferences"
+ },
+ "PreferencesValidationResponseProperties": {
+ "description": "Properties of data center and transport preference validation response.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputResponse"
+ }
+ ],
+ "properties": {
+ "status": {
+ "description": "Validation status of requested data center and transport.",
+ "enum": [
+ "Valid",
+ "Invalid",
+ "Skipped"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ValidationStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Valid",
+ "description": "Validation is successful"
+ },
+ {
+ "value": "Invalid",
+ "description": "Validation is not successful"
+ },
+ {
+ "value": "Skipped",
+ "description": "Validation is skipped"
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidatePreferences"
+ },
+ "RegionConfigurationRequest": {
+ "description": "Request body to get the configuration for the region.",
+ "type": "object",
+ "properties": {
+ "scheduleAvailabilityRequest": {
+ "$ref": "#/definitions/ScheduleAvailabilityRequest",
+ "description": "Request body to get the availability for scheduling orders."
+ },
+ "transportAvailabilityRequest": {
+ "$ref": "#/definitions/TransportAvailabilityRequest",
+ "description": "Request body to get the transport availability for given sku."
+ }
+ }
+ },
+ "RegionConfigurationResponse": {
+ "description": "Configuration response specific to a region.",
+ "type": "object",
+ "properties": {
+ "scheduleAvailabilityResponse": {
+ "$ref": "#/definitions/ScheduleAvailabilityResponse",
+ "description": "Schedule availability for given sku in a region.",
+ "readOnly": true
+ },
+ "transportAvailabilityResponse": {
+ "$ref": "#/definitions/TransportAvailabilityResponse",
+ "description": "Transport options available for given sku in a region.",
+ "readOnly": true
+ }
+ }
+ },
+ "Resource": {
+ "description": "Model of the Resource.",
+ "required": [
+ "location",
+ "sku"
+ ],
+ "type": "object",
+ "properties": {
+ "location": {
+ "description": "The location of the resource. This will be one of the supported and registered Azure Regions (e.g. West US, East US, Southeast Asia, etc.). The region of a resource cannot be changed once it is created, but if an identical region is specified on update the request will succeed.",
+ "type": "string",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "tags": {
+ "description": "The list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups).",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The sku type."
+ },
+ "identity": {
+ "$ref": "#/definitions/ResourceIdentity",
+ "description": "Msi identity of the resource"
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "ResourceIdentity": {
+ "description": "Msi identity details of the resource",
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "Identity type",
+ "type": "string"
+ },
+ "principalId": {
+ "description": "Service Principal Id backing the Msi",
+ "type": "string",
+ "readOnly": true
+ },
+ "tenantId": {
+ "description": "Home Tenant Id",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ScheduleAvailabilityRequest": {
+ "description": "Request body to get the availability for scheduling orders.",
+ "required": [
+ "storageLocation",
+ "skuName"
+ ],
+ "type": "object",
+ "properties": {
+ "storageLocation": {
+ "description": "Location for data transfer. For locations check: https://management.azure.com/subscriptions/SUBSCRIPTIONID/locations?api-version=2018-01-01",
+ "type": "string"
+ },
+ "skuName": {
+ "description": "Sku Name for which the order is to be scheduled.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ },
+ "country": {
+ "description": "Country in which storage location should be supported.",
+ "type": "string"
+ }
+ },
+ "discriminator": "skuName"
+ },
+ "ScheduleAvailabilityResponse": {
+ "description": "Schedule availability for given sku in a region.",
+ "type": "object",
+ "properties": {
+ "availableDates": {
+ "description": "List of dates available to schedule",
+ "type": "array",
+ "items": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "ShareCredentialDetails": {
+ "description": "Credential details of the shares in account.",
+ "type": "object",
+ "properties": {
+ "shareName": {
+ "description": "Name of the share.",
+ "type": "string",
+ "readOnly": true
+ },
+ "shareType": {
+ "description": "Type of the share.",
+ "enum": [
+ "UnknownType",
+ "HCS",
+ "BlockBlob",
+ "PageBlob",
+ "AzureFile",
+ "ManagedDisk"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ShareDestinationFormatType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "UnknownType",
+ "description": "Unknown format."
+ },
+ {
+ "value": "HCS",
+ "description": "Storsimple data format."
+ },
+ {
+ "value": "BlockBlob",
+ "description": "Azure storage block blob format."
+ },
+ {
+ "value": "PageBlob",
+ "description": "Azure storage page blob format."
+ },
+ {
+ "value": "AzureFile",
+ "description": "Azure storage file format."
+ },
+ {
+ "value": "ManagedDisk",
+ "description": "Azure Compute Disk."
+ }
+ ]
+ }
+ },
+ "userName": {
+ "description": "User name for the share.",
+ "type": "string",
+ "readOnly": true
+ },
+ "password": {
+ "description": "Password for the share.",
+ "type": "string",
+ "readOnly": true
+ },
+ "supportedAccessProtocols": {
+ "description": "Access protocols supported on the device.",
+ "type": "array",
+ "items": {
+ "enum": [
+ "SMB",
+ "NFS"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AccessProtocol",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "SMB",
+ "description": "Server Message Block protocol(SMB)."
+ },
+ {
+ "value": "NFS",
+ "description": "Network File System protocol(NFS)."
+ }
+ ]
+ }
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "ShipmentPickUpRequest": {
+ "description": "Shipment pick up request details.",
+ "required": [
+ "startTime",
+ "endTime",
+ "shipmentLocation"
+ ],
+ "type": "object",
+ "properties": {
+ "startTime": {
+ "format": "date-time",
+ "description": "Minimum date after which the pick up should commence, this must be in local time of pick up area.",
+ "type": "string"
+ },
+ "endTime": {
+ "format": "date-time",
+ "description": "Maximum date before which the pick up should commence, this must be in local time of pick up area.",
+ "type": "string"
+ },
+ "shipmentLocation": {
+ "description": "Shipment Location in the pickup place. Eg.front desk",
+ "type": "string"
+ }
+ }
+ },
+ "ShipmentPickUpResponse": {
+ "description": "Shipment pick up response.",
+ "type": "object",
+ "properties": {
+ "confirmationNumber": {
+ "description": "Confirmation number for the pick up request.",
+ "type": "string",
+ "readOnly": true
+ },
+ "readyByTime": {
+ "format": "date-time",
+ "description": "Time by which shipment should be ready for pick up, this is in local time of pick up area.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ShippingAddress": {
+ "description": "Shipping address where customer wishes to receive the device.",
+ "required": [
+ "streetAddress1",
+ "country",
+ "postalCode"
+ ],
+ "type": "object",
+ "properties": {
+ "streetAddress1": {
+ "description": "Street Address line 1.",
+ "type": "string"
+ },
+ "streetAddress2": {
+ "description": "Street Address line 2.",
+ "type": "string"
+ },
+ "streetAddress3": {
+ "description": "Street Address line 3.",
+ "type": "string"
+ },
+ "city": {
+ "description": "Name of the City.",
+ "type": "string"
+ },
+ "stateOrProvince": {
+ "description": "Name of the State or Province.",
+ "type": "string"
+ },
+ "country": {
+ "description": "Name of the Country.",
+ "type": "string"
+ },
+ "postalCode": {
+ "description": "Postal code.",
+ "type": "string"
+ },
+ "zipExtendedCode": {
+ "description": "Extended Zip Code.",
+ "type": "string"
+ },
+ "companyName": {
+ "description": "Name of the company.",
+ "type": "string"
+ },
+ "addressType": {
+ "description": "Type of address.",
+ "enum": [
+ "None",
+ "Residential",
+ "Commercial"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AddressType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "None",
+ "description": "Address type not known."
+ },
+ {
+ "value": "Residential",
+ "description": "Residential Address."
+ },
+ {
+ "value": "Commercial",
+ "description": "Commercial Address."
+ }
+ ]
+ }
+ }
+ }
+ },
+ "Sku": {
+ "description": "The Sku.",
+ "required": [
+ "name"
+ ],
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The sku name.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ },
+ "displayName": {
+ "description": "The display name of the sku.",
+ "type": "string"
+ },
+ "family": {
+ "description": "The sku family.",
+ "type": "string"
+ }
+ }
+ },
+ "SkuAvailabilityValidationRequest": {
+ "description": "Request to validate sku availability.",
+ "required": [
+ "deviceType",
+ "transferType",
+ "country",
+ "location",
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputRequest"
+ }
+ ],
+ "properties": {
+ "deviceType": {
+ "description": "Device type to be used for the job.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ },
+ "transferType": {
+ "description": "Type of the transfer.",
+ "enum": [
+ "ImportToAzure",
+ "ExportFromAzure"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TransferType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "ImportToAzure",
+ "description": "Import data to azure."
+ },
+ {
+ "value": "ExportFromAzure",
+ "description": "Export data from azure."
+ }
+ ]
+ }
+ },
+ "country": {
+ "description": "ISO country code. Country for hardware shipment. For codes check: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements",
+ "type": "string"
+ },
+ "location": {
+ "description": "Location for data transfer. For locations check: https://management.azure.com/subscriptions/SUBSCRIPTIONID/locations?api-version=2018-01-01",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "ValidateSkuAvailability"
+ },
+ "SkuAvailabilityValidationResponseProperties": {
+ "description": "Properties of sku availability validation response.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputResponse"
+ }
+ ],
+ "properties": {
+ "status": {
+ "description": "Sku availability validation status.",
+ "enum": [
+ "Valid",
+ "Invalid",
+ "Skipped"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ValidationStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Valid",
+ "description": "Validation is successful"
+ },
+ {
+ "value": "Invalid",
+ "description": "Validation is not successful"
+ },
+ {
+ "value": "Skipped",
+ "description": "Validation is skipped"
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidateSkuAvailability"
+ },
+ "SkuCapacity": {
+ "description": "Capacity of the sku.",
+ "type": "object",
+ "properties": {
+ "usable": {
+ "description": "Usable capacity in TB.",
+ "type": "string",
+ "readOnly": true
+ },
+ "maximum": {
+ "description": "Maximum capacity in TB.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "SkuCost": {
+ "description": "Describes metadata for retrieving price info.",
+ "type": "object",
+ "properties": {
+ "meterId": {
+ "description": "Meter id of the Sku.",
+ "type": "string",
+ "readOnly": true
+ },
+ "meterType": {
+ "description": "The type of the meter.",
+ "type": "string",
+ "readOnly": true
+ },
+ "multiplier": {
+ "format": "double",
+ "description": "Multiplier specifies the region specific value to be multiplied with 1$ guid. Eg: Our new regions will be using 1$ shipping guid with appropriate multiplier specific to region.",
+ "type": "number",
+ "readOnly": true
+ }
+ }
+ },
+ "SkuInformation": {
+ "description": "Information of the sku.",
+ "type": "object",
+ "properties": {
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The Sku.",
+ "readOnly": true
+ },
+ "enabled": {
+ "description": "The sku is enabled or not.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/SkuProperties",
+ "description": "Properties of the sku.",
+ "readOnly": true,
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "SkuProperties": {
+ "description": "Properties of the sku.",
+ "type": "object",
+ "properties": {
+ "dataLocationToServiceLocationMap": {
+ "description": "The map of data location to service location.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataLocationToServiceLocationMap"
+ },
+ "readOnly": true
+ },
+ "capacity": {
+ "$ref": "#/definitions/SkuCapacity",
+ "description": "Capacity of the Sku.",
+ "readOnly": true
+ },
+ "costs": {
+ "description": "Cost of the Sku.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SkuCost"
+ },
+ "readOnly": true
+ },
+ "apiVersions": {
+ "description": "Api versions that support this Sku.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "disabledReason": {
+ "description": "Reason why the Sku is disabled.",
+ "enum": [
+ "None",
+ "Country",
+ "Region",
+ "Feature",
+ "OfferType",
+ "NoSubscriptionInfo"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "SkuDisabledReason",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "None",
+ "description": "SKU is not disabled."
+ },
+ {
+ "value": "Country",
+ "description": "SKU is not available in the requested country."
+ },
+ {
+ "value": "Region",
+ "description": "SKU is not available to push data to the requested Azure region."
+ },
+ {
+ "value": "Feature",
+ "description": "Required features are not enabled for the SKU."
+ },
+ {
+ "value": "OfferType",
+ "description": "Subscription does not have required offer types for the SKU."
+ },
+ {
+ "value": "NoSubscriptionInfo",
+ "description": "Subscription has not registered to Microsoft.DataBox and Service does not have the subscription notification."
+ }
+ ]
+ }
+ },
+ "disabledReasonMessage": {
+ "description": "Message for why the Sku is disabled.",
+ "type": "string",
+ "readOnly": true
+ },
+ "requiredFeature": {
+ "description": "Required feature to access the sku.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "StorageAccountDetails": {
+ "description": "Details for the storage account.",
+ "required": [
+ "storageAccountId",
+ "dataAccountType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataAccountDetails"
+ }
+ ],
+ "properties": {
+ "storageAccountId": {
+ "description": "Storage Account Resource Id.",
+ "type": "string"
+ }
+ },
+ "x-ms-discriminator-value": "StorageAccount"
+ },
+ "SubscriptionIsAllowedToCreateJobValidationRequest": {
+ "description": "Request to validate subscription permission to create jobs.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputRequest"
+ }
+ ],
+ "properties": {},
+ "x-ms-discriminator-value": "ValidateSubscriptionIsAllowedToCreateJob"
+ },
+ "SubscriptionIsAllowedToCreateJobValidationResponseProperties": {
+ "description": "Properties of subscription permission to create job validation response.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputResponse"
+ }
+ ],
+ "properties": {
+ "status": {
+ "description": "Validation status of subscription permission to create job.",
+ "enum": [
+ "Valid",
+ "Invalid",
+ "Skipped"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ValidationStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "Valid",
+ "description": "Validation is successful"
+ },
+ {
+ "value": "Invalid",
+ "description": "Validation is not successful"
+ },
+ {
+ "value": "Skipped",
+ "description": "Validation is skipped"
+ }
+ ]
+ }
+ }
+ },
+ "x-ms-discriminator-value": "ValidateSubscriptionIsAllowedToCreateJob"
+ },
+ "TransferAllDetails": {
+ "description": "Details to transfer all data.",
+ "required": [
+ "dataAccountType"
+ ],
+ "type": "object",
+ "properties": {
+ "dataAccountType": {
+ "description": "Type of the account of data",
+ "enum": [
+ "StorageAccount",
+ "ManagedDisk"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "DataAccountType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "StorageAccount",
+ "description": "Storage Accounts ."
+ },
+ {
+ "value": "ManagedDisk",
+ "description": "Azure Managed disk storage."
+ }
+ ]
+ }
+ },
+ "transferAllBlobs": {
+ "description": "To indicate if all Azure blobs have to be transferred",
+ "type": "boolean"
+ },
+ "transferAllFiles": {
+ "description": "To indicate if all Azure Files have to be transferred",
+ "type": "boolean"
+ }
+ }
+ },
+ "TransferConfiguration": {
+ "description": "Configuration for defining the transfer of data.",
+ "required": [
+ "transferConfigurationType"
+ ],
+ "type": "object",
+ "properties": {
+ "transferConfigurationType": {
+ "description": "Type of the configuration for transfer.",
+ "enum": [
+ "TransferAll",
+ "TransferUsingFilter"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TransferConfigurationType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "TransferAll",
+ "description": "Transfer all the data."
+ },
+ {
+ "value": "TransferUsingFilter",
+ "description": "Transfer using filter."
+ }
+ ]
+ }
+ },
+ "transferFilterDetails": {
+ "description": "Map of filter type and the details to filter. This field is required only if the TransferConfigurationType is given as TransferUsingFilter.",
+ "type": "object",
+ "properties": {
+ "include": {
+ "description": "Details of the filtering the transfer of data.",
+ "$ref": "#/definitions/TransferFilterDetails"
+ }
+ }
+ },
+ "transferAllDetails": {
+ "description": "Map of filter type and the details to transfer all data. This field is required only if the TransferConfigurationType is given as TransferAll",
+ "type": "object",
+ "properties": {
+ "include": {
+ "description": "Details to transfer all data.",
+ "$ref": "#/definitions/TransferAllDetails"
+ }
+ }
+ }
+ }
+ },
+ "TransferFilterDetails": {
+ "description": "Details of the filtering the transfer of data.",
+ "required": [
+ "dataAccountType"
+ ],
+ "type": "object",
+ "properties": {
+ "dataAccountType": {
+ "description": "Type of the account of data.",
+ "enum": [
+ "StorageAccount",
+ "ManagedDisk"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "DataAccountType",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "StorageAccount",
+ "description": "Storage Accounts ."
+ },
+ {
+ "value": "ManagedDisk",
+ "description": "Azure Managed disk storage."
+ }
+ ]
+ }
+ },
+ "blobFilterDetails": {
+ "$ref": "#/definitions/BlobFilterDetails",
+ "description": "Filter details to transfer blobs."
+ },
+ "azureFileFilterDetails": {
+ "$ref": "#/definitions/AzureFileFilterDetails",
+ "description": "Filter details to transfer Azure files."
+ },
+ "filterFileDetails": {
+ "description": "Details of the filter files to be used for data transfer.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FilterFileDetails"
+ }
+ }
+ }
+ },
+ "TransportAvailabilityDetails": {
+ "description": "Transport options availability details for given region.",
+ "type": "object",
+ "properties": {
+ "shipmentType": {
+ "description": "Transport Shipment Type supported for given region.",
+ "enum": [
+ "CustomerManaged",
+ "MicrosoftManaged"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "TransportShipmentTypes",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "CustomerManaged",
+ "description": "Shipment Logistics is handled by the customer."
+ },
+ {
+ "value": "MicrosoftManaged",
+ "description": "Shipment Logistics is handled by Microsoft."
+ }
+ ]
+ }
+ }
+ }
+ },
+ "TransportAvailabilityRequest": {
+ "description": "Request body to get the transport availability for given sku.",
+ "type": "object",
+ "properties": {
+ "skuName": {
+ "description": "Type of the device.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ }
+ }
+ },
+ "TransportAvailabilityResponse": {
+ "description": "Transport options available for given sku in a region.",
+ "type": "object",
+ "properties": {
+ "transportAvailabilityDetails": {
+ "description": "List of transport availability details for given region",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TransportAvailabilityDetails"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "TransportPreferences": {
+ "description": "Preferences related to the shipment logistics of the sku",
+ "required": [
+ "preferredShipmentType"
+ ],
+ "type": "object",
+ "properties": {
+ "preferredShipmentType": {
+ "description": "Indicates Shipment Logistics type that the customer preferred.",
+ "enum": [
+ "CustomerManaged",
+ "MicrosoftManaged"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TransportShipmentTypes",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "CustomerManaged",
+ "description": "Shipment Logistics is handled by the customer."
+ },
+ {
+ "value": "MicrosoftManaged",
+ "description": "Shipment Logistics is handled by Microsoft."
+ }
+ ]
+ }
+ }
+ }
+ },
+ "UnencryptedCredentials": {
+ "description": "Unencrypted credentials for accessing device.",
+ "type": "object",
+ "properties": {
+ "jobName": {
+ "description": "Name of the job.",
+ "type": "string",
+ "readOnly": true
+ },
+ "jobSecrets": {
+ "$ref": "#/definitions/JobSecrets",
+ "description": "Secrets related to this job.",
+ "readOnly": true
+ }
+ }
+ },
+ "UnencryptedCredentialsList": {
+ "description": "List of unencrypted credentials for accessing device.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of unencrypted credentials.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UnencryptedCredentials"
+ }
+ },
+ "nextLink": {
+ "description": "Link for the next set of unencrypted credentials.",
+ "type": "string"
+ }
+ }
+ },
+ "UpdateJobDetails": {
+ "description": "Job details for update.",
+ "type": "object",
+ "properties": {
+ "contactDetails": {
+ "$ref": "#/definitions/ContactDetails",
+ "description": "Contact details for notification and shipping."
+ },
+ "shippingAddress": {
+ "$ref": "#/definitions/ShippingAddress",
+ "description": "Shipping address of the customer."
+ },
+ "keyEncryptionKey": {
+ "$ref": "#/definitions/KeyEncryptionKey",
+ "description": "Key encryption key for the job."
+ }
+ }
+ },
+ "UpdateJobProperties": {
+ "description": "Job Properties for update",
+ "type": "object",
+ "properties": {
+ "details": {
+ "$ref": "#/definitions/UpdateJobDetails",
+ "description": "Details of a job to be updated."
+ }
+ }
+ },
+ "ValidateAddress": {
+ "description": "The requirements to validate customer address where the device needs to be shipped.",
+ "required": [
+ "shippingAddress",
+ "deviceType",
+ "validationType"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ValidationInputRequest"
+ }
+ ],
+ "properties": {
+ "shippingAddress": {
+ "$ref": "#/definitions/ShippingAddress",
+ "description": "Shipping address of the customer."
+ },
+ "deviceType": {
+ "description": "Device type to be used for the job.",
+ "enum": [
+ "DataBox",
+ "DataBoxDisk",
+ "DataBoxHeavy"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "DataBox",
+ "description": "Data Box."
+ },
+ {
+ "value": "DataBoxDisk",
+ "description": "Data Box Disk."
+ },
+ {
+ "value": "DataBoxHeavy",
+ "description": "Data Box Heavy."
+ }
+ ]
+ }
+ },
+ "transportPreferences": {
+ "$ref": "#/definitions/TransportPreferences",
+ "description": "Preferences related to the shipment logistics of the sku."
+ }
+ },
+ "x-ms-discriminator-value": "ValidateAddress"
+ },
+ "ValidationInputRequest": {
+ "description": "Minimum fields that must be present in any type of validation request.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "properties": {
+ "validationType": {
+ "description": "Identifies the type of validation request.",
+ "enum": [
+ "ValidateAddress",
+ "ValidateSubscriptionIsAllowedToCreateJob",
+ "ValidatePreferences",
+ "ValidateCreateOrderLimit",
+ "ValidateSkuAvailability",
+ "ValidateDataTransferDetails"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ValidationInputDiscriminator",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "ValidateAddress",
+ "description": "Identify request and response of address validation."
+ },
+ {
+ "value": "ValidateSubscriptionIsAllowedToCreateJob",
+ "description": "Identify request and response for validation of subscription permission to create job."
+ },
+ {
+ "value": "ValidatePreferences",
+ "description": "Identify request and response of preference validation."
+ },
+ {
+ "value": "ValidateCreateOrderLimit",
+ "description": "Identify request and response of create order limit for subscription validation."
+ },
+ {
+ "value": "ValidateSkuAvailability",
+ "description": "Identify request and response of active job limit for sku availability."
+ },
+ {
+ "value": "ValidateDataTransferDetails",
+ "description": "Identify request and response of data transfer details validation."
+ }
+ ]
+ }
+ }
+ },
+ "discriminator": "validationType"
+ },
+ "ValidationInputResponse": {
+ "description": "Minimum properties that should be present in each individual validation response.",
+ "required": [
+ "validationType"
+ ],
+ "type": "object",
+ "properties": {
+ "validationType": {
+ "description": "Identifies the type of validation response.",
+ "enum": [
+ "ValidateAddress",
+ "ValidateSubscriptionIsAllowedToCreateJob",
+ "ValidatePreferences",
+ "ValidateCreateOrderLimit",
+ "ValidateSkuAvailability",
+ "ValidateDataTransferDetails"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ValidationInputDiscriminator",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "ValidateAddress",
+ "description": "Identify request and response of address validation."
+ },
+ {
+ "value": "ValidateSubscriptionIsAllowedToCreateJob",
+ "description": "Identify request and response for validation of subscription permission to create job."
+ },
+ {
+ "value": "ValidatePreferences",
+ "description": "Identify request and response of preference validation."
+ },
+ {
+ "value": "ValidateCreateOrderLimit",
+ "description": "Identify request and response of create order limit for subscription validation."
+ },
+ {
+ "value": "ValidateSkuAvailability",
+ "description": "Identify request and response of active job limit for sku availability."
+ },
+ {
+ "value": "ValidateDataTransferDetails",
+ "description": "Identify request and response of data transfer details validation."
+ }
+ ]
+ }
+ },
+ "error": {
+ "$ref": "#/definitions/CloudError",
+ "description": "Error code and message of validation response.",
+ "readOnly": true
+ }
+ },
+ "discriminator": "validationType"
+ },
+ "ValidationRequest": {
+ "description": "Minimum request requirement of any validation category.",
+ "required": [
+ "validationCategory",
+ "individualRequestDetails"
+ ],
+ "type": "object",
+ "properties": {
+ "validationCategory": {
+ "description": "Identify the nature of validation.",
+ "enum": [
+ "JobCreationValidation"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ValidationCategory",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "JobCreationValidation",
+ "description": "Identify request of pre-job creation validations."
+ }
+ ]
+ }
+ },
+ "individualRequestDetails": {
+ "description": "List of request details contain validationType and its request as key and value respectively.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ValidationInputRequest"
+ }
+ }
+ },
+ "discriminator": "validationCategory"
+ },
+ "ValidationResponse": {
+ "description": "Response of pre job creation validations.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ValidationResponseProperties",
+ "description": "Properties of pre job creation validation response.",
+ "readOnly": true,
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "ValidationResponseProperties": {
+ "description": "Properties of pre job creation validation response.",
+ "type": "object",
+ "properties": {
+ "status": {
+ "description": "Overall validation status.",
+ "enum": [
+ "AllValidToProceed",
+ "InputsRevisitRequired",
+ "CertainInputValidationsSkipped"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "OverallValidationStatus",
+ "modelAsExtensible": true,
+ "values": [
+ {
+ "value": "AllValidToProceed",
+ "description": "Every input request is valid."
+ },
+ {
+ "value": "InputsRevisitRequired",
+ "description": "Some input requests are not valid."
+ },
+ {
+ "value": "CertainInputValidationsSkipped",
+ "description": "Certain input validations skipped."
+ }
+ ]
+ }
+ },
+ "individualResponseDetails": {
+ "description": "List of response details contain validationType and its response as key and value respectively.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ValidationInputResponse"
+ },
+ "readOnly": true
+ }
+ }
+ }
+ },
+ "parameters": {
+ "apiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "description": "The API Version",
+ "required": true,
+ "type": "string"
+ },
+ "jobNameParameter": {
+ "name": "jobName",
+ "in": "path",
+ "description": "The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only",
+ "required": true,
+ "type": "string",
+ "maxLength": 24,
+ "minLength": 3,
+ "pattern": "^[-\\w\\.]+$",
+ "x-ms-parameter-location": "method"
+ },
+ "locationParameter": {
+ "name": "location",
+ "in": "path",
+ "description": "The location of the resource",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "resourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "description": "The Resource Group Name",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "subscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "The Subscription Id",
+ "required": true,
+ "type": "string"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/AvailableSkusPost.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/AvailableSkusPost.json
new file mode 100644
index 000000000000..1f8c4f4c1af2
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/AvailableSkusPost.json
@@ -0,0 +1,280 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "bvttoolrg6",
+ "location": "westus",
+ "api-version": "2020-04-01",
+ "x-ms-client-request-id": [
+ "ce815189-a9cc-4288-8166-d78f211bed5a"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "84"
+ ],
+ "availableSkuRequest": {
+ "transferType": "ImportToAzure",
+ "country": "US",
+ "location": "westus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "sku": {
+ "name": "DataBox"
+ },
+ "enabled": true,
+ "properties": {
+ "dataLocationToServiceLocationMap": [
+ {
+ "dataLocation": "westus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "centralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "eastus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "eastus2",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "northcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "southcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "westcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "westus2",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "centraluseuap",
+ "serviceLocation": "centraluseuap"
+ },
+ {
+ "dataLocation": "eastus2euap",
+ "serviceLocation": "eastus2euap"
+ }
+ ],
+ "capacity": {
+ "usable": "80",
+ "maximum": "100"
+ },
+ "costs": [
+ {
+ "meterId": "0cf23ffc-0b64-49e6-9bdd-1db885349042",
+ "meterType": "DataBoxServiceFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "a701f058-119b-4713-a923-bed7da4b7801",
+ "meterType": "DataBoxShippingFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "049fa331-0a48-4a81-9991-a6bef3c79fed",
+ "meterType": "DataBoxExtraDayFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "c3ea978d-6a0a-4632-b094-4fffcafcb057",
+ "meterType": "DataBoxLostOrDamagedDeviceFee",
+ "multiplier": 1
+ }
+ ],
+ "apiVersions": [
+ "2018-01-01"
+ ],
+ "disabledReason": "None"
+ }
+ },
+ {
+ "sku": {
+ "name": "DataBoxDisk"
+ },
+ "enabled": true,
+ "properties": {
+ "dataLocationToServiceLocationMap": [
+ {
+ "dataLocation": "westus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "centralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "eastus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "eastus2",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "northcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "southcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "westcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "westus2",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "centraluseuap",
+ "serviceLocation": "centraluseuap"
+ },
+ {
+ "dataLocation": "eastus2euap",
+ "serviceLocation": "eastus2euap"
+ }
+ ],
+ "capacity": {
+ "usable": "35",
+ "maximum": "40"
+ },
+ "costs": [
+ {
+ "meterId": "d95cd8b5-b6f1-4cd9-ae86-a016d1945d6f",
+ "meterType": "DataBoxDiskServiceFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "4b8cf572-cb04-4ef3-9528-2cda4e9b544e",
+ "meterType": "DataBoxDiskShippingFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "b6ae9bbf-815d-49dd-bb2b-77c497b72ba4",
+ "meterType": "DataBoxDiskDailyUsageFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "08bc0ea1-6c82-421b-b953-2a7a65810d2e",
+ "meterType": "DataBoxDiskLostDeviceFee",
+ "multiplier": 1
+ }
+ ],
+ "apiVersions": [
+ "2018-01-01"
+ ],
+ "disabledReason": "None"
+ }
+ },
+ {
+ "sku": {
+ "name": "DataBoxHeavy"
+ },
+ "enabled": true,
+ "properties": {
+ "dataLocationToServiceLocationMap": [
+ {
+ "dataLocation": "westus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "centralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "eastus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "eastus2",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "northcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "southcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "westcentralus",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "westus2",
+ "serviceLocation": "westus"
+ },
+ {
+ "dataLocation": "centraluseuap",
+ "serviceLocation": "centraluseuap"
+ },
+ {
+ "dataLocation": "eastus2euap",
+ "serviceLocation": "eastus2euap"
+ }
+ ],
+ "capacity": {
+ "usable": "800",
+ "maximum": "1000"
+ },
+ "costs": [
+ {
+ "meterId": "d0dccaaf-3de9-4c7a-ba97-f83551b90126",
+ "meterType": "DataBoxHeavyServiceFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "7b49d11f-d4f7-4029-a197-04998fd282f9",
+ "meterType": "DataBoxHeavyShippingFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "c2c66d53-11b4-4f11-9642-43c7c336f0b7",
+ "meterType": "DataBoxHeavyExtraDayFee",
+ "multiplier": 1
+ },
+ {
+ "meterId": "188dcd7e-fbd7-4a41-aa42-162b81b0510f",
+ "meterType": "DataBoxHeavyLostOrDamagedDeviceFee",
+ "multiplier": 1
+ }
+ ],
+ "apiVersions": [
+ "2018-01-01"
+ ],
+ "disabledReason": "None",
+ "requiredFeature": "HeavyCreateAccess"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/BookShipmentPickupPost.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/BookShipmentPickupPost.json
new file mode 100644
index 000000000000..bec928ad7c87
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/BookShipmentPickupPost.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "bvttoolrg6",
+ "jobName": "TJ-636646322037905056",
+ "api-version": "2019-09-01",
+ "x-ms-client-request-id": [
+ "e1437186-b41d-492e-9b7a-e197c28a517a"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.27817.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18362.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.2.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "118"
+ ],
+ "shipmentPickUpRequest": {
+ "startTime": "2019-09-20T18:30:00Z",
+ "endTime": "2019-09-22T18:30:00Z",
+ "shipmentLocation": "Front desk"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "confirmationNumber": "2929602E9CP",
+ "readyByTime": "2019-09-20T18:30:00Z"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsCancelPost.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsCancelPost.json
new file mode 100644
index 000000000000..b0615f487570
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsCancelPost.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg5154",
+ "jobName": "SdkJob952",
+ "api-version": "2020-04-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "95fc15f7-4976-46bb-8370-74ed4cb676be"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "30"
+ ],
+ "cancellationReason": {
+ "reason": "CancelTest"
+ }
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsCreate.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsCreate.json
new file mode 100644
index 000000000000..d4c85d99bfb2
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsCreate.json
@@ -0,0 +1,184 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg5154",
+ "jobName": "SdkJob952",
+ "api-version": "2020-04-01",
+ "x-ms-client-request-id": [
+ "04f2835f-a2a2-4f25-96df-568460e5be24"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "1064"
+ ],
+ "jobResource": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "details": {
+ "jobDetailsType": "DataBox",
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "dataImportDetails": [
+ {
+ "accountDetails": {
+ "dataAccountType": "StorageAccount",
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/databoxbvt/providers/Microsoft.Storage/storageAccounts/databoxbvttestaccount"
+ }
+ }
+ ]
+ }
+ },
+ "location": "westus",
+ "sku": {
+ "name": "DataBox"
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "status": "DeviceOrdered",
+ "startTime": "2019-09-21T14:49:49.0027611+05:30",
+ "details": {
+ "copyProgress": [],
+ "jobStages": [
+ {
+ "stageName": "DeviceOrdered",
+ "displayName": "Ordered",
+ "stageStatus": "Succeeded",
+ "stageTime": "2019-09-21T14:49:52.3995743+05:30"
+ },
+ {
+ "stageName": "DevicePrepared",
+ "displayName": "Processed",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Dispatched",
+ "displayName": "Dispatched",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Delivered",
+ "displayName": "Delivered",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "PickedUp",
+ "displayName": "Picked up",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "AtAzureDC",
+ "displayName": "Received",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "DataCopy",
+ "displayName": "Data copy in progress",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Completed",
+ "displayName": "Completed",
+ "stageStatus": "None"
+ }
+ ],
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ],
+ "notificationPreference": [
+ {
+ "stageName": "DevicePrepared",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Dispatched",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Delivered",
+ "sendNotification": true
+ },
+ {
+ "stageName": "PickedUp",
+ "sendNotification": true
+ },
+ {
+ "stageName": "AtAzureDC",
+ "sendNotification": true
+ },
+ {
+ "stageName": "DataCopy",
+ "sendNotification": true
+ }
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "jobDetailsType": "DataBox",
+ "copyLogDetails": []
+ },
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "name": "SdkJob952",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg5154/providers/Microsoft.DataBox/jobs/SdkJob952",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsCreateDevicePassword.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsCreateDevicePassword.json
new file mode 100644
index 000000000000..e0966d489b9f
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsCreateDevicePassword.json
@@ -0,0 +1,186 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg7478",
+ "jobName": "SdkJob9640",
+ "api-version": "2020-04-01",
+ "x-ms-client-request-id": [
+ "c4c8f926-ebbe-4c07-ae1a-b716911058df"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "1168"
+ ],
+ "jobResource": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "details": {
+ "jobDetailsType": "DataBox",
+ "devicePassword": "Abcd223@22344",
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "dataImportDetails": [
+ {
+ "accountDetails": {
+ "dataAccountType": "StorageAccount",
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/databoxbvt1/providers/Microsoft.Storage/storageAccounts/databoxbvttestaccount2",
+ "sharePassword": "Abcd223@22344Abcd223@22344"
+ }
+ }
+ ]
+ }
+ },
+ "location": "westus",
+ "sku": {
+ "name": "DataBox"
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "status": "DeviceOrdered",
+ "startTime": "2019-09-21T14:49:49.0027611+05:30",
+ "details": {
+ "copyProgress": [],
+ "jobStages": [
+ {
+ "stageName": "DeviceOrdered",
+ "displayName": "Ordered",
+ "stageStatus": "Succeeded",
+ "stageTime": "2019-09-21T14:49:52.3995743+05:30"
+ },
+ {
+ "stageName": "DevicePrepared",
+ "displayName": "Processed",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Dispatched",
+ "displayName": "Dispatched",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Delivered",
+ "displayName": "Delivered",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "PickedUp",
+ "displayName": "Picked up",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "AtAzureDC",
+ "displayName": "Received",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "DataCopy",
+ "displayName": "Data copy in progress",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Completed",
+ "displayName": "Completed",
+ "stageStatus": "None"
+ }
+ ],
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ],
+ "notificationPreference": [
+ {
+ "stageName": "DevicePrepared",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Dispatched",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Delivered",
+ "sendNotification": true
+ },
+ {
+ "stageName": "PickedUp",
+ "sendNotification": true
+ },
+ {
+ "stageName": "AtAzureDC",
+ "sendNotification": true
+ },
+ {
+ "stageName": "DataCopy",
+ "sendNotification": true
+ }
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "jobDetailsType": "DataBox",
+ "copyLogDetails": []
+ },
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "name": "SdkJob9640",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg7478/providers/Microsoft.DataBox/jobs/SdkJob9640",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsCreateExport.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsCreateExport.json
new file mode 100644
index 000000000000..9ed85155cd73
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsCreateExport.json
@@ -0,0 +1,194 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg8091",
+ "jobName": "SdkJob6429",
+ "api-version": "2020-04-01",
+ "x-ms-client-request-id": [
+ "80eaafc7-e8b7-4c5a-ad81-b1ecb9573cd4"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "1395"
+ ],
+ "jobResource": {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "details": {
+ "jobDetailsType": "DataBox",
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "dataExportDetails": [
+ {
+ "transferConfiguration": {
+ "transferConfigurationType": "TransferAll",
+ "transferAllDetails": {
+ "include": {
+ "dataAccountType": "StorageAccount",
+ "transferAllBlobs": true,
+ "transferAllFiles": true
+ }
+ }
+ },
+ "accountDetails": {
+ "dataAccountType": "StorageAccount",
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.Storage/storageAccounts/aaaaaa2"
+ }
+ }
+ ]
+ }
+ },
+ "location": "westus",
+ "sku": {
+ "name": "DataBox"
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "status": "DeviceOrdered",
+ "startTime": "2019-09-21T14:49:49.0027611+05:30",
+ "details": {
+ "copyProgress": [],
+ "jobStages": [
+ {
+ "stageName": "DeviceOrdered",
+ "displayName": "Ordered",
+ "stageStatus": "Succeeded",
+ "stageTime": "2019-09-21T14:49:52.3995743+05:30"
+ },
+ {
+ "stageName": "DevicePrepared",
+ "displayName": "Processed",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "DataCopy",
+ "displayName": "Data copy in progress",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Dispatched",
+ "displayName": "Dispatched",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Delivered",
+ "displayName": "Delivered",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "PickedUp",
+ "displayName": "Picked up",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "AtAzureDC",
+ "displayName": "Received",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Completed",
+ "displayName": "Completed",
+ "stageStatus": "None"
+ }
+ ],
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ],
+ "notificationPreference": [
+ {
+ "stageName": "DevicePrepared",
+ "sendNotification": true
+ },
+ {
+ "stageName": "DataCopy",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Dispatched",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Delivered",
+ "sendNotification": true
+ },
+ {
+ "stageName": "PickedUp",
+ "sendNotification": true
+ },
+ {
+ "stageName": "AtAzureDC",
+ "sendNotification": true
+ }
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "jobDetailsType": "DataBox",
+ "copyLogDetails": []
+ },
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "name": "SdkJob6429",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg8091/providers/Microsoft.DataBox/jobs/SdkJob6429",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsDelete.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsDelete.json
new file mode 100644
index 000000000000..eb1ae2a45dec
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsDelete.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg5154",
+ "jobName": "SdkJob952",
+ "api-version": "2020-04-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "f5c227e2-13d8-4ce9-9ef2-f3c63f6935b9"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsGet.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsGet.json
new file mode 100644
index 000000000000..ba27dbca634d
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsGet.json
@@ -0,0 +1,166 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg5154",
+ "jobName": "SdkJob952",
+ "api-version": "2020-04-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "e76214b0-6013-499e-8f91-3a287f421f2e"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": true,
+ "status": "DeviceOrdered",
+ "startTime": "2020-08-07T10:50:36.3341513+05:30",
+ "details": {
+ "copyProgress": [],
+ "jobStages": [
+ {
+ "stageName": "DeviceOrdered",
+ "displayName": "Ordered",
+ "stageStatus": "Succeeded",
+ "stageTime": "2020-08-07T10:50:40.1872217+05:30"
+ },
+ {
+ "stageName": "DevicePrepared",
+ "displayName": "Processed",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Dispatched",
+ "displayName": "Dispatched",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Delivered",
+ "displayName": "Delivered",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "PickedUp",
+ "displayName": "Picked up",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "AtAzureDC",
+ "displayName": "Received",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "DataCopy",
+ "displayName": "Data copy in progress",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Completed",
+ "displayName": "Completed",
+ "stageStatus": "None"
+ }
+ ],
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ],
+ "notificationPreference": [
+ {
+ "stageName": "DevicePrepared",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Dispatched",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Delivered",
+ "sendNotification": true
+ },
+ {
+ "stageName": "PickedUp",
+ "sendNotification": true
+ },
+ {
+ "stageName": "AtAzureDC",
+ "sendNotification": true
+ },
+ {
+ "stageName": "DataCopy",
+ "sendNotification": true
+ }
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "deliveryPackage": {
+ "carrierName": "",
+ "trackingId": "",
+ "trackingUrl": ""
+ },
+ "returnPackage": {
+ "carrierName": "",
+ "trackingId": "",
+ "trackingUrl": ""
+ },
+ "dataImportDetails": [
+ {
+ "accountDetails": {
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/databoxbvt/providers/Microsoft.Storage/storageAccounts/databoxbvttestaccount",
+ "dataAccountType": "StorageAccount"
+ }
+ }
+ ],
+ "jobDetailsType": "DataBox",
+ "copyLogDetails": [],
+ "reverseShipmentLabelSasKey": "https://wusbeta.blob.core.windows.net/customer-reverse-shipment-instructions/CustomerShipmentInstructions_MicrosoftManaged.PDF?sv=2018-03-28&sr=b&sig=urwfAELvNV69IGHdcXlRCn6o3O3dWZQKaRipmoAdrI0%3D&st=2020-08-07T05%3A10%3A58Z&se=2020-08-08T05%3A20%3A58Z&sp=r",
+ "keyEncryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "SdkJob952",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg5154/providers/Microsoft.DataBox/jobs/SdkJob952",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsGetCmk.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsGetCmk.json
new file mode 100644
index 000000000000..4ae6cb839525
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsGetCmk.json
@@ -0,0 +1,170 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg7937",
+ "jobName": "SdkJob1735",
+ "api-version": "2020-04-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "c8cf9d3e-55f1-488f-bcee-53f4939f44e8"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": true,
+ "status": "DeviceOrdered",
+ "startTime": "2020-08-07T10:47:42.0009935+05:30",
+ "details": {
+ "copyProgress": [],
+ "jobStages": [
+ {
+ "stageName": "DeviceOrdered",
+ "displayName": "Ordered",
+ "stageStatus": "Succeeded",
+ "stageTime": "2020-08-07T10:47:44.8736499+05:30"
+ },
+ {
+ "stageName": "DevicePrepared",
+ "displayName": "Processed",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Dispatched",
+ "displayName": "Dispatched",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Delivered",
+ "displayName": "Delivered",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "PickedUp",
+ "displayName": "Picked up",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "AtAzureDC",
+ "displayName": "Received",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "DataCopy",
+ "displayName": "Data copy in progress",
+ "stageStatus": "None"
+ },
+ {
+ "stageName": "Completed",
+ "displayName": "Completed",
+ "stageStatus": "None"
+ }
+ ],
+ "contactDetails": {
+ "contactName": "Public SDK Test",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ],
+ "notificationPreference": [
+ {
+ "stageName": "DevicePrepared",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Dispatched",
+ "sendNotification": true
+ },
+ {
+ "stageName": "Delivered",
+ "sendNotification": true
+ },
+ {
+ "stageName": "PickedUp",
+ "sendNotification": true
+ },
+ {
+ "stageName": "AtAzureDC",
+ "sendNotification": true
+ },
+ {
+ "stageName": "DataCopy",
+ "sendNotification": true
+ }
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "deliveryPackage": {
+ "carrierName": "",
+ "trackingId": "",
+ "trackingUrl": ""
+ },
+ "returnPackage": {
+ "carrierName": "",
+ "trackingId": "",
+ "trackingUrl": ""
+ },
+ "dataImportDetails": [
+ {
+ "accountDetails": {
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/databoxbvt1/providers/Microsoft.Storage/storageAccounts/databoxbvttestaccount2",
+ "dataAccountType": "StorageAccount"
+ }
+ }
+ ],
+ "jobDetailsType": "DataBox",
+ "copyLogDetails": [],
+ "reverseShipmentLabelSasKey": "https://wusbeta.blob.core.windows.net/customer-reverse-shipment-instructions/CustomerShipmentInstructions_MicrosoftManaged.PDF?sv=2018-03-28&sr=b&sig=JSZSeKrFrrwWbZ4zd7PNdGdNYKExKpxa98vRDDH6ZIk%3D&st=2020-08-07T05%3A08%3A51Z&se=2020-08-08T05%3A18%3A51Z&sp=r",
+ "keyEncryptionKey": {
+ "kekType": "CustomerManaged",
+ "kekUrl": "https://sdkkeyvault.vault.azure.net/keys/SSDKEY/",
+ "kekVaultResourceID": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.KeyVault/vaults/SDKKeyVault"
+ }
+ },
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "9a68a7c4-0a18-4d06-a5fb-7058e9e98458",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47"
+ },
+ "name": "SdkJob1735",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg7937/providers/Microsoft.DataBox/jobs/SdkJob1735",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsGetExport.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsGetExport.json
new file mode 100644
index 000000000000..2544b1682896
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsGetExport.json
@@ -0,0 +1,135 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg8091",
+ "jobName": "SdkJob6429",
+ "api-version": "2020-04-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "b3739c7c-02b6-46c2-a04c-da6f8bca279c"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": true,
+ "status": "Cancelled",
+ "startTime": "2020-08-07T10:49:08.7195419+05:30",
+ "details": {
+ "copyProgress": [
+ {
+ "storageAccountName": "aaaaaa2",
+ "transferType": "ExportFromAzure",
+ "dataAccountType": "StorageAccount",
+ "accountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.Storage/storageAccounts/aaaaaa2",
+ "bytesProcessed": 0,
+ "totalBytesToProcess": 0,
+ "isEnumerationInProgress": false
+ }
+ ],
+ "jobStages": [
+ {
+ "stageName": "DeviceOrdered",
+ "displayName": "Ordered",
+ "stageStatus": "Succeeded",
+ "stageTime": "2020-08-07T10:49:12.7675644+05:30"
+ },
+ {
+ "stageName": "Cancelled",
+ "displayName": "Canceled",
+ "stageStatus": "Succeeded",
+ "stageTime": "2020-08-07T10:49:57.2572438+05:30"
+ }
+ ],
+ "contactDetails": {
+ "contactName": " ",
+ "emailList": [],
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "notificationPreference": []
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "deliveryPackage": {
+ "carrierName": "",
+ "trackingId": "",
+ "trackingUrl": ""
+ },
+ "returnPackage": {
+ "carrierName": "",
+ "trackingId": "",
+ "trackingUrl": ""
+ },
+ "dataImportDetails": [],
+ "dataExportDetails": [
+ {
+ "transferConfiguration": {
+ "transferConfigurationType": "TransferAll",
+ "transferFilterDetails": {},
+ "transferAllDetails": {
+ "include": {
+ "dataAccountType": "StorageAccount",
+ "transferAllBlobs": true,
+ "transferAllFiles": true
+ }
+ }
+ },
+ "logCollectionLevel": "Error",
+ "accountDetails": {
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.Storage/storageAccounts/aaaaaa2",
+ "dataAccountType": "StorageAccount"
+ }
+ }
+ ],
+ "jobDetailsType": "DataBox",
+ "copyLogDetails": [],
+ "reverseShipmentLabelSasKey": "https://wusbeta.blob.core.windows.net/customer-reverse-shipment-instructions/CustomerShipmentInstructions_MicrosoftManaged.PDF?sv=2018-03-28&sr=b&sig=04aL%2FTe7998qQJlhmGI3C0Q%2FxsCVo1t0B4uQUIx7TmQ%3D&st=2020-08-07T05%3A10%3A05Z&se=2020-08-08T05%3A20%3A05Z&sp=r",
+ "chainOfCustodySasKey": "https://wusbeta.blob.core.windows.net/chainofcustody/9a6ee052-bcff-4b5e-a478-7dcbfb86e9fb.txt?sv=2018-03-28&sr=b&sig=JbBBXZKharvfg35ZfmrhowO1DuOpzcZCNUdeFzklvWs%3D&st=2020-08-07T05%3A10%3A05Z&se=2020-08-07T05%3A40%3A05Z&sp=r",
+ "keyEncryptionKey": {
+ "kekType": "MicrosoftManaged"
+ }
+ },
+ "cancellationReason": "CancelTest",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "SdkJob6429",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg8091/providers/Microsoft.DataBox/jobs/SdkJob6429",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsList.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsList.json
new file mode 100644
index 000000000000..09068ac61e28
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsList.json
@@ -0,0 +1,805 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "api-version": "2020-04-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "044127c5-663e-4a0f-9061-2fa0ca8058c4"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2018-08-30T14:44:39.77401+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "australiaeast",
+ "tags": {},
+ "sku": {
+ "name": "DataBoxDisk"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "mnaustest",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/ausresgrpmn/providers/Microsoft.DataBox/jobs/mnaustest",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2018-09-10T18:03:22.2578238+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "australiaeast",
+ "tags": {},
+ "sku": {
+ "name": "DataBoxDisk"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "portalcontractAUS",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/ausresgrpmn/providers/Microsoft.DataBox/jobs/portalcontractAUS",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2018-08-30T15:17:17.3753642+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "australiaeast",
+ "tags": {},
+ "sku": {
+ "name": "DataBoxDisk"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "testBB-diskAU",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/testBB/providers/Microsoft.DataBox/jobs/testBB-diskAU",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-05-04T11:12:15.5972523+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "allXML",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/allXML",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": false,
+ "status": "DeviceOrdered",
+ "startTime": "2020-05-07T15:51:08.4479315+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "bothExportAllxml",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/bothExportAllxml",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-05-04T19:44:59.2410723+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "exportAll",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/exportAll",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-05-04T18:31:05.3036028+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "importRegressnTest",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/importRegressnTest",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": false,
+ "status": "DeviceOrdered",
+ "startTime": "2020-05-09T01:57:03.8985885+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "testBotthXMLAndAll",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/testBotthXMLAndAll",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-05-05T15:56:52.6983398+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "testExportAllOrder",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/testExportAllOrder",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-05-04T17:45:25.464989+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "testPayload",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/testPayload",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-05-04T10:43:04.8775864+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "xmlOnlyOrder",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat12/providers/Microsoft.DataBox/jobs/xmlOnlyOrder",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2018-11-27T15:17:49.0760408+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "testbadresourcegroup",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat3198inh0-9)inh(il(h)_fyoin)(upf(yLASD0-FJ(hal-DSNWP0JDS0P3-0SJ93/providers/Microsoft.DataBox/jobs/testbadresourcegroup",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2019-01-04T09:08:49.9928621+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "andipodtest4jan",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/andipodtest4jan",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-05-28T15:20:48.1058546+05:30",
+ "cancellationReason": "NoLongerNeeded null",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "dbtest1",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/dbtest1",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-04-14T08:51:18.2067875+05:30",
+ "cancellationReason": "IncorrectOrder null",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "degautam14-04-Clone",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/degautam14-04-Clone",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": false,
+ "status": "DeviceOrdered",
+ "startTime": "2020-05-27T18:08:30.6622356+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "degautamtestexport",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/degautamtestexport",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": false,
+ "status": "DeviceOrdered",
+ "startTime": "2020-05-21T20:41:02.3837388+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "DegautamTestExportOrder",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/DegautamTestExportOrder",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": false,
+ "status": "DeviceOrdered",
+ "startTime": "2020-05-24T07:56:23.6839464+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "degautamtestorder",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/degautamtestorder",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-04-14T08:48:21.2260174+05:30",
+ "cancellationReason": "IncorrectOrder null",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "degautamTestOrder14-04",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/degautamTestOrder14-04",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": false,
+ "status": "DeviceOrdered",
+ "startTime": "2020-05-12T12:19:19.8627264+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "export",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/export",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-04-05T19:50:20.9692355+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "exportTestResource",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.DataBox/jobs/exportTestResource",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-04-10T15:09:45.7080012+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "sanakTestImportNew",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.DataBox/jobs/sanakTestImportNew",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-04-10T15:13:02.5724966+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "sanakTestImportOld",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.DataBox/jobs/sanakTestImportOld",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ExportFromAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-04-20T13:39:28.1940929+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "sanakTestImportOld1",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.DataBox/jobs/sanakTestImportOld1",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2020-04-10T15:14:59.6879599+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "sanakTestImportOld2",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.DataBox/jobs/sanakTestImportOld2",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": false,
+ "status": "DeviceOrdered",
+ "startTime": "2020-07-21T23:43:34.513148+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "saranyagorder",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/saranyagorder",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2019-07-04T14:01:50.9232807+05:30",
+ "cancellationReason": "IncorrectOrder null",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "testdeepak04-07",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/testdeepak04-07",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": false,
+ "isDeletable": true,
+ "isShippingAddressEditable": false,
+ "isPrepareToShipEnabled": false,
+ "status": "Cancelled",
+ "startTime": "2019-02-11T12:33:16.6231232+05:30",
+ "cancellationReason": "Old job which is still in ordered state cancelled by the service",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": false
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBoxHeavy"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "testdurga-heavy",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/akvenkat/providers/Microsoft.DataBox/jobs/testdurga-heavy",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/providers/Microsoft.DataBox/jobs?api-version=2020-04-01&%24skiptoken=fVJdb5swFP0v0bq3NMaFFipVU5oATRbSxBjz8WYDIQbzoUBISNX%2fPrfVumnaJvnB8rn3nON77suoSs%2fdildFO7p%2fGfmmiz13dD%2fad13T3k8mJa1olpZp1V3Ty%2fGQXsd1OWmPrI0PvOl4XbWTHb3VgQ53Y323uxurFGpjQ4vvxnFqJFRTFajC3aQ51D1P0kM7cXh8qNt6113PaUcf6%2fMkr1n7jTZ83EtcUj5AAMEYqGOgfP3SFrzBdZFWD5u5oTL%2flCUlGWIoepYD7rjqacEfBSvXfWSLY3QBPAlQucImXOT6FWTzba1voXFMJJr4FqC%2bcSS2cYh89QPNFvPznEFNIpoSBqiRd4%2fBTrBcXc%2f4NFvMpjr51FSHVT7VV0ok4motaz9ZZtNsYyEttj3JS2yLM9uTdT9fpI83pmxjaiJ9QtswWAL6obaKgkL2OK4pBS3KPG%2fAAD2uTaXzA7RBStPhqjg5lvBcbDnEbs9%2b0OSJVQwEE4qAd8YFslJPM91SCdNiWYYiaWm57p6DhjuiPmFbcamNnlApuAP3JfZCLfYXg1vV%2bgr8y9Efnl12k%2fzyCp9nVs5IdBvmaz8l0kuFIt9c3oQkVpjY327LKGc%2beteitnnxyzNnAaojM1QTJbt45Tl3lOUhsvbfmRDY8Q1KQDhEBFkrfOpxSdTEWvYJ6ESKf8vCtoYIEoBtI%2f%2fI6y0D72nZMN8aUtkpp%2f%2bXivffzE%2f9f7dBTmPds0puQUX2cmd6JlBPITlusqubRJ7R6%2bsP"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsListByResourceGroup.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsListByResourceGroup.json
new file mode 100644
index 000000000000..f3697a29a111
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsListByResourceGroup.json
@@ -0,0 +1,84 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg5154",
+ "api-version": "2020-04-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "c1514209-a439-4bd1-b040-76d7539d2509"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": true,
+ "status": "DeviceOrdered",
+ "startTime": "2020-07-03T11:55:54.463792+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "fac84c35-5490-4b11-81b9-770053ccbe3b",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47"
+ },
+ "name": "SdkJob5928",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg5154/providers/Microsoft.DataBox/jobs/SdkJob5928",
+ "type": "Microsoft.DataBox/jobs"
+ },
+ {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isDeletable": false,
+ "isShippingAddressEditable": true,
+ "isPrepareToShipEnabled": true,
+ "status": "DeviceOrdered",
+ "startTime": "2020-08-07T10:50:36.3341513+05:30",
+ "deliveryType": "NonScheduled",
+ "deliveryInfo": {
+ "scheduledDateTime": "0001-01-01T05:30:00+05:30"
+ },
+ "isCancellableWithoutFee": true
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "identity": {
+ "type": "None"
+ },
+ "name": "SdkJob952",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg5154/providers/Microsoft.DataBox/jobs/SdkJob952",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsListCredentials.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsListCredentials.json
new file mode 100644
index 000000000000..20101ff6dc09
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsListCredentials.json
@@ -0,0 +1,92 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "bvttoolrg6",
+ "jobName": "TJ-636646322037905056",
+ "api-version": "2020-04-01",
+ "x-ms-client-request-id": [
+ "cda11c92-529b-4b75-b56d-ff1a69ffeeba"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "jobName": "TJ-636646322037905056",
+ "jobSecrets": {
+ "podSecrets": [
+ {
+ "deviceSerialNumber": "testimolapod-3ecc44ce",
+ "devicePassword": "cT5nt8R;S%5",
+ "networkConfigurations": [
+ {
+ "name": "DataPort3",
+ "macAddress": "D05099C1F439"
+ },
+ {
+ "name": "DataPort1",
+ "macAddress": "EC0D9A21A6C0"
+ },
+ {
+ "name": "DataPort2",
+ "macAddress": "EC0D9A21A6C1"
+ }
+ ],
+ "encodedValidationCertPubKey": "5CYoAoVKEBa4WgPVis8keX94w30pon4jGMADSqcdE/NlHLChj6Cmhbl4q9QOFKSB/US4AwhS7zY1QS3YMDrkAPfOy7Hi6kWMBpJWZidTq3oXX8FAQjg+IqQESti/2jvAlcDpO2453rgd7Yb6XZ43P8MMTpTjcarI0ImCf//eITQWnFa3AzfIJ9C+hxCCaA7HTYhwQEPUBMwyQJsI6v6WuQysROtlBgx1YtbWFhDVbcqYRSLIbaj+RdzlvxvDJSo70kv+8em5upuDTpVE7xP+WePLlARdSPNwwfRzHnvCUqC2UqXHpRUhQlYnMqAJEcjjroRnyIGumPmmQ8O155X8aw==",
+ "accountCredentialDetails": [
+ {
+ "accountName": "databoxbvttestaccount",
+ "dataAccountType": "StorageAccount",
+ "accountConnectionString": "",
+ "shareCredentialDetails": [
+ {
+ "shareName": "databoxbvttestaccount_PageBlob",
+ "shareType": "PageBlob",
+ "userName": "databoxbvttestac_903",
+ "password": "4N)K4(j6tyR",
+ "supportedAccessProtocols": [
+ "SMB"
+ ]
+ },
+ {
+ "shareName": "databoxbvttestaccount_BlockBlob",
+ "shareType": "BlockBlob",
+ "userName": "databoxbvttestac_903",
+ "password": "4N)K4(j6tyR",
+ "supportedAccessProtocols": [
+ "SMB"
+ ]
+ },
+ {
+ "shareName": "databoxbvttestaccount_AzFile",
+ "shareType": "AzureFile",
+ "userName": "databoxbvttestac_903",
+ "password": "4N)K4(j6tyR",
+ "supportedAccessProtocols": [
+ "SMB"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "jobSecretsType": "DataBox",
+ "dcAccessSecurityCode": {}
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsPatch.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsPatch.json
new file mode 100644
index 000000000000..2f34b6fd3217
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsPatch.json
@@ -0,0 +1,73 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg5154",
+ "jobName": "SdkJob952",
+ "api-version": "2020-04-01",
+ "$expand": "details",
+ "x-ms-client-request-id": [
+ "ff3829ca-bcb0-4737-b6e0-52af57f34bb7"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "584"
+ ],
+ "jobResourceUpdateParameter": {
+ "properties": {
+ "details": {
+ "contactDetails": {
+ "contactName": "Update Job",
+ "phone": "1234567890",
+ "phoneExtension": "1234",
+ "emailList": [
+ "testing@microsoft.com"
+ ]
+ },
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isShippingAddressEditable": true,
+ "status": "DeviceOrdered",
+ "startTime": "2018-04-13T16:28:38.9999793+05:30"
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "name": "SdkJob952",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg5154/providers/Microsoft.DataBox/jobs/SdkJob952",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsPatchCmk.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsPatchCmk.json
new file mode 100644
index 000000000000..899ea6b87097
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/JobsPatchCmk.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg7937",
+ "jobName": "SdkJob1735",
+ "api-version": "2020-04-01",
+ "x-ms-client-request-id": [
+ "fcab0fa9-7af8-47e0-b570-d703a48ee66b"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "358"
+ ],
+ "jobResourceUpdateParameter": {
+ "properties": {
+ "details": {
+ "keyEncryptionKey": {
+ "kekType": "CustomerManaged",
+ "kekUrl": "https://sdkkeyvault.vault.azure.net/keys/SSDKEY/",
+ "kekVaultResourceID": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/akvenkat/providers/Microsoft.KeyVault/vaults/SDKKeyVault"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {},
+ "200": {
+ "body": {
+ "properties": {
+ "transferType": "ImportToAzure",
+ "isCancellable": true,
+ "isShippingAddressEditable": true,
+ "status": "DeviceOrdered",
+ "startTime": "2018-04-13T16:28:38.9999793+05:30"
+ },
+ "location": "westus",
+ "tags": {},
+ "sku": {
+ "name": "DataBox"
+ },
+ "name": "SdkJob1735",
+ "id": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourceGroups/SdkRg7937/providers/Microsoft.DataBox/jobs/SdkJob1735",
+ "type": "Microsoft.DataBox/jobs"
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/OperationsGet.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/OperationsGet.json
new file mode 100644
index 000000000000..175a10a5e8cd
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/OperationsGet.json
@@ -0,0 +1,212 @@
+{
+ "parameters": {
+ "api-version": "2020-04-01",
+ "x-ms-client-request-id": [
+ "b9453354-c675-40a8-99c0-8039818c85fd"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ]
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.DataBox/locations/operationResults/read",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Operation Results",
+ "operation": "List Operation Results",
+ "description": "List or get the Operation Results"
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/jobs/cancel/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Orders",
+ "operation": "Cancel",
+ "description": "Cancels an order in progress."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/jobs/bookShipmentPickUp/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Orders",
+ "operation": "Book Shipment Pick Up",
+ "description": "Allows to book a pick up for return shipments."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/jobs/read",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Orders",
+ "operation": "List Orders",
+ "description": "List or get the Orders"
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/jobs/delete",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Orders",
+ "operation": "Delete Orders",
+ "description": "Delete the Orders"
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/jobs/write",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Orders",
+ "operation": "Create or Update Orders",
+ "description": "Create or update the Orders"
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/jobs/listCredentials/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Orders",
+ "operation": "List Credentials",
+ "description": "Lists the unencrypted credentials related to the order."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/locations/validateInputs/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Validate Inputs",
+ "operation": "Validate Inputs",
+ "description": "This method does all type of validations."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/locations/validateAddress/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Validate Address",
+ "operation": "Validate Address",
+ "description": "Validates the shipping address and provides alternate addresses if any."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/subscriptions/resourceGroups/moveResources/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Move Resource",
+ "operation": "Move Resource",
+ "description": "This method performs the resource move."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/subscriptions/resourceGroups/validateMoveResources/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Move Resource",
+ "operation": "Validate Move Resource Request",
+ "description": "This method validates whether resource move is allowed or not."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/locations/availableSkus/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Available Skus",
+ "operation": "Availabe Skus",
+ "description": "This method returns the list of available skus."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/locations/regionConfiguration/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Region Configuration",
+ "operation": "Region Configuration",
+ "description": "This method returns the configurations for the region."
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/locations/availableSkus/read",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Available Skus",
+ "operation": "List Available Skus",
+ "description": "List or get the Available Skus"
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/register/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Register Microsoft.Databox",
+ "operation": "Register Microsoft.Databox",
+ "description": "Register Provider Microsoft.Databox"
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/unregister/action",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Register Microsoft.Databox",
+ "operation": "Un-Register Microsoft.Databox",
+ "description": "Un-Register Provider Microsoft.Databox"
+ },
+ "properties": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.DataBox/operations/read",
+ "display": {
+ "provider": "Azure Data Box",
+ "resource": "Operations",
+ "operation": "List Operations",
+ "description": "List or get the Operations"
+ },
+ "properties": {},
+ "origin": "user"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/RegionConfiguration.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/RegionConfiguration.json
new file mode 100644
index 000000000000..fe90d5aba5cb
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/RegionConfiguration.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "location": "westus",
+ "api-version": "2020-04-01",
+ "regionConfigurationRequest": {
+ "scheduleAvailabilityRequest": {
+ "storageLocation": "westus",
+ "skuName": "DataBox"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "scheduleAvailabilityResponse": {
+ "availableDates": [
+ "2019-07-11T00:00:00+00:00",
+ "2019-07-12T00:00:00+00:00",
+ "2019-07-13T00:00:00+00:00",
+ "2019-07-14T00:00:00+00:00",
+ "2019-07-15T00:00:00+00:00",
+ "2019-07-16T00:00:00+00:00",
+ "2019-07-17T00:00:00+00:00",
+ "2019-07-18T00:00:00+00:00",
+ "2019-07-19T00:00:00+00:00",
+ "2019-07-20T00:00:00+00:00",
+ "2019-07-21T00:00:00+00:00",
+ "2019-07-22T00:00:00+00:00",
+ "2019-07-23T00:00:00+00:00",
+ "2019-07-24T00:00:00+00:00",
+ "2019-07-25T00:00:00+00:00",
+ "2019-07-26T00:00:00+00:00",
+ "2019-07-27T00:00:00+00:00",
+ "2019-07-28T00:00:00+00:00",
+ "2019-07-29T00:00:00+00:00",
+ "2019-07-30T00:00:00+00:00",
+ "2019-07-31T00:00:00+00:00"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/RegionConfigurationByResourceGroup.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/RegionConfigurationByResourceGroup.json
new file mode 100644
index 000000000000..a1df996e1da1
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/RegionConfigurationByResourceGroup.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg4981",
+ "location": "westus",
+ "api-version": "2020-04-01",
+ "regionConfigurationRequest": {
+ "scheduleAvailabilityRequest": {
+ "storageLocation": "westus",
+ "skuName": "DataBox"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "scheduleAvailabilityResponse": {
+ "availableDates": [
+ "2019-07-11T00:00:00+00:00",
+ "2019-07-12T00:00:00+00:00",
+ "2019-07-13T00:00:00+00:00",
+ "2019-07-14T00:00:00+00:00",
+ "2019-07-15T00:00:00+00:00",
+ "2019-07-16T00:00:00+00:00",
+ "2019-07-17T00:00:00+00:00",
+ "2019-07-18T00:00:00+00:00",
+ "2019-07-19T00:00:00+00:00",
+ "2019-07-20T00:00:00+00:00",
+ "2019-07-21T00:00:00+00:00",
+ "2019-07-22T00:00:00+00:00",
+ "2019-07-23T00:00:00+00:00",
+ "2019-07-24T00:00:00+00:00",
+ "2019-07-25T00:00:00+00:00",
+ "2019-07-26T00:00:00+00:00",
+ "2019-07-27T00:00:00+00:00",
+ "2019-07-28T00:00:00+00:00",
+ "2019-07-29T00:00:00+00:00",
+ "2019-07-30T00:00:00+00:00",
+ "2019-07-31T00:00:00+00:00"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/ValidateAddressPost.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/ValidateAddressPost.json
new file mode 100644
index 000000000000..76f2fa59a0bc
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/ValidateAddressPost.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "location": "westus",
+ "api-version": "2020-04-01",
+ "x-ms-client-request-id": [
+ "cfda3c52-b129-4568-aba7-e743edf747c2"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "351"
+ ],
+ "validateAddress": {
+ "validationType": "ValidateAddress",
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "deviceType": "DataBox"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "validationStatus": "Valid",
+ "alternateAddresses": [
+ {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "streetAddress3": "",
+ "city": "SAN FRANCISCO",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "addressType": "None"
+ }
+ ],
+ "validationType": "ValidateAddress"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/ValidateInputs.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/ValidateInputs.json
new file mode 100644
index 000000000000..820e8c21cdd4
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/ValidateInputs.json
@@ -0,0 +1,166 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "location": "westus",
+ "api-version": "2020-04-01",
+ "x-ms-client-request-id": [
+ "129a0589-5017-4f35-a66c-8da38e04aae1"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "1675"
+ ],
+ "validationRequest": {
+ "validationCategory": "JobCreationValidation",
+ "individualRequestDetails": [
+ {
+ "validationType": "ValidateDataTransferDetails",
+ "dataImportDetails": [
+ {
+ "accountDetails": {
+ "dataAccountType": "StorageAccount",
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/databoxbvt/providers/Microsoft.Storage/storageAccounts/databoxbvttestaccount"
+ }
+ }
+ ],
+ "deviceType": "DataBox",
+ "transferType": "ImportToAzure"
+ },
+ {
+ "validationType": "ValidateAddress",
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "deviceType": "DataBox",
+ "transportPreferences": {
+ "preferredShipmentType": "MicrosoftManaged"
+ }
+ },
+ {
+ "validationType": "ValidateSubscriptionIsAllowedToCreateJob"
+ },
+ {
+ "validationType": "ValidateSkuAvailability",
+ "deviceType": "DataBox",
+ "transferType": "ImportToAzure",
+ "country": "US",
+ "location": "westus"
+ },
+ {
+ "validationType": "ValidateCreateOrderLimit",
+ "deviceType": "DataBox"
+ },
+ {
+ "validationType": "ValidatePreferences",
+ "preference": {
+ "transportPreferences": {
+ "preferredShipmentType": "MicrosoftManaged"
+ }
+ },
+ "deviceType": "DataBox"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "status": "AllValidToProceed",
+ "individualResponseDetails": [
+ {
+ "status": "Valid",
+ "validationType": "ValidateDataTransferDetails",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "validationStatus": "Valid",
+ "alternateAddresses": [
+ {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "streetAddress3": "",
+ "city": "SAN FRANCISCO",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "addressType": "None"
+ }
+ ],
+ "validationType": "ValidateAddress",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidateSubscriptionIsAllowedToCreateJob",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidateSkuAvailability",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidateCreateOrderLimit",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidatePreferences",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/ValidateInputsByResourceGroup.json b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/ValidateInputsByResourceGroup.json
new file mode 100644
index 000000000000..5a551216c1e0
--- /dev/null
+++ b/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/examples/ValidateInputsByResourceGroup.json
@@ -0,0 +1,167 @@
+{
+ "parameters": {
+ "subscriptionId": "fa68082f-8ff7-4a25-95c7-ce9da541242f",
+ "resourceGroupName": "SdkRg6861",
+ "location": "westus",
+ "api-version": "2020-04-01",
+ "x-ms-client-request-id": [
+ "85f045bb-7659-4a2f-bcf5-96723954afdf"
+ ],
+ "Accept-Language": [
+ "en-US"
+ ],
+ "User-Agent": [
+ "FxVersion/4.6.29017.01",
+ "OSName/Windows",
+ "OSVersion/Microsoft.Windows.10.0.18363.",
+ "Microsoft.Azure.Management.DataBox.DataBoxManagementClient/1.1.0"
+ ],
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "1675"
+ ],
+ "validationRequest": {
+ "validationCategory": "JobCreationValidation",
+ "individualRequestDetails": [
+ {
+ "validationType": "ValidateDataTransferDetails",
+ "dataImportDetails": [
+ {
+ "accountDetails": {
+ "dataAccountType": "StorageAccount",
+ "storageAccountId": "/subscriptions/fa68082f-8ff7-4a25-95c7-ce9da541242f/resourcegroups/databoxbvt/providers/Microsoft.Storage/storageAccounts/databoxbvttestaccount"
+ }
+ }
+ ],
+ "deviceType": "DataBox",
+ "transferType": "ImportToAzure"
+ },
+ {
+ "validationType": "ValidateAddress",
+ "shippingAddress": {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "city": "San Francisco",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "companyName": "Microsoft",
+ "addressType": "Commercial"
+ },
+ "deviceType": "DataBox",
+ "transportPreferences": {
+ "preferredShipmentType": "MicrosoftManaged"
+ }
+ },
+ {
+ "validationType": "ValidateSubscriptionIsAllowedToCreateJob"
+ },
+ {
+ "validationType": "ValidateSkuAvailability",
+ "deviceType": "DataBox",
+ "transferType": "ImportToAzure",
+ "country": "US",
+ "location": "westus"
+ },
+ {
+ "validationType": "ValidateCreateOrderLimit",
+ "deviceType": "DataBox"
+ },
+ {
+ "validationType": "ValidatePreferences",
+ "preference": {
+ "transportPreferences": {
+ "preferredShipmentType": "MicrosoftManaged"
+ }
+ },
+ "deviceType": "DataBox"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "status": "AllValidToProceed",
+ "individualResponseDetails": [
+ {
+ "status": "Valid",
+ "validationType": "ValidateDataTransferDetails",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "validationStatus": "Valid",
+ "alternateAddresses": [
+ {
+ "streetAddress1": "16 TOWNSEND ST",
+ "streetAddress2": "Unit 1",
+ "streetAddress3": "",
+ "city": "SAN FRANCISCO",
+ "stateOrProvince": "CA",
+ "country": "US",
+ "postalCode": "94107",
+ "addressType": "None"
+ }
+ ],
+ "validationType": "ValidateAddress",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidateSubscriptionIsAllowedToCreateJob",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidateSkuAvailability",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidateCreateOrderLimit",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ },
+ {
+ "status": "Valid",
+ "validationType": "ValidatePreferences",
+ "error": {
+ "code": "Success",
+ "target": "KeyEncryptionKey",
+ "details": [],
+ "additionalInfo": []
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/databox/resource-manager/readme.azureresourceschema.md b/specification/databox/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..d96954178ec5
--- /dev/null
+++ b/specification/databox/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,48 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-databox-2020-04-01
+ - tag: schema-databox-2019-09-01
+ - tag: schema-databox-2018-01-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-databox-2020-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-databox-2020-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataBox/stable/2020-04-01/databox.json
+
+```
+
+### Tag: schema-databox-2019-09-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-databox-2019-09-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataBox/stable/2019-09-01/databox.json
+
+```
+
+### Tag: schema-databox-2018-01-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-databox-2018-01-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataBox/stable/2018-01-01/databox.json
+
+```
diff --git a/specification/databox/resource-manager/readme.go.md b/specification/databox/resource-manager/readme.go.md
index f284d008936f..129eb9435784 100644
--- a/specification/databox/resource-manager/readme.go.md
+++ b/specification/databox/resource-manager/readme.go.md
@@ -15,6 +15,7 @@ go:
batch:
- tag: package-2018-01
- tag: package-2019-09
+ - tag: package-2020-04
```
### Tag: package-2018-01 and go
@@ -33,4 +34,13 @@ Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag) == 'package-2020-04' && $(go)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-04-01/$(namespace)
```
\ No newline at end of file
diff --git a/specification/databox/resource-manager/readme.md b/specification/databox/resource-manager/readme.md
index cb252a0cfb96..019369a3cc14 100644
--- a/specification/databox/resource-manager/readme.md
+++ b/specification/databox/resource-manager/readme.md
@@ -26,7 +26,16 @@ These are the global settings for the DataBox API.
``` yaml
openapi-type: arm
-tag: package-2019-09
+tag: package-2020-04
+```
+
+### Tag: package-2020-04
+
+These settings apply only when `--tag=package-2020-04` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-04'
+input-file:
+- Microsoft.DataBox/stable/2020-04-01/databox.json
```
### Tag: package-2019-09
@@ -60,6 +69,8 @@ This is not used by Autorest itself.
swagger-to-sdk:
- repo: azure-sdk-for-net
- repo: azure-sdk-for-python
+ after_scripts:
+ - python ./scripts/multiapi_init_gen.py azure-mgmt-databox
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
- repo: azure-sdk-for-go
@@ -68,6 +79,9 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_databox']
- repo: azure-cli-extensions
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js databox/resource-manager
```
## C#
@@ -118,6 +132,7 @@ java:
batch:
- tag: package-2018-01
- tag: package-2019-09
+ - tag: package-2020-04
```
### Tag: package-2018-01 and java
@@ -146,28 +161,19 @@ regenerate-manager: true
generate-interface: true
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
+### Tag: package-2020-04 and java
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.DataBox/stable/2019-09-01/databox.json
- - $(this-folder)/Microsoft.DataBox/stable/2018-01-01/databox.json
+These settings apply only when `--tag=package-2020-04-java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+``` yaml $(tag) == 'package-2020-04' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.databox.v2020_04-01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/databox/mgmt-v2020_04_01
+regenerate-manager: true
+generate-interface: true
```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/databox/resource-manager/readme.python.md b/specification/databox/resource-manager/readme.python.md
index c58c21fa9f86..73bcaea2fe6b 100644
--- a/specification/databox/resource-manager/readme.python.md
+++ b/specification/databox/resource-manager/readme.python.md
@@ -15,14 +15,49 @@ python:
title: DataBoxManagementClient
description: The DataBox Client.
clear-output-folder: true
+ no-namespace-folders: true
+```
+
+### Python multi-api
+
+Generate all API versions currently shipped for this package
+
+```yaml $(python) && $(multiapi)
+batch:
+ - tag: package-2020-04
+ - tag: package-2019-09
+ - tag: package-2018-01
```
-``` yaml $(python) && $(python-mode) == 'update'
+
+### Tag: package-2020-04 and python
+
+These settings apply only when `--tag=package-2020-04 --python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-04' && $(python)
python:
- no-namespace-folders: true
- output-folder: $(python-sdks-folder)/databox/azure-mgmt-databox/azure/mgmt/databox
+ namespace: azure.mgmt.databox.v2020_04_01
+ output-folder: $(python-sdks-folder)/databox/azure-mgmt-databox/azure/mgmt/databox/v2020_04_01
```
-``` yaml $(python) && $(python-mode) == 'create'
+
+### Tag: package-2019-09 and python
+
+These settings apply only when `--tag=package-2019-09 --python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2019-09' && $(python)
python:
- basic-setup-py: true
- output-folder: $(python-sdks-folder)/databox/azure-mgmt-databox
+ namespace: azure.mgmt.databox.v2019_09_01
+ output-folder: $(python-sdks-folder)/databox/azure-mgmt-databox/azure/mgmt/databox/v2019_09_01
```
+
+### Tag: package-2018-01 and python
+
+These settings apply only when `--tag=package-2018-01 --python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2018-01' && $(python)
+python:
+ namespace: azure.mgmt.databox.v2018_01_01
+ output-folder: $(python-sdks-folder)/databox/azure-mgmt-databox/azure/mgmt/databox/v2018_01_01
+```
\ No newline at end of file
diff --git a/specification/databox/resource-manager/readme.ruby.md b/specification/databox/resource-manager/readme.ruby.md
index 2720469a3277..e2df249ad0ee 100644
--- a/specification/databox/resource-manager/readme.ruby.md
+++ b/specification/databox/resource-manager/readme.ruby.md
@@ -14,6 +14,7 @@ azure-arm: true
batch:
- tag: package-2018-01
- tag: package-2019-09
+ - tag: package-2020-04
```
### Tag: package-2018-01 and ruby
@@ -35,3 +36,13 @@ Please also specify `--ruby-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-04' && $(ruby)
+namespace: "Azure::Compute::Mgmt::V2020_04_01"
+output-folder: $(ruby-sdks-folder)/management/azure_mgmt_databox/lib
+```
\ No newline at end of file
diff --git a/specification/databoxedge/resource-manager/readme.azureresourceschema.md b/specification/databoxedge/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..12341995da0e
--- /dev/null
+++ b/specification/databoxedge/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,60 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-databoxedge-2020-05-01-preview
+ - tag: schema-databoxedge-2019-08-01
+ - tag: schema-databoxedge-2019-07-01
+ - tag: schema-databoxedge-2019-03-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-databoxedge-2020-05-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-databoxedge-2020-05-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataBoxEdge/preview/2020-05-01-preview/databoxedge.json
+
+```
+
+### Tag: schema-databoxedge-2019-08-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-databoxedge-2019-08-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataBoxEdge/stable/2019-08-01/databoxedge.json
+
+```
+
+### Tag: schema-databoxedge-2019-07-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-databoxedge-2019-07-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataBoxEdge/stable/2019-07-01/databoxedge.json
+
+```
+
+### Tag: schema-databoxedge-2019-03-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-databoxedge-2019-03-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataBoxEdge/stable/2019-03-01/databoxedge.json
+
+```
diff --git a/specification/databoxedge/resource-manager/readme.md b/specification/databoxedge/resource-manager/readme.md
index 525e9e046a23..94ad3a2423d2 100644
--- a/specification/databoxedge/resource-manager/readme.md
+++ b/specification/databoxedge/resource-manager/readme.md
@@ -86,6 +86,9 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_databoxedge']
- repo: azure-cli-extensions
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js databoxedge/resource-manager
```
## C#
@@ -192,29 +195,7 @@ regenerate-manager: true
generate-interface: true
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.DataBoxEdge/preview/2020-05-01-preview/databoxedge.json
- - $(this-folder)/Microsoft.DataBoxEdge/stable/2019-08-01/databoxedge.json
- - $(this-folder)/Microsoft.DataBoxEdge/stable/2019-07-01/databoxedge.json
- - $(this-folder)/Microsoft.DataBoxEdge/stable/2019-03-01/databoxedge.json
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-```
-
-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/databricks/resource-manager/readme.azureresourceschema.md b/specification/databricks/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..d05e235cbedf
--- /dev/null
+++ b/specification/databricks/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-databricks-2018-04-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-databricks-2018-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-databricks-2018-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Databricks/stable/2018-04-01/databricks.json
+
+```
diff --git a/specification/databricks/resource-manager/readme.md b/specification/databricks/resource-manager/readme.md
index 2b393ef2e23a..bcbfa7452f8f 100644
--- a/specification/databricks/resource-manager/readme.md
+++ b/specification/databricks/resource-manager/readme.md
@@ -74,6 +74,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js databricks/resource-manager
```
## Go
@@ -83,27 +86,7 @@ See configuration in [readme.go.md](./readme.go.md)
## Python
See configuration in [readme.python.md](./readme.python.md)
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Databricks/stable/2018-04-01/databricks.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/datacatalog/resource-manager/readme.azureresourceschema.md b/specification/datacatalog/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..7c377f7a6300
--- /dev/null
+++ b/specification/datacatalog/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-datacatalog-2016-03-30
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-datacatalog-2016-03-30 and azureresourceschema
+
+``` yaml $(tag) == 'schema-datacatalog-2016-03-30' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataCatalog/stable/2016-03-30/datacatalog.json
+
+```
diff --git a/specification/datacatalog/resource-manager/readme.md b/specification/datacatalog/resource-manager/readme.md
index 02f87406e5e8..8a2adf1fe7df 100644
--- a/specification/datacatalog/resource-manager/readme.md
+++ b/specification/datacatalog/resource-manager/readme.md
@@ -54,6 +54,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js datacatalog/resource-manager
```
## C#
@@ -134,27 +137,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.DataCatalog/stable/2016-03-30/datacatalog.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/datafactory.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/datafactory.json
index 8ac8e38601ed..43f2f1614abd 100644
--- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/datafactory.json
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/datafactory.json
@@ -255,6 +255,57 @@
}
}
},
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/queryFeaturesValue": {
+ "post": {
+ "tags": [
+ "exposureControl"
+ ],
+ "operationId": "ExposureControl_QueryFeatureValuesByFactory",
+ "x-ms-examples": {
+ "ExposureControl_QueryFeatureValuesByFactory": {
+ "$ref": "./examples/ExposureControl_QueryFeatureValuesByFactory.json"
+ }
+ },
+ "description": "Get list of exposure control features for specific factory.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/factoryName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "name": "exposureControlBatchRequest",
+ "description": "The exposure control request for list of features.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExposureControlBatchRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/ExposureControlBatchResponse"
+ }
+ },
+ "default": {
+ "description": "An error response received from the Azure Data Factory service.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories": {
"get": {
"tags": [
@@ -3105,7 +3156,7 @@
],
"operationId": "TriggerRuns_Cancel",
"x-ms-examples": {
- "Triggers_Rerun": {
+ "Triggers_Cancel": {
"$ref": "./examples/TriggerRuns_Cancel.json"
}
},
@@ -3661,6 +3712,373 @@
}
}
}
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/managedVirtualNetworks": {
+ "get": {
+ "tags": [
+ "managedVirtualNetworks"
+ ],
+ "operationId": "ManagedVirtualNetworks_ListByFactory",
+ "x-ms-examples": {
+ "ManagedVirtualNetworks_ListByFactory": {
+ "$ref": "./examples/ManagedVirtualNetworks_ListByFactory.json"
+ }
+ },
+ "description": "Lists managed Virtual Networks.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/factoryName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/ManagedVirtualNetworkListResponse"
+ }
+ },
+ "default": {
+ "description": "An error response received from the Azure Data Factory service.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/managedVirtualNetworks/{managedVirtualNetworkName}": {
+ "put": {
+ "tags": [
+ "managedVirtualNetworks"
+ ],
+ "operationId": "ManagedVirtualNetworks_CreateOrUpdate",
+ "x-ms-examples": {
+ "ManagedVirtualNetworks_Create": {
+ "$ref": "./examples/ManagedVirtualNetworks_Create.json"
+ }
+ },
+ "description": "Creates or updates a managed Virtual Network.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/factoryName"
+ },
+ {
+ "$ref": "#/parameters/managedVirtualNetworkName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "ETag of the managed Virtual Network entity. Should only be specified for update, for which it should match existing entity or can be * for unconditional update."
+ },
+ {
+ "name": "managedVirtualNetwork",
+ "description": "Managed Virtual Network resource definition.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ManagedVirtualNetworkResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/ManagedVirtualNetworkResource"
+ }
+ },
+ "default": {
+ "description": "An error response received from PUT managed Virtual Network operation.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "managedVirtualNetworks"
+ ],
+ "operationId": "ManagedVirtualNetworks_Get",
+ "x-ms-examples": {
+ "ManagedVirtualNetworks_Get": {
+ "$ref": "./examples/ManagedVirtualNetworks_Get.json"
+ }
+ },
+ "description": "Gets a managed Virtual Network.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/factoryName"
+ },
+ {
+ "$ref": "#/parameters/managedVirtualNetworkName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "ETag of the managed Virtual Network entity. Should only be specified for get. If the ETag matches the existing entity tag, or if * was provided, then no content will be returned."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/ManagedVirtualNetworkResource"
+ }
+ },
+ "default": {
+ "description": "An error response received from GET managed Virtual Network operation.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/managedVirtualNetworks/{managedVirtualNetworkName}/managedPrivateEndpoints": {
+ "get": {
+ "tags": [
+ "managedPrivateEndpoints"
+ ],
+ "operationId": "ManagedPrivateEndpoints_ListByFactory",
+ "x-ms-examples": {
+ "ManagedPrivateEndpoints_ListByFactory": {
+ "$ref": "./examples/ManagedPrivateEndpoints_ListByFactory.json"
+ }
+ },
+ "description": "Lists managed private endpoints.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/factoryName"
+ },
+ {
+ "$ref": "#/parameters/managedVirtualNetworkName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/managedPrivateEndpointListResponse"
+ }
+ },
+ "default": {
+ "description": "An error response received from the Azure Data Factory service.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/managedVirtualNetworks/{managedVirtualNetworkName}/managedPrivateEndpoints/{managedPrivateEndpointName}": {
+ "put": {
+ "tags": [
+ "managedPrivateEndpoints"
+ ],
+ "operationId": "managedPrivateEndpoints_CreateOrUpdate",
+ "x-ms-examples": {
+ "ManagedVirtualNetworks_Create": {
+ "$ref": "./examples/ManagedPrivateEndpoints_Create.json"
+ }
+ },
+ "description": "Creates or updates a managed private endpoint.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/factoryName"
+ },
+ {
+ "$ref": "#/parameters/managedVirtualNetworkName"
+ },
+ {
+ "$ref": "#/parameters/managedPrivateEndpointName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "ETag of the managed private endpoint entity. Should only be specified for update, for which it should match existing entity or can be * for unconditional update."
+ },
+ {
+ "name": "managedPrivateEndpoint",
+ "description": "Managed private endpoint resource definition.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ManagedPrivateEndpointResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/ManagedPrivateEndpointResource"
+ }
+ },
+ "default": {
+ "description": "An error response received from PUT managed private endpoint operation.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "managedPrivateEndpoints"
+ ],
+ "operationId": "ManagedPrivateEndpoints_Get",
+ "x-ms-examples": {
+ "ManagedPrivateEndpoints_Get": {
+ "$ref": "./examples/ManagedPrivateEndpoints_Get.json"
+ }
+ },
+ "description": "Gets a managed private endpoint.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/factoryName"
+ },
+ {
+ "$ref": "#/parameters/managedVirtualNetworkName"
+ },
+ {
+ "$ref": "#/parameters/managedPrivateEndpointName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "name": "If-None-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "ETag of the managed private endpoint entity. Should only be specified for get. If the ETag matches the existing entity tag, or if * was provided, then no content will be returned."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/ManagedPrivateEndpointResource"
+ }
+ },
+ "default": {
+ "description": "An error response received from GET managed private endpoint operation.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "managedPrivateEndpoints"
+ ],
+ "operationId": "ManagedPrivateEndpoints_Delete",
+ "x-ms-examples": {
+ "ManagedVirtualNetworks_Delete": {
+ "$ref": "./examples/ManagedPrivateEndpoints_Delete.json"
+ }
+ },
+ "description": "Deletes a managed private endpoint.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/factoryName"
+ },
+ {
+ "$ref": "#/parameters/managedVirtualNetworkName"
+ },
+ {
+ "$ref": "#/parameters/managedPrivateEndpointName"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "204": {
+ "description": "No Content."
+ },
+ "default": {
+ "description": "An error response received from DELETE managed private endpoint operation.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
}
},
"definitions": {
@@ -4468,6 +4886,18 @@
"globalParameters": {
"$ref": "#/definitions/GlobalParameterDefinitionSpecification",
"description": "List of parameters for factory."
+ },
+ "publicNetworkAccess": {
+ "description": "Whether or not public network access is allowed for the data factory.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "PublicNetworkAccess",
+ "modelAsString": true
+ }
}
}
},
@@ -5459,6 +5889,22 @@
}
}
},
+ "ExposureControlBatchRequest": {
+ "description": "A list of exposure control features.",
+ "type": "object",
+ "required": [
+ "exposureControlRequests"
+ ],
+ "properties": {
+ "exposureControlRequests": {
+ "type": "array",
+ "description": "List of exposure control features.",
+ "items": {
+ "$ref": "#/definitions/ExposureControlRequest"
+ }
+ }
+ }
+ },
"ExposureControlRequest": {
"type": "object",
"description": "The exposure control request.",
@@ -5473,6 +5919,22 @@
}
}
},
+ "ExposureControlBatchResponse": {
+ "description": "A list of exposure control feature values.",
+ "type": "object",
+ "required": [
+ "exposureControlResponses"
+ ],
+ "properties": {
+ "exposureControlResponses": {
+ "type": "array",
+ "description": "List of exposure control feature values.",
+ "items": {
+ "$ref": "#/definitions/ExposureControlResponse"
+ }
+ }
+ }
+ },
"ExposureControlResponse": {
"type": "object",
"description": "The exposure control response.",
@@ -5855,6 +6317,80 @@
"type",
"referenceName"
]
+ },
+ "managedPrivateEndpointListResponse": {
+ "description": "A list of managed private endpoint resources.",
+ "type": "object",
+ "required": [
+ "value"
+ ],
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of managed private endpoints.",
+ "items": {
+ "$ref": "#/definitions/ManagedPrivateEndpointResource"
+ }
+ },
+ "nextLink": {
+ "description": "The link to the next page of results, if any remaining results exist.",
+ "type": "string"
+ }
+ }
+ },
+ "ManagedPrivateEndpointResource": {
+ "description": "Managed private endpoint resource type.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "./entityTypes/ManagedPrivateEndpoint.json#/definitions/ManagedPrivateEndpoint",
+ "description": "Managed private endpoint properties."
+ }
+ },
+ "required": [
+ "properties"
+ ]
+ },
+ "ManagedVirtualNetworkListResponse": {
+ "description": "A list of managed Virtual Network resources.",
+ "type": "object",
+ "required": [
+ "value"
+ ],
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of managed Virtual Networks.",
+ "items": {
+ "$ref": "#/definitions/ManagedVirtualNetworkResource"
+ }
+ },
+ "nextLink": {
+ "description": "The link to the next page of results, if any remaining results exist.",
+ "type": "string"
+ }
+ }
+ },
+ "ManagedVirtualNetworkResource": {
+ "description": "Managed Virtual Network resource type.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/SubResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "./entityTypes/ManagedVirtualNetwork.json#/definitions/ManagedVirtualNetwork",
+ "description": "Managed Virtual Network properties."
+ }
+ },
+ "required": [
+ "properties"
+ ]
}
},
"parameters": {
@@ -5980,6 +6516,28 @@
"maxLength": 260,
"x-ms-parameter-location": "method"
},
+ "managedVirtualNetworkName": {
+ "name": "managedVirtualNetworkName",
+ "description": "Managed virtual network name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^([_A-Za-z0-9]|([_A-Za-z0-9][-_A-Za-z0-9]{0,125}[_A-Za-z0-9]))$",
+ "minLength": 1,
+ "maxLength": 127,
+ "x-ms-parameter-location": "method"
+ },
+ "managedPrivateEndpointName": {
+ "name": "managedPrivateEndpointName",
+ "description": "Managed private endpoint name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^([_A-Za-z0-9]|([_A-Za-z0-9][-_A-Za-z0-9]{0,125}[_A-Za-z0-9]))$",
+ "minLength": 1,
+ "maxLength": 127,
+ "x-ms-parameter-location": "method"
+ },
"api-version": {
"name": "api-version",
"description": "The API version.",
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/DataFlow.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/DataFlow.json
index d06e5e38b08b..63e8f1b14468 100644
--- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/DataFlow.json
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/DataFlow.json
@@ -4,6 +4,17 @@
"title": "DataFactoryManagementClient",
"version": "2018-06-01"
},
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
"paths": {},
"definitions": {
"DataFlow": {
@@ -121,10 +132,6 @@
"schemaLinkedService": {
"description": "Schema linked service reference.",
"$ref": "../datafactory.json#/definitions/LinkedServiceReference"
- },
- "staging": {
- "description": "Staging info for execute data flow activity.",
- "$ref": "../datafactory.json#/definitions/DataFlowStagingInfo"
}
}
},
@@ -147,10 +154,6 @@
"schemaLinkedService": {
"description": "Schema linked service reference.",
"$ref": "../datafactory.json#/definitions/LinkedServiceReference"
- },
- "staging": {
- "description": "Staging info for execute data flow activity.",
- "$ref": "../datafactory.json#/definitions/DataFlowStagingInfo"
}
}
}
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Dataset.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Dataset.json
index 52f028ae93c9..f822291740b8 100644
--- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Dataset.json
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Dataset.json
@@ -4,6 +4,17 @@
"title": "DataFactoryManagementClient",
"version": "2018-06-01"
},
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
"paths": {},
"definitions": {
"Dataset": {
@@ -472,6 +483,33 @@
}
}
},
+ "DatasetTarCompression": {
+ "x-ms-discriminator-value": "Tar",
+ "description": "The Tar archive method used on a dataset.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DatasetCompression"
+ }
+ ],
+ "properties": {}
+ },
+ "DatasetTarGZipCompression": {
+ "x-ms-discriminator-value": "TarGZip",
+ "description": "The TarGZip compression method used on a dataset.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DatasetCompression"
+ }
+ ],
+ "properties": {
+ "level": {
+ "description": "The TarGZip compression level.",
+ "$ref": "#/definitions/CompressionLevel"
+ }
+ }
+ },
"CompressionLevel": {
"title": "Microsoft.Azure.Management.DataFactories.Models.CompressionLevel",
"description": "All available compression levels.",
@@ -729,7 +767,9 @@
"deflate",
"zipDeflate",
"snappy",
- "lz4"
+ "lz4",
+ "tar",
+ "tarGZip"
],
"x-ms-enum": {
"name": "compressionCodec",
@@ -868,7 +908,8 @@
"enum": [
"none",
"zlib",
- "snappy"
+ "snappy",
+ "lzo"
],
"x-ms-enum": {
"name": "orcCompressionCodec",
@@ -1480,6 +1521,38 @@
"collectionName"
]
},
+ "MongoDbAtlasCollectionDataset": {
+ "x-ms-discriminator-value": "MongoDbAtlasCollection",
+ "description": "The MongoDB Atlas database dataset.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Dataset"
+ }
+ ],
+ "properties": {
+ "typeProperties": {
+ "description": "MongoDB Atlas database dataset properties.",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/MongoDbAtlasCollectionDatasetTypeProperties"
+ }
+ },
+ "required": [
+ "typeProperties"
+ ]
+ },
+ "MongoDbAtlasCollectionDatasetTypeProperties": {
+ "description": "MongoDB Atlas database dataset properties.",
+ "properties": {
+ "collection": {
+ "type": "object",
+ "description": "The collection name of the MongoDB Atlas database. Type: string (or Expression with resultType string)."
+ }
+ },
+ "required": [
+ "collection"
+ ]
+ },
"MongoDbV2CollectionDataset": {
"x-ms-discriminator-value": "MongoDbV2Collection",
"description": "The MongoDB database dataset.",
@@ -3220,6 +3293,36 @@
"description": "The name of the SharePoint Online list. Type: string (or Expression with resultType string)."
}
}
+ },
+ "AzureDatabricksDeltaLakeDataset": {
+ "x-ms-discriminator-value": "AzureDatabricksDeltaLakeDataset",
+ "description": "Azure Databricks Delta Lake dataset.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Dataset"
+ }
+ ],
+ "properties": {
+ "typeProperties": {
+ "description": "Properties specific to this dataset type.",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AzureDatabricksDeltaLakeDatasetTypeProperties"
+ }
+ }
+ },
+ "AzureDatabricksDeltaLakeDatasetTypeProperties": {
+ "description": "Azure Databricks Delta Lake Dataset Properties",
+ "properties": {
+ "table": {
+ "type": "object",
+ "description": "The name of delta table. Type: string (or Expression with resultType string)."
+ },
+ "database": {
+ "type": "object",
+ "description": "The database name of delta table. Type: string (or Expression with resultType string)."
+ }
+ }
}
}
}
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/IntegrationRuntime.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/IntegrationRuntime.json
index fe1f683bd72c..00dbf932a1d5 100644
--- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/IntegrationRuntime.json
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/IntegrationRuntime.json
@@ -4,6 +4,17 @@
"title": "DataFactoryManagementClient",
"version": "2018-06-01"
},
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
"paths": {},
"definitions": {
"IntegrationRuntime": {
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/LinkedService.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/LinkedService.json
index a25553b01b00..adc9894777c5 100644
--- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/LinkedService.json
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/LinkedService.json
@@ -4,6 +4,17 @@
"title": "DataFactoryManagementClient",
"version": "2018-06-01"
},
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
"paths": {},
"definitions": {
"LinkedService": {
@@ -2031,6 +2042,43 @@
"databaseName"
]
},
+ "MongoDbAtlasLinkedService": {
+ "x-ms-discriminator-value": "MongoDbAtlas",
+ "description": "Linked service for MongoDB Atlas data source.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/LinkedService"
+ }
+ ],
+ "properties": {
+ "typeProperties": {
+ "description": "MongoDB Atlas linked service properties.",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/MongoDbAtlasLinkedServiceTypeProperties"
+ }
+ },
+ "required": [
+ "typeProperties"
+ ]
+ },
+ "MongoDbAtlasLinkedServiceTypeProperties": {
+ "description": "MongoDB Atlas linked service properties.",
+ "properties": {
+ "connectionString": {
+ "description": "The MongoDB Atlas connection string. Type: string, SecureString or AzureKeyVaultSecretReference. Type: string, SecureString or AzureKeyVaultSecretReference.",
+ "type": "object"
+ },
+ "database": {
+ "type": "object",
+ "description": "The name of the MongoDB Atlas database that you want to access. Type: string (or Expression with resultType string)."
+ }
+ },
+ "required": [
+ "connectionString",
+ "database"
+ ]
+ },
"MongoDbV2LinkedService": {
"x-ms-discriminator-value": "MongoDbV2",
"description": "Linked service for MongoDB data source.",
@@ -5322,6 +5370,50 @@
"accessToken"
]
},
+ "AzureDatabricksDeltaLakeLinkedService": {
+ "x-ms-discriminator-value": "AzureDatabricksDeltaLake",
+ "description": "Azure Databricks Delta Lake linked service.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/LinkedService"
+ }
+ ],
+ "properties": {
+ "typeProperties": {
+ "description": "Azure Databricks Delta Lake linked service properties.",
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/AzureDatabricksDetltaLakeLinkedServiceTypeProperties"
+ }
+ },
+ "required": [
+ "typeProperties"
+ ]
+ },
+ "AzureDatabricksDetltaLakeLinkedServiceTypeProperties": {
+ "description": "Azure Databricks Delta Lake linked service properties.",
+ "properties": {
+ "domain": {
+ "type": "object",
+ "description": ".azuredatabricks.net, domain name of your Databricks deployment. Type: string (or Expression with resultType string)."
+ },
+ "accessToken": {
+ "description": "Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string, SecureString or AzureKeyVaultSecretReference.",
+ "$ref": "../datafactory.json#/definitions/SecretBase"
+ },
+ "clusterId": {
+ "type": "object",
+ "description": "The id of an existing interactive cluster that will be used for all runs of this job. Type: string (or Expression with resultType string)."
+ },
+ "encryptedCredential": {
+ "type": "object",
+ "description": "The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string (or Expression with resultType string)."
+ }
+ },
+ "required": [
+ "domain"
+ ]
+ },
"ResponsysLinkedService": {
"x-ms-discriminator-value": "Responsys",
"description": "Responsys linked service.",
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/ManagedPrivateEndpoint.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/ManagedPrivateEndpoint.json
new file mode 100644
index 000000000000..068ad1370cda
--- /dev/null
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/ManagedPrivateEndpoint.json
@@ -0,0 +1,81 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "DataFactoryManagementClient",
+ "version": "2018-06-01"
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {},
+ "definitions": {
+ "ManagedPrivateEndpoint": {
+ "description": "Properties of a managed private endpoint",
+ "type": "object",
+ "discriminator": "type",
+ "properties": {
+ "connectionState": {
+ "description": "The managed private endpoint connection state",
+ "$ref": "#/definitions/ConnectionStateProperties"
+ },
+ "fqdns": {
+ "description": "Fully qualified domain names",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "groupId": {
+ "description": "The groupId to which the managed private endpoint is created",
+ "type": "string"
+ },
+ "isReserved": {
+ "description": "Denotes whether the managed private endpoint is reserved",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "privateLinkResourceId": {
+ "description": "The ARM resource ID of the resource to which the managed private endpoint is created",
+ "type": "string"
+ },
+ "provisioningState": {
+ "description": "The managed private endpoint provisioning state",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "ConnectionStateProperties": {
+ "description": "The connection state of a managed private endpoint",
+ "type": "object",
+ "properties": {
+ "actionsRequired": {
+ "description": "The actions required on the managed private endpoint",
+ "type": "string",
+ "readOnly": true
+ },
+ "description": {
+ "description": "The managed private endpoint description",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "The approval status",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ }
+ }
+}
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/ManagedVirtualNetwork.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/ManagedVirtualNetwork.json
new file mode 100644
index 000000000000..486abeced71c
--- /dev/null
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/ManagedVirtualNetwork.json
@@ -0,0 +1,41 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "DataFactoryManagementClient",
+ "version": "2018-06-01"
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {},
+ "definitions": {
+ "ManagedVirtualNetwork": {
+ "description": "A managed Virtual Network associated with the Azure Data Factory",
+ "type": "object",
+ "discriminator": "type",
+ "properties": {
+ "vNetId": {
+ "description": "Managed Virtual Network ID.",
+ "type": "string",
+ "readOnly": true
+ },
+ "alias": {
+ "description": "Managed Virtual Network alias.",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "additionalProperties": {
+ "type": "object"
+ }
+ }
+ }
+}
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json
index e7963bb5c123..7b100ca81dbd 100644
--- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json
@@ -4,6 +4,17 @@
"title": "DataFactoryManagementClient",
"version": "2018-06-01"
},
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
"paths": {},
"definitions": {
"Pipeline": {
@@ -779,6 +790,10 @@
"distcpSettings": {
"description": "Specifies Distcp-related settings.",
"$ref": "#/definitions/DistcpSettings"
+ },
+ "deleteFilesAfterCompletion": {
+ "type": "object",
+ "description": "Indicates whether the source files need to be deleted after copy completion. Default is false. Type: boolean (or Expression with resultType boolean)."
}
}
},
@@ -861,6 +876,15 @@
}
]
},
+ "AzureFileStorageWriteSettings": {
+ "description": "Azure File Storage write settings.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/StoreWriteSettings"
+ }
+ ]
+ },
"FormatReadSettings": {
"description": "Format read settings.",
"discriminator": "type",
@@ -910,6 +934,36 @@
}
}
},
+ "TarReadSettings": {
+ "description": "The Tar compression read settings.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CompressionReadSettings"
+ }
+ ],
+ "properties": {
+ "preserveCompressionFileNameAsFolder": {
+ "description": "Preserve the compression file name as folder path. Type: boolean (or Expression with resultType boolean).",
+ "type": "object"
+ }
+ }
+ },
+ "TarGZipReadSettings": {
+ "description": "The TarGZip compression read settings.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CompressionReadSettings"
+ }
+ ],
+ "properties": {
+ "preserveCompressionFileNameAsFolder": {
+ "description": "Preserve the compression file name as folder path. Type: boolean (or Expression with resultType boolean).",
+ "type": "object"
+ }
+ }
+ },
"DelimitedTextReadSettings": {
"description": "Delimited text read settings.",
"type": "object",
@@ -961,6 +1015,14 @@
"type": "object",
"description": "Indicates what validation method is used when reading the xml files. Allowed values: 'none', 'xsd', or 'dtd'. Type: string (or Expression with resultType string)."
},
+ "detectDataType": {
+ "type": "object",
+ "description": "Indicates whether type detection is enabled when reading the xml files. Type: boolean (or Expression with resultType boolean)."
+ },
+ "namespaces": {
+ "type": "object",
+ "description": "Indicates whether namespace is enabled when reading the xml files. Type: boolean (or Expression with resultType boolean)."
+ },
"namespacePrefixes": {
"type": "object",
"description": "Namespace uri to prefix mappings to override the prefixes in column names when namespace is enabled, if no prefix is defined for a namespace uri, the prefix of xml element/attribute name in the xml data file will be used. Example: \"{\"http://www.example.com/xml\":\"prefix\"}\" Type: object (or Expression with resultType object)."
@@ -1015,6 +1077,52 @@
"recordNamespace": {
"type": "string",
"description": "Record namespace in the write result."
+ },
+ "maxRowsPerFile": {
+ "type": "object",
+ "description": "Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer)."
+ },
+ "fileNamePrefix": {
+ "type": "object",
+ "description": "Specifies the file name pattern _. when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string)."
+ }
+ }
+ },
+ "OrcWriteSettings": {
+ "description": "Orc write settings.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/FormatWriteSettings"
+ }
+ ],
+ "properties": {
+ "maxRowsPerFile": {
+ "type": "object",
+ "description": "Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer)."
+ },
+ "fileNamePrefix": {
+ "type": "object",
+ "description": "Specifies the file name pattern _. when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string)."
+ }
+ }
+ },
+ "ParquetWriteSettings": {
+ "description": "Parquet write settings.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/FormatWriteSettings"
+ }
+ ],
+ "properties": {
+ "maxRowsPerFile": {
+ "type": "object",
+ "description": "Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer)."
+ },
+ "fileNamePrefix": {
+ "type": "object",
+ "description": "Specifies the file name pattern _. when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string)."
}
}
},
@@ -1034,6 +1142,14 @@
"fileExtension": {
"type": "object",
"description": "The file extension used to create the files. Type: string (or Expression with resultType string)."
+ },
+ "maxRowsPerFile": {
+ "type": "object",
+ "description": "Limit the written file's row count to be smaller than or equal to the specified count. Type: integer (or Expression with resultType integer)."
+ },
+ "fileNamePrefix": {
+ "type": "object",
+ "description": "Specifies the file name pattern _. when copy from non-file based store without partitionOptions. Type: string (or Expression with resultType string)."
}
},
"required": [
@@ -1279,6 +1395,10 @@
"storeSettings": {
"$ref": "#/definitions/StoreWriteSettings",
"description": "ORC store settings."
+ },
+ "formatSettings": {
+ "$ref": "#/definitions/OrcWriteSettings",
+ "description": "ORC format settings."
}
}
},
@@ -1551,6 +1671,10 @@
"type": "object",
"description": "Preferred regions. Type: array of strings (or Expression with resultType array of strings)."
},
+ "detectDatetime": {
+ "type": "object",
+ "description": "Whether detect primitive values as datetime values. Type: boolean (or Expression with resultType boolean)."
+ },
"additionalColumns": {
"type": "array",
"description": "Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects).",
@@ -2079,13 +2203,9 @@
"type": "object",
"description": "The time to await before sending next request, in milliseconds "
},
- "compressionType": {
+ "httpCompressionType": {
"type": "object",
- "description": "Compression Type to Send data in compressed format with Optimal Compression Level, Default is None. And The Only Supported option is Gzip. "
- },
- "wrapRequestJsonInAnObject": {
- "type": "object",
- "description": "Wraps Request Array Json into an Object before calling the rest endpoint , Default is false. ex: if true request content sample format is { rows:[]} else the format is []"
+ "description": "Http Compression Type to Send data in compressed format with Optimal Compression Level, Default is None. And The Only Supported option is Gzip. "
}
}
},
@@ -2650,6 +2770,40 @@
}
}
},
+ "MongoDbAtlasSource": {
+ "description": "A copy activity source for a MongoDB Atlas database.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CopySource"
+ }
+ ],
+ "properties": {
+ "filter": {
+ "type": "object",
+ "description": "Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}). Type: string (or Expression with resultType string)."
+ },
+ "cursorMethods": {
+ "description": "Cursor methods for Mongodb query",
+ "$ref": "#/definitions/MongoDbCursorMethodsProperties"
+ },
+ "batchSize": {
+ "type": "object",
+ "description": "Specifies the number of documents to return in each batch of the response from MongoDB Atlas instance. In most cases, modifying the batch size will not affect the user or the application. This property's main purpose is to avoid hit the limitation of response size. Type: integer (or Expression with resultType integer)."
+ },
+ "queryTimeout": {
+ "type": "object",
+ "description": "Query timeout. Type: string (or Expression with resultType string), pattern: ((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9]))."
+ },
+ "additionalColumns": {
+ "type": "array",
+ "description": "Specifies the additional columns to be added to source data. Type: array of objects (or Expression with resultType array of objects).",
+ "items": {
+ "$ref": "#/definitions/AdditionalColumns"
+ }
+ }
+ }
+ },
"MongoDbV2Source": {
"description": "A copy activity source for a MongoDB database.",
"type": "object",
@@ -3508,6 +3662,82 @@
}
}
},
+ "AzureDatabricksDeltaLakeSource": {
+ "description": "A copy activity Azure Databricks Delta Lake source.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CopySource"
+ }
+ ],
+ "properties": {
+ "query": {
+ "type": "object",
+ "description": "Azure Databricks Delta Lake Sql query. Type: string (or Expression with resultType string)."
+ },
+ "exportSettings": {
+ "$ref": "#/definitions/AzureDatabricksDeltaLakeExportCommand",
+ "description": "Azure Databricks Delta Lake export settings."
+ }
+ }
+ },
+ "AzureDatabricksDeltaLakeExportCommand": {
+ "description": "Azure Databricks Delta Lake export command settings.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ExportSettings"
+ }
+ ],
+ "properties": {
+ "dateFormat": {
+ "type": "object",
+ "description": "Specify the date format for the csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string)."
+ },
+ "timestampFormat": {
+ "type": "object",
+ "description": "Specify the timestamp format for the csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string)."
+ }
+ }
+ },
+ "AzureDatabricksDeltaLakeSink": {
+ "description": "A copy activity Azure Databricks Delta Lake sink.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CopySink"
+ }
+ ],
+ "properties": {
+ "preCopyScript": {
+ "type": "object",
+ "description": "SQL pre-copy script. Type: string (or Expression with resultType string)."
+ },
+ "importSettings": {
+ "$ref": "#/definitions/AzureDatabricksDeltaLakeImportCommand",
+ "description": "Azure Databricks Delta Lake import settings."
+ }
+ }
+ },
+ "AzureDatabricksDeltaLakeImportCommand": {
+ "description": "Azure Databricks Delta Lake import command settings.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ImportSettings"
+ }
+ ],
+ "properties": {
+ "dateFormat": {
+ "type": "object",
+ "description": "Specify the date format for csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string)."
+ },
+ "timestampFormat": {
+ "type": "object",
+ "description": "Specify the timestamp format for csv in Azure Databricks Delta Lake Copy. Type: string (or Expression with resultType string)."
+ }
+ }
+ },
"StoredProcedureParameter": {
"description": "SQL stored procedure parameter.",
"type": "object",
@@ -3684,6 +3914,10 @@
"storeSettings": {
"$ref": "#/definitions/StoreWriteSettings",
"description": "Parquet store settings."
+ },
+ "formatSettings": {
+ "$ref": "#/definitions/ParquetWriteSettings",
+ "description": "Parquet format settings."
}
}
},
@@ -4108,6 +4342,14 @@
"path": {
"type": "object",
"description": "The path to storage for storing detailed logs of activity execution. Type: string (or Expression with resultType string)."
+ },
+ "logLevel": {
+ "type": "object",
+ "description": "Gets or sets the log level, support: Info, Warning. Type: string (or Expression with resultType string)."
+ },
+ "enableReliableLogging": {
+ "type": "object",
+ "description": "Specifies whether to enable reliable logging. Type: boolean (or Expression with resultType boolean)."
}
},
"additionalProperties": {
@@ -4306,6 +4548,17 @@
}
}
},
+ "DynamicsSinkWriteBehavior": {
+ "description": "Defines values for DynamicsSinkWriteBehavior.",
+ "type": "string",
+ "enum": [
+ "Upsert"
+ ],
+ "x-ms-enum": {
+ "name": "DynamicsSinkWriteBehavior",
+ "modelAsString": true
+ }
+ },
"DynamicsSink": {
"description": "A copy activity Dynamics sink.",
"type": "object",
@@ -4317,14 +4570,7 @@
"properties": {
"writeBehavior": {
"description": "The write behavior for the operation.",
- "type": "string",
- "enum": [
- "Upsert"
- ],
- "x-ms-enum": {
- "name": "DynamicsSinkWriteBehavior",
- "modelAsString": true
- }
+ "$ref": "#/definitions/DynamicsSinkWriteBehavior"
},
"ignoreNullValues": {
"type": "object",
@@ -4350,14 +4596,7 @@
"properties": {
"writeBehavior": {
"description": "The write behavior for the operation.",
- "type": "string",
- "enum": [
- "Upsert"
- ],
- "x-ms-enum": {
- "name": "DynamicsSinkWriteBehavior",
- "modelAsString": true
- }
+ "$ref": "#/definitions/DynamicsSinkWriteBehavior"
},
"ignoreNullValues": {
"type": "object",
@@ -4383,14 +4622,7 @@
"properties": {
"writeBehavior": {
"description": "The write behavior for the operation.",
- "type": "string",
- "enum": [
- "Upsert"
- ],
- "x-ms-enum": {
- "name": "DynamicsSinkWriteBehavior",
- "modelAsString": true
- }
+ "$ref": "#/definitions/DynamicsSinkWriteBehavior"
},
"ignoreNullValues": {
"type": "object",
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Trigger.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Trigger.json
index 6423f41ed7d3..b9ff8cce6b89 100644
--- a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Trigger.json
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Trigger.json
@@ -4,6 +4,17 @@
"title": "DataFactoryManagementClient",
"version": "2018-06-01"
},
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
"paths": {},
"definitions": {
"Trigger": {
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ExposureControl_QueryFeatureValuesByFactory.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ExposureControl_QueryFeatureValuesByFactory.json
new file mode 100644
index 000000000000..a546ad232dc1
--- /dev/null
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ExposureControl_QueryFeatureValuesByFactory.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-12345678abc",
+ "resourceGroupName": "exampleResourceGroup",
+ "factoryName": "exampleFactoryName",
+ "exposureControlBatchRequest": {
+ "exposureControlRequests": [
+ {
+ "featureName": "ADFIntegrationRuntimeSharingRbac",
+ "featureType": "Feature"
+ },
+ {
+ "featureName": "ADFSampleFeature",
+ "featureType": "Feature"
+ }
+ ]
+ },
+ "api-version": "2018-06-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "Date": "Sat, 22 Dec 2018 09:46:07 GMT",
+ "X-Content-Type-Options": "nosniff"
+ },
+ "body": {
+ "exposureControlResponses": [
+ {
+ "featureName": "ADFIntegrationRuntimeSharingRbac",
+ "value": "False"
+ },
+ {
+ "featureName": "ADFSampleFeature",
+ "value": "True"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedPrivateEndpoints_Create.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedPrivateEndpoints_Create.json
new file mode 100644
index 000000000000..6b2fe0e51eec
--- /dev/null
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedPrivateEndpoints_Create.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-12345678abc",
+ "resourceGroupName": "exampleResourceGroup",
+ "factoryName": "exampleFactoryName",
+ "managedVirtualNetworkName": "exampleManagedVirtualNetworkName",
+ "managedPrivateEndpointName": "exampleManagedPrivateEndpointName",
+ "ifMatch": null,
+ "managedPrivateEndpoint": {
+ "properties": {
+ "privateLinkResourceId": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.Storage/storageAccounts/exampleBlobStorage",
+ "groupId": "blob",
+ "fqdns": []
+ }
+ },
+ "api-version": "2018-06-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "Date": "Wed, 13 Jun 2020 22:20:47 GMT",
+ "X-Content-Type-Options": "nosniff",
+ "x-ms-ratelimit-remaining-subscription-writes": "1197",
+ "x-ms-request-id": "9e6639e9-bece-4c0c-85de-4cadc30a73a6",
+ "x-ms-correlation-request-id": "9e6639e9-bece-4c0c-85de-4cadc30a73a6"
+ },
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName/managedVirtualNetworks/exampleManagedVirtualNetworkName/managedPrivateEndpoints/exampleManagedPrivateEndpointName",
+ "name": "exampleManagedPrivateEndpointName",
+ "type": "Microsoft.DataFactory/factories/managedVirtualNetworks/managedPrivateEndpoints",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateLinkResourceId": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.Storage/storageAccounts/exampleBlobStorage",
+ "groupId": "blob",
+ "fqdns": [],
+ "connectionState": {
+ "status": "Pending",
+ "description": "",
+ "actionsRequired": "None"
+ }
+ },
+ "etag": "000046c4-0000-0000-0000-5b2198bf0000"
+ }
+ }
+ }
+}
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedPrivateEndpoints_Delete.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedPrivateEndpoints_Delete.json
new file mode 100644
index 000000000000..ad877baef007
--- /dev/null
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedPrivateEndpoints_Delete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-12345678abc",
+ "resourceGroupName": "exampleResourceGroup",
+ "factoryName": "exampleFactoryName",
+ "managedVirtualNetworkName": "exampleManagedVirtualNetworkName",
+ "managedPrivateEndpointName": "exampleManagedPrivateEndpointName",
+ "api-version": "2018-06-01"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedPrivateEndpoints_Get.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedPrivateEndpoints_Get.json
new file mode 100644
index 000000000000..dd2d661872bf
--- /dev/null
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedPrivateEndpoints_Get.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-12345678abc",
+ "resourceGroupName": "exampleResourceGroup",
+ "factoryName": "exampleFactoryName",
+ "managedVirtualNetworkName": "exampleManagedVirtualNetworkName",
+ "managedPrivateEndpointName": "exampleManagedPrivateEndpointName",
+ "ifNoneMatch": "15003c4f-0000-0200-0000-5cbe090b0000",
+ "api-version": "2018-06-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "Date": "Mon, 22 Apr 2019 18:33:47 GMT",
+ "X-Content-Type-Options": "nosniff",
+ "x-ms-ratelimit-remaining-subscription-reads": "11997",
+ "x-ms-request-id": "9e6639e9-bece-4c0c-85de-4cadc30a73a6",
+ "x-ms-correlation-request-id": "9e6639e9-bece-4c0c-85de-4cadc30a73a6"
+ },
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName/managedVirtualNetworks/exampleManagedVirtualNetworkName/managedPrivateEndpoints/exampleManagedPrivateEndpointName",
+ "name": "exampleManagedPrivateEndpointName",
+ "type": "Microsoft.DataFactory/factories/managedVirtualNetworks/managedPrivateEndpoints",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateLinkResourceId": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.Storage/storageAccounts/exampleBlobStorage",
+ "groupId": "blob",
+ "fqdns": [],
+ "connectionState": {
+ "status": "Pending",
+ "description": "",
+ "actionsRequired": "None"
+ }
+ },
+ "etag": "000046c4-0000-0000-0000-5b2198bf0000"
+ }
+ }
+ }
+}
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedPrivateEndpoints_ListByFactory.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedPrivateEndpoints_ListByFactory.json
new file mode 100644
index 000000000000..7cd244238e52
--- /dev/null
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedPrivateEndpoints_ListByFactory.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-12345678abc",
+ "resourceGroupName": "exampleResourceGroup",
+ "factoryName": "exampleFactoryName",
+ "managedVirtualNetworkName": "exampleManagedVirtualNetworkName",
+ "ifNoneMatch": null,
+ "api-version": "2018-06-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "Date": "Wed, 13 Jun 2020 21:33:05 GMT",
+ "X-Content-Type-Options": "nosniff",
+ "x-ms-ratelimit-remaining-subscription-reads": "14909",
+ "x-ms-request-id": "9e6639e9-bece-4c0c-85de-4cadc30a73a6",
+ "x-ms-correlation-request-id": "9e6639e9-bece-4c0c-85de-4cadc30a73a6"
+ },
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName/managedVirtualNetworks/exampleManagedVirtualNetworkName/managedPrivateEndpoints/exampleManagedPrivateEndpointName",
+ "name": "exampleManagedPrivateEndpointName",
+ "type": "Microsoft.DataFactory/factories/managedVirtualNetworks/managedPrivateEndpoints",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateLinkResourceId": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.Storage/storageAccounts/exampleBlobStorage",
+ "groupId": "blob",
+ "fqdns": [],
+ "connectionState": {
+ "status": "Pending",
+ "description": "",
+ "actionsRequired": "None"
+ }
+ },
+ "etag": "000046c4-0000-0000-0000-5b2198bf0000"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedVirtualNetworks_Create.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedVirtualNetworks_Create.json
new file mode 100644
index 000000000000..b443262b85ed
--- /dev/null
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedVirtualNetworks_Create.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-12345678abc",
+ "resourceGroupName": "exampleResourceGroup",
+ "factoryName": "exampleFactoryName",
+ "managedVirtualNetworkName": "exampleManagedVirtualNetworkName",
+ "ifMatch": null,
+ "managedVirtualNetwork": {
+ "properties": {}
+ },
+ "api-version": "2018-06-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "Date": "Wed, 13 Jun 2020 22:20:47 GMT",
+ "X-Content-Type-Options": "nosniff",
+ "x-ms-ratelimit-remaining-subscription-writes": "1197",
+ "x-ms-request-id": "9e6639e9-bece-4c0c-85de-4cadc30a73a6",
+ "x-ms-correlation-request-id": "9e6639e9-bece-4c0c-85de-4cadc30a73a6"
+ },
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName/managedVirtualNetworks/exampleManagedVirtualNetworkName",
+ "name": "exampleManagedVirtualNetworkName",
+ "type": "Microsoft.DataFactory/factories/managedVirtualNetworks",
+ "properties": {
+ "alias": "exampleFactoryName",
+ "vNetId": "12345678-1234-1234-1234-12345678123"
+ },
+ "etag": "000046c4-0000-0000-0000-5b2198bf0000"
+ }
+ }
+ }
+}
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedVirtualNetworks_Get.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedVirtualNetworks_Get.json
new file mode 100644
index 000000000000..eb57ca1526a9
--- /dev/null
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedVirtualNetworks_Get.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-12345678abc",
+ "resourceGroupName": "exampleResourceGroup",
+ "factoryName": "exampleFactoryName",
+ "managedVirtualNetworkName": "exampleManagedVirtualNetworkName",
+ "ifNoneMatch": "15003c4f-0000-0200-0000-5cbe090b0000",
+ "api-version": "2018-06-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "Date": "Mon, 22 Apr 2019 18:33:47 GMT",
+ "X-Content-Type-Options": "nosniff",
+ "x-ms-ratelimit-remaining-subscription-reads": "11997",
+ "x-ms-request-id": "9e6639e9-bece-4c0c-85de-4cadc30a73a6",
+ "x-ms-correlation-request-id": "9e6639e9-bece-4c0c-85de-4cadc30a73a6"
+ },
+ "body": {
+ "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName/managedVirtualNetworks/exampleManagedVirtualNetworkName",
+ "name": "exampleManagedVirtualNetworkName",
+ "type": "Microsoft.DataFactory/factories/managedVirtualNetworks",
+ "properties": {
+ "alias": "exampleFactoryName",
+ "vNetId": "5a7bd944-87e6-454a-8d4d-9fba446514fd"
+ },
+ "etag": "15003c4f-0000-0200-0000-5cbe090b0000"
+ }
+ }
+ }
+}
diff --git a/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedVirtualNetworks_ListByFactory.json b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedVirtualNetworks_ListByFactory.json
new file mode 100644
index 000000000000..9a664e3739e0
--- /dev/null
+++ b/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/examples/ManagedVirtualNetworks_ListByFactory.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "12345678-1234-1234-1234-12345678abc",
+ "resourceGroupName": "exampleResourceGroup",
+ "factoryName": "exampleFactoryName",
+ "ifNoneMatch": null,
+ "api-version": "2018-06-01"
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "Date": "Wed, 13 Jun 2020 21:33:05 GMT",
+ "X-Content-Type-Options": "nosniff",
+ "x-ms-ratelimit-remaining-subscription-reads": "14909",
+ "x-ms-request-id": "9e6639e9-bece-4c0c-85de-4cadc30a73a6",
+ "x-ms-correlation-request-id": "9e6639e9-bece-4c0c-85de-4cadc30a73a6"
+ },
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/12345678-1234-1234-1234-12345678abc/resourceGroups/exampleResourceGroup/providers/Microsoft.DataFactory/factories/exampleFactoryName/managedVirtualNetworks/exampleManagedVirtualNetworkName",
+ "name": "exampleManagedVirtualNetworkName",
+ "type": "Microsoft.DataFactory/factories/managedVirtualNetworks",
+ "properties": {
+ "alias": "exampleFactoryName",
+ "vNetId": "5a7bd944-87e6-454a-8d4d-9fba446514fd"
+ },
+ "etag": "0400f1a1-0000-0000-0000-5b2188640000"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/datafactory/resource-manager/readme.az.md b/specification/datafactory/resource-manager/readme.az.md
new file mode 100644
index 000000000000..c66b104e4430
--- /dev/null
+++ b/specification/datafactory/resource-manager/readme.az.md
@@ -0,0 +1,86 @@
+## AZ
+
+These settings apply only when `--az` is specified on the command line.
+
+``` yaml $(az)
+az:
+ extensions: datafactory
+ namespace: azure.mgmt.datafactory
+ package-name: azure-mgmt-datafactory
+ disable-checks: true
+ randomize-names: true
+az-output-folder: $(azure-cli-extension-folder)/src/datafactory
+python-sdk-output-folder: "$(az-output-folder)/azext_datafactory/vendored_sdks/datafactory"
+
+input-file:
+- Microsoft.DataFactory/stable/2018-06-01/entityTypes/DataFlow.json
+- Microsoft.DataFactory/stable/2018-06-01/entityTypes/Dataset.json
+- Microsoft.DataFactory/stable/2018-06-01/entityTypes/IntegrationRuntime.json
+- Microsoft.DataFactory/stable/2018-06-01/entityTypes/LinkedService.json
+- Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json
+- Microsoft.DataFactory/stable/2018-06-01/entityTypes/Trigger.json
+
+directive:
+ - from: swagger-document
+ where: $.definitions.JsonFormatFilePattern
+ transform: >
+ $['type'] = 'string';
+ - from: swagger-document
+ where: $.definitions.CompressionLevel
+ transform: >
+ $['type'] = 'string';
+ - from: swagger-document
+ where: $.definitions.DynamicsLinkedServiceTypeProperties.properties.servicePrincipalCredentialType
+ transform: >
+ $['type'] = 'string';
+ - from: swagger-document
+ where: $.definitions.ScriptAction.properties.roles
+ transform: >
+ $['type'] = 'string';
+ - where:
+ command: datafactory integration-runtime create-linked-integration-runtime
+ set:
+ command: datafactory integration-runtime linked-integration-runtime create
+
+cli:
+ cli-directive:
+ # directive on operationGroup
+ - where:
+ group: Pipelines
+ op: CreateOrUpdate$|CreateOrUpdate#Create
+ parameter: pipeline
+ json: true
+ - where:
+ group: IntegrationRuntimes
+ op: CreateOrUpdate
+ param: properties
+ poly-resource: true
+ - where:
+ group: IntegrationRuntimes
+ op: CreateOrUpdate#*
+ param: properties
+ poly-resource: true
+ - where:
+ group: ExposureControl|IntegrationRuntimeObjectMetadata|DataFlows|DataFlowDebugSession|ManagedVirtualNetworks|ManagedPrivateEndpoints
+ hidden: true
+ - where:
+ group: Factories
+ op: ConfigureFactoryRepo
+ param: locationId
+ name: location
+ - where:
+ group: IntegrationRuntimes
+ op: CreateLinkedIntegrationRuntime
+ param: dataFactoryLocation
+ name: location
+ - where:
+ group: Triggers|LinkedServices|Datasets
+ op: CreateOrUpdate#Update
+ param: properties
+ cli-flatten: true
+ - where:
+ group: Pipelines
+ op: CreateOrUpdate#Update
+ param: pipeline
+ cli-flatten: true
+```
diff --git a/specification/datafactory/resource-manager/readme.azureresourceschema.md b/specification/datafactory/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..76766e48c563
--- /dev/null
+++ b/specification/datafactory/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,43 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-datafactory-2018-06-01
+ - tag: schema-datafactory-2017-09-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-datafactory-2018-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-datafactory-2018-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataFactory/stable/2018-06-01/datafactory.json
+ - Microsoft.DataFactory/stable/2018-06-01/entityTypes/DataFlow.json
+ - Microsoft.DataFactory/stable/2018-06-01/entityTypes/Dataset.json
+ - Microsoft.DataFactory/stable/2018-06-01/entityTypes/IntegrationRuntime.json
+ - Microsoft.DataFactory/stable/2018-06-01/entityTypes/LinkedService.json
+ - Microsoft.DataFactory/stable/2018-06-01/entityTypes/ManagedPrivateEndpoint.json
+ - Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json
+ - Microsoft.DataFactory/stable/2018-06-01/entityTypes/Trigger.json
+
+```
+
+### Tag: schema-datafactory-2017-09-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-datafactory-2017-09-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataFactory/preview/2017-09-01-preview/datafactory.json
+
+```
diff --git a/specification/datafactory/resource-manager/readme.cli.md b/specification/datafactory/resource-manager/readme.cli.md
index 67b563417786..d50517ab5ce0 100644
--- a/specification/datafactory/resource-manager/readme.cli.md
+++ b/specification/datafactory/resource-manager/readme.cli.md
@@ -5,87 +5,66 @@ These settings apply only when `--cli` is specified on the command line.
``` yaml $(cli)
cli:
namespace: azure.mgmt.datafactory
- flatten-all: true
test-scenario:
- name: Factories_CreateOrUpdate
- #- name: Datasets_Create
- #- name: Datasets_Update
- #- name: Triggers_Update
- #- name: Triggers_Create
- #- name: DataFlows_Update
- #- name: Pipelines_Create
- #- name: DataFlows_Create
- #- name: Pipelines_Update
- #- name: LinkedServices_Create
- #- name: LinkedServices_Update
- #- name: IntegrationRuntimes_Create
- #- name: RerunTriggers_Create
- #- name: IntegrationRuntimeNodes_Get
- #- name: IntegrationRuntimes_Get
- #- name: RerunTriggers_ListByTrigger
- #- name: LinkedServices_Get
- #- name: PipelineRuns_Get
- #- name: Pipelines_Get
- #- name: DataFlows_Get
- #- name: Datasets_Get
- #- name: Triggers_Get
- #- name: IntegrationRuntimes_ListByFactory
- #- name: LinkedServices_ListByFactory
- #- name: DataFlows_ListByFactory
- #- name: Pipelines_ListByFactory
- #- name: Triggers_ListByFactory
- #- name: Datasets_ListByFactory
- #- name: Factories_Get
- #- name: Factories_ListByResourceGroup
- #- name: Factories_List
- #- name: Operations_List
- #- name: IntegrationRuntimeNodes_GetIpAddress
- #- name: IntegrationRuntimes_CreateLinkedIntegrationRuntime
- #- name: RerunTriggers_Cancel
- #- name: RerunTriggers_Start
- #- name: IntegrationRuntimeNodes_Update
- #- name: IntegrationRuntimeObjectMetadata_Refresh
- #- name: RerunTriggers_Stop
- #- name: IntegrationRuntimes_RegenerateAuthKey
- #- name: Triggers_Rerun
- #- name: IntegrationRuntimeObjectMetadata_Get
- #- name: IntegrationRuntimes_GetConnectionInfo
- #- name: IntegrationRuntimes_SyncCredentials
- #- name: IntegrationRuntimes_GetMonitoringData
- #- name: IntegrationRuntimes_ListAuthKeys
- #- name: IntegrationRuntimes_Upgrade
- #- name: IntegrationRuntimes_GetStatus
- #- name: IntegrationRuntimes_Upgrade
- #- name: IntegrationRuntimes_Start
- #- name: IntegrationRuntimes_Stop
- #- name: Triggers_GetEventSubscriptionStatus
- #- name: ActivityRuns_QueryByPipelineRun
- #- name: IntegrationRuntimes_Update
- #- name: Triggers_UnsubscribeFromEvents
- #- name: Triggers_SubscribeToEvents
- #- name: PipelineRuns_Cancel
- #- name: Pipelines_CreateRun
- #- name: Triggers_Start
- #- name: Triggers_Stop
- #- name: DataFlowDebugSession_ExecuteCommand
- #- name: DataFlowDebugSession_Delete
- #- name: DataFlowDebugSession_Create
- #- name: DataFlowDebugSession_QueryByFactory
- #- name: DataFlowDebugSession_AddDataFlow
- #- name: Factories_GetGitHubAccessToken
- #- name: Factories_GetDataPlaneAccess
- #- name: PipelineRuns_QueryByFactory
- #- name: TriggerRuns_QueryByFactory
- #- name: ExposureControl_GetFeatureValueByFactory
- #- name: Factories_Update
- #- name: Factories_ConfigureFactoryRepo
- #- name: ExposureControl_GetFeatureValue
- #- name: IntegrationRuntimesNodes_Delete
- #- name: IntegrationRuntimes_Delete
- #- name: LinkedServices_Delete
- #- name: Pipelines_Delete
- #- name: DataFlows_Delete
- #- name: Datasets_Delete
- #- name: Triggers_Delete
- #- name: Factories_Delete
+ - name: Factories_Update
+ - name: LinkedServices_Create
+ - name: LinkedServices_Update
+ - name: Datasets_Create
+ - name: Datasets_Update
+ - name: Pipelines_Create
+ - name: Pipelines_Update
+ - name: Triggers_Create
+ - name: Triggers_Update
+ - name: IntegrationRuntimes_Create
+ - name: IntegrationRuntimes_Update
+ - name: IntegrationRuntimes_CreateLinkedIntegrationRuntime
+ - name: Pipelines_CreateRun
+ - name: IntegrationRuntimes_Get
+ - name: RerunTriggers_ListByTrigger
+ - name: LinkedServices_Get
+ - name: PipelineRuns_Get
+ - name: Pipelines_Get
+ - name: Datasets_Get
+ - name: Triggers_Get
+ - name: IntegrationRuntimes_ListByFactory
+ - name: LinkedServices_ListByFactory
+ - name: Pipelines_ListByFactory
+ - name: Triggers_ListByFactory
+ - name: Datasets_ListByFactory
+ - name: Factories_Get
+ - name: Factories_ListByResourceGroup
+ - name: Factories_List
+ - name: Operations_List
+ - name: RerunTriggers_Cancel
+ - name: RerunTriggers_Start
+ - name: RerunTriggers_Stop
+ - name: IntegrationRuntimes_RegenerateAuthKey
+ - name: TriggerRuns_Rerun
+ - name: IntegrationRuntimes_GetConnectionInfo
+ - name: IntegrationRuntimes_SyncCredentials
+ - name: IntegrationRuntimes_GetMonitoringData
+ - name: IntegrationRuntimes_ListAuthKeys
+ - name: IntegrationRuntimes_Upgrade
+ - name: IntegrationRuntimes_GetStatus
+ - name: IntegrationRuntimes_Start
+ - name: IntegrationRuntimes_Stop
+ - name: Triggers_GetEventSubscriptionStatus
+ - name: ActivityRuns_QueryByPipelineRun
+ - name: Triggers_UnsubscribeFromEvents
+ - name: Triggers_SubscribeToEvents
+ - name: Triggers_Start
+ - name: Triggers_Stop
+ - name: Factories_GetGitHubAccessToken
+ - name: Factories_GetDataPlaneAccess
+ - name: PipelineRuns_QueryByFactory
+ - name: PipelineRuns_Cancel
+ - name: TriggerRuns_QueryByFactory
+ - name: Factories_ConfigureFactoryRepo
+ - name: IntegrationRuntimes_Delete
+ - name: Triggers_Delete
+ - name: Pipelines_Delete
+ - name: Datasets_Delete
+ - name: LinkedServices_Delete
+ - name: Factories_Delete
```
diff --git a/specification/datafactory/resource-manager/readme.md b/specification/datafactory/resource-manager/readme.md
index 6ab27eaa4547..eb66b97b8020 100644
--- a/specification/datafactory/resource-manager/readme.md
+++ b/specification/datafactory/resource-manager/readme.md
@@ -37,6 +37,13 @@ These settings apply only when `--tag=package-2018-06` is specified on the comma
``` yaml $(tag) == 'package-2018-06'
input-file:
- Microsoft.DataFactory/stable/2018-06-01/datafactory.json
+- Microsoft.DataFactory/stable/2018-06-01/entityTypes/DataFlow.json
+- Microsoft.DataFactory/stable/2018-06-01/entityTypes/Dataset.json
+- Microsoft.DataFactory/stable/2018-06-01/entityTypes/IntegrationRuntime.json
+- Microsoft.DataFactory/stable/2018-06-01/entityTypes/LinkedService.json
+- Microsoft.DataFactory/stable/2018-06-01/entityTypes/ManagedPrivateEndpoint.json
+- Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json
+- Microsoft.DataFactory/stable/2018-06-01/entityTypes/Trigger.json
```
### Tag: package-2017-09-preview
@@ -65,6 +72,10 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
+ - repo: azure-cli-extensions
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js datafactory/resource-manager
```
@@ -82,33 +93,6 @@ csharp:
clear-output-folder: true
```
-## Python
-
-These settings apply only when `--python` is specified on the command line.
-Please also specify `--python-sdks-folder=`.
-Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
-
-``` yaml $(python)
-python-mode: create
-python:
- azure-arm: true
- license-header: MICROSOFT_MIT_NO_VERSION
- payload-flattening-threshold: 2
- namespace: azure.mgmt.datafactory
- package-name: azure-mgmt-datafactory
- package-version: 1.0.0
- clear-output-folder: true
-```
-``` yaml $(python) && $(python-mode) == 'update'
-python:
- no-namespace-folders: true
- output-folder: $(python-sdks-folder)/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory
-```
-``` yaml $(python) && $(python-mode) == 'create'
-python:
- basic-setup-py: true
- output-folder: $(python-sdks-folder)/datafactory/azure-mgmt-datafactory
-```
## Go
@@ -219,28 +203,7 @@ directive:
- DataFlow add type required
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
+## AzureResourceSchema
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.DataFactory/stable/2018-06-01/datafactory.json
- - $(this-folder)/Microsoft.DataFactory/preview/2017-09-01-preview/datafactory.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/datafactory/resource-manager/readme.python.md b/specification/datafactory/resource-manager/readme.python.md
new file mode 100644
index 000000000000..51f2c51d2ce3
--- /dev/null
+++ b/specification/datafactory/resource-manager/readme.python.md
@@ -0,0 +1,27 @@
+## Python
+
+These settings apply only when `--python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
+
+``` yaml $(python)
+python-mode: create
+python:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 2
+ namespace: azure.mgmt.datafactory
+ package-name: azure-mgmt-datafactory
+ package-version: 1.0.0
+ clear-output-folder: true
+```
+``` yaml $(python) && $(python-mode) == 'update'
+python:
+ no-namespace-folders: true
+ output-folder: $(python-sdks-folder)/datafactory/azure-mgmt-datafactory/azure/mgmt/datafactory
+```
+``` yaml $(python) && $(python-mode) == 'create'
+python:
+ basic-setup-py: true
+ output-folder: $(python-sdks-folder)/datafactory/azure-mgmt-datafactory
+```
diff --git a/specification/datalake-analytics/resource-manager/readme.azureresourceschema.md b/specification/datalake-analytics/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..ee0f54438247
--- /dev/null
+++ b/specification/datalake-analytics/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,36 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-datalakeanalytics-2016-11-01
+ - tag: schema-datalakeanalytics-2015-10-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-datalakeanalytics-2016-11-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-datalakeanalytics-2016-11-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataLakeAnalytics/stable/2016-11-01/account.json
+
+```
+
+### Tag: schema-datalakeanalytics-2015-10-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-datalakeanalytics-2015-10-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataLakeAnalytics/preview/2015-10-01-preview/account.json
+
+```
diff --git a/specification/datalake-analytics/resource-manager/readme.md b/specification/datalake-analytics/resource-manager/readme.md
index a56f88ac31a4..1059c9049078 100644
--- a/specification/datalake-analytics/resource-manager/readme.md
+++ b/specification/datalake-analytics/resource-manager/readme.md
@@ -81,6 +81,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_datalake_analytics']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js datalake-analytics/resource-manager
```
@@ -168,28 +171,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.DataLakeAnalytics/stable/2016-11-01/account.json
- - $(this-folder)/Microsoft.DataLakeAnalytics/preview/2015-10-01-preview/account.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/datalake-store/resource-manager/readme.azureresourceschema.md b/specification/datalake-store/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..6382fd8e0e7e
--- /dev/null
+++ b/specification/datalake-store/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,36 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-datalakestore-2016-11-01
+ - tag: schema-datalakestore-2015-10-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-datalakestore-2016-11-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-datalakestore-2016-11-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataLakeStore/stable/2016-11-01/account.json
+
+```
+
+### Tag: schema-datalakestore-2015-10-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-datalakestore-2015-10-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataLakeStore/preview/2015-10-01-preview/account.json
+
+```
diff --git a/specification/datalake-store/resource-manager/readme.md b/specification/datalake-store/resource-manager/readme.md
index 6a0432a35413..be664c9fa1da 100644
--- a/specification/datalake-store/resource-manager/readme.md
+++ b/specification/datalake-store/resource-manager/readme.md
@@ -83,6 +83,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_datalake_store']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js datalake-store/resource-manager
```
@@ -180,28 +183,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.DataLakeStore/stable/2016-11-01/account.json
- - $(this-folder)/Microsoft.DataLakeStore/preview/2015-10-01-preview/account.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateMySqlAzureDbForMySqlSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateMySqlAzureDbForMySqlSyncTask.json
index fe9b45ba782e..177f0d78f18e 100644
--- a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateMySqlAzureDbForMySqlSyncTask.json
+++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateMySqlAzureDbForMySqlSyncTask.json
@@ -356,6 +356,13 @@
"additionalProperties": {
"type": "string"
}
+ },
+ "tableMap": {
+ "type": "object",
+ "description": "Mapping of source to target tables",
+ "additionalProperties": {
+ "type": "string"
+ }
}
}
}
diff --git a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTask.json b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTask.json
index 1d7ffee88df1..3ed8bce5713a 100644
--- a/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTask.json
+++ b/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTask.json
@@ -374,6 +374,23 @@
"additionalProperties": {
"type": "string"
}
+ },
+ "selectedTables": {
+ "type": "array",
+ "description": "Tables selected for migration",
+ "items": {
+ "$ref": "#/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput"
+ }
+ }
+ }
+ },
+ "MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput": {
+ "type": "object",
+ "description": "Selected tables for the migration",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the table to migrate"
}
}
}
diff --git a/specification/datamigration/resource-manager/readme.azureresourceschema.md b/specification/datamigration/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..721f822565b6
--- /dev/null
+++ b/specification/datamigration/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,170 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-datamigration-2018-07-15-preview
+ - tag: schema-datamigration-2018-04-19
+ - tag: schema-datamigration-2018-03-31-preview
+ - tag: schema-datamigration-2018-03-15-preview
+ - tag: schema-datamigration-2017-11-15-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-datamigration-2018-07-15-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-datamigration-2018-07-15-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataMigration/preview/2018-07-15-preview/datamigration.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Commands.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Common.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToSourceMySqlTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToSourceSqlServerTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToSourcePostgreSqlSyncTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToTargetAzureDbForMySqlTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToTargetSqlDbTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToTargetSqlMiSyncTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToTargetSqlMITask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToTargetSqlSqlDbSyncTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToTargetAzureDbForPostgreSqlSyncTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/GetUserTablesSqlSyncTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/GetUserTablesSqlTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSchemaSqlServerSqlDbTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateMySqlAzureDbForMySqlSyncTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlDbSyncTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlDbTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlMiSyncTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlMITask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSsisTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrationValidation.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MongoDbTasks.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/GetTdeCertificatesSqlTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/OracleAzureDbPostgreSqlSyncTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Projects.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ServiceFeatureOCITask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Services.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ServiceTasks.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Tasks.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/TasksCommon.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ValidateMigrationInputSqlServerSqlMITask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ValidateSyncMigrationInputSqlServerTask.json
+ - Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ValidateMigrationInputSqlServerSqlMiSyncTask.json
+
+```
+
+### Tag: schema-datamigration-2018-04-19 and azureresourceschema
+
+``` yaml $(tag) == 'schema-datamigration-2018-04-19' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataMigration/stable/2018-04-19/datamigration.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/Commands.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/Common.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToSourceMySqlTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToSourcePostgreSqlSyncTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToSourceSqlServerTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToTargetAzureDbForMySqlTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToTargetAzureDbForPostgreSqlSyncTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToTargetSqlDbTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToTargetSqlMITask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToTargetSqlMiSyncTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToTargetSqlSqlDbSyncTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/GetTdeCertificatesSqlTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/GetUserTablesSqlSyncTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/GetUserTablesSqlTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/MigrateMySqlAzureDbForMySqlSyncTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/MigrateSqlServerSqlDbSyncTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/MigrateSqlServerSqlDbTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/MigrateSqlServerSqlMITask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/MigrateSqlServerSqlMiSyncTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/Projects.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/Services.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/Tasks.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/TasksCommon.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/MigrationValidation.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/ValidateMigrationInputSqlServerSqlMITask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/ValidateMigrationInputSqlServerSqlMiSyncTask.json
+ - Microsoft.DataMigration/stable/2018-04-19/definitions/ValidateSyncMigrationInputSqlServerTask.json
+
+```
+
+### Tag: schema-datamigration-2018-03-31-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-datamigration-2018-03-31-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataMigration/preview/2018-03-31-preview/datamigration.json
+ - Microsoft.DataMigration/preview/2018-03-31-preview/definitions/Common.json
+ - Microsoft.DataMigration/preview/2018-03-31-preview/definitions/ConnectToSourceSqlServerTask.json
+ - Microsoft.DataMigration/preview/2018-03-31-preview/definitions/ConnectToTargetSqlDbTask.json
+ - Microsoft.DataMigration/preview/2018-03-31-preview/definitions/ConnectToTargetSqlMITask.json
+ - Microsoft.DataMigration/preview/2018-03-31-preview/definitions/GetUserTablesSqlTask.json
+ - Microsoft.DataMigration/preview/2018-03-31-preview/definitions/MigrateSqlServerSqlDbTask.json
+ - Microsoft.DataMigration/preview/2018-03-31-preview/definitions/MigrateSqlServerSqlMITask.json
+ - Microsoft.DataMigration/preview/2018-03-31-preview/definitions/Projects.json
+ - Microsoft.DataMigration/preview/2018-03-31-preview/definitions/Services.json
+ - Microsoft.DataMigration/preview/2018-03-31-preview/definitions/Tasks.json
+ - Microsoft.DataMigration/preview/2018-03-31-preview/definitions/TasksCommon.json
+ - Microsoft.DataMigration/preview/2018-03-31-preview/definitions/MigrationValidation.json
+ - Microsoft.DataMigration/preview/2018-03-31-preview/definitions/ValidateMigrationInputSqlServerSqlMITask.json
+
+```
+
+### Tag: schema-datamigration-2018-03-15-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-datamigration-2018-03-15-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataMigration/preview/2018-03-15-preview/datamigration.json
+ - Microsoft.DataMigration/preview/2018-03-15-preview/definitions/Common.json
+ - Microsoft.DataMigration/preview/2018-03-15-preview/definitions/ConnectToSourceSqlServerTask.json
+ - Microsoft.DataMigration/preview/2018-03-15-preview/definitions/ConnectToTargetSqlDbTask.json
+ - Microsoft.DataMigration/preview/2018-03-15-preview/definitions/ConnectToTargetSqlMITask.json
+ - Microsoft.DataMigration/preview/2018-03-15-preview/definitions/GetUserTablesSqlTask.json
+ - Microsoft.DataMigration/preview/2018-03-15-preview/definitions/MigrateSqlServerSqlDbTask.json
+ - Microsoft.DataMigration/preview/2018-03-15-preview/definitions/MigrateSqlServerSqlMITask.json
+ - Microsoft.DataMigration/preview/2018-03-15-preview/definitions/Projects.json
+ - Microsoft.DataMigration/preview/2018-03-15-preview/definitions/Services.json
+ - Microsoft.DataMigration/preview/2018-03-15-preview/definitions/Tasks.json
+ - Microsoft.DataMigration/preview/2018-03-15-preview/definitions/TasksCommon.json
+ - Microsoft.DataMigration/preview/2018-03-15-preview/definitions/MigrationValidation.json
+ - Microsoft.DataMigration/preview/2018-03-15-preview/definitions/ValidateMigrationInputSqlServerSqlMITask.json
+
+```
+
+### Tag: schema-datamigration-2017-11-15-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-datamigration-2017-11-15-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataMigration/preview/2017-11-15-preview/datamigration.json
+ - Microsoft.DataMigration/preview/2017-11-15-preview/definitions/Common.json
+ - Microsoft.DataMigration/preview/2017-11-15-preview/definitions/ConnectToSourceSqlServerTask.json
+ - Microsoft.DataMigration/preview/2017-11-15-preview/definitions/ConnectToTargetSqlDbTask.json
+ - Microsoft.DataMigration/preview/2017-11-15-preview/definitions/GetUserTablesSqlTask.json
+ - Microsoft.DataMigration/preview/2017-11-15-preview/definitions/MigrateSqlServerSqlDbTask.json
+ - Microsoft.DataMigration/preview/2017-11-15-preview/definitions/Projects.json
+ - Microsoft.DataMigration/preview/2017-11-15-preview/definitions/Services.json
+ - Microsoft.DataMigration/preview/2017-11-15-preview/definitions/Tasks.json
+ - Microsoft.DataMigration/preview/2017-11-15-preview/definitions/TasksCommon.json
+ - Microsoft.DataMigration/preview/2017-11-15-preview/definitions/MigrationValidation.json
+
+```
diff --git a/specification/datamigration/resource-manager/readme.md b/specification/datamigration/resource-manager/readme.md
index 52e90b3fd384..5050fb4c3c00 100644
--- a/specification/datamigration/resource-manager/readme.md
+++ b/specification/datamigration/resource-manager/readme.md
@@ -192,6 +192,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
- repo: azure-sdk-for-java
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js datamigration/resource-manager
```
## C#
@@ -216,129 +219,7 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/datamigration.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/Commands.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/Common.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToSourceMySqlTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToSourcePostgreSqlSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToSourceSqlServerTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToTargetAzureDbForMySqlTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToTargetAzureDbForPostgreSqlSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToTargetSqlDbTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToTargetSqlMITask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToTargetSqlMiSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/ConnectToTargetSqlSqlDbSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/GetTdeCertificatesSqlTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/GetUserTablesSqlSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/GetUserTablesSqlTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/MigrateMySqlAzureDbForMySqlSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/MigrateSqlServerSqlDbSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/MigrateSqlServerSqlDbTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/MigrateSqlServerSqlMITask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/MigrateSqlServerSqlMiSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/Projects.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/Services.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/Tasks.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/TasksCommon.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/MigrationValidation.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/ValidateMigrationInputSqlServerSqlMITask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/ValidateMigrationInputSqlServerSqlMiSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/stable/2018-04-19/definitions/ValidateSyncMigrationInputSqlServerTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/datamigration.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Commands.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Common.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToSourceMySqlTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToSourceSqlServerTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToSourcePostgreSqlSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToTargetAzureDbForMySqlTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToTargetSqlDbTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToTargetSqlMiSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToTargetSqlMITask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToTargetSqlSqlDbSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ConnectToTargetAzureDbForPostgreSqlSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/GetUserTablesSqlSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/GetUserTablesSqlTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSchemaSqlServerSqlDbTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateMySqlAzureDbForMySqlSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigratePostgreSqlAzureDbForPostgreSqlSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlDbSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlDbTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlMiSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSqlServerSqlMITask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrateSsisTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MigrationValidation.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/MongoDbTasks.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/GetTdeCertificatesSqlTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/OracleAzureDbPostgreSqlSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Projects.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ServiceFeatureOCITask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Services.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ServiceTasks.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/Tasks.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/TasksCommon.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ValidateMigrationInputSqlServerSqlMITask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ValidateSyncMigrationInputSqlServerTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/ValidateMigrationInputSqlServerSqlMiSyncTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-31-preview/datamigration.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-31-preview/definitions/Common.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-31-preview/definitions/ConnectToSourceSqlServerTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-31-preview/definitions/ConnectToTargetSqlDbTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-31-preview/definitions/ConnectToTargetSqlMITask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-31-preview/definitions/GetUserTablesSqlTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-31-preview/definitions/MigrateSqlServerSqlDbTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-31-preview/definitions/MigrateSqlServerSqlMITask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-31-preview/definitions/Projects.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-31-preview/definitions/Services.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-31-preview/definitions/Tasks.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-31-preview/definitions/TasksCommon.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-31-preview/definitions/MigrationValidation.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-31-preview/definitions/ValidateMigrationInputSqlServerSqlMITask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-15-preview/datamigration.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-15-preview/definitions/Common.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-15-preview/definitions/ConnectToSourceSqlServerTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-15-preview/definitions/ConnectToTargetSqlDbTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-15-preview/definitions/ConnectToTargetSqlMITask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-15-preview/definitions/GetUserTablesSqlTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-15-preview/definitions/MigrateSqlServerSqlDbTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-15-preview/definitions/MigrateSqlServerSqlMITask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-15-preview/definitions/Projects.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-15-preview/definitions/Services.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-15-preview/definitions/Tasks.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-15-preview/definitions/TasksCommon.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-15-preview/definitions/MigrationValidation.json
- - $(this-folder)/Microsoft.DataMigration/preview/2018-03-15-preview/definitions/ValidateMigrationInputSqlServerSqlMITask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2017-11-15-preview/datamigration.json
- - $(this-folder)/Microsoft.DataMigration/preview/2017-11-15-preview/definitions/Common.json
- - $(this-folder)/Microsoft.DataMigration/preview/2017-11-15-preview/definitions/ConnectToSourceSqlServerTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2017-11-15-preview/definitions/ConnectToTargetSqlDbTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2017-11-15-preview/definitions/GetUserTablesSqlTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2017-11-15-preview/definitions/MigrateSqlServerSqlDbTask.json
- - $(this-folder)/Microsoft.DataMigration/preview/2017-11-15-preview/definitions/Projects.json
- - $(this-folder)/Microsoft.DataMigration/preview/2017-11-15-preview/definitions/Services.json
- - $(this-folder)/Microsoft.DataMigration/preview/2017-11-15-preview/definitions/Tasks.json
- - $(this-folder)/Microsoft.DataMigration/preview/2017-11-15-preview/definitions/TasksCommon.json
- - $(this-folder)/Microsoft.DataMigration/preview/2017-11-15-preview/definitions/MigrationValidation.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/DataShare.json b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/DataShare.json
index 734c0df12808..52cb2b83c073 100644
--- a/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/DataShare.json
+++ b/specification/datashare/resource-manager/Microsoft.DataShare/stable/2019-11-01/DataShare.json
@@ -3067,27 +3067,6 @@
}
},
"definitions": {
- "AccountList": {
- "description": "List response for get Accounts.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "nextLink": {
- "description": "The Url of next result page.",
- "type": "string"
- },
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/Account"
- }
- }
- }
- },
"Account": {
"description": "An account data transfer object.",
"required": [
@@ -3111,29 +3090,23 @@
}
}
},
- "Identity": {
- "description": "Identity of resource",
+ "AccountList": {
+ "description": "List response for get Accounts.",
+ "required": [
+ "value"
+ ],
"type": "object",
"properties": {
- "principalId": {
- "description": "service principal Id",
- "type": "string",
- "readOnly": true
- },
- "tenantId": {
- "description": "Tenant Id",
- "type": "string",
- "readOnly": true
+ "nextLink": {
+ "description": "The Url of next result page.",
+ "type": "string"
},
- "type": {
- "description": "Identity Type",
- "enum": [
- "SystemAssigned"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "type",
- "modelAsString": true
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Account"
}
}
}
@@ -3176,976 +3149,835 @@
}
}
},
- "DataShareError": {
- "description": "The data share error model.",
- "required": [
- "error"
- ],
+ "AccountUpdateParameters": {
+ "description": "Update parameters for accounts",
"type": "object",
"properties": {
- "error": {
- "$ref": "#/definitions/DataShareErrorInfo",
- "description": "The data share error body"
+ "tags": {
+ "description": "Tags on the azure resource.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
}
}
},
- "DataShareErrorInfo": {
- "description": "The data share error body model.",
+ "ADLSGen1FileDataSet": {
+ "description": "An ADLS Gen 1 file data set.",
"required": [
- "code",
- "message"
+ "properties",
+ "kind"
],
"type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataSet"
+ }
+ ],
"properties": {
- "code": {
- "description": "Code of the error",
- "type": "string"
- },
- "details": {
- "description": "Nested details of the error model",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/DataShareErrorInfo"
- }
- },
- "message": {
- "description": "Message of the error",
- "type": "string"
- },
- "target": {
- "description": "Target of the error",
- "type": "string"
+ "properties": {
+ "$ref": "#/definitions/ADLSGen1FileProperties",
+ "description": "ADLS Gen 1 file data set properties.",
+ "x-ms-client-flatten": true
}
- }
+ },
+ "x-ms-discriminator-value": "AdlsGen1File"
},
- "OperationResponse": {
- "description": "Response for long running operation",
+ "ADLSGen1FileProperties": {
+ "description": "Properties of the ADLS Gen1 file data set.",
"required": [
- "status"
+ "subscriptionId",
+ "resourceGroup",
+ "accountName",
+ "folderPath",
+ "fileName"
],
"type": "object",
"properties": {
- "endTime": {
- "format": "date-time",
- "description": "start time",
+ "accountName": {
+ "description": "The ADLS account name.",
"type": "string"
},
- "error": {
- "$ref": "#/definitions/DataShareErrorInfo",
- "description": "The error property when status is failed."
+ "dataSetId": {
+ "description": "Unique id for identifying a data set resource",
+ "type": "string",
+ "readOnly": true
},
- "startTime": {
- "format": "date-time",
- "description": "start time",
+ "fileName": {
+ "description": "The file name in the ADLS account.",
"type": "string"
},
- "status": {
- "description": "Operation state of the long running operation.",
- "enum": [
- "Accepted",
- "InProgress",
- "TransientFailure",
- "Succeeded",
- "Failed",
- "Canceled"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "status",
- "modelAsString": true
- }
+ "folderPath": {
+ "description": "The folder path within the ADLS account.",
+ "type": "string"
+ },
+ "resourceGroup": {
+ "description": "Resource group of ADLS account.",
+ "type": "string"
+ },
+ "subscriptionId": {
+ "description": "Subscription id of ADLS account.",
+ "type": "string"
}
}
},
- "AccountUpdateParameters": {
- "description": "Update parameters for accounts",
+ "ADLSGen1FolderDataSet": {
+ "description": "An ADLS Gen 1 folder data set.",
+ "required": [
+ "properties",
+ "kind"
+ ],
"type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataSet"
+ }
+ ],
"properties": {
- "tags": {
- "description": "Tags on the azure resource.",
- "type": "object",
- "additionalProperties": {
- "type": "string"
- }
+ "properties": {
+ "$ref": "#/definitions/ADLSGen1FolderProperties",
+ "description": "ADLS Gen 1 folder data set properties.",
+ "x-ms-client-flatten": true
}
- }
+ },
+ "x-ms-discriminator-value": "AdlsGen1Folder"
},
- "ConsumerInvitationList": {
- "description": "List response for get InvitationList",
+ "ADLSGen1FolderProperties": {
+ "description": "Properties of the ADLS Gen1 folder data set.",
"required": [
- "value"
+ "subscriptionId",
+ "resourceGroup",
+ "accountName",
+ "folderPath"
],
"type": "object",
"properties": {
- "nextLink": {
- "description": "The Url of next result page.",
+ "accountName": {
+ "description": "The ADLS account name.",
"type": "string"
},
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/ConsumerInvitation"
- }
+ "dataSetId": {
+ "description": "Unique id for identifying a data set resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "folderPath": {
+ "description": "The folder path within the ADLS account.",
+ "type": "string"
+ },
+ "resourceGroup": {
+ "description": "Resource group of ADLS account.",
+ "type": "string"
+ },
+ "subscriptionId": {
+ "description": "Subscription id of ADLS account.",
+ "type": "string"
}
}
},
- "ConsumerInvitation": {
- "description": "A consumer Invitation data transfer object.",
+ "ADLSGen2FileDataSet": {
+ "description": "An ADLS Gen 2 file data set.",
"required": [
- "properties"
+ "properties",
+ "kind"
],
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/ProxyDto"
+ "$ref": "#/definitions/DataSet"
}
],
"properties": {
"properties": {
- "$ref": "#/definitions/ConsumerInvitationProperties",
- "description": "Properties on the account",
+ "$ref": "#/definitions/ADLSGen2FileProperties",
+ "description": "ADLS Gen 2 file data set properties.",
"x-ms-client-flatten": true
}
- }
+ },
+ "x-ms-discriminator-value": "AdlsGen2File"
},
- "ConsumerInvitationProperties": {
- "description": "Properties of consumer invitation",
+ "ADLSGen2FileDataSetMapping": {
+ "description": "An ADLS Gen2 file data set mapping.",
"required": [
- "invitationId"
+ "properties",
+ "kind"
],
"type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataSetMapping"
+ }
+ ],
"properties": {
- "dataSetCount": {
- "format": "int32",
- "description": "Number of data sets in a share",
- "type": "integer",
- "readOnly": true
- },
- "description": {
- "description": "Description shared when the invitation was created",
- "type": "string",
- "readOnly": true
- },
- "invitationId": {
- "description": "Unique id of the invitation.",
+ "properties": {
+ "$ref": "#/definitions/ADLSGen2FileDataSetMappingProperties",
+ "description": "ADLS Gen2 file data set mapping properties.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "x-ms-discriminator-value": "AdlsGen2File"
+ },
+ "ADLSGen2FileDataSetMappingProperties": {
+ "description": "ADLS Gen 2 file data set mapping property bag.",
+ "required": [
+ "fileSystem",
+ "filePath",
+ "subscriptionId",
+ "resourceGroup",
+ "storageAccountName",
+ "dataSetId"
+ ],
+ "type": "object",
+ "properties": {
+ "dataSetId": {
+ "description": "The id of the source data set.",
"type": "string"
},
- "invitationStatus": {
- "description": "The status of the invitation.",
+ "dataSetMappingStatus": {
+ "description": "Gets the status of the data set mapping.",
"enum": [
- "Pending",
- "Accepted",
- "Rejected",
- "Withdrawn"
+ "Ok",
+ "Broken"
],
"type": "string",
"readOnly": true,
"x-ms-enum": {
- "name": "invitationStatus",
+ "name": "dataSetMappingStatus",
"modelAsString": true
}
},
- "location": {
- "description": "invitation location",
- "type": "string",
- "readOnly": true
+ "filePath": {
+ "description": "File path within the file system.",
+ "type": "string"
},
- "providerEmail": {
- "description": "Email of the provider who created the resource",
- "type": "string",
- "readOnly": true
+ "fileSystem": {
+ "description": "File system to which the file belongs.",
+ "type": "string"
},
- "providerName": {
- "description": "Name of the provider who created the resource",
+ "outputType": {
+ "description": "Type of output file",
+ "enum": [
+ "Csv",
+ "Parquet"
+ ],
"type": "string",
- "readOnly": true
+ "x-ms-enum": {
+ "name": "outputType",
+ "modelAsString": true
+ }
},
- "providerTenantName": {
- "description": "Tenant name of the provider who created the resource",
+ "provisioningState": {
+ "description": "Provisioning state of the data set mapping.",
+ "enum": [
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Moving",
+ "Failed"
+ ],
"type": "string",
- "readOnly": true
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "provisioningState",
+ "modelAsString": true
+ }
},
- "respondedAt": {
- "format": "date-time",
- "description": "The time the recipient responded to the invitation.",
- "type": "string",
- "readOnly": true
+ "resourceGroup": {
+ "description": "Resource group of storage account.",
+ "type": "string"
},
- "sentAt": {
- "format": "date-time",
- "description": "Gets the time at which the invitation was sent.",
- "type": "string",
- "readOnly": true
+ "storageAccountName": {
+ "description": "Storage account name of the source data set.",
+ "type": "string"
},
- "shareName": {
- "description": "Gets the source share Name.",
+ "subscriptionId": {
+ "description": "Subscription id of storage account.",
+ "type": "string"
+ }
+ }
+ },
+ "ADLSGen2FileProperties": {
+ "description": "Properties of the ADLS Gen2 file data set.",
+ "required": [
+ "fileSystem",
+ "filePath",
+ "subscriptionId",
+ "resourceGroup",
+ "storageAccountName"
+ ],
+ "type": "object",
+ "properties": {
+ "dataSetId": {
+ "description": "Unique id for identifying a data set resource",
"type": "string",
"readOnly": true
},
- "termsOfUse": {
- "description": "Terms of use shared when the invitation was created",
- "type": "string",
- "readOnly": true
+ "filePath": {
+ "description": "File path within the file system.",
+ "type": "string"
},
- "userEmail": {
- "description": "Email of the user who created the resource",
- "type": "string",
- "readOnly": true
+ "fileSystem": {
+ "description": "File system to which the file belongs.",
+ "type": "string"
},
- "userName": {
- "description": "Name of the user who created the resource",
- "type": "string",
- "readOnly": true
+ "resourceGroup": {
+ "description": "Resource group of storage account",
+ "type": "string"
+ },
+ "storageAccountName": {
+ "description": "Storage account name of the source data set",
+ "type": "string"
+ },
+ "subscriptionId": {
+ "description": "Subscription id of storage account",
+ "type": "string"
}
}
},
- "DataSet": {
- "description": "A DataSet data transfer object.",
+ "ADLSGen2FileSystemDataSet": {
+ "description": "An ADLS Gen 2 file system data set.",
"required": [
+ "properties",
"kind"
],
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/ProxyDto"
+ "$ref": "#/definitions/DataSet"
}
],
"properties": {
- "kind": {
- "description": "Kind of data set.",
- "enum": [
- "Blob",
- "Container",
- "BlobFolder",
- "AdlsGen2FileSystem",
- "AdlsGen2Folder",
- "AdlsGen2File",
- "AdlsGen1Folder",
- "AdlsGen1File",
- "KustoCluster",
- "KustoDatabase",
- "SqlDBTable",
- "SqlDWTable"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "kind",
- "modelAsString": true
- }
+ "properties": {
+ "$ref": "#/definitions/ADLSGen2FileSystemProperties",
+ "description": "ADLS Gen 2 file system data set properties.",
+ "x-ms-client-flatten": true
}
},
- "discriminator": "kind"
- },
- "DataSetList": {
- "description": "List response for get DataSets",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "nextLink": {
- "description": "The Url of next result page.",
- "type": "string"
- },
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/DataSet"
- }
- }
- }
+ "x-ms-discriminator-value": "AdlsGen2FileSystem"
},
- "DataSetMapping": {
- "description": "A data set mapping data transfer object.",
+ "ADLSGen2FileSystemDataSetMapping": {
+ "description": "An ADLS Gen2 file system data set mapping.",
"required": [
+ "properties",
"kind"
],
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/ProxyDto"
+ "$ref": "#/definitions/DataSetMapping"
}
],
"properties": {
- "kind": {
- "description": "Kind of data set mapping.",
- "enum": [
- "Blob",
- "Container",
- "BlobFolder",
- "AdlsGen2FileSystem",
- "AdlsGen2Folder",
- "AdlsGen2File",
- "KustoCluster",
- "KustoDatabase",
- "SqlDBTable",
- "SqlDWTable"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "kind",
- "modelAsString": true
- }
+ "properties": {
+ "$ref": "#/definitions/ADLSGen2FileSystemDataSetMappingProperties",
+ "description": "ADLS Gen2 file system data set mapping properties.",
+ "x-ms-client-flatten": true
}
},
- "discriminator": "kind"
+ "x-ms-discriminator-value": "AdlsGen2FileSystem"
},
- "DataSetMappingList": {
- "description": "List response for get DataSetMappings",
+ "ADLSGen2FileSystemDataSetMappingProperties": {
+ "description": "ADLS Gen 2 file system data set mapping property bag.",
"required": [
- "value"
+ "fileSystem",
+ "subscriptionId",
+ "resourceGroup",
+ "storageAccountName",
+ "dataSetId"
],
"type": "object",
"properties": {
- "nextLink": {
- "description": "The Url of next result page.",
+ "dataSetId": {
+ "description": "The id of the source data set.",
"type": "string"
},
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/DataSetMapping"
- }
- }
- }
- },
- "Invitation": {
- "description": "A Invitation data transfer object.",
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/ProxyDto"
- }
- ],
- "properties": {
- "properties": {
- "$ref": "#/definitions/InvitationProperties",
- "description": "Properties on the Invitation",
- "x-ms-client-flatten": true
- }
- }
- },
- "InvitationProperties": {
- "description": "Invitation property bag.",
- "type": "object",
- "properties": {
- "invitationId": {
- "description": "unique invitation id",
- "type": "string",
- "readOnly": true
- },
- "invitationStatus": {
- "description": "The status of the invitation.",
+ "dataSetMappingStatus": {
+ "description": "Gets the status of the data set mapping.",
"enum": [
- "Pending",
- "Accepted",
- "Rejected",
- "Withdrawn"
+ "Ok",
+ "Broken"
],
"type": "string",
"readOnly": true,
"x-ms-enum": {
- "name": "invitationStatus",
+ "name": "dataSetMappingStatus",
"modelAsString": true
}
},
- "respondedAt": {
- "format": "date-time",
- "description": "The time the recipient responded to the invitation.",
- "type": "string",
- "readOnly": true
+ "fileSystem": {
+ "description": "The file system name.",
+ "type": "string"
},
- "sentAt": {
- "format": "date-time",
- "description": "Gets the time at which the invitation was sent.",
+ "provisioningState": {
+ "description": "Provisioning state of the data set mapping.",
+ "enum": [
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Moving",
+ "Failed"
+ ],
"type": "string",
- "readOnly": true
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "provisioningState",
+ "modelAsString": true
+ }
},
- "targetActiveDirectoryId": {
- "description": "The target Azure AD Id. Can't be combined with email.",
+ "resourceGroup": {
+ "description": "Resource group of storage account.",
"type": "string"
},
- "targetEmail": {
- "description": "The email the invitation is directed to.",
+ "storageAccountName": {
+ "description": "Storage account name of the source data set.",
"type": "string"
},
- "targetObjectId": {
- "description": "The target user or application Id that invitation is being sent to.\r\nMust be specified along TargetActiveDirectoryId. This enables sending\r\ninvitations to specific users or applications in an AD tenant.",
+ "subscriptionId": {
+ "description": "Subscription id of storage account.",
"type": "string"
- },
- "userEmail": {
- "description": "Email of the user who created the resource",
- "type": "string",
- "readOnly": true
- },
- "userName": {
- "description": "Name of the user who created the resource",
- "type": "string",
- "readOnly": true
}
}
},
- "InvitationList": {
- "description": "List response for get InvitationList",
+ "ADLSGen2FileSystemProperties": {
+ "description": "Properties of the ADLS Gen2 file system data set.",
"required": [
- "value"
+ "fileSystem",
+ "subscriptionId",
+ "resourceGroup",
+ "storageAccountName"
],
"type": "object",
"properties": {
- "nextLink": {
- "description": "The Url of next result page.",
+ "dataSetId": {
+ "description": "Unique id for identifying a data set resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "fileSystem": {
+ "description": "The file system name.",
"type": "string"
},
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/Invitation"
- }
+ "resourceGroup": {
+ "description": "Resource group of storage account",
+ "type": "string"
+ },
+ "storageAccountName": {
+ "description": "Storage account name of the source data set",
+ "type": "string"
+ },
+ "subscriptionId": {
+ "description": "Subscription id of storage account",
+ "type": "string"
}
}
},
- "OperationList": {
- "description": "List response for get operations.",
+ "ADLSGen2FolderDataSet": {
+ "description": "An ADLS Gen 2 folder data set.",
"required": [
- "value"
+ "properties",
+ "kind"
],
"type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataSet"
+ }
+ ],
"properties": {
- "nextLink": {
- "description": "The Url of next result page.",
- "type": "string"
- },
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/OperationModel"
- }
+ "properties": {
+ "$ref": "#/definitions/ADLSGen2FolderProperties",
+ "description": "ADLS Gen 2 folder data set properties.",
+ "x-ms-client-flatten": true
}
- }
+ },
+ "x-ms-discriminator-value": "AdlsGen2Folder"
},
- "OperationModel": {
- "description": "The response model for get operations",
+ "ADLSGen2FolderDataSetMapping": {
+ "description": "An ADLS Gen2 folder data set mapping.",
+ "required": [
+ "properties",
+ "kind"
+ ],
"type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataSetMapping"
+ }
+ ],
"properties": {
- "display": {
- "$ref": "#/definitions/OperationModelProperties",
- "description": "Properties on the operation"
- },
- "name": {
- "description": "Operation name for display purposes",
- "type": "string"
- },
- "origin": {
- "description": "origin of the operation",
- "type": "string"
- },
"properties": {
- "$ref": "#/definitions/OperationMetaPropertyInfo",
- "description": "properties for the operation meta info",
+ "$ref": "#/definitions/ADLSGen2FolderDataSetMappingProperties",
+ "description": "ADLS Gen2 folder data set mapping properties.",
"x-ms-client-flatten": true
}
- }
+ },
+ "x-ms-discriminator-value": "AdlsGen2Folder"
},
- "OperationModelProperties": {
- "description": "Properties on operations",
+ "ADLSGen2FolderDataSetMappingProperties": {
+ "description": "ADLS Gen 2 folder data set mapping property bag.",
+ "required": [
+ "fileSystem",
+ "folderPath",
+ "subscriptionId",
+ "resourceGroup",
+ "storageAccountName",
+ "dataSetId"
+ ],
"type": "object",
"properties": {
- "description": {
- "description": "Description of the operation for display purposes",
+ "dataSetId": {
+ "description": "The id of the source data set.",
"type": "string"
},
- "operation": {
- "description": "Name of the operation for display purposes",
- "type": "string"
+ "dataSetMappingStatus": {
+ "description": "Gets the status of the data set mapping.",
+ "enum": [
+ "Ok",
+ "Broken"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "dataSetMappingStatus",
+ "modelAsString": true
+ }
},
- "provider": {
- "description": "Name of the provider for display purposes",
+ "fileSystem": {
+ "description": "File system to which the folder belongs.",
"type": "string"
},
- "resource": {
- "description": "Name of the resource type for display purposes",
+ "folderPath": {
+ "description": "Folder path within the file system.",
"type": "string"
- }
- }
- },
- "OperationMetaPropertyInfo": {
- "description": "properties on meta info",
- "type": "object",
- "properties": {
- "serviceSpecification": {
- "$ref": "#/definitions/OperationMetaServiceSpecification",
- "description": "meta service specification"
- }
- }
- },
- "OperationMetaServiceSpecification": {
- "description": "The operation meta service specification",
- "type": "object",
- "properties": {
- "logSpecifications": {
- "description": "log specifications for the operation",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/OperationMetaLogSpecification"
- }
},
- "metricSpecifications": {
- "description": "metric specifications for the operation",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/OperationMetaMetricSpecification"
- }
- }
- }
- },
- "OperationMetaMetricSpecification": {
- "description": "metric specifications for the operation",
- "type": "object",
- "properties": {
- "aggregationType": {
- "description": "aggregation type of metric",
- "type": "string"
- },
- "dimensions": {
- "description": "properties for dimension",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/DimensionProperties"
+ "provisioningState": {
+ "description": "Provisioning state of the data set mapping.",
+ "enum": [
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Moving",
+ "Failed"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "provisioningState",
+ "modelAsString": true
}
},
- "displayDescription": {
- "description": "description of the metric",
+ "resourceGroup": {
+ "description": "Resource group of storage account.",
"type": "string"
},
- "displayName": {
- "description": "localized name of the metric",
+ "storageAccountName": {
+ "description": "Storage account name of the source data set.",
"type": "string"
},
- "enableRegionalMdmAccount": {
- "description": "enable regional mdm account",
+ "subscriptionId": {
+ "description": "Subscription id of storage account.",
"type": "string"
+ }
+ }
+ },
+ "ADLSGen2FolderProperties": {
+ "description": "Properties of the ADLS Gen2 folder data set.",
+ "required": [
+ "fileSystem",
+ "folderPath",
+ "subscriptionId",
+ "resourceGroup",
+ "storageAccountName"
+ ],
+ "type": "object",
+ "properties": {
+ "dataSetId": {
+ "description": "Unique id for identifying a data set resource",
+ "type": "string",
+ "readOnly": true
},
- "internalMetricName": {
- "description": "internal metric name",
+ "fileSystem": {
+ "description": "File system to which the folder belongs.",
"type": "string"
},
- "name": {
- "description": "name of the metric",
+ "folderPath": {
+ "description": "Folder path within the file system.",
"type": "string"
},
- "resourceIdDimensionNameOverride": {
- "description": "dimension name use to replace resource id if specified",
+ "resourceGroup": {
+ "description": "Resource group of storage account",
"type": "string"
},
- "supportedAggregationTypes": {
- "description": "supported aggregation types",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "supportedTimeGrainTypes": {
- "description": "supported time grain types",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "type": "string"
- }
+ "storageAccountName": {
+ "description": "Storage account name of the source data set",
+ "type": "string"
},
- "unit": {
- "description": "units for the metric",
+ "subscriptionId": {
+ "description": "Subscription id of storage account",
"type": "string"
}
}
},
- "OperationMetaLogSpecification": {
- "description": "log specifications for operation api",
+ "BlobContainerDataSet": {
+ "description": "An Azure storage blob container data set.",
+ "required": [
+ "properties",
+ "kind"
+ ],
"type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataSet"
+ }
+ ],
"properties": {
- "blobDuration": {
- "description": "blob duration of the log",
- "type": "string"
- },
- "displayName": {
- "description": "localized name of the log category",
- "type": "string"
- },
- "name": {
- "description": "name of the log category",
- "type": "string"
+ "properties": {
+ "$ref": "#/definitions/BlobContainerProperties",
+ "description": "Blob container data set properties.",
+ "x-ms-client-flatten": true
}
- }
+ },
+ "x-ms-discriminator-value": "Container"
},
- "DimensionProperties": {
- "description": "properties for dimension",
+ "BlobContainerDataSetMapping": {
+ "description": "A Blob container data set mapping.",
+ "required": [
+ "properties",
+ "kind"
+ ],
"type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataSetMapping"
+ }
+ ],
"properties": {
- "displayName": {
- "description": "localized display name of the dimension to customer",
- "type": "string"
- },
- "name": {
- "description": "dimension name",
- "type": "string"
+ "properties": {
+ "$ref": "#/definitions/BlobContainerMappingProperties",
+ "description": "Blob container data set mapping properties.",
+ "x-ms-client-flatten": true
}
- }
+ },
+ "x-ms-discriminator-value": "Container"
},
- "ShareSynchronization": {
- "description": "A ShareSynchronization data transfer object.",
+ "BlobContainerMappingProperties": {
+ "description": "Azure storage Blob container data set mapping property bag.",
+ "required": [
+ "containerName",
+ "subscriptionId",
+ "resourceGroup",
+ "storageAccountName",
+ "dataSetId"
+ ],
"type": "object",
"properties": {
- "consumerEmail": {
- "description": "Email of the user who created the synchronization",
- "type": "string"
- },
- "consumerName": {
- "description": "Name of the user who created the synchronization",
- "type": "string"
- },
- "consumerTenantName": {
- "description": "Tenant name of the consumer who created the synchronization",
- "type": "string"
- },
- "durationMs": {
- "format": "int32",
- "description": "synchronization duration",
- "type": "integer"
- },
- "endTime": {
- "format": "date-time",
- "description": "End time of synchronization",
- "type": "string"
- },
- "message": {
- "description": "message of synchronization",
- "type": "string"
- },
- "startTime": {
- "format": "date-time",
- "description": "start time of synchronization",
+ "containerName": {
+ "description": "BLOB Container name.",
"type": "string"
},
- "status": {
- "description": "Raw Status",
+ "dataSetId": {
+ "description": "The id of the source data set.",
"type": "string"
},
- "synchronizationId": {
- "description": "Synchronization id",
- "type": "string"
+ "dataSetMappingStatus": {
+ "description": "Gets the status of the data set mapping.",
+ "enum": [
+ "Ok",
+ "Broken"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "dataSetMappingStatus",
+ "modelAsString": true
+ }
},
- "synchronizationMode": {
- "description": "Synchronization mode",
+ "provisioningState": {
+ "description": "Provisioning state of the data set mapping.",
"enum": [
- "Incremental",
- "FullSync"
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Moving",
+ "Failed"
],
"type": "string",
"readOnly": true,
"x-ms-enum": {
- "name": "synchronizationMode",
+ "name": "provisioningState",
"modelAsString": true
}
+ },
+ "resourceGroup": {
+ "description": "Resource group of storage account.",
+ "type": "string"
+ },
+ "storageAccountName": {
+ "description": "Storage account name of the source data set.",
+ "type": "string"
+ },
+ "subscriptionId": {
+ "description": "Subscription id of storage account.",
+ "type": "string"
}
}
},
- "SynchronizationDetailsList": {
- "description": "details of synchronization",
+ "BlobContainerProperties": {
+ "description": "Properties of the BLOB container data set.",
"required": [
- "value"
+ "containerName",
+ "subscriptionId",
+ "resourceGroup",
+ "storageAccountName"
],
"type": "object",
"properties": {
- "nextLink": {
- "description": "The Url of next result page.",
+ "containerName": {
+ "description": "BLOB Container name.",
"type": "string"
},
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/SynchronizationDetails"
- }
- }
- }
- },
- "SynchronizationDetails": {
- "description": "Synchronization details at data set level",
- "type": "object",
- "properties": {
"dataSetId": {
- "description": "Id of data set",
- "type": "string",
- "readOnly": true
- },
- "dataSetType": {
- "description": "Type of the data set",
- "enum": [
- "Blob",
- "Container",
- "BlobFolder",
- "AdlsGen2FileSystem",
- "AdlsGen2Folder",
- "AdlsGen2File",
- "AdlsGen1Folder",
- "AdlsGen1File",
- "KustoCluster",
- "KustoDatabase",
- "SqlDBTable",
- "SqlDWTable"
- ],
- "type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "dataSetType",
- "modelAsString": true
- }
- },
- "durationMs": {
- "format": "int32",
- "description": "Duration of data set level copy",
- "type": "integer",
- "readOnly": true
- },
- "endTime": {
- "format": "date-time",
- "description": "End time of data set level copy",
- "type": "string",
- "readOnly": true
- },
- "filesRead": {
- "format": "int64",
- "description": "The number of files read from the source data set",
- "type": "integer",
- "readOnly": true
- },
- "filesWritten": {
- "format": "int64",
- "description": "The number of files written into the sink data set",
- "type": "integer",
- "readOnly": true
- },
- "message": {
- "description": "Error message if any",
- "type": "string",
- "readOnly": true
- },
- "name": {
- "description": "Name of the data set",
+ "description": "Unique id for identifying a data set resource",
"type": "string",
"readOnly": true
},
- "rowsCopied": {
- "format": "int64",
- "description": "The number of files copied into the sink data set",
- "type": "integer",
- "readOnly": true
- },
- "rowsRead": {
- "format": "int64",
- "description": "The number of rows read from the source data set.",
- "type": "integer",
- "readOnly": true
- },
- "sizeRead": {
- "format": "int64",
- "description": "The size of the data read from the source data set in bytes",
- "type": "integer",
- "readOnly": true
- },
- "sizeWritten": {
- "format": "int64",
- "description": "The size of the data written into the sink data set in bytes",
- "type": "integer",
- "readOnly": true
- },
- "startTime": {
- "format": "date-time",
- "description": "Start time of data set level copy",
- "type": "string",
- "readOnly": true
+ "resourceGroup": {
+ "description": "Resource group of storage account",
+ "type": "string"
},
- "status": {
- "description": "Raw Status",
- "type": "string",
- "readOnly": true
+ "storageAccountName": {
+ "description": "Storage account name of the source data set",
+ "type": "string"
},
- "vCore": {
- "format": "int64",
- "description": "The vCore units consumed for the data set synchronization",
- "type": "integer",
- "readOnly": true
+ "subscriptionId": {
+ "description": "Subscription id of storage account",
+ "type": "string"
}
}
},
- "ShareSynchronizationList": {
- "description": "List response for get ShareSynchronization.",
+ "BlobDataSet": {
+ "description": "An Azure storage blob data set.",
"required": [
- "value"
+ "properties",
+ "kind"
],
"type": "object",
- "properties": {
- "nextLink": {
- "description": "The Url of next result page.",
- "type": "string"
- },
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/ShareSynchronization"
- }
- }
- }
- },
- "ProviderShareSubscription": {
- "description": "A provider side share subscription data transfer object.",
- "type": "object",
"allOf": [
{
- "$ref": "#/definitions/ProxyDto"
+ "$ref": "#/definitions/DataSet"
}
],
"properties": {
"properties": {
- "$ref": "#/definitions/ProviderShareSubscriptionProperties",
- "description": "properties of providerShareSubscription",
+ "$ref": "#/definitions/BlobProperties",
+ "description": "Blob data set properties.",
"x-ms-client-flatten": true
}
- }
+ },
+ "x-ms-discriminator-value": "Blob"
},
- "ProviderShareSubscriptionProperties": {
- "description": "Provider share subscription properties",
+ "BlobDataSetMapping": {
+ "description": "A Blob data set mapping.",
+ "required": [
+ "properties",
+ "kind"
+ ],
"type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataSetMapping"
+ }
+ ],
"properties": {
- "consumerEmail": {
- "description": "Email of the consumer who created the share subscription",
- "type": "string",
- "readOnly": true
- },
- "consumerName": {
- "description": "Name of the consumer who created the share subscription",
- "type": "string",
- "readOnly": true
- },
- "consumerTenantName": {
- "description": "Tenant name of the consumer who created the share subscription",
- "type": "string",
- "readOnly": true
- },
- "createdAt": {
- "format": "date-time",
- "description": "created at",
- "type": "string",
- "readOnly": true
- },
- "providerEmail": {
- "description": "Email of the provider who created the share",
- "type": "string",
- "readOnly": true
- },
- "providerName": {
- "description": "Name of the provider who created the share",
- "type": "string",
- "readOnly": true
- },
- "sharedAt": {
- "format": "date-time",
- "description": "Shared at",
- "type": "string",
- "readOnly": true
- },
- "shareSubscriptionObjectId": {
- "description": "share Subscription Object Id",
- "type": "string",
- "readOnly": true
- },
- "shareSubscriptionStatus": {
- "description": "Gets the status of share subscription",
- "enum": [
- "Active",
- "Revoked",
- "SourceDeleted",
- "Revoking"
- ],
- "type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "shareSubscriptionStatus",
- "modelAsString": true
- }
+ "properties": {
+ "$ref": "#/definitions/BlobMappingProperties",
+ "description": "Blob data set mapping properties.",
+ "x-ms-client-flatten": true
}
- }
+ },
+ "x-ms-discriminator-value": "Blob"
},
- "ProviderShareSubscriptionList": {
- "description": "List response for get ShareSubscription.",
+ "BlobFolderDataSet": {
+ "description": "An Azure storage blob folder data set.",
"required": [
- "value"
+ "properties",
+ "kind"
],
"type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataSet"
+ }
+ ],
"properties": {
- "nextLink": {
- "description": "The Url of next result page.",
- "type": "string"
- },
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/ProviderShareSubscription"
- }
+ "properties": {
+ "$ref": "#/definitions/BlobFolderProperties",
+ "description": "Blob folder data set properties.",
+ "x-ms-client-flatten": true
}
- }
+ },
+ "x-ms-discriminator-value": "BlobFolder"
},
- "Share": {
- "description": "A share data transfer object.",
+ "BlobFolderDataSetMapping": {
+ "description": "A Blob folder data set mapping.",
+ "required": [
+ "properties",
+ "kind"
+ ],
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/ProxyDto"
+ "$ref": "#/definitions/DataSetMapping"
}
],
"properties": {
"properties": {
- "$ref": "#/definitions/ShareProperties",
- "description": "Properties on the share",
+ "$ref": "#/definitions/BlobFolderMappingProperties",
+ "description": "Blob folder data set mapping properties.",
"x-ms-client-flatten": true
}
- }
+ },
+ "x-ms-discriminator-value": "BlobFolder"
},
- "ShareProperties": {
- "description": "Share property bag.",
+ "BlobFolderMappingProperties": {
+ "description": "Azure storage Blob folder data set mapping property bag.",
+ "required": [
+ "containerName",
+ "prefix",
+ "subscriptionId",
+ "resourceGroup",
+ "storageAccountName",
+ "dataSetId"
+ ],
"type": "object",
"properties": {
- "createdAt": {
- "format": "date-time",
- "description": "Time at which the share was created.",
+ "containerName": {
+ "description": "Container that has the file path.",
+ "type": "string"
+ },
+ "dataSetId": {
+ "description": "The id of the source data set.",
+ "type": "string"
+ },
+ "dataSetMappingStatus": {
+ "description": "Gets the status of the data set mapping.",
+ "enum": [
+ "Ok",
+ "Broken"
+ ],
"type": "string",
- "readOnly": true
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "dataSetMappingStatus",
+ "modelAsString": true
+ }
},
- "description": {
- "description": "Share description.",
+ "prefix": {
+ "description": "Prefix for blob folder",
"type": "string"
},
"provisioningState": {
- "description": "Gets or sets the provisioning state",
+ "description": "Provisioning state of the data set mapping.",
"enum": [
"Succeeded",
"Creating",
@@ -4160,239 +3992,196 @@
"modelAsString": true
}
},
- "shareKind": {
- "description": "Share kind.",
- "enum": [
- "CopyBased",
- "InPlace"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "shareKind",
- "modelAsString": true
- }
- },
- "terms": {
- "description": "Share terms.",
+ "resourceGroup": {
+ "description": "Resource group of storage account.",
"type": "string"
},
- "userEmail": {
- "description": "Email of the user who created the resource",
- "type": "string",
- "readOnly": true
- },
- "userName": {
- "description": "Name of the user who created the resource",
- "type": "string",
- "readOnly": true
- }
- }
- },
- "ShareList": {
- "description": "List response for get Shares.",
- "required": [
- "value"
- ],
- "type": "object",
- "properties": {
- "nextLink": {
- "description": "The Url of next result page.",
+ "storageAccountName": {
+ "description": "Storage account name of the source data set.",
"type": "string"
},
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/Share"
- }
+ "subscriptionId": {
+ "description": "Subscription id of storage account.",
+ "type": "string"
}
}
},
- "ShareSubscriptionSynchronization": {
- "description": "A ShareSubscriptionSynchronization data transfer object.",
+ "BlobFolderProperties": {
+ "description": "Properties of the blob folder data set.",
"required": [
- "synchronizationId"
+ "containerName",
+ "prefix",
+ "subscriptionId",
+ "resourceGroup",
+ "storageAccountName"
],
"type": "object",
"properties": {
- "durationMs": {
- "format": "int32",
- "description": "Synchronization duration",
- "type": "integer",
- "readOnly": true
- },
- "endTime": {
- "format": "date-time",
- "description": "End time of synchronization",
- "type": "string",
- "readOnly": true
+ "containerName": {
+ "description": "Container that has the file path.",
+ "type": "string"
},
- "message": {
- "description": "message of Synchronization",
+ "dataSetId": {
+ "description": "Unique id for identifying a data set resource",
"type": "string",
"readOnly": true
},
- "startTime": {
- "format": "date-time",
- "description": "start time of synchronization",
- "type": "string",
- "readOnly": true
+ "prefix": {
+ "description": "Prefix for blob folder",
+ "type": "string"
},
- "status": {
- "description": "Raw Status",
- "type": "string",
- "readOnly": true
+ "resourceGroup": {
+ "description": "Resource group of storage account",
+ "type": "string"
},
- "synchronizationId": {
- "description": "Synchronization id",
+ "storageAccountName": {
+ "description": "Storage account name of the source data set",
"type": "string"
},
- "synchronizationMode": {
- "description": "Synchronization Mode",
- "enum": [
- "Incremental",
- "FullSync"
- ],
- "type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "synchronizationMode",
- "modelAsString": true
- }
+ "subscriptionId": {
+ "description": "Subscription id of storage account",
+ "type": "string"
}
}
},
- "ConsumerSourceDataSetList": {
- "description": "A consumer side list of source dataSets",
+ "BlobMappingProperties": {
+ "description": "Azure storage Blob data set mapping property bag.",
"required": [
- "value"
+ "containerName",
+ "filePath",
+ "subscriptionId",
+ "resourceGroup",
+ "storageAccountName",
+ "dataSetId"
],
"type": "object",
"properties": {
- "nextLink": {
- "description": "The Url of next result page.",
+ "containerName": {
+ "description": "Container that has the file path.",
"type": "string"
},
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/ConsumerSourceDataSet"
- }
- }
- }
- },
- "ConsumerSourceDataSet": {
- "description": "A consumer side dataSet data transfer object.",
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/ProxyDto"
- }
- ],
- "properties": {
- "properties": {
- "$ref": "#/definitions/ConsumerSourceDataSetProperties",
- "description": "source dataSet properties",
- "x-ms-client-flatten": true
- }
- }
- },
- "ConsumerSourceDataSetProperties": {
- "description": "Properties of consumer source dataSet",
- "type": "object",
- "properties": {
"dataSetId": {
- "description": "DataSet Id",
- "type": "string",
- "readOnly": true
- },
- "dataSetLocation": {
- "description": "Location of the data set.",
- "type": "string",
- "readOnly": true
+ "description": "The id of the source data set.",
+ "type": "string"
},
- "dataSetName": {
- "description": "DataSet name",
+ "dataSetMappingStatus": {
+ "description": "Gets the status of the data set mapping.",
+ "enum": [
+ "Ok",
+ "Broken"
+ ],
"type": "string",
- "readOnly": true
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "dataSetMappingStatus",
+ "modelAsString": true
+ }
},
- "dataSetPath": {
- "description": "DataSet path",
- "type": "string",
- "readOnly": true
+ "filePath": {
+ "description": "File path within the source data set",
+ "type": "string"
},
- "dataSetType": {
- "description": "Type of data set",
+ "outputType": {
+ "description": "File output type",
"enum": [
- "Blob",
- "Container",
- "BlobFolder",
- "AdlsGen2FileSystem",
- "AdlsGen2Folder",
- "AdlsGen2File",
- "AdlsGen1Folder",
- "AdlsGen1File",
- "KustoCluster",
- "KustoDatabase",
- "SqlDBTable",
- "SqlDWTable"
+ "Csv",
+ "Parquet"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "outputType",
+ "modelAsString": true
+ }
+ },
+ "provisioningState": {
+ "description": "Provisioning state of the data set mapping.",
+ "enum": [
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Moving",
+ "Failed"
],
"type": "string",
"readOnly": true,
"x-ms-enum": {
- "name": "dataSetType",
+ "name": "provisioningState",
"modelAsString": true
}
+ },
+ "resourceGroup": {
+ "description": "Resource group of storage account.",
+ "type": "string"
+ },
+ "storageAccountName": {
+ "description": "Storage account name of the source data set.",
+ "type": "string"
+ },
+ "subscriptionId": {
+ "description": "Subscription id of storage account.",
+ "type": "string"
}
}
},
- "SourceShareSynchronizationSettingList": {
- "description": "List response for get source share Synchronization settings",
+ "BlobProperties": {
+ "description": "Properties of the blob data set.",
"required": [
- "value"
+ "containerName",
+ "filePath",
+ "subscriptionId",
+ "resourceGroup",
+ "storageAccountName"
],
"type": "object",
"properties": {
- "nextLink": {
- "description": "The Url of next result page.",
+ "containerName": {
+ "description": "Container that has the file path.",
"type": "string"
},
- "value": {
- "description": "Collection of items of type DataTransferObjects.",
- "uniqueItems": false,
- "type": "array",
- "items": {
- "$ref": "#/definitions/SourceShareSynchronizationSetting"
- }
+ "dataSetId": {
+ "description": "Unique id for identifying a data set resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "filePath": {
+ "description": "File path within the source data set",
+ "type": "string"
+ },
+ "resourceGroup": {
+ "description": "Resource group of storage account",
+ "type": "string"
+ },
+ "storageAccountName": {
+ "description": "Storage account name of the source data set",
+ "type": "string"
+ },
+ "subscriptionId": {
+ "description": "Subscription id of storage account",
+ "type": "string"
}
}
},
- "SourceShareSynchronizationSetting": {
- "description": "A view of synchronization setting added by the provider",
+ "ConsumerInvitation": {
+ "description": "A consumer Invitation data transfer object.",
"required": [
- "kind"
+ "properties"
],
"type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyDto"
+ }
+ ],
"properties": {
- "kind": {
- "description": "Kind of synchronization",
- "enum": [
- "ScheduleBased"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "kind",
- "modelAsString": true
- }
+ "properties": {
+ "$ref": "#/definitions/ConsumerInvitationProperties",
+ "description": "Properties on the account",
+ "x-ms-client-flatten": true
}
- },
- "discriminator": "kind"
+ }
},
- "ShareSubscriptionSynchronizationList": {
- "description": "A consumer side list of share subscription synchronizations",
+ "ConsumerInvitationList": {
+ "description": "List response for get InvitationList",
"required": [
"value"
],
@@ -4407,34 +4196,104 @@
"uniqueItems": false,
"type": "array",
"items": {
- "$ref": "#/definitions/ShareSubscriptionSynchronization"
+ "$ref": "#/definitions/ConsumerInvitation"
}
}
}
},
- "Synchronize": {
- "description": "Payload for the synchronizing the data.",
+ "ConsumerInvitationProperties": {
+ "description": "Properties of consumer invitation",
+ "required": [
+ "invitationId"
+ ],
"type": "object",
"properties": {
- "synchronizationMode": {
- "description": "Mode of synchronization used in triggers and snapshot sync. Incremental by default",
+ "dataSetCount": {
+ "format": "int32",
+ "description": "Number of data sets in a share",
+ "type": "integer",
+ "readOnly": true
+ },
+ "description": {
+ "description": "Description shared when the invitation was created",
+ "type": "string",
+ "readOnly": true
+ },
+ "invitationId": {
+ "description": "Unique id of the invitation.",
+ "type": "string"
+ },
+ "invitationStatus": {
+ "description": "The status of the invitation.",
"enum": [
- "Incremental",
- "FullSync"
+ "Pending",
+ "Accepted",
+ "Rejected",
+ "Withdrawn"
],
"type": "string",
+ "readOnly": true,
"x-ms-enum": {
- "name": "synchronizationMode",
+ "name": "invitationStatus",
"modelAsString": true
}
+ },
+ "location": {
+ "description": "invitation location",
+ "type": "string",
+ "readOnly": true
+ },
+ "providerEmail": {
+ "description": "Email of the provider who created the resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "providerName": {
+ "description": "Name of the provider who created the resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "providerTenantName": {
+ "description": "Tenant name of the provider who created the resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "respondedAt": {
+ "format": "date-time",
+ "description": "The time the recipient responded to the invitation.",
+ "type": "string",
+ "readOnly": true
+ },
+ "sentAt": {
+ "format": "date-time",
+ "description": "Gets the time at which the invitation was sent.",
+ "type": "string",
+ "readOnly": true
+ },
+ "shareName": {
+ "description": "Gets the source share Name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "termsOfUse": {
+ "description": "Terms of use shared when the invitation was created",
+ "type": "string",
+ "readOnly": true
+ },
+ "userEmail": {
+ "description": "Email of the user who created the resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "userName": {
+ "description": "Name of the user who created the resource",
+ "type": "string",
+ "readOnly": true
}
}
},
- "ShareSubscription": {
- "description": "A share subscription data transfer object.",
- "required": [
- "properties"
- ],
+ "ConsumerSourceDataSet": {
+ "description": "A consumer side dataSet data transfer object.",
"type": "object",
"allOf": [
{
@@ -4443,122 +4302,121 @@
],
"properties": {
"properties": {
- "$ref": "#/definitions/ShareSubscriptionProperties",
- "description": "Properties on the share subscription",
+ "$ref": "#/definitions/ConsumerSourceDataSetProperties",
+ "description": "source dataSet properties",
"x-ms-client-flatten": true
}
}
},
- "ShareSubscriptionProperties": {
- "description": "Share subscription property bag.",
+ "ConsumerSourceDataSetList": {
+ "description": "A consumer side list of source dataSets",
"required": [
- "invitationId",
- "sourceShareLocation"
+ "value"
],
"type": "object",
"properties": {
- "createdAt": {
- "format": "date-time",
- "description": "Time at which the share subscription was created.",
- "type": "string",
- "readOnly": true
- },
- "invitationId": {
- "description": "The invitation id.",
+ "nextLink": {
+ "description": "The Url of next result page.",
"type": "string"
},
- "providerEmail": {
- "description": "Email of the provider who created the resource",
- "type": "string",
- "readOnly": true
- },
- "providerName": {
- "description": "Name of the provider who created the resource",
- "type": "string",
- "readOnly": true
- },
- "providerTenantName": {
- "description": "Tenant name of the provider who created the resource",
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ConsumerSourceDataSet"
+ }
+ }
+ }
+ },
+ "ConsumerSourceDataSetProperties": {
+ "description": "Properties of consumer source dataSet",
+ "type": "object",
+ "properties": {
+ "dataSetId": {
+ "description": "DataSet Id",
"type": "string",
"readOnly": true
},
- "provisioningState": {
- "description": "Provisioning state of the share subscription",
- "enum": [
- "Succeeded",
- "Creating",
- "Deleting",
- "Moving",
- "Failed"
- ],
+ "dataSetLocation": {
+ "description": "Location of the data set.",
"type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "provisioningState",
- "modelAsString": true
- }
+ "readOnly": true
},
- "shareDescription": {
- "description": "Description of share",
+ "dataSetName": {
+ "description": "DataSet name",
"type": "string",
"readOnly": true
},
- "shareKind": {
- "description": "Kind of share",
+ "dataSetPath": {
+ "description": "DataSet path",
+ "type": "string",
+ "readOnly": true
+ },
+ "dataSetType": {
+ "description": "Type of data set",
"enum": [
- "CopyBased",
- "InPlace"
+ "Blob",
+ "Container",
+ "BlobFolder",
+ "AdlsGen2FileSystem",
+ "AdlsGen2Folder",
+ "AdlsGen2File",
+ "AdlsGen1Folder",
+ "AdlsGen1File",
+ "KustoCluster",
+ "KustoDatabase",
+ "SqlDBTable",
+ "SqlDWTable"
],
"type": "string",
"readOnly": true,
"x-ms-enum": {
- "name": "shareKind",
+ "name": "dataSetType",
"modelAsString": true
}
- },
- "shareName": {
- "description": "Name of the share",
- "type": "string",
- "readOnly": true
- },
- "shareSubscriptionStatus": {
- "description": "Gets the current status of share subscription.",
+ }
+ }
+ },
+ "DataSet": {
+ "description": "A DataSet data transfer object.",
+ "required": [
+ "kind"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyDto"
+ }
+ ],
+ "properties": {
+ "kind": {
+ "description": "Kind of data set.",
"enum": [
- "Active",
- "Revoked",
- "SourceDeleted",
- "Revoking"
+ "Blob",
+ "Container",
+ "BlobFolder",
+ "AdlsGen2FileSystem",
+ "AdlsGen2Folder",
+ "AdlsGen2File",
+ "AdlsGen1Folder",
+ "AdlsGen1File",
+ "KustoCluster",
+ "KustoDatabase",
+ "SqlDBTable",
+ "SqlDWTable"
],
"type": "string",
- "readOnly": true,
"x-ms-enum": {
- "name": "shareSubscriptionStatus",
+ "name": "kind",
"modelAsString": true
}
- },
- "shareTerms": {
- "description": "Terms of a share",
- "type": "string",
- "readOnly": true
- },
- "sourceShareLocation": {
- "description": "Source share location.",
- "type": "string"
- },
- "userEmail": {
- "description": "Email of the user who created the resource",
- "type": "string",
- "readOnly": true
- },
- "userName": {
- "description": "Name of the user who created the resource",
- "type": "string",
- "readOnly": true
}
- }
+ },
+ "discriminator": "kind"
},
- "ShareSubscriptionList": {
- "description": "List response for get ShareSubscription.",
+ "DataSetList": {
+ "description": "List response for get DataSets",
"required": [
"value"
],
@@ -4573,13 +4431,13 @@
"uniqueItems": false,
"type": "array",
"items": {
- "$ref": "#/definitions/ShareSubscription"
+ "$ref": "#/definitions/DataSet"
}
}
}
},
- "SynchronizationSetting": {
- "description": "A Synchronization Setting data transfer object.",
+ "DataSetMapping": {
+ "description": "A data set mapping data transfer object.",
"required": [
"kind"
],
@@ -4591,9 +4449,18 @@
],
"properties": {
"kind": {
- "description": "Kind of synchronization",
+ "description": "Kind of data set mapping.",
"enum": [
- "ScheduleBased"
+ "Blob",
+ "Container",
+ "BlobFolder",
+ "AdlsGen2FileSystem",
+ "AdlsGen2Folder",
+ "AdlsGen2File",
+ "KustoCluster",
+ "KustoDatabase",
+ "SqlDBTable",
+ "SqlDWTable"
],
"type": "string",
"x-ms-enum": {
@@ -4604,8 +4471,8 @@
},
"discriminator": "kind"
},
- "SynchronizationSettingList": {
- "description": "List response for get Synchronization settings",
+ "DataSetMappingList": {
+ "description": "List response for get DataSetMappings",
"required": [
"value"
],
@@ -4620,39 +4487,146 @@
"uniqueItems": false,
"type": "array",
"items": {
- "$ref": "#/definitions/SynchronizationSetting"
+ "$ref": "#/definitions/DataSetMapping"
}
}
}
},
- "Trigger": {
- "description": "A Trigger data transfer object.",
+ "DataShareError": {
+ "description": "The data share error model.",
"required": [
- "kind"
+ "error"
],
"type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/ProxyDto"
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/DataShareErrorInfo",
+ "description": "The data share error body"
}
+ }
+ },
+ "DataShareErrorInfo": {
+ "description": "The data share error body model.",
+ "required": [
+ "code",
+ "message"
],
+ "type": "object",
"properties": {
- "kind": {
- "description": "Kind of synchronization",
+ "code": {
+ "description": "Code of the error",
+ "type": "string"
+ },
+ "details": {
+ "description": "Nested details of the error model",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DataShareErrorInfo"
+ }
+ },
+ "message": {
+ "description": "Message of the error",
+ "type": "string"
+ },
+ "target": {
+ "description": "Target of the error",
+ "type": "string"
+ }
+ }
+ },
+ "DefaultDto": {
+ "description": "Base data transfer object implementation for default resources.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The resource id of the azure resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "location": {
+ "description": "Location of the azure resource.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the azure resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "tags": {
+ "description": "Tags on the azure resource.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "type": {
+ "description": "Type of the azure resource",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "DimensionProperties": {
+ "description": "properties for dimension",
+ "type": "object",
+ "properties": {
+ "displayName": {
+ "description": "localized display name of the dimension to customer",
+ "type": "string"
+ },
+ "name": {
+ "description": "dimension name",
+ "type": "string"
+ }
+ }
+ },
+ "Identity": {
+ "description": "Identity of resource",
+ "type": "object",
+ "properties": {
+ "principalId": {
+ "description": "service principal Id",
+ "type": "string",
+ "readOnly": true
+ },
+ "tenantId": {
+ "description": "Tenant Id",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "Identity Type",
"enum": [
- "ScheduleBased"
+ "SystemAssigned"
],
"type": "string",
"x-ms-enum": {
- "name": "kind",
+ "name": "type",
"modelAsString": true
}
}
- },
- "discriminator": "kind"
+ }
+ },
+ "Invitation": {
+ "description": "A Invitation data transfer object.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ProxyDto"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/InvitationProperties",
+ "description": "Properties on the Invitation",
+ "x-ms-client-flatten": true
+ }
+ }
},
- "TriggerList": {
- "description": "List response for get triggers",
+ "InvitationList": {
+ "description": "List response for get InvitationList",
"required": [
"value"
],
@@ -4667,88 +4641,73 @@
"uniqueItems": false,
"type": "array",
"items": {
- "$ref": "#/definitions/Trigger"
+ "$ref": "#/definitions/Invitation"
}
}
}
},
- "ScheduledSynchronizationSetting": {
- "description": "A type of synchronization setting based on schedule",
- "required": [
- "properties",
- "kind"
- ],
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/SynchronizationSetting"
- }
- ],
- "properties": {
- "properties": {
- "$ref": "#/definitions/ScheduledSynchronizationSettingProperties",
- "description": "Properties of scheduled synchronization",
- "x-ms-client-flatten": true
- }
- },
- "x-ms-discriminator-value": "ScheduleBased"
- },
- "ScheduledSynchronizationSettingProperties": {
- "description": "A Scheduled synchronization setting data transfer object.",
- "required": [
- "recurrenceInterval",
- "synchronizationTime"
- ],
+ "InvitationProperties": {
+ "description": "Invitation property bag.",
"type": "object",
"properties": {
- "createdAt": {
- "format": "date-time",
- "description": "Time at which the synchronization setting was created.",
+ "invitationId": {
+ "description": "unique invitation id",
"type": "string",
"readOnly": true
},
- "provisioningState": {
- "description": "Gets or sets the provisioning state",
+ "invitationStatus": {
+ "description": "The status of the invitation.",
"enum": [
- "Succeeded",
- "Creating",
- "Deleting",
- "Moving",
- "Failed"
+ "Pending",
+ "Accepted",
+ "Rejected",
+ "Withdrawn"
],
"type": "string",
"readOnly": true,
"x-ms-enum": {
- "name": "provisioningState",
+ "name": "invitationStatus",
"modelAsString": true
}
},
- "recurrenceInterval": {
- "description": "Recurrence Interval",
- "enum": [
- "Hour",
- "Day"
- ],
+ "respondedAt": {
+ "format": "date-time",
+ "description": "The time the recipient responded to the invitation.",
"type": "string",
- "x-ms-enum": {
- "name": "recurrenceInterval",
- "modelAsString": true
- }
+ "readOnly": true
},
- "synchronizationTime": {
+ "sentAt": {
"format": "date-time",
- "description": "Synchronization time",
+ "description": "Gets the time at which the invitation was sent.",
+ "type": "string",
+ "readOnly": true
+ },
+ "targetActiveDirectoryId": {
+ "description": "The target Azure AD Id. Can't be combined with email.",
+ "type": "string"
+ },
+ "targetEmail": {
+ "description": "The email the invitation is directed to.",
"type": "string"
},
+ "targetObjectId": {
+ "description": "The target user or application Id that invitation is being sent to.\r\nMust be specified along TargetActiveDirectoryId. This enables sending\r\ninvitations to specific users or applications in an AD tenant.",
+ "type": "string"
+ },
+ "userEmail": {
+ "description": "Email of the user who created the resource",
+ "type": "string",
+ "readOnly": true
+ },
"userName": {
- "description": "Name of the user who created the synchronization setting.",
+ "description": "Name of the user who created the resource",
"type": "string",
"readOnly": true
}
}
},
- "ScheduledTrigger": {
- "description": "A type of trigger based on schedule",
+ "KustoClusterDataSet": {
+ "description": "A kusto cluster data set.",
"required": [
"properties",
"kind"
@@ -4756,159 +4715,132 @@
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/Trigger"
+ "$ref": "#/definitions/DataSet"
}
],
"properties": {
"properties": {
- "$ref": "#/definitions/ScheduledTriggerProperties",
- "description": "Properties of scheduled synchronization",
+ "$ref": "#/definitions/KustoClusterDataSetProperties",
+ "description": "Kusto cluster data set properties.",
"x-ms-client-flatten": true
}
},
- "x-ms-discriminator-value": "ScheduleBased"
+ "x-ms-discriminator-value": "KustoCluster"
},
- "ScheduledTriggerProperties": {
- "description": "A Scheduled trigger data transfer object.",
+ "KustoClusterDataSetMapping": {
+ "description": "A Kusto cluster data set mapping",
"required": [
- "recurrenceInterval",
- "synchronizationTime"
+ "properties",
+ "kind"
],
"type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataSetMapping"
+ }
+ ],
"properties": {
- "createdAt": {
- "format": "date-time",
- "description": "Time at which the trigger was created.",
- "type": "string",
- "readOnly": true
+ "properties": {
+ "$ref": "#/definitions/KustoClusterDataSetMappingProperties",
+ "description": "Kusto cluster data set mapping properties.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "x-ms-discriminator-value": "KustoCluster"
+ },
+ "KustoClusterDataSetMappingProperties": {
+ "description": "Properties of the Kusto cluster data set mapping",
+ "required": [
+ "kustoClusterResourceId",
+ "dataSetId"
+ ],
+ "type": "object",
+ "properties": {
+ "dataSetId": {
+ "description": "The id of the source data set.",
+ "type": "string"
},
- "provisioningState": {
- "description": "Gets the provisioning state",
+ "dataSetMappingStatus": {
+ "description": "Gets the status of the data set mapping.",
"enum": [
- "Succeeded",
- "Creating",
- "Deleting",
- "Moving",
- "Failed"
+ "Ok",
+ "Broken"
],
"type": "string",
"readOnly": true,
"x-ms-enum": {
- "name": "provisioningState",
+ "name": "dataSetMappingStatus",
"modelAsString": true
}
},
- "recurrenceInterval": {
- "description": "Recurrence Interval",
- "enum": [
- "Hour",
- "Day"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "recurrenceInterval",
- "modelAsString": true
- }
+ "kustoClusterResourceId": {
+ "description": "Resource id of the sink kusto cluster.",
+ "type": "string"
},
- "synchronizationMode": {
- "description": "Synchronization mode",
- "enum": [
- "Incremental",
- "FullSync"
- ],
+ "location": {
+ "description": "Location of the sink kusto cluster.",
"type": "string",
- "x-ms-enum": {
- "name": "synchronizationMode",
- "modelAsString": true
- }
- },
- "synchronizationTime": {
- "format": "date-time",
- "description": "Synchronization time",
- "type": "string"
+ "readOnly": true
},
- "triggerStatus": {
- "description": "Gets the trigger state",
+ "provisioningState": {
+ "description": "Provisioning state of the data set mapping.",
"enum": [
- "Active",
- "Inactive",
- "SourceSynchronizationSettingDeleted"
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Moving",
+ "Failed"
],
"type": "string",
"readOnly": true,
"x-ms-enum": {
- "name": "triggerStatus",
+ "name": "provisioningState",
"modelAsString": true
}
- },
- "userName": {
- "description": "Name of the user who created the trigger.",
- "type": "string",
- "readOnly": true
}
}
},
- "BlobDataSet": {
- "description": "An Azure storage blob data set.",
- "required": [
- "properties",
- "kind"
- ],
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/DataSet"
- }
- ],
- "properties": {
- "properties": {
- "$ref": "#/definitions/BlobProperties",
- "description": "Blob data set properties.",
- "x-ms-client-flatten": true
- }
- },
- "x-ms-discriminator-value": "Blob"
- },
- "BlobProperties": {
- "description": "Properties of the blob data set.",
+ "KustoClusterDataSetProperties": {
+ "description": "Properties of the kusto cluster data set.",
"required": [
- "containerName",
- "filePath",
- "subscriptionId",
- "resourceGroup",
- "storageAccountName"
+ "kustoClusterResourceId"
],
"type": "object",
"properties": {
- "containerName": {
- "description": "Container that has the file path.",
- "type": "string"
- },
"dataSetId": {
"description": "Unique id for identifying a data set resource",
"type": "string",
- "readOnly": true
- },
- "filePath": {
- "description": "File path within the source data set",
- "type": "string"
- },
- "resourceGroup": {
- "description": "Resource group of storage account",
- "type": "string"
+ "readOnly": true
},
- "storageAccountName": {
- "description": "Storage account name of the source data set",
+ "kustoClusterResourceId": {
+ "description": "Resource id of the kusto cluster.",
"type": "string"
},
- "subscriptionId": {
- "description": "Subscription id of storage account",
- "type": "string"
+ "location": {
+ "description": "Location of the kusto cluster.",
+ "type": "string",
+ "readOnly": true
+ },
+ "provisioningState": {
+ "description": "Provisioning state of the kusto cluster data set.",
+ "enum": [
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Moving",
+ "Failed"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "provisioningState",
+ "modelAsString": true
+ }
}
}
},
- "BlobFolderDataSet": {
- "description": "An Azure storage blob folder data set.",
+ "KustoDatabaseDataSet": {
+ "description": "A kusto database data set.",
"required": [
"properties",
"kind"
@@ -4921,53 +4853,15 @@
],
"properties": {
"properties": {
- "$ref": "#/definitions/BlobFolderProperties",
- "description": "Blob folder data set properties.",
+ "$ref": "#/definitions/KustoDatabaseDataSetProperties",
+ "description": "Kusto database data set properties.",
"x-ms-client-flatten": true
}
},
- "x-ms-discriminator-value": "BlobFolder"
- },
- "BlobFolderProperties": {
- "description": "Properties of the blob folder data set.",
- "required": [
- "containerName",
- "prefix",
- "subscriptionId",
- "resourceGroup",
- "storageAccountName"
- ],
- "type": "object",
- "properties": {
- "containerName": {
- "description": "Container that has the file path.",
- "type": "string"
- },
- "dataSetId": {
- "description": "Unique id for identifying a data set resource",
- "type": "string",
- "readOnly": true
- },
- "prefix": {
- "description": "Prefix for blob folder",
- "type": "string"
- },
- "resourceGroup": {
- "description": "Resource group of storage account",
- "type": "string"
- },
- "storageAccountName": {
- "description": "Storage account name of the source data set",
- "type": "string"
- },
- "subscriptionId": {
- "description": "Subscription id of storage account",
- "type": "string"
- }
- }
+ "x-ms-discriminator-value": "KustoDatabase"
},
- "BlobContainerDataSet": {
- "description": "An Azure storage blob container data set.",
+ "KustoDatabaseDataSetMapping": {
+ "description": "A Kusto database data set mapping",
"required": [
"properties",
"kind"
@@ -4975,80 +4869,74 @@
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/DataSet"
+ "$ref": "#/definitions/DataSetMapping"
}
],
"properties": {
"properties": {
- "$ref": "#/definitions/BlobContainerProperties",
- "description": "Blob container data set properties.",
+ "$ref": "#/definitions/KustoDatabaseDataSetMappingProperties",
+ "description": "Kusto database data set mapping properties.",
"x-ms-client-flatten": true
}
},
- "x-ms-discriminator-value": "Container"
+ "x-ms-discriminator-value": "KustoDatabase"
},
- "BlobContainerProperties": {
- "description": "Properties of the BLOB container data set.",
+ "KustoDatabaseDataSetMappingProperties": {
+ "description": "Properties of the Kusto database data set mapping",
"required": [
- "containerName",
- "subscriptionId",
- "resourceGroup",
- "storageAccountName"
+ "kustoClusterResourceId",
+ "dataSetId"
],
"type": "object",
"properties": {
- "containerName": {
- "description": "BLOB Container name.",
+ "dataSetId": {
+ "description": "The id of the source data set.",
"type": "string"
},
- "dataSetId": {
- "description": "Unique id for identifying a data set resource",
+ "dataSetMappingStatus": {
+ "description": "Gets the status of the data set mapping.",
+ "enum": [
+ "Ok",
+ "Broken"
+ ],
"type": "string",
- "readOnly": true
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "dataSetMappingStatus",
+ "modelAsString": true
+ }
},
- "resourceGroup": {
- "description": "Resource group of storage account",
+ "kustoClusterResourceId": {
+ "description": "Resource id of the sink kusto cluster.",
"type": "string"
},
- "storageAccountName": {
- "description": "Storage account name of the source data set",
- "type": "string"
+ "location": {
+ "description": "Location of the sink kusto cluster.",
+ "type": "string",
+ "readOnly": true
},
- "subscriptionId": {
- "description": "Subscription id of storage account",
- "type": "string"
+ "provisioningState": {
+ "description": "Provisioning state of the data set mapping.",
+ "enum": [
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Moving",
+ "Failed"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "provisioningState",
+ "modelAsString": true
+ }
}
}
},
- "ADLSGen2FileDataSet": {
- "description": "An ADLS Gen 2 file data set.",
- "required": [
- "properties",
- "kind"
- ],
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/DataSet"
- }
- ],
- "properties": {
- "properties": {
- "$ref": "#/definitions/ADLSGen2FileProperties",
- "description": "ADLS Gen 2 file data set properties.",
- "x-ms-client-flatten": true
- }
- },
- "x-ms-discriminator-value": "AdlsGen2File"
- },
- "ADLSGen2FileProperties": {
- "description": "Properties of the ADLS Gen2 file data set.",
+ "KustoDatabaseDataSetProperties": {
+ "description": "Properties of the kusto database data set.",
"required": [
- "fileSystem",
- "filePath",
- "subscriptionId",
- "resourceGroup",
- "storageAccountName"
+ "kustoDatabaseResourceId"
],
"type": "object",
"properties": {
@@ -5057,482 +4945,492 @@
"type": "string",
"readOnly": true
},
- "filePath": {
- "description": "File path within the file system.",
- "type": "string"
- },
- "fileSystem": {
- "description": "File system to which the file belongs.",
- "type": "string"
- },
- "resourceGroup": {
- "description": "Resource group of storage account",
+ "kustoDatabaseResourceId": {
+ "description": "Resource id of the kusto database.",
"type": "string"
},
- "storageAccountName": {
- "description": "Storage account name of the source data set",
- "type": "string"
+ "location": {
+ "description": "Location of the kusto cluster.",
+ "type": "string",
+ "readOnly": true
},
- "subscriptionId": {
- "description": "Subscription id of storage account",
- "type": "string"
+ "provisioningState": {
+ "description": "Provisioning state of the kusto database data set.",
+ "enum": [
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Moving",
+ "Failed"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "provisioningState",
+ "modelAsString": true
+ }
}
}
},
- "ADLSGen2FolderDataSet": {
- "description": "An ADLS Gen 2 folder data set.",
+ "OperationList": {
+ "description": "List response for get operations.",
"required": [
- "properties",
- "kind"
+ "value"
],
"type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/DataSet"
+ "properties": {
+ "nextLink": {
+ "description": "The Url of next result page.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationModel"
+ }
}
- ],
+ }
+ },
+ "OperationMetaLogSpecification": {
+ "description": "log specifications for operation api",
+ "type": "object",
"properties": {
- "properties": {
- "$ref": "#/definitions/ADLSGen2FolderProperties",
- "description": "ADLS Gen 2 folder data set properties.",
- "x-ms-client-flatten": true
+ "blobDuration": {
+ "description": "blob duration of the log",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "localized name of the log category",
+ "type": "string"
+ },
+ "name": {
+ "description": "name of the log category",
+ "type": "string"
}
- },
- "x-ms-discriminator-value": "AdlsGen2Folder"
+ }
},
- "ADLSGen2FolderProperties": {
- "description": "Properties of the ADLS Gen2 folder data set.",
- "required": [
- "fileSystem",
- "folderPath",
- "subscriptionId",
- "resourceGroup",
- "storageAccountName"
- ],
+ "OperationMetaMetricSpecification": {
+ "description": "metric specifications for the operation",
"type": "object",
"properties": {
- "dataSetId": {
- "description": "Unique id for identifying a data set resource",
- "type": "string",
- "readOnly": true
+ "aggregationType": {
+ "description": "aggregation type of metric",
+ "type": "string"
},
- "fileSystem": {
- "description": "File system to which the folder belongs.",
+ "dimensions": {
+ "description": "properties for dimension",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DimensionProperties"
+ }
+ },
+ "displayDescription": {
+ "description": "description of the metric",
"type": "string"
},
- "folderPath": {
- "description": "Folder path within the file system.",
+ "displayName": {
+ "description": "localized name of the metric",
"type": "string"
},
- "resourceGroup": {
- "description": "Resource group of storage account",
+ "enableRegionalMdmAccount": {
+ "description": "enable regional mdm account",
"type": "string"
},
- "storageAccountName": {
- "description": "Storage account name of the source data set",
+ "internalMetricName": {
+ "description": "internal metric name",
"type": "string"
},
- "subscriptionId": {
- "description": "Subscription id of storage account",
+ "name": {
+ "description": "name of the metric",
+ "type": "string"
+ },
+ "resourceIdDimensionNameOverride": {
+ "description": "dimension name use to replace resource id if specified",
+ "type": "string"
+ },
+ "supportedAggregationTypes": {
+ "description": "supported aggregation types",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "supportedTimeGrainTypes": {
+ "description": "supported time grain types",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unit": {
+ "description": "units for the metric",
"type": "string"
}
}
},
- "ADLSGen2FileSystemDataSet": {
- "description": "An ADLS Gen 2 file system data set.",
- "required": [
- "properties",
- "kind"
- ],
+ "OperationMetaPropertyInfo": {
+ "description": "properties on meta info",
"type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/DataSet"
- }
- ],
"properties": {
- "properties": {
- "$ref": "#/definitions/ADLSGen2FileSystemProperties",
- "description": "ADLS Gen 2 file system data set properties.",
- "x-ms-client-flatten": true
+ "serviceSpecification": {
+ "$ref": "#/definitions/OperationMetaServiceSpecification",
+ "description": "meta service specification"
}
- },
- "x-ms-discriminator-value": "AdlsGen2FileSystem"
+ }
},
- "ADLSGen2FileSystemProperties": {
- "description": "Properties of the ADLS Gen2 file system data set.",
- "required": [
- "fileSystem",
- "subscriptionId",
- "resourceGroup",
- "storageAccountName"
- ],
+ "OperationMetaServiceSpecification": {
+ "description": "The operation meta service specification",
"type": "object",
"properties": {
- "dataSetId": {
- "description": "Unique id for identifying a data set resource",
- "type": "string",
- "readOnly": true
- },
- "fileSystem": {
- "description": "The file system name.",
- "type": "string"
- },
- "resourceGroup": {
- "description": "Resource group of storage account",
- "type": "string"
- },
- "storageAccountName": {
- "description": "Storage account name of the source data set",
- "type": "string"
+ "logSpecifications": {
+ "description": "log specifications for the operation",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationMetaLogSpecification"
+ }
},
- "subscriptionId": {
- "description": "Subscription id of storage account",
- "type": "string"
+ "metricSpecifications": {
+ "description": "metric specifications for the operation",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationMetaMetricSpecification"
+ }
}
}
},
- "ADLSGen1FolderDataSet": {
- "description": "An ADLS Gen 1 folder data set.",
- "required": [
- "properties",
- "kind"
- ],
+ "OperationModel": {
+ "description": "The response model for get operations",
"type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/DataSet"
- }
- ],
"properties": {
+ "display": {
+ "$ref": "#/definitions/OperationModelProperties",
+ "description": "Properties on the operation"
+ },
+ "name": {
+ "description": "Operation name for display purposes",
+ "type": "string"
+ },
+ "origin": {
+ "description": "origin of the operation",
+ "type": "string"
+ },
"properties": {
- "$ref": "#/definitions/ADLSGen1FolderProperties",
- "description": "ADLS Gen 1 folder data set properties.",
+ "$ref": "#/definitions/OperationMetaPropertyInfo",
+ "description": "properties for the operation meta info",
"x-ms-client-flatten": true
}
- },
- "x-ms-discriminator-value": "AdlsGen1Folder"
+ }
},
- "ADLSGen1FolderProperties": {
- "description": "Properties of the ADLS Gen1 folder data set.",
- "required": [
- "subscriptionId",
- "resourceGroup",
- "accountName",
- "folderPath"
- ],
+ "OperationModelProperties": {
+ "description": "Properties on operations",
"type": "object",
"properties": {
- "accountName": {
- "description": "The ADLS account name.",
+ "description": {
+ "description": "Description of the operation for display purposes",
"type": "string"
},
- "dataSetId": {
- "description": "Unique id for identifying a data set resource",
- "type": "string",
- "readOnly": true
- },
- "folderPath": {
- "description": "The folder path within the ADLS account.",
+ "operation": {
+ "description": "Name of the operation for display purposes",
"type": "string"
},
- "resourceGroup": {
- "description": "Resource group of ADLS account.",
+ "provider": {
+ "description": "Name of the provider for display purposes",
"type": "string"
},
- "subscriptionId": {
- "description": "Subscription id of ADLS account.",
+ "resource": {
+ "description": "Name of the resource type for display purposes",
"type": "string"
}
}
},
- "ADLSGen1FileDataSet": {
- "description": "An ADLS Gen 1 file data set.",
- "required": [
- "properties",
- "kind"
- ],
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/DataSet"
- }
- ],
- "properties": {
- "properties": {
- "$ref": "#/definitions/ADLSGen1FileProperties",
- "description": "ADLS Gen 1 file data set properties.",
- "x-ms-client-flatten": true
- }
- },
- "x-ms-discriminator-value": "AdlsGen1File"
- },
- "ADLSGen1FileProperties": {
- "description": "Properties of the ADLS Gen1 file data set.",
+ "OperationResponse": {
+ "description": "Response for long running operation",
"required": [
- "subscriptionId",
- "resourceGroup",
- "accountName",
- "folderPath",
- "fileName"
+ "status"
],
"type": "object",
"properties": {
- "accountName": {
- "description": "The ADLS account name.",
- "type": "string"
- },
- "dataSetId": {
- "description": "Unique id for identifying a data set resource",
- "type": "string",
- "readOnly": true
- },
- "fileName": {
- "description": "The file name in the ADLS account.",
+ "endTime": {
+ "format": "date-time",
+ "description": "start time",
"type": "string"
},
- "folderPath": {
- "description": "The folder path within the ADLS account.",
- "type": "string"
+ "error": {
+ "$ref": "#/definitions/DataShareErrorInfo",
+ "description": "The error property when status is failed."
},
- "resourceGroup": {
- "description": "Resource group of ADLS account.",
+ "startTime": {
+ "format": "date-time",
+ "description": "start time",
"type": "string"
},
- "subscriptionId": {
- "description": "Subscription id of ADLS account.",
- "type": "string"
+ "status": {
+ "description": "Operation state of the long running operation.",
+ "enum": [
+ "Accepted",
+ "InProgress",
+ "TransientFailure",
+ "Succeeded",
+ "Failed",
+ "Canceled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "status",
+ "modelAsString": true
+ }
}
}
},
- "KustoClusterDataSet": {
- "description": "A kusto cluster data set.",
- "required": [
- "properties",
- "kind"
- ],
+ "ProviderShareSubscription": {
+ "description": "A provider side share subscription data transfer object.",
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/DataSet"
+ "$ref": "#/definitions/ProxyDto"
}
],
"properties": {
"properties": {
- "$ref": "#/definitions/KustoClusterDataSetProperties",
- "description": "Kusto cluster data set properties.",
+ "$ref": "#/definitions/ProviderShareSubscriptionProperties",
+ "description": "properties of providerShareSubscription",
"x-ms-client-flatten": true
}
- },
- "x-ms-discriminator-value": "KustoCluster"
+ }
},
- "KustoClusterDataSetProperties": {
- "description": "Properties of the kusto cluster data set.",
+ "ProviderShareSubscriptionList": {
+ "description": "List response for get ShareSubscription.",
"required": [
- "kustoClusterResourceId"
+ "value"
],
"type": "object",
"properties": {
- "dataSetId": {
- "description": "Unique id for identifying a data set resource",
+ "nextLink": {
+ "description": "The Url of next result page.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ProviderShareSubscription"
+ }
+ }
+ }
+ },
+ "ProviderShareSubscriptionProperties": {
+ "description": "Provider share subscription properties",
+ "type": "object",
+ "properties": {
+ "consumerEmail": {
+ "description": "Email of the consumer who created the share subscription",
"type": "string",
"readOnly": true
},
- "kustoClusterResourceId": {
- "description": "Resource id of the kusto cluster.",
- "type": "string"
+ "consumerName": {
+ "description": "Name of the consumer who created the share subscription",
+ "type": "string",
+ "readOnly": true
},
- "location": {
- "description": "Location of the kusto cluster.",
+ "consumerTenantName": {
+ "description": "Tenant name of the consumer who created the share subscription",
"type": "string",
"readOnly": true
},
- "provisioningState": {
- "description": "Provisioning state of the kusto cluster data set.",
+ "createdAt": {
+ "format": "date-time",
+ "description": "created at",
+ "type": "string",
+ "readOnly": true
+ },
+ "providerEmail": {
+ "description": "Email of the provider who created the share",
+ "type": "string",
+ "readOnly": true
+ },
+ "providerName": {
+ "description": "Name of the provider who created the share",
+ "type": "string",
+ "readOnly": true
+ },
+ "sharedAt": {
+ "format": "date-time",
+ "description": "Shared at",
+ "type": "string",
+ "readOnly": true
+ },
+ "shareSubscriptionObjectId": {
+ "description": "share Subscription Object Id",
+ "type": "string",
+ "readOnly": true
+ },
+ "shareSubscriptionStatus": {
+ "description": "Gets the status of share subscription",
"enum": [
- "Succeeded",
- "Creating",
- "Deleting",
- "Moving",
- "Failed"
+ "Active",
+ "Revoked",
+ "SourceDeleted",
+ "Revoking"
],
"type": "string",
"readOnly": true,
"x-ms-enum": {
- "name": "provisioningState",
+ "name": "shareSubscriptionStatus",
"modelAsString": true
}
}
}
},
- "KustoDatabaseDataSet": {
- "description": "A kusto database data set.",
- "required": [
- "properties",
- "kind"
- ],
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/DataSet"
- }
- ],
- "properties": {
- "properties": {
- "$ref": "#/definitions/KustoDatabaseDataSetProperties",
- "description": "Kusto database data set properties.",
- "x-ms-client-flatten": true
- }
- },
- "x-ms-discriminator-value": "KustoDatabase"
- },
- "KustoDatabaseDataSetProperties": {
- "description": "Properties of the kusto database data set.",
- "required": [
- "kustoDatabaseResourceId"
- ],
+ "ProxyDto": {
+ "description": "Base data transfer object implementation for proxy resources.",
"type": "object",
"properties": {
- "dataSetId": {
- "description": "Unique id for identifying a data set resource",
+ "id": {
+ "description": "The resource id of the azure resource",
"type": "string",
"readOnly": true
},
- "kustoDatabaseResourceId": {
- "description": "Resource id of the kusto database.",
- "type": "string"
- },
- "location": {
- "description": "Location of the kusto cluster.",
+ "name": {
+ "description": "Name of the azure resource",
"type": "string",
"readOnly": true
},
- "provisioningState": {
- "description": "Provisioning state of the kusto database data set.",
+ "type": {
+ "description": "Type of the azure resource",
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "ScheduledSourceShareSynchronizationSettingProperties": {
+ "description": "A Scheduled source synchronization setting data transfer object.",
+ "type": "object",
+ "properties": {
+ "recurrenceInterval": {
+ "description": "Recurrence Interval",
"enum": [
- "Succeeded",
- "Creating",
- "Deleting",
- "Moving",
- "Failed"
+ "Hour",
+ "Day"
],
"type": "string",
- "readOnly": true,
"x-ms-enum": {
- "name": "provisioningState",
+ "name": "recurrenceInterval",
"modelAsString": true
}
+ },
+ "synchronizationTime": {
+ "format": "date-time",
+ "description": "Synchronization time",
+ "type": "string"
}
}
},
- "SqlDWTableDataSet": {
- "description": "A SQL DW table data set.",
+ "ScheduledSourceSynchronizationSetting": {
+ "description": "A type of synchronization setting based on schedule",
"required": [
"kind"
],
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/DataSet"
+ "$ref": "#/definitions/SourceShareSynchronizationSetting"
}
],
"properties": {
"properties": {
- "$ref": "#/definitions/SqlDWTableProperties",
- "description": "SQL DW table data set properties.",
+ "$ref": "#/definitions/ScheduledSourceShareSynchronizationSettingProperties",
+ "description": "Properties of scheduled synchronization",
"x-ms-client-flatten": true
}
},
- "x-ms-discriminator-value": "SqlDWTable"
- },
- "SqlDWTableProperties": {
- "description": "Properties of the SQL DW table data set.",
- "required": [
- "dataWarehouseName",
- "tableName",
- "schemaName",
- "sqlServerResourceId"
- ],
- "type": "object",
- "properties": {
- "dataSetId": {
- "description": "Unique id for identifying a data set resource",
- "type": "string",
- "readOnly": true
- },
- "dataWarehouseName": {
- "description": "DataWarehouse name of the source data set",
- "type": "string"
- },
- "schemaName": {
- "description": "Schema of the table. Default value is dbo.",
- "type": "string"
- },
- "sqlServerResourceId": {
- "description": "Resource id of SQL server",
- "type": "string"
- },
- "tableName": {
- "description": "SQL DW table name.",
- "type": "string"
- }
- }
+ "x-ms-discriminator-value": "ScheduleBased"
},
- "SqlDBTableDataSet": {
- "description": "A SQL DB table data set.",
+ "ScheduledSynchronizationSetting": {
+ "description": "A type of synchronization setting based on schedule",
"required": [
+ "properties",
"kind"
],
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/DataSet"
+ "$ref": "#/definitions/SynchronizationSetting"
}
],
"properties": {
"properties": {
- "$ref": "#/definitions/SqlDBTableProperties",
- "description": "SQL DB table data set properties.",
+ "$ref": "#/definitions/ScheduledSynchronizationSettingProperties",
+ "description": "Properties of scheduled synchronization",
"x-ms-client-flatten": true
}
},
- "x-ms-discriminator-value": "SqlDBTable"
+ "x-ms-discriminator-value": "ScheduleBased"
},
- "SqlDBTableProperties": {
- "description": "Properties of the SQL DB table data set.",
+ "ScheduledSynchronizationSettingProperties": {
+ "description": "A Scheduled synchronization setting data transfer object.",
"required": [
- "databaseName",
- "tableName",
- "schemaName",
- "sqlServerResourceId"
+ "recurrenceInterval",
+ "synchronizationTime"
],
"type": "object",
"properties": {
- "databaseName": {
- "description": "Database name of the source data set",
- "type": "string"
- },
- "dataSetId": {
- "description": "Unique id for identifying a data set resource",
+ "createdAt": {
+ "format": "date-time",
+ "description": "Time at which the synchronization setting was created.",
"type": "string",
"readOnly": true
},
- "schemaName": {
- "description": "Schema of the table. Default value is dbo.",
- "type": "string"
+ "provisioningState": {
+ "description": "Gets or sets the provisioning state",
+ "enum": [
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Moving",
+ "Failed"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "provisioningState",
+ "modelAsString": true
+ }
},
- "sqlServerResourceId": {
- "description": "Resource id of SQL server",
- "type": "string"
+ "recurrenceInterval": {
+ "description": "Recurrence Interval",
+ "enum": [
+ "Hour",
+ "Day"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "recurrenceInterval",
+ "modelAsString": true
+ }
},
- "tableName": {
- "description": "SQL DB table name.",
+ "synchronizationTime": {
+ "format": "date-time",
+ "description": "Synchronization time",
"type": "string"
+ },
+ "userName": {
+ "description": "Name of the user who created the synchronization setting.",
+ "type": "string",
+ "readOnly": true
}
}
},
- "BlobDataSetMapping": {
- "description": "A Blob data set mapping.",
+ "ScheduledTrigger": {
+ "description": "A type of trigger based on schedule",
"required": [
"properties",
"kind"
@@ -5540,157 +5438,151 @@
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/DataSetMapping"
+ "$ref": "#/definitions/Trigger"
}
],
"properties": {
"properties": {
- "$ref": "#/definitions/BlobMappingProperties",
- "description": "Blob data set mapping properties.",
+ "$ref": "#/definitions/ScheduledTriggerProperties",
+ "description": "Properties of scheduled synchronization",
"x-ms-client-flatten": true
}
},
- "x-ms-discriminator-value": "Blob"
+ "x-ms-discriminator-value": "ScheduleBased"
},
- "BlobMappingProperties": {
- "description": "Azure storage Blob data set mapping property bag.",
+ "ScheduledTriggerProperties": {
+ "description": "A Scheduled trigger data transfer object.",
"required": [
- "containerName",
- "filePath",
- "subscriptionId",
- "resourceGroup",
- "storageAccountName",
- "dataSetId"
+ "recurrenceInterval",
+ "synchronizationTime"
],
"type": "object",
"properties": {
- "containerName": {
- "description": "Container that has the file path.",
- "type": "string"
- },
- "dataSetId": {
- "description": "The id of the source data set.",
- "type": "string"
+ "createdAt": {
+ "format": "date-time",
+ "description": "Time at which the trigger was created.",
+ "type": "string",
+ "readOnly": true
},
- "dataSetMappingStatus": {
- "description": "Gets the status of the data set mapping.",
+ "provisioningState": {
+ "description": "Gets the provisioning state",
"enum": [
- "Ok",
- "Broken"
+ "Succeeded",
+ "Creating",
+ "Deleting",
+ "Moving",
+ "Failed"
],
"type": "string",
"readOnly": true,
"x-ms-enum": {
- "name": "dataSetMappingStatus",
+ "name": "provisioningState",
"modelAsString": true
}
},
- "filePath": {
- "description": "File path within the source data set",
- "type": "string"
- },
- "outputType": {
- "description": "File output type",
+ "recurrenceInterval": {
+ "description": "Recurrence Interval",
"enum": [
- "Csv",
- "Parquet"
+ "Hour",
+ "Day"
],
"type": "string",
"x-ms-enum": {
- "name": "outputType",
+ "name": "recurrenceInterval",
"modelAsString": true
}
},
- "provisioningState": {
- "description": "Provisioning state of the data set mapping.",
+ "synchronizationMode": {
+ "description": "Synchronization mode",
"enum": [
- "Succeeded",
- "Creating",
- "Deleting",
- "Moving",
- "Failed"
+ "Incremental",
+ "FullSync"
],
"type": "string",
- "readOnly": true,
"x-ms-enum": {
- "name": "provisioningState",
+ "name": "synchronizationMode",
"modelAsString": true
}
},
- "resourceGroup": {
- "description": "Resource group of storage account.",
+ "synchronizationTime": {
+ "format": "date-time",
+ "description": "Synchronization time",
"type": "string"
},
- "storageAccountName": {
- "description": "Storage account name of the source data set.",
- "type": "string"
+ "triggerStatus": {
+ "description": "Gets the trigger state",
+ "enum": [
+ "Active",
+ "Inactive",
+ "SourceSynchronizationSettingDeleted"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "triggerStatus",
+ "modelAsString": true
+ }
},
- "subscriptionId": {
- "description": "Subscription id of storage account.",
- "type": "string"
+ "userName": {
+ "description": "Name of the user who created the trigger.",
+ "type": "string",
+ "readOnly": true
}
}
},
- "BlobFolderDataSetMapping": {
- "description": "A Blob folder data set mapping.",
- "required": [
- "properties",
- "kind"
- ],
+ "Share": {
+ "description": "A share data transfer object.",
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/DataSetMapping"
+ "$ref": "#/definitions/ProxyDto"
}
],
"properties": {
"properties": {
- "$ref": "#/definitions/BlobFolderMappingProperties",
- "description": "Blob folder data set mapping properties.",
+ "$ref": "#/definitions/ShareProperties",
+ "description": "Properties on the share",
"x-ms-client-flatten": true
}
- },
- "x-ms-discriminator-value": "BlobFolder"
+ }
},
- "BlobFolderMappingProperties": {
- "description": "Azure storage Blob folder data set mapping property bag.",
+ "ShareList": {
+ "description": "List response for get Shares.",
"required": [
- "containerName",
- "prefix",
- "subscriptionId",
- "resourceGroup",
- "storageAccountName",
- "dataSetId"
+ "value"
],
"type": "object",
"properties": {
- "containerName": {
- "description": "Container that has the file path.",
- "type": "string"
- },
- "dataSetId": {
- "description": "The id of the source data set.",
+ "nextLink": {
+ "description": "The Url of next result page.",
"type": "string"
},
- "dataSetMappingStatus": {
- "description": "Gets the status of the data set mapping.",
- "enum": [
- "Ok",
- "Broken"
- ],
- "type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "dataSetMappingStatus",
- "modelAsString": true
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Share"
}
+ }
+ }
+ },
+ "ShareProperties": {
+ "description": "Share property bag.",
+ "type": "object",
+ "properties": {
+ "createdAt": {
+ "format": "date-time",
+ "description": "Time at which the share was created.",
+ "type": "string",
+ "readOnly": true
},
- "prefix": {
- "description": "Prefix for blob folder",
+ "description": {
+ "description": "Share description.",
"type": "string"
},
"provisioningState": {
- "description": "Provisioning state of the data set mapping.",
+ "description": "Gets or sets the provisioning state",
"enum": [
"Succeeded",
"Creating",
@@ -5705,75 +5597,109 @@
"modelAsString": true
}
},
- "resourceGroup": {
- "description": "Resource group of storage account.",
- "type": "string"
+ "shareKind": {
+ "description": "Share kind.",
+ "enum": [
+ "CopyBased",
+ "InPlace"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "shareKind",
+ "modelAsString": true
+ }
},
- "storageAccountName": {
- "description": "Storage account name of the source data set.",
+ "terms": {
+ "description": "Share terms.",
"type": "string"
},
- "subscriptionId": {
- "description": "Subscription id of storage account.",
- "type": "string"
+ "userEmail": {
+ "description": "Email of the user who created the resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "userName": {
+ "description": "Name of the user who created the resource",
+ "type": "string",
+ "readOnly": true
}
}
},
- "BlobContainerDataSetMapping": {
- "description": "A Blob container data set mapping.",
+ "ShareSubscription": {
+ "description": "A share subscription data transfer object.",
"required": [
- "properties",
- "kind"
+ "properties"
],
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/DataSetMapping"
+ "$ref": "#/definitions/ProxyDto"
}
],
"properties": {
"properties": {
- "$ref": "#/definitions/BlobContainerMappingProperties",
- "description": "Blob container data set mapping properties.",
+ "$ref": "#/definitions/ShareSubscriptionProperties",
+ "description": "Properties on the share subscription",
"x-ms-client-flatten": true
}
- },
- "x-ms-discriminator-value": "Container"
+ }
},
- "BlobContainerMappingProperties": {
- "description": "Azure storage Blob container data set mapping property bag.",
+ "ShareSubscriptionList": {
+ "description": "List response for get ShareSubscription.",
"required": [
- "containerName",
- "subscriptionId",
- "resourceGroup",
- "storageAccountName",
- "dataSetId"
+ "value"
],
"type": "object",
"properties": {
- "containerName": {
- "description": "BLOB Container name.",
+ "nextLink": {
+ "description": "The Url of next result page.",
"type": "string"
},
- "dataSetId": {
- "description": "The id of the source data set.",
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ShareSubscription"
+ }
+ }
+ }
+ },
+ "ShareSubscriptionProperties": {
+ "description": "Share subscription property bag.",
+ "required": [
+ "invitationId",
+ "sourceShareLocation"
+ ],
+ "type": "object",
+ "properties": {
+ "createdAt": {
+ "format": "date-time",
+ "description": "Time at which the share subscription was created.",
+ "type": "string",
+ "readOnly": true
+ },
+ "invitationId": {
+ "description": "The invitation id.",
"type": "string"
},
- "dataSetMappingStatus": {
- "description": "Gets the status of the data set mapping.",
- "enum": [
- "Ok",
- "Broken"
- ],
+ "providerEmail": {
+ "description": "Email of the provider who created the resource",
"type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "dataSetMappingStatus",
- "modelAsString": true
- }
+ "readOnly": true
+ },
+ "providerName": {
+ "description": "Name of the provider who created the resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "providerTenantName": {
+ "description": "Tenant name of the provider who created the resource",
+ "type": "string",
+ "readOnly": true
},
"provisioningState": {
- "description": "Provisioning state of the data set mapping.",
+ "description": "Provisioning state of the share subscription",
"enum": [
"Succeeded",
"Creating",
@@ -5788,210 +5714,283 @@
"modelAsString": true
}
},
- "resourceGroup": {
- "description": "Resource group of storage account.",
- "type": "string"
+ "shareDescription": {
+ "description": "Description of share",
+ "type": "string",
+ "readOnly": true
},
- "storageAccountName": {
- "description": "Storage account name of the source data set.",
- "type": "string"
+ "shareKind": {
+ "description": "Kind of share",
+ "enum": [
+ "CopyBased",
+ "InPlace"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "shareKind",
+ "modelAsString": true
+ }
},
- "subscriptionId": {
- "description": "Subscription id of storage account.",
+ "shareName": {
+ "description": "Name of the share",
+ "type": "string",
+ "readOnly": true
+ },
+ "shareSubscriptionStatus": {
+ "description": "Gets the current status of share subscription.",
+ "enum": [
+ "Active",
+ "Revoked",
+ "SourceDeleted",
+ "Revoking"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "shareSubscriptionStatus",
+ "modelAsString": true
+ }
+ },
+ "shareTerms": {
+ "description": "Terms of a share",
+ "type": "string",
+ "readOnly": true
+ },
+ "sourceShareLocation": {
+ "description": "Source share location.",
"type": "string"
+ },
+ "userEmail": {
+ "description": "Email of the user who created the resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "userName": {
+ "description": "Name of the user who created the resource",
+ "type": "string",
+ "readOnly": true
}
}
},
- "ADLSGen2FileDataSetMapping": {
- "description": "An ADLS Gen2 file data set mapping.",
+ "ShareSubscriptionSynchronization": {
+ "description": "A ShareSubscriptionSynchronization data transfer object.",
"required": [
- "properties",
- "kind"
+ "synchronizationId"
],
"type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/DataSetMapping"
- }
- ],
"properties": {
- "properties": {
- "$ref": "#/definitions/ADLSGen2FileDataSetMappingProperties",
- "description": "ADLS Gen2 file data set mapping properties.",
- "x-ms-client-flatten": true
+ "durationMs": {
+ "format": "int32",
+ "description": "Synchronization duration",
+ "type": "integer",
+ "readOnly": true
+ },
+ "endTime": {
+ "format": "date-time",
+ "description": "End time of synchronization",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "message of Synchronization",
+ "type": "string",
+ "readOnly": true
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "start time of synchronization",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Raw Status",
+ "type": "string",
+ "readOnly": true
+ },
+ "synchronizationId": {
+ "description": "Synchronization id",
+ "type": "string"
+ },
+ "synchronizationMode": {
+ "description": "Synchronization Mode",
+ "enum": [
+ "Incremental",
+ "FullSync"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "synchronizationMode",
+ "modelAsString": true
+ }
}
- },
- "x-ms-discriminator-value": "AdlsGen2File"
+ }
},
- "ADLSGen2FileDataSetMappingProperties": {
- "description": "ADLS Gen 2 file data set mapping property bag.",
+ "ShareSubscriptionSynchronizationList": {
+ "description": "A consumer side list of share subscription synchronizations",
"required": [
- "fileSystem",
- "filePath",
- "subscriptionId",
- "resourceGroup",
- "storageAccountName",
- "dataSetId"
+ "value"
],
"type": "object",
"properties": {
- "dataSetId": {
- "description": "The id of the source data set.",
+ "nextLink": {
+ "description": "The Url of next result page.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ShareSubscriptionSynchronization"
+ }
+ }
+ }
+ },
+ "ShareSynchronization": {
+ "description": "A ShareSynchronization data transfer object.",
+ "type": "object",
+ "properties": {
+ "consumerEmail": {
+ "description": "Email of the user who created the synchronization",
+ "type": "string"
+ },
+ "consumerName": {
+ "description": "Name of the user who created the synchronization",
+ "type": "string"
+ },
+ "consumerTenantName": {
+ "description": "Tenant name of the consumer who created the synchronization",
+ "type": "string"
+ },
+ "durationMs": {
+ "format": "int32",
+ "description": "synchronization duration",
+ "type": "integer"
+ },
+ "endTime": {
+ "format": "date-time",
+ "description": "End time of synchronization",
"type": "string"
},
- "dataSetMappingStatus": {
- "description": "Gets the status of the data set mapping.",
- "enum": [
- "Ok",
- "Broken"
- ],
- "type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "dataSetMappingStatus",
- "modelAsString": true
- }
+ "message": {
+ "description": "message of synchronization",
+ "type": "string"
},
- "filePath": {
- "description": "File path within the file system.",
+ "startTime": {
+ "format": "date-time",
+ "description": "start time of synchronization",
"type": "string"
},
- "fileSystem": {
- "description": "File system to which the file belongs.",
+ "status": {
+ "description": "Raw Status",
"type": "string"
},
- "outputType": {
- "description": "Type of output file",
- "enum": [
- "Csv",
- "Parquet"
- ],
- "type": "string",
- "x-ms-enum": {
- "name": "outputType",
- "modelAsString": true
- }
+ "synchronizationId": {
+ "description": "Synchronization id",
+ "type": "string"
},
- "provisioningState": {
- "description": "Provisioning state of the data set mapping.",
+ "synchronizationMode": {
+ "description": "Synchronization mode",
"enum": [
- "Succeeded",
- "Creating",
- "Deleting",
- "Moving",
- "Failed"
+ "Incremental",
+ "FullSync"
],
"type": "string",
"readOnly": true,
"x-ms-enum": {
- "name": "provisioningState",
+ "name": "synchronizationMode",
"modelAsString": true
}
- },
- "resourceGroup": {
- "description": "Resource group of storage account.",
- "type": "string"
- },
- "storageAccountName": {
- "description": "Storage account name of the source data set.",
- "type": "string"
- },
- "subscriptionId": {
- "description": "Subscription id of storage account.",
- "type": "string"
}
}
},
- "ADLSGen2FolderDataSetMapping": {
- "description": "An ADLS Gen2 folder data set mapping.",
+ "ShareSynchronizationList": {
+ "description": "List response for get ShareSynchronization.",
"required": [
- "properties",
- "kind"
+ "value"
],
"type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/DataSetMapping"
- }
- ],
"properties": {
- "properties": {
- "$ref": "#/definitions/ADLSGen2FolderDataSetMappingProperties",
- "description": "ADLS Gen2 folder data set mapping properties.",
- "x-ms-client-flatten": true
+ "nextLink": {
+ "description": "The Url of next result page.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ShareSynchronization"
+ }
}
- },
- "x-ms-discriminator-value": "AdlsGen2Folder"
+ }
},
- "ADLSGen2FolderDataSetMappingProperties": {
- "description": "ADLS Gen 2 folder data set mapping property bag.",
+ "SourceShareSynchronizationSetting": {
+ "description": "A view of synchronization setting added by the provider",
"required": [
- "fileSystem",
- "folderPath",
- "subscriptionId",
- "resourceGroup",
- "storageAccountName",
- "dataSetId"
+ "kind"
],
"type": "object",
"properties": {
- "dataSetId": {
- "description": "The id of the source data set.",
- "type": "string"
- },
- "dataSetMappingStatus": {
- "description": "Gets the status of the data set mapping.",
+ "kind": {
+ "description": "Kind of synchronization",
"enum": [
- "Ok",
- "Broken"
+ "ScheduleBased"
],
"type": "string",
- "readOnly": true,
"x-ms-enum": {
- "name": "dataSetMappingStatus",
+ "name": "kind",
"modelAsString": true
}
- },
- "fileSystem": {
- "description": "File system to which the folder belongs.",
- "type": "string"
- },
- "folderPath": {
- "description": "Folder path within the file system.",
+ }
+ },
+ "discriminator": "kind"
+ },
+ "SourceShareSynchronizationSettingList": {
+ "description": "List response for get source share Synchronization settings",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "nextLink": {
+ "description": "The Url of next result page.",
"type": "string"
},
- "provisioningState": {
- "description": "Provisioning state of the data set mapping.",
- "enum": [
- "Succeeded",
- "Creating",
- "Deleting",
- "Moving",
- "Failed"
- ],
- "type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "provisioningState",
- "modelAsString": true
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SourceShareSynchronizationSetting"
}
- },
- "resourceGroup": {
- "description": "Resource group of storage account.",
- "type": "string"
- },
- "storageAccountName": {
- "description": "Storage account name of the source data set.",
- "type": "string"
- },
- "subscriptionId": {
- "description": "Subscription id of storage account.",
- "type": "string"
}
}
},
- "ADLSGen2FileSystemDataSetMapping": {
- "description": "An ADLS Gen2 file system data set mapping.",
+ "SqlDBTableDataSet": {
+ "description": "A SQL DB table data set.",
+ "required": [
+ "kind"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataSet"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/SqlDBTableProperties",
+ "description": "SQL DB table data set properties.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "x-ms-discriminator-value": "SqlDBTable"
+ },
+ "SqlDBTableDataSetMapping": {
+ "description": "A SQL DB Table data set mapping.",
"required": [
"properties",
"kind"
@@ -6004,24 +6003,28 @@
],
"properties": {
"properties": {
- "$ref": "#/definitions/ADLSGen2FileSystemDataSetMappingProperties",
- "description": "ADLS Gen2 file system data set mapping properties.",
+ "$ref": "#/definitions/SqlDBTableDataSetMappingProperties",
+ "description": "Sql DB data set mapping properties.",
"x-ms-client-flatten": true
}
},
- "x-ms-discriminator-value": "AdlsGen2FileSystem"
+ "x-ms-discriminator-value": "SqlDBTable"
},
- "ADLSGen2FileSystemDataSetMappingProperties": {
- "description": "ADLS Gen 2 file system data set mapping property bag.",
+ "SqlDBTableDataSetMappingProperties": {
+ "description": "Properties of the SQL DB table data set mapping.",
"required": [
- "fileSystem",
- "subscriptionId",
- "resourceGroup",
- "storageAccountName",
+ "databaseName",
+ "tableName",
+ "schemaName",
+ "sqlServerResourceId",
"dataSetId"
],
"type": "object",
"properties": {
+ "databaseName": {
+ "description": "DatabaseName name of the sink data set",
+ "type": "string"
+ },
"dataSetId": {
"description": "The id of the source data set.",
"type": "string"
@@ -6039,10 +6042,6 @@
"modelAsString": true
}
},
- "fileSystem": {
- "description": "The file system name.",
- "type": "string"
- },
"provisioningState": {
"description": "Provisioning state of the data set mapping.",
"enum": [
@@ -6059,22 +6058,75 @@
"modelAsString": true
}
},
- "resourceGroup": {
- "description": "Resource group of storage account.",
+ "schemaName": {
+ "description": "Schema of the table. Default value is dbo.",
+ "type": "string"
+ },
+ "sqlServerResourceId": {
+ "description": "Resource id of SQL server",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "SQL DB table name.",
+ "type": "string"
+ }
+ }
+ },
+ "SqlDBTableProperties": {
+ "description": "Properties of the SQL DB table data set.",
+ "required": [
+ "databaseName",
+ "tableName",
+ "schemaName",
+ "sqlServerResourceId"
+ ],
+ "type": "object",
+ "properties": {
+ "databaseName": {
+ "description": "Database name of the source data set",
+ "type": "string"
+ },
+ "dataSetId": {
+ "description": "Unique id for identifying a data set resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "schemaName": {
+ "description": "Schema of the table. Default value is dbo.",
"type": "string"
},
- "storageAccountName": {
- "description": "Storage account name of the source data set.",
+ "sqlServerResourceId": {
+ "description": "Resource id of SQL server",
"type": "string"
},
- "subscriptionId": {
- "description": "Subscription id of storage account.",
+ "tableName": {
+ "description": "SQL DB table name.",
"type": "string"
}
}
},
- "KustoClusterDataSetMapping": {
- "description": "A Kusto cluster data set mapping",
+ "SqlDWTableDataSet": {
+ "description": "A SQL DW table data set.",
+ "required": [
+ "kind"
+ ],
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DataSet"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/SqlDWTableProperties",
+ "description": "SQL DW table data set properties.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "x-ms-discriminator-value": "SqlDWTable"
+ },
+ "SqlDWTableDataSetMapping": {
+ "description": "A SQL DW Table data set mapping.",
"required": [
"properties",
"kind"
@@ -6087,17 +6139,20 @@
],
"properties": {
"properties": {
- "$ref": "#/definitions/KustoClusterDataSetMappingProperties",
- "description": "Kusto cluster data set mapping properties.",
+ "$ref": "#/definitions/SqlDWTableDataSetMappingProperties",
+ "description": "Sql DW data set mapping properties.",
"x-ms-client-flatten": true
}
},
- "x-ms-discriminator-value": "KustoCluster"
+ "x-ms-discriminator-value": "SqlDWTable"
},
- "KustoClusterDataSetMappingProperties": {
- "description": "Properties of the Kusto cluster data set mapping",
+ "SqlDWTableDataSetMappingProperties": {
+ "description": "Properties of the SQL DW table data set mapping.",
"required": [
- "kustoClusterResourceId",
+ "dataWarehouseName",
+ "tableName",
+ "schemaName",
+ "sqlServerResourceId",
"dataSetId"
],
"type": "object",
@@ -6119,15 +6174,10 @@
"modelAsString": true
}
},
- "kustoClusterResourceId": {
- "description": "Resource id of the sink kusto cluster.",
+ "dataWarehouseName": {
+ "description": "DataWarehouse name of the source data set",
"type": "string"
},
- "location": {
- "description": "Location of the sink kusto cluster.",
- "type": "string",
- "readOnly": true
- },
"provisioningState": {
"description": "Provisioning state of the data set mapping.",
"enum": [
@@ -6143,345 +6193,295 @@
"name": "provisioningState",
"modelAsString": true
}
+ },
+ "schemaName": {
+ "description": "Schema of the table. Default value is dbo.",
+ "type": "string"
+ },
+ "sqlServerResourceId": {
+ "description": "Resource id of SQL server",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "SQL DW table name.",
+ "type": "string"
}
}
},
- "KustoDatabaseDataSetMapping": {
- "description": "A Kusto database data set mapping",
+ "SqlDWTableProperties": {
+ "description": "Properties of the SQL DW table data set.",
"required": [
- "properties",
- "kind"
+ "dataWarehouseName",
+ "tableName",
+ "schemaName",
+ "sqlServerResourceId"
],
"type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/DataSetMapping"
- }
- ],
"properties": {
- "properties": {
- "$ref": "#/definitions/KustoDatabaseDataSetMappingProperties",
- "description": "Kusto database data set mapping properties.",
- "x-ms-client-flatten": true
+ "dataSetId": {
+ "description": "Unique id for identifying a data set resource",
+ "type": "string",
+ "readOnly": true
+ },
+ "dataWarehouseName": {
+ "description": "DataWarehouse name of the source data set",
+ "type": "string"
+ },
+ "schemaName": {
+ "description": "Schema of the table. Default value is dbo.",
+ "type": "string"
+ },
+ "sqlServerResourceId": {
+ "description": "Resource id of SQL server",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "SQL DW table name.",
+ "type": "string"
}
- },
- "x-ms-discriminator-value": "KustoDatabase"
+ }
},
- "KustoDatabaseDataSetMappingProperties": {
- "description": "Properties of the Kusto database data set mapping",
- "required": [
- "kustoClusterResourceId",
- "dataSetId"
- ],
+ "SynchronizationDetails": {
+ "description": "Synchronization details at data set level",
"type": "object",
"properties": {
"dataSetId": {
- "description": "The id of the source data set.",
- "type": "string"
+ "description": "Id of data set",
+ "type": "string",
+ "readOnly": true
},
- "dataSetMappingStatus": {
- "description": "Gets the status of the data set mapping.",
+ "dataSetType": {
+ "description": "Type of the data set",
"enum": [
- "Ok",
- "Broken"
+ "Blob",
+ "Container",
+ "BlobFolder",
+ "AdlsGen2FileSystem",
+ "AdlsGen2Folder",
+ "AdlsGen2File",
+ "AdlsGen1Folder",
+ "AdlsGen1File",
+ "KustoCluster",
+ "KustoDatabase",
+ "SqlDBTable",
+ "SqlDWTable"
],
"type": "string",
"readOnly": true,
"x-ms-enum": {
- "name": "dataSetMappingStatus",
+ "name": "dataSetType",
"modelAsString": true
}
},
- "kustoClusterResourceId": {
- "description": "Resource id of the sink kusto cluster.",
- "type": "string"
+ "durationMs": {
+ "format": "int32",
+ "description": "Duration of data set level copy",
+ "type": "integer",
+ "readOnly": true
},
- "location": {
- "description": "Location of the sink kusto cluster.",
+ "endTime": {
+ "format": "date-time",
+ "description": "End time of data set level copy",
"type": "string",
"readOnly": true
},
- "provisioningState": {
- "description": "Provisioning state of the data set mapping.",
- "enum": [
- "Succeeded",
- "Creating",
- "Deleting",
- "Moving",
- "Failed"
- ],
+ "filesRead": {
+ "format": "int64",
+ "description": "The number of files read from the source data set",
+ "type": "integer",
+ "readOnly": true
+ },
+ "filesWritten": {
+ "format": "int64",
+ "description": "The number of files written into the sink data set",
+ "type": "integer",
+ "readOnly": true
+ },
+ "message": {
+ "description": "Error message if any",
"type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "provisioningState",
- "modelAsString": true
- }
- }
- }
- },
- "SqlDWTableDataSetMapping": {
- "description": "A SQL DW Table data set mapping.",
- "required": [
- "properties",
- "kind"
- ],
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/DataSetMapping"
- }
- ],
- "properties": {
- "properties": {
- "$ref": "#/definitions/SqlDWTableDataSetMappingProperties",
- "description": "Sql DW data set mapping properties.",
- "x-ms-client-flatten": true
+ "readOnly": true
+ },
+ "name": {
+ "description": "Name of the data set",
+ "type": "string",
+ "readOnly": true
+ },
+ "rowsCopied": {
+ "format": "int64",
+ "description": "The number of files copied into the sink data set",
+ "type": "integer",
+ "readOnly": true
+ },
+ "rowsRead": {
+ "format": "int64",
+ "description": "The number of rows read from the source data set.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "sizeRead": {
+ "format": "int64",
+ "description": "The size of the data read from the source data set in bytes",
+ "type": "integer",
+ "readOnly": true
+ },
+ "sizeWritten": {
+ "format": "int64",
+ "description": "The size of the data written into the sink data set in bytes",
+ "type": "integer",
+ "readOnly": true
+ },
+ "startTime": {
+ "format": "date-time",
+ "description": "Start time of data set level copy",
+ "type": "string",
+ "readOnly": true
+ },
+ "status": {
+ "description": "Raw Status",
+ "type": "string",
+ "readOnly": true
+ },
+ "vCore": {
+ "format": "int64",
+ "description": "The vCore units consumed for the data set synchronization",
+ "type": "integer",
+ "readOnly": true
}
- },
- "x-ms-discriminator-value": "SqlDWTable"
+ }
},
- "SqlDWTableDataSetMappingProperties": {
- "description": "Properties of the SQL DW table data set mapping.",
+ "SynchronizationDetailsList": {
+ "description": "details of synchronization",
"required": [
- "dataWarehouseName",
- "tableName",
- "schemaName",
- "sqlServerResourceId",
- "dataSetId"
+ "value"
],
"type": "object",
"properties": {
- "dataSetId": {
- "description": "The id of the source data set.",
- "type": "string"
- },
- "dataSetMappingStatus": {
- "description": "Gets the status of the data set mapping.",
- "enum": [
- "Ok",
- "Broken"
- ],
- "type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "dataSetMappingStatus",
- "modelAsString": true
- }
- },
- "dataWarehouseName": {
- "description": "DataWarehouse name of the source data set",
+ "nextLink": {
+ "description": "The Url of next result page.",
"type": "string"
},
- "provisioningState": {
- "description": "Provisioning state of the data set mapping.",
- "enum": [
- "Succeeded",
- "Creating",
- "Deleting",
- "Moving",
- "Failed"
- ],
- "type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "provisioningState",
- "modelAsString": true
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SynchronizationDetails"
}
- },
- "schemaName": {
- "description": "Schema of the table. Default value is dbo.",
- "type": "string"
- },
- "sqlServerResourceId": {
- "description": "Resource id of SQL server",
- "type": "string"
- },
- "tableName": {
- "description": "SQL DW table name.",
- "type": "string"
}
}
},
- "SqlDBTableDataSetMapping": {
- "description": "A SQL DB Table data set mapping.",
+ "SynchronizationSetting": {
+ "description": "A Synchronization Setting data transfer object.",
"required": [
- "properties",
"kind"
],
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/DataSetMapping"
+ "$ref": "#/definitions/ProxyDto"
}
],
"properties": {
- "properties": {
- "$ref": "#/definitions/SqlDBTableDataSetMappingProperties",
- "description": "Sql DB data set mapping properties.",
- "x-ms-client-flatten": true
+ "kind": {
+ "description": "Kind of synchronization",
+ "enum": [
+ "ScheduleBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "kind",
+ "modelAsString": true
+ }
}
},
- "x-ms-discriminator-value": "SqlDBTable"
+ "discriminator": "kind"
},
- "SqlDBTableDataSetMappingProperties": {
- "description": "Properties of the SQL DB table data set mapping.",
+ "SynchronizationSettingList": {
+ "description": "List response for get Synchronization settings",
"required": [
- "databaseName",
- "tableName",
- "schemaName",
- "sqlServerResourceId",
- "dataSetId"
+ "value"
],
"type": "object",
"properties": {
- "databaseName": {
- "description": "DatabaseName name of the sink data set",
- "type": "string"
- },
- "dataSetId": {
- "description": "The id of the source data set.",
+ "nextLink": {
+ "description": "The Url of next result page.",
"type": "string"
},
- "dataSetMappingStatus": {
- "description": "Gets the status of the data set mapping.",
- "enum": [
- "Ok",
- "Broken"
- ],
- "type": "string",
- "readOnly": true,
- "x-ms-enum": {
- "name": "dataSetMappingStatus",
- "modelAsString": true
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SynchronizationSetting"
}
- },
- "provisioningState": {
- "description": "Provisioning state of the data set mapping.",
+ }
+ }
+ },
+ "Synchronize": {
+ "description": "Payload for the synchronizing the data.",
+ "type": "object",
+ "properties": {
+ "synchronizationMode": {
+ "description": "Mode of synchronization used in triggers and snapshot sync. Incremental by default",
"enum": [
- "Succeeded",
- "Creating",
- "Deleting",
- "Moving",
- "Failed"
+ "Incremental",
+ "FullSync"
],
"type": "string",
- "readOnly": true,
"x-ms-enum": {
- "name": "provisioningState",
+ "name": "synchronizationMode",
"modelAsString": true
}
- },
- "schemaName": {
- "description": "Schema of the table. Default value is dbo.",
- "type": "string"
- },
- "sqlServerResourceId": {
- "description": "Resource id of SQL server",
- "type": "string"
- },
- "tableName": {
- "description": "SQL DB table name.",
- "type": "string"
}
}
},
- "ScheduledSourceSynchronizationSetting": {
- "description": "A type of synchronization setting based on schedule",
+ "Trigger": {
+ "description": "A Trigger data transfer object.",
"required": [
"kind"
],
"type": "object",
"allOf": [
{
- "$ref": "#/definitions/SourceShareSynchronizationSetting"
+ "$ref": "#/definitions/ProxyDto"
}
],
"properties": {
- "properties": {
- "$ref": "#/definitions/ScheduledSourceShareSynchronizationSettingProperties",
- "description": "Properties of scheduled synchronization",
- "x-ms-client-flatten": true
- }
- },
- "x-ms-discriminator-value": "ScheduleBased"
- },
- "ScheduledSourceShareSynchronizationSettingProperties": {
- "description": "A Scheduled source synchronization setting data transfer object.",
- "type": "object",
- "properties": {
- "recurrenceInterval": {
- "description": "Recurrence Interval",
+ "kind": {
+ "description": "Kind of synchronization",
"enum": [
- "Hour",
- "Day"
+ "ScheduleBased"
],
"type": "string",
"x-ms-enum": {
- "name": "recurrenceInterval",
+ "name": "kind",
"modelAsString": true
}
- },
- "synchronizationTime": {
- "format": "date-time",
- "description": "Synchronization time",
- "type": "string"
}
- }
+ },
+ "discriminator": "kind"
},
- "DefaultDto": {
- "description": "Base data transfer object implementation for default resources.",
+ "TriggerList": {
+ "description": "List response for get triggers",
+ "required": [
+ "value"
+ ],
"type": "object",
"properties": {
- "id": {
- "description": "The resource id of the azure resource",
- "type": "string",
- "readOnly": true
- },
- "location": {
- "description": "Location of the azure resource.",
+ "nextLink": {
+ "description": "The Url of next result page.",
"type": "string"
},
- "name": {
- "description": "Name of the azure resource",
- "type": "string",
- "readOnly": true
- },
- "tags": {
- "description": "Tags on the azure resource.",
- "type": "object",
- "additionalProperties": {
- "type": "string"
+ "value": {
+ "description": "Collection of items of type DataTransferObjects.",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Trigger"
}
- },
- "type": {
- "description": "Type of the azure resource",
- "type": "string",
- "readOnly": true
- }
- },
- "x-ms-azure-resource": true
- },
- "ProxyDto": {
- "description": "Base data transfer object implementation for proxy resources.",
- "type": "object",
- "properties": {
- "id": {
- "description": "The resource id of the azure resource",
- "type": "string",
- "readOnly": true
- },
- "name": {
- "description": "Name of the azure resource",
- "type": "string",
- "readOnly": true
- },
- "type": {
- "description": "Type of the azure resource",
- "type": "string",
- "readOnly": true
}
- },
- "x-ms-azure-resource": true
+ }
}
},
"parameters": {
diff --git a/specification/datashare/resource-manager/readme.azureresourceschema.md b/specification/datashare/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..a0664f3ea80e
--- /dev/null
+++ b/specification/datashare/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,36 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-datashare-2019-11-01
+ - tag: schema-datashare-2018-11-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-datashare-2019-11-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-datashare-2019-11-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataShare/stable/2019-11-01/DataShare.json
+
+```
+
+### Tag: schema-datashare-2018-11-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-datashare-2018-11-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DataShare/preview/2018-11-01-preview/DataShare.json
+
+```
diff --git a/specification/datashare/resource-manager/readme.md b/specification/datashare/resource-manager/readme.md
index cf5fd2ab8e52..ff2f8a2b3183 100644
--- a/specification/datashare/resource-manager/readme.md
+++ b/specification/datashare/resource-manager/readme.md
@@ -64,6 +64,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-cli-extensions
- repo: azure-sdk-for-js
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js datashare/resource-manager
```
@@ -113,27 +116,7 @@ python:
See configuration in [readme.go.md](./readme.go.md)
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.DataShare/preview/2018-11-01-preview/DataShare.json
- - $(this-folder)/Microsoft.DataShare/stable/2019-11-01/DataShare.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
diff --git a/specification/deploymentmanager/resource-manager/readme.azureresourceschema.md b/specification/deploymentmanager/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..2502de8815f2
--- /dev/null
+++ b/specification/deploymentmanager/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,36 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-deploymentmanager-2019-11-01-preview
+ - tag: schema-deploymentmanager-2018-09-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-deploymentmanager-2019-11-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-deploymentmanager-2019-11-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DeploymentManager/preview/2019-11-01-preview/deploymentmanager.json
+
+```
+
+### Tag: schema-deploymentmanager-2018-09-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-deploymentmanager-2018-09-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DeploymentManager/preview/2018-09-01-preview/deploymentmanager.json
+
+```
diff --git a/specification/deploymentmanager/resource-manager/readme.md b/specification/deploymentmanager/resource-manager/readme.md
index fd8b13f1e887..7e56fa895663 100644
--- a/specification/deploymentmanager/resource-manager/readme.md
+++ b/specification/deploymentmanager/resource-manager/readme.md
@@ -115,6 +115,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_deploymentmanager']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js deploymentmanager/resource-manager
```
## C#
@@ -199,28 +202,7 @@ regenerate-manager: true
generate-interface: true
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.DeploymentManager/preview/2019-11-01-preview/deploymentmanager.json
- - $(this-folder)/Microsoft.DeploymentManager/preview/2018-09-01-preview/deploymentmanager.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Create.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Create.json
index 8d6b4bb1382b..1323b6f7b04c 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Create.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Create.json
@@ -13,7 +13,7 @@
"properties": {
"description": "des1",
"friendlyName": "friendly",
- "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
"applicationGroupType": "RemoteApp"
}
}
@@ -22,7 +22,7 @@
"200": {
"body": {
"name": "applicationGroup1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
"type": "Microsoft.DesktopVirtualization/applicationGroups",
"location": "centralus",
"tags": {
@@ -32,8 +32,8 @@
"properties": {
"description": "des1",
"friendlyName": "friendly",
- "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"applicationGroupType": "RemoteApp"
}
}
@@ -41,7 +41,7 @@
"201": {
"body": {
"name": "applicationGroup1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
"type": "Microsoft.DesktopVirtualization/applicationGroups",
"location": "centralus",
"tags": {
@@ -51,8 +51,8 @@
"properties": {
"description": "des1",
"friendlyName": "friendly",
- "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"applicationGroupType": "RemoteApp"
}
}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Delete.json
index 79cf00e37e7c..fe87af2b8ad1 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Delete.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Delete.json
@@ -8,7 +8,7 @@
"responses": {
"200": {
"name": "applicationGroup1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
"type": "Microsoft.DesktopVirtualization/applicationGroups",
"location": "centralus",
"tags": {
@@ -18,8 +18,8 @@
"properties": {
"description": "des1",
"friendlyName": "friendly",
- "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"applicationGroupType": "RemoteApp"
}
},
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Get.json
index b7bb05752a8a..823c1bb55ec6 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Get.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Get.json
@@ -9,7 +9,7 @@
"200": {
"body": {
"name": "applicationGroup1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
"type": "Microsoft.DesktopVirtualization/applicationGroups",
"location": "centralus",
"tags": {
@@ -19,8 +19,8 @@
"properties": {
"description": "des1",
"friendlyName": "friendly",
- "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"applicationGroupType": "RemoteApp"
}
}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_ListByResourceGroup.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_ListByResourceGroup.json
index afcec930670e..18136fe1eae9 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_ListByResourceGroup.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_ListByResourceGroup.json
@@ -11,7 +11,7 @@
"value": [
{
"name": "applicationGroup1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
"type": "Microsoft.DesktopVirtualization/applicationGroups",
"location": "centralus",
"tags": {
@@ -21,14 +21,14 @@
"properties": {
"description": "des1",
"friendlyName": "friendly",
- "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"applicationGroupType": "RemoteApp"
}
},
{
"name": "applicationGroup2",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup2",
"type": "Microsoft.DesktopVirtualization/applicationGroups",
"location": "centralus",
"tags": {
@@ -38,8 +38,8 @@
"properties": {
"description": "des1",
"friendlyName": "friendly",
- "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"applicationGroupType": "RemoteApp"
}
}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_ListBySubscription.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_ListBySubscription.json
index 6a7fe723d2ed..985bc6a50874 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_ListBySubscription.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_ListBySubscription.json
@@ -10,7 +10,7 @@
"value": [
{
"name": "applicationGroup1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
"type": "Microsoft.DesktopVirtualization/applicationGroups",
"location": "centralus",
"tags": {
@@ -20,14 +20,14 @@
"properties": {
"description": "des1",
"friendlyName": "friendly",
- "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"applicationGroupType": "RemoteApp"
}
},
{
"name": "applicationGroup2",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup2",
"type": "Microsoft.DesktopVirtualization/applicationGroups",
"location": "centralus",
"tags": {
@@ -37,8 +37,8 @@
"properties": {
"description": "des1",
"friendlyName": "friendly",
- "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"applicationGroupType": "RemoteApp"
}
}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Update.json
index 0d6da727b913..cb865a4a4e97 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Update.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/ApplicationGroup_Update.json
@@ -19,7 +19,7 @@
"200": {
"body": {
"name": "applicationGroup1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1",
"type": "Microsoft.DesktopVirtualization/applicationGroups",
"location": "centralus",
"tags": {
@@ -29,8 +29,8 @@
"properties": {
"description": "des1",
"friendlyName": "friendly",
- "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "hostPoolArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "workspaceArmPath": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"applicationGroupType": "RemoteApp"
}
}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Create.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Create.json
index 6b4a238bc273..a3f648c58d75 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Create.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Create.json
@@ -22,7 +22,7 @@
"200": {
"body": {
"name": "applicationGroup1/application1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
"type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
"properties": {
"description": "des1",
@@ -41,7 +41,7 @@
"201": {
"body": {
"name": "applicationGroup1/application1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
"type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
"properties": {
"description": "des1",
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Delete.json
index 519b9ba4a249..38052680851e 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Delete.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Delete.json
@@ -9,7 +9,7 @@
"responses": {
"200": {
"name": "applicationGroup1/application1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
"type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
"properties": {
"description": "des1",
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Get.json
index 563967b99b5b..f0a8cfc7afab 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Get.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Get.json
@@ -10,7 +10,7 @@
"200": {
"body": {
"name": "applicationGroup1/application1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
"type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
"properties": {
"description": "des1",
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_List.json
index ad1a505f987b..fcdbc6548ab6 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_List.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_List.json
@@ -11,7 +11,7 @@
"value": [
{
"name": "applicationGroup1/application1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
"type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
"properties": {
"description": "des1",
@@ -28,7 +28,7 @@
},
{
"name": "applicationGroup1/application2",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application2",
"type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
"properties": {
"description": "des2",
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Update.json
index 14cc21f094ed..cebc96b274e3 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Update.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Application_Update.json
@@ -22,7 +22,7 @@
"200": {
"body": {
"name": "applicationGroup1/application1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/application1",
"type": "Microsoft.DesktopVirtualization/applicationGroups/applications",
"properties": {
"description": "des1",
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Desktop_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Desktop_Get.json
index 26b94e09f7c8..9ba7029e8d05 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Desktop_Get.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Desktop_Get.json
@@ -10,7 +10,7 @@
"200": {
"body": {
"name": "applicationGroup1/SessionDesktop",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/SessionDesktop",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/SessionDesktop",
"type": "Microsoft.DesktopVirtualization/applicationGroups/desktops",
"properties": {
"description": "des1",
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Desktop_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Desktop_List.json
index ed22d9f54aa9..278df9477b0a 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Desktop_List.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Desktop_List.json
@@ -11,7 +11,7 @@
"value": [
{
"name": "applicationGroup1/SessionDesktop",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/SessionDesktop",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/applications/SessionDesktop",
"type": "Microsoft.DesktopVirtualization/applicationGroups/desktops",
"properties": {
"description": "des1",
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Desktop_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Desktop_Update.json
index 0a1f83fccb49..8b93343fdda7 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Desktop_Update.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Desktop_Update.json
@@ -16,7 +16,7 @@
"200": {
"body": {
"name": "applicationGroup1/SessionDesktop",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/desktops/SessionDesktop",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/desktops/SessionDesktop",
"type": "Microsoft.DesktopVirtualization/applicationGroups/desktops",
"properties": {
"description": "des1",
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Create.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Create.json
index 12ea67762e9d..8f7ebb829d8a 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Create.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Create.json
@@ -31,8 +31,8 @@
"200": {
"body": {
"name": "hostPool1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostpools",
"location": "centralus",
"tags": {
"key1": "value1",
@@ -42,7 +42,7 @@
"friendlyName": "friendly",
"description": "des1",
"hostPoolType": "Pooled",
- "personalDesktopAssignmentType": "Automatic",
+ "personalDesktopAssignmentType": null,
"customRdpProperty": null,
"maxSessionLimit": 999999,
"loadBalancerType": "BreadthFirst",
@@ -53,7 +53,7 @@
"token": "token",
"registrationTokenOperation": "Update"
},
- "ssoContext": "KeyVaultPath",
+ "ssoContext": null,
"preferredAppGroupType": "Desktop"
}
}
@@ -61,8 +61,8 @@
"201": {
"body": {
"name": "hostPool1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostpools",
"location": "centralus",
"tags": {
"key1": "value1",
@@ -72,7 +72,7 @@
"friendlyName": "friendly",
"description": "des1",
"hostPoolType": "Pooled",
- "personalDesktopAssignmentType": "Automatic",
+ "personalDesktopAssignmentType": null,
"customRdpProperty": null,
"maxSessionLimit": 999999,
"loadBalancerType": "BreadthFirst",
@@ -83,7 +83,7 @@
"token": "token",
"registrationTokenOperation": "Update"
},
- "ssoContext": "KeyVaultPath",
+ "ssoContext": null,
"preferredAppGroupType": "Desktop"
}
}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Delete.json
index 447fc42fc699..fba66ca5ceb9 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Delete.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Delete.json
@@ -9,8 +9,8 @@
"responses": {
"200": {
"name": "hostPool1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostpools",
"location": "centralus",
"tags": {
"key1": "value1",
@@ -20,7 +20,7 @@
"friendlyName": "friendly",
"description": "des1",
"hostPoolType": "Pooled",
- "personalDesktopAssignmentType": "Automatic",
+ "personalDesktopAssignmentType": null,
"customRdpProperty": null,
"maxSessionLimit": 999999,
"loadBalancerType": "BreadthFirst",
@@ -31,7 +31,7 @@
"token": "token",
"registrationTokenOperation": "Update"
},
- "ssoContext": "KeyVaultPath"
+ "ssoContext": null
}
},
"204": {}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Get.json
index fb86c3da15ee..e4b3609d0a4a 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Get.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Get.json
@@ -9,8 +9,8 @@
"200": {
"body": {
"name": "hostPool1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostpools",
"location": "centralus",
"tags": {
"key1": "value1",
@@ -20,7 +20,7 @@
"friendlyName": "friendly",
"description": "des1",
"hostPoolType": "Pooled",
- "personalDesktopAssignmentType": "Automatic",
+ "personalDesktopAssignmentType": null,
"customRdpProperty": null,
"maxSessionLimit": 999999,
"loadBalancerType": "BreadthFirst",
@@ -31,7 +31,7 @@
"token": "token",
"registrationTokenOperation": "Update"
},
- "ssoContext": "KeyVaultPath",
+ "ssoContext": null,
"preferredAppGroupType": "Desktop"
}
}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_List.json
index 69ef8301a370..4d63045e0f2c 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_List.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_List.json
@@ -9,8 +9,8 @@
"value": [
{
"name": "hostPool1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostpools",
"location": "centralus",
"tags": {
"key1": "value1",
@@ -20,7 +20,7 @@
"friendlyName": "friendly",
"description": "des1",
"hostPoolType": "Pooled",
- "personalDesktopAssignmentType": "Automatic",
+ "personalDesktopAssignmentType": null,
"customRdpProperty": null,
"maxSessionLimit": 999999,
"loadBalancerType": "BreadthFirst",
@@ -31,14 +31,14 @@
"token": "token",
"registrationTokenOperation": "Update"
},
- "ssoContext": "KeyVaultPath",
+ "ssoContext": null,
"preferredAppGroupType": "Desktop"
}
},
{
"name": "hostPool2",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool2",
- "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool2",
+ "type": "/Microsoft.DesktopVirtualization/hostpools",
"location": "centralus",
"tags": {
"key1": "value1",
@@ -48,7 +48,7 @@
"friendlyName": "friendly",
"description": "des1",
"hostPoolType": "Pooled",
- "personalDesktopAssignmentType": "Automatic",
+ "personalDesktopAssignmentType": null,
"customRdpProperty": null,
"maxSessionLimit": 999999,
"loadBalancerType": "BreadthFirst",
@@ -59,7 +59,7 @@
"token": "token",
"registrationTokenOperation": "Update"
},
- "ssoContext": "KeyVaultPath",
+ "ssoContext": null,
"preferredAppGroupType": "Desktop"
}
}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_ListByResourceGroup.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_ListByResourceGroup.json
index 933bf9839591..a298ffa4a1ef 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_ListByResourceGroup.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_ListByResourceGroup.json
@@ -10,8 +10,8 @@
"value": [
{
"name": "hostPool1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostpools",
"location": "centralus",
"tags": {
"key1": "value1",
@@ -21,7 +21,7 @@
"friendlyName": "friendly",
"description": "des1",
"hostPoolType": "Pooled",
- "personalDesktopAssignmentType": "Automatic",
+ "personalDesktopAssignmentType": null,
"customRdpProperty": null,
"maxSessionLimit": 999999,
"loadBalancerType": "BreadthFirst",
@@ -32,14 +32,14 @@
"token": "token",
"registrationTokenOperation": "Update"
},
- "ssoContext": "KeyVaultPath",
+ "ssoContext": null,
"preferredAppGroupType": "Desktop"
}
},
{
"name": "hostPool2",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool2",
- "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool2",
+ "type": "/Microsoft.DesktopVirtualization/hostpools",
"location": "centralus",
"tags": {
"key1": "value1",
@@ -49,7 +49,7 @@
"friendlyName": "friendly",
"description": "des1",
"hostPoolType": "Pooled",
- "personalDesktopAssignmentType": "Automatic",
+ "personalDesktopAssignmentType": null,
"customRdpProperty": null,
"maxSessionLimit": 999999,
"loadBalancerType": "BreadthFirst",
@@ -60,7 +60,7 @@
"token": "token",
"registrationTokenOperation": "Update"
},
- "ssoContext": "KeyVaultPath",
+ "ssoContext": null,
"preferredAppGroupType": "Desktop"
}
}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Update.json
index 833bf8716bbf..7eb76d9cbb1f 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Update.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/HostPool_Update.json
@@ -28,8 +28,8 @@
"200": {
"body": {
"name": "hostPool1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1",
- "type": "/Microsoft.DesktopVirtualization/hostPools",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1",
+ "type": "/Microsoft.DesktopVirtualization/hostpools",
"location": "centralus",
"tags": {
"key1": "value1",
@@ -39,7 +39,7 @@
"friendlyName": "friendly",
"description": "des1",
"hostPoolType": "Pooled",
- "personalDesktopAssignmentType": "Automatic",
+ "personalDesktopAssignmentType": null,
"customRdpProperty": null,
"maxSessionLimit": 999999,
"loadBalancerType": "BreadthFirst",
@@ -50,7 +50,7 @@
"token": "token",
"registrationTokenOperation": "Update"
},
- "ssoContext": "KeyVaultPath",
+ "ssoContext": null,
"preferredAppGroupType": "Desktop"
}
}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_Delete.json
index 12cae16ead92..8961354c5283 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_Delete.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_Delete.json
@@ -10,7 +10,7 @@
"responses": {
"200": {
"name": "sessionHost1.microsoft.com",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
"type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts",
"properties": {
"lastHeartBeat": "2008-09-22T14:01:54.9571247Z",
@@ -26,7 +26,7 @@
"lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
"updateErrorMessage": "",
"virtualMachineId": "29491b54-c033-4dec-b09a-18bf0ebafaef",
- "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
}
},
"204": {}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_Get.json
index 7c4fc2180b4b..1006aadcae10 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_Get.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_Get.json
@@ -10,7 +10,7 @@
"200": {
"body": {
"name": "sessionHost1.microsoft.com",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
"type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts",
"properties": {
"lastHeartBeat": "2008-09-22T14:01:54.9571247Z",
@@ -26,7 +26,7 @@
"lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
"updateErrorMessage": "",
"virtualMachineId": "29491b54-c033-4dec-b09a-18bf0ebafaef",
- "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
}
}
}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_List.json
index 12ba5cafb4f2..f683f51f839e 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_List.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_List.json
@@ -11,7 +11,7 @@
"value": [
{
"name": "sessionHost1.microsoft.com",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
"type": "Microsoft.DesktopVirtualization/hostPools/sessionhosts",
"properties": {
"lastHeartBeat": "2008-09-22T14:01:54.9571247Z",
@@ -27,12 +27,12 @@
"lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
"updateErrorMessage": "",
"virtualMachineId": "29491b54-c033-4dec-b09a-18bf0ebafaef",
- "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
}
},
{
"name": "sessionHost2.microsoft.com",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost2microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1/sessionHosts/sessionHost2microsoft.com",
"type": "Microsoft.DesktopVirtualization/hostPools/sessionhosts",
"properties": {
"lastHeartBeat": "2008-09-22T14:01:54.9571247Z",
@@ -48,7 +48,7 @@
"lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
"updateErrorMessage": "",
"virtualMachineId": "39491b54-c033-4dec-b09a-18bf0ebafaef",
- "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost2"
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost2"
}
}
]
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_Update.json
index 9353b6accd08..41356917763b 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_Update.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/SessionHost_Update.json
@@ -16,7 +16,7 @@
"200": {
"body": {
"name": "sessionHost1.microsoft.com",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1/sessionHosts/sessionHost1.microsoft.com",
"type": "Microsoft.DesktopVirtualization/hostPools/sessionhosts",
"properties": {
"lastHeartBeat": "2019-01-11T19:27:13.6108027Z",
@@ -32,7 +32,7 @@
"lastUpdateTime": "2008-09-22T14:01:54.9571247Z",
"updateErrorMessage": "",
"virtualMachineId": "29491b54-c033-4dec-b09a-18bf0ebafaef",
- "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
+ "resourceId": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.Compute/virtualMachines/sessionHost1"
}
}
}
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/StartMenuItem_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/StartMenuItem_List.json
index afd698213ed8..fa4017a89b86 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/StartMenuItem_List.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/StartMenuItem_List.json
@@ -11,7 +11,7 @@
"value": [
{
"name": "application1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/startMenuItem/application1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/startMenuItem/application1",
"type": "Microsoft.DesktopVirtualization/applicationGroups/startMenuItems",
"properties": {
"appAlias": "word",
@@ -24,7 +24,7 @@
},
{
"name": "application2",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/startMenuItem/application2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/applicationGroups/applicationGroup1/startMenuItem/application2",
"type": "Microsoft.DesktopVirtualization/applicationGroups/startMenuItems",
"properties": {
"appAlias": "excel",
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_Delete.json
index da8cd8ae4bfb..ee13e7555380 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_Delete.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_Delete.json
@@ -11,7 +11,7 @@
"responses": {
"200": {
"name": "1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
"type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
"properties": {
"userPrincipalName": "user1@microsoft.com",
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_Get.json
index 06aac45ba81e..ad30b313730e 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_Get.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_Get.json
@@ -11,7 +11,7 @@
"200": {
"body": {
"name": "1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
"type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
"properties": {
"userPrincipalName": "user1@microsoft.com",
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_List.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_List.json
index cef72db2561d..771a4b13da70 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_List.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_List.json
@@ -12,7 +12,7 @@
"value": [
{
"name": "1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
"type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
"properties": {
"userPrincipalName": "user1@microsoft.com",
@@ -24,7 +24,7 @@
},
{
"name": "2",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/2",
"type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
"properties": {
"userPrincipalName": "user1@microsoft.com",
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_ListByHostPool.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_ListByHostPool.json
index 1c39908d8349..f6d1edc1f4dc 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_ListByHostPool.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/UserSession_ListByHostPool.json
@@ -12,7 +12,7 @@
"value": [
{
"name": "1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/1",
"type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
"properties": {
"userPrincipalName": "user1@microsoft.com",
@@ -24,7 +24,7 @@
},
{
"name": "2",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostPools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/hostpools/hostPool1/sessionHosts/sessionHost1.microsoft.com/userSessions/2",
"type": "Microsoft.DesktopVirtualization/hostPools/sessionHosts/userSessions",
"properties": {
"userPrincipalName": "user1@microsoft.com",
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Create.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Create.json
index 7085ade8ceed..ff6de1e47064 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Create.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Create.json
@@ -20,7 +20,7 @@
"200": {
"body": {
"name": "workspace1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"type": "Microsoft.DesktopVirtualization/workspaces",
"location": "centralus",
"tags": {
@@ -36,7 +36,7 @@
"201": {
"body": {
"name": "workspace1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"type": "Microsoft.DesktopVirtualization/workspaces",
"location": "centralus",
"tags": {
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Delete.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Delete.json
index 2048117807aa..b1fac0b29d22 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Delete.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Delete.json
@@ -8,7 +8,7 @@
"responses": {
"200": {
"name": "workspace1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"type": "Microsoft.DesktopVirtualization/workspaces",
"location": "centralus",
"tags": {
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Get.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Get.json
index dc613edd408b..96cec1aa7acf 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Get.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Get.json
@@ -9,7 +9,7 @@
"200": {
"body": {
"name": "workspace1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"type": "Microsoft.DesktopVirtualization/workspaces",
"location": "centralus",
"tags": {
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_ListByResourceGroup.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_ListByResourceGroup.json
index 6f6dc3ad0de8..2988972d0e2f 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_ListByResourceGroup.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_ListByResourceGroup.json
@@ -10,7 +10,7 @@
"value": [
{
"name": "workspace1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"type": "Microsoft.DesktopVirtualization/workspaces",
"location": "centralus",
"tags": {
@@ -24,7 +24,7 @@
},
{
"name": "workspace2",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace2",
"type": "Microsoft.DesktopVirtualization/workspaces",
"location": "centralus",
"tags": {
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_ListBySubscription.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_ListBySubscription.json
index 79ec5eea61dd..49f61942a4ff 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_ListBySubscription.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_ListBySubscription.json
@@ -9,7 +9,7 @@
"value": [
{
"name": "workspace1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"type": "Microsoft.DesktopVirtualization/workspaces",
"location": "centralus",
"tags": {
@@ -23,7 +23,7 @@
},
{
"name": "workspace2",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace2",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace2",
"type": "Microsoft.DesktopVirtualization/workspaces",
"location": "centralus",
"tags": {
diff --git a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Update.json b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Update.json
index 33060dc90353..bd3f747371af 100644
--- a/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Update.json
+++ b/specification/desktopvirtualization/resource-manager/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/examples/Workspace_Update.json
@@ -19,7 +19,7 @@
"200": {
"body": {
"name": "workspace1",
- "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourceGroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
+ "id": "/subscriptions/daefabc0-95b4-48b3-b645-8a753a63c4fa/resourcegroups/resourceGroup1/providers/Microsoft.DesktopVirtualization/workspaces/workspace1",
"type": "Microsoft.DesktopVirtualization/workspaces",
"location": "centralus",
"tags": {
diff --git a/specification/desktopvirtualization/resource-manager/readme.az.md b/specification/desktopvirtualization/resource-manager/readme.az.md
index c4e10f818618..c9e500a520d6 100644
--- a/specification/desktopvirtualization/resource-manager/readme.az.md
+++ b/specification/desktopvirtualization/resource-manager/readme.az.md
@@ -7,6 +7,7 @@ az:
extensions: desktopvirtualization
package-name: azure-mgmt-desktopvirtualization
namespace: azure.mgmt.desktopvirtualization
+ replace-datetime: true
az-output-folder: $(azure-cli-extension-folder)/src/desktopvirtualization
python-sdk-output-folder: "$(az-output-folder)/azext_desktopvirtualization/vendored_sdks/desktopvirtualization"
diff --git a/specification/desktopvirtualization/resource-manager/readme.azureresourceschema.md b/specification/desktopvirtualization/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..9a0a2b34dc89
--- /dev/null
+++ b/specification/desktopvirtualization/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,48 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-desktopvirtualization-2019-12-10-preview
+ - tag: schema-desktopvirtualization-2019-09-24-preview
+ - tag: schema-desktopvirtualization-2019-01-23-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-desktopvirtualization-2019-12-10-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-desktopvirtualization-2019-12-10-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DesktopVirtualization/preview/2019-12-10-preview/desktopvirtualization.json
+
+```
+
+### Tag: schema-desktopvirtualization-2019-09-24-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-desktopvirtualization-2019-09-24-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DesktopVirtualization/preview/2019-09-24-preview/desktopvirtualization.json
+
+```
+
+### Tag: schema-desktopvirtualization-2019-01-23-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-desktopvirtualization-2019-01-23-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DesktopVirtualization/preview/2019-01-23-preview/desktopvirtualization.json
+
+```
diff --git a/specification/desktopvirtualization/resource-manager/readme.md b/specification/desktopvirtualization/resource-manager/readme.md
index 3864f213f6b1..7096c08a98df 100644
--- a/specification/desktopvirtualization/resource-manager/readme.md
+++ b/specification/desktopvirtualization/resource-manager/readme.md
@@ -75,6 +75,9 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_desktop_virtualization']
- repo: azure-cli-extensions
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js desktopvirtualization/resource-manager
```
## C#
@@ -105,29 +108,7 @@ See configuration in [readme.node.md](./readme.node.md)
See configuration in [readme.ruby.md](./readme.ruby.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
+## AzureResourceSchema
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.DesktopVirtualization/preview/2019-01-23-preview/desktopvirtualization.json
- - $(this-folder)/Microsoft.DesktopVirtualization/preview/2019-09-24-preview/desktopvirtualization.json
- - $(this-folder)/Microsoft.DesktopVirtualization/preview/2019-12-10-preview/desktopvirtualization.json
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-```
-
-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/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSCertificateCreateOrUpdate.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSCertificateCreateOrUpdate.json
new file mode 100644
index 000000000000..0d44e7116ea7
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSCertificateCreateOrUpdate.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "certificateDescription": {
+ "certificate": "############################################"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "subject": "CN=testdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:23:50 GMT"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServives/myFirstProvisioningService/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/ProvisioningServices/Certificates",
+ "etag": "AAAAAAExpNs="
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSCheckNameAvailability.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSCheckNameAvailability.json
new file mode 100644
index 000000000000..74cce29667f1
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSCheckNameAvailability.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "arguments": {
+ "name": "test213123"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": true,
+ "reason": "Invalid",
+ "message": "name is valid"
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSCreate.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSCreate.json
new file mode 100644
index 000000000000..01f3b3a90544
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSCreate.json
@@ -0,0 +1,65 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "iotDpsDescription": {
+ "location": "East US",
+ "properties": {},
+ "sku": {
+ "name": "S1",
+ "capacity": 1
+ },
+ "tags": {}
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "etag": "AAAAAAAADGk=",
+ "name": "myFirstProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "myFirstProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012",
+ "authorizationPolicies": []
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups//providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService",
+ "tags": {},
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "etag": "AAAAAAAADGk=",
+ "name": "myFirstProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "myFirstProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012",
+ "authorizationPolicies": []
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups//providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService",
+ "tags": {},
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSCreateOrUpdatePrivateEndpointConnection.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSCreateOrUpdatePrivateEndpointConnection.json
new file mode 100644
index 000000000000..94a8d73c220e
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSCreateOrUpdatePrivateEndpointConnection.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "resourceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "privateEndpointConnectionName": "myPrivateEndpointConnection",
+ "privateEndpointConnection": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by johndoe@contoso.com"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by johndoe@contoso.com",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by johndoe@contoso.com",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSDelete.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSDelete.json
new file mode 100644
index 000000000000..ddfb3bd52182
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {},
+ "204": {},
+ "202": {},
+ "404": {}
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSDeleteCertificate.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSDeleteCertificate.json
new file mode 100644
index 000000000000..21358dfecdf2
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSDeleteCertificate.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "If-Match": "AAAAAAAADGk="
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSDeletePrivateEndpointConnection.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSDeletePrivateEndpointConnection.json
new file mode 100644
index 000000000000..e2a7eeb7cb1b
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSDeletePrivateEndpointConnection.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "resourceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "privateEndpointConnectionName": "myPrivateEndpointConnection"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Disconnected",
+ "description": "Deleted",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Disconnected",
+ "description": "Deleted",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGenerateVerificationCode.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGenerateVerificationCode.json
new file mode 100644
index 000000000000..1dde48f61e65
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGenerateVerificationCode.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "If-Match": "AAAAAAAADGk="
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "cert",
+ "properties": {
+ "verificationCode": "##################################",
+ "subject": "CN=andbucdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "##############################",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:26:56 GMT"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGet.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGet.json
new file mode 100644
index 000000000000..d7879f8bff2e
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGet.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "etag": "AAAAAAAADGk=",
+ "name": "myFirstProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "myFirstProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012",
+ "authorizationPolicies": []
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService",
+ "tags": {},
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetCertificate.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetCertificate.json
new file mode 100644
index 000000000000..eee88e44a0cf
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetCertificate.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "subject": "CN=testdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:23:50 GMT"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/andbuc-hub/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/ProvisioningServices/Certificates",
+ "etag": "AAAAAAExpNs="
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetCertificates.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetCertificates.json
new file mode 100644
index 000000000000..0087f4a66764
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetCertificates.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "subject": "CN=testdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:23:50 GMT"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/andbuc-hub/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/ProvisioningServices/Certificates",
+ "etag": "AAAAAAExpNs="
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetKey.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetKey.json
new file mode 100644
index 000000000000..e75a9b585328
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetKey.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "keyName": "testKey"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "keyName": "testKey",
+ "primaryKey": "##################################",
+ "secondaryKey": "################################",
+ "rights": "RegistrationStatusWrite"
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetOperationResult.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetOperationResult.json
new file mode 100644
index 000000000000..e92100cd61db
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetOperationResult.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "operationId": "MTY5OTNmZDctODI5Yy00N2E2LTkxNDQtMDU1NGIyYzY1ZjRl",
+ "asyncinfo": "1508265712453"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "Succeeded"
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetPrivateEndpointConnection.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetPrivateEndpointConnection.json
new file mode 100644
index 000000000000..465769974a22
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetPrivateEndpointConnection.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "resourceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "privateEndpointConnectionName": "myPrivateEndpointConnection"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Pending",
+ "description": "Please approve my request!",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetPrivateLinkResources.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetPrivateLinkResources.json
new file mode 100644
index 000000000000..7761f6f3a8ef
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetPrivateLinkResources.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "resourceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "groupId": "iotDps"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateLinkResources/iotDps",
+ "name": "iotDps",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateLinkResources",
+ "properties": {
+ "groupId": "iotDps",
+ "requiredMembers": [
+ "iotDps"
+ ],
+ "requiredZoneNames": [
+ "privatelink.azure-devices-provisioning.net"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetValidSku.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetValidSku.json
new file mode 100644
index 000000000000..5b6532edb650
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSGetValidSku.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "S1"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListByResourceGroup.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListByResourceGroup.json
new file mode 100644
index 000000000000..3f5c3862e31e
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListByResourceGroup.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "resourceGroupName": "myResourceGroup"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "etag": "AAAAAAAADGk=",
+ "name": "myFirstProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "myFirstProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012"
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService",
+ "tags": {},
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ },
+ {
+ "etag": "AAAAAAAADGk=",
+ "name": "mySecondProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "mySecondProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012"
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/mySecondProvisioningService",
+ "tags": {},
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListBySubscription.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListBySubscription.json
new file mode 100644
index 000000000000..efb4770967b8
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListBySubscription.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "etag": "AAAAAAAADGk=",
+ "name": "myFirstProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "myFirstProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012"
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService",
+ "tags": {},
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ },
+ {
+ "etag": "AAAAAAAADGk=",
+ "name": "mySecondProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "myFirstProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012"
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/mySecondProvisioningService",
+ "tags": {},
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListKeys.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListKeys.json
new file mode 100644
index 000000000000..835328ed57c2
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListKeys.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "keyName": "key1",
+ "primaryKey": "#####################################",
+ "secondaryKey": "###################################",
+ "rights": "ServiceConfig"
+ },
+ {
+ "keyName": "key2",
+ "primaryKey": "#######################################",
+ "secondaryKey": "####################################=",
+ "rights": "ServiceConfig"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListPrivateEndpointConnections.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListPrivateEndpointConnections.json
new file mode 100644
index 000000000000..31f5993fcaa3
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListPrivateEndpointConnections.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "resourceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Pending",
+ "description": "Please approve my request!",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListPrivateLinkResources.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListPrivateLinkResources.json
new file mode 100644
index 000000000000..d8518c8255c0
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSListPrivateLinkResources.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "resourceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateLinkResources/iotDps",
+ "name": "iotDps",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateLinkResources",
+ "properties": {
+ "groupId": "iotDps",
+ "requiredMembers": [
+ "iotDps"
+ ],
+ "requiredZoneNames": [
+ "privatelink.azure-devices-provisioning.net"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSOperations.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSOperations.json
new file mode 100644
index 000000000000..ca69bfa1de2f
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSOperations.json
@@ -0,0 +1,293 @@
+{
+ "parameters": {
+ "api-version": "2020-09-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.Devices/register/action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Register Resource Provider"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/diagnosticSettings/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Diagnostic Setting"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/diagnosticSettings/write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Set Diagnostic Setting"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/metricDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read IotHub service metric definitions"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/logDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read IotHub service log definitions"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/operations/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get All ResourceProvider Operations"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/checkNameAvailability/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Check If IotHub name is available"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/usages/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Subscription Usages"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get IotHub(s)"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/Write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Create or update IotHub Resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/Delete",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Delete IotHub Resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/iotHubStats/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get IotHub Statistics"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/skus/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get valid IotHub Skus"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/listkeys/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get all IotHub Keys"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/iotHubKeys/listkeys/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get IotHub Key for the given name"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Create EventHub Consumer Group"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get EventHub Consumer Group(s)"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Delete",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Delete EventHub Consumer Group"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/exportDevices/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Export Devices"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/importDevices/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Import Devices"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/jobs/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get the Job(s) on IotHub"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/quotaMetrics/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Quota Metrics"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/routing/routes/$testall/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Routing Rule Test All"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/routing/routes/$testnew/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Routing Rule Test Route"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/routingEndpointsHealth/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Endpoint Health"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/diagnosticSettings/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Diagnostic Setting"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/diagnosticSettings/write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Set Diagnostic Setting"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/metricDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read DPS service metric definitions"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/logDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read DPS service log definitions"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/checkProvisioningServiceNameAvailability/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServives",
+ "operation": "Check If Provisioning Service name is available"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Get Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/Write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Create Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/Delete",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Delete Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/skus/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Delete Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/listkeys/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "get security related metadata"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSPatch.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSPatch.json
new file mode 100644
index 000000000000..676573e711f2
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSPatch.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "location": "East US",
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "ProvisioningServiceTags": {
+ "tags": {
+ "foo": "bar"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "etag": "AAAAAAAADGk=",
+ "name": "myFirstProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "myFirstProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012"
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService",
+ "tags": {
+ "foo": "bar"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSVerifyCertificate.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSVerifyCertificate.json
new file mode 100644
index 000000000000..8593f15b03a6
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/examples/DPSVerifyCertificate.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-09-01-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "If-Match": "AAAAAAAADGk=",
+ "request": {
+ "certificate": "#####################################"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "subject": "CN=andbucdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": true,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:26:56 GMT"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/ProvisioningServices/Certificates",
+ "etag": "AAAAAAExpTQ="
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/iotdps.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/iotdps.json
new file mode 100644
index 000000000000..20b815e53811
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/iotdps.json
@@ -0,0 +1,2546 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-09-01-preview",
+ "x-ms-code-generation-settings": {
+ "host": "management.azure.com"
+ },
+ "title": "iotDpsClient",
+ "description": "API for using the Azure IoT Hub Device Provisioning Service features."
+ },
+ "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.Devices/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "operationId": "Operations_List",
+ "x-ms-examples": {
+ "DPSOperations": {
+ "$ref": "./examples/DPSOperations.json"
+ }
+ },
+ "description": "Lists all of the available Microsoft.Devices REST API operations.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/certificates/{certificateName}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "operationId": "DpsCertificate_Get",
+ "description": "Get the certificate from the provisioning service.",
+ "x-ms-examples": {
+ "DPSGetCertificate": {
+ "$ref": "./examples/DPSGetCertificate.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "certificateName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the certificate to retrieve."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the provisioning service the certificate is associated with."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "ETag of the certificate."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Metadata for the specified certificate.",
+ "schema": {
+ "$ref": "#/definitions/CertificateResponse"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PUT"
+ ],
+ "summary": "Upload the certificate to the provisioning service.",
+ "description": "Add new certificate or update an existing certificate.",
+ "operationId": "DpsCertificate_CreateOrUpdate",
+ "x-ms-examples": {
+ "DPSCreateOrUpdateCertificate": {
+ "$ref": "./examples/DPSCertificateCreateOrUpdate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "description": "Resource group identifier.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "description": "The name of the provisioning service.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "certificateName",
+ "in": "path",
+ "description": "The name of the certificate create or update.",
+ "required": true,
+ "type": "string",
+ "maxLength": 256
+ },
+ {
+ "name": "certificateDescription",
+ "in": "body",
+ "description": "The certificate body.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateBodyDescription"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "ETag of the certificate. This is required to update an existing certificate, and ignored while creating a brand new certificate."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "If certificate already exist and update was successful, the operation returns HTTP status code of 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/CertificateResponse"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "delete": {
+ "tags": [
+ "DELETE"
+ ],
+ "operationId": "DpsCertificate_Delete",
+ "summary": "Delete the Provisioning Service Certificate.",
+ "description": "Deletes the specified certificate associated with the Provisioning Service",
+ "x-ms-examples": {
+ "DPSDeleteCertificate": {
+ "$ref": "./examples/DPSDeleteCertificate.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": true,
+ "type": "string",
+ "description": "ETag of the certificate"
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the provisioning service."
+ },
+ {
+ "name": "certificateName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "This is a mandatory field, and is the logical name of the certificate that the provisioning service will access by."
+ },
+ {
+ "name": "certificate.name",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "This is optional, and it is the Common Name of the certificate."
+ },
+ {
+ "name": "certificate.rawBytes",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "byte",
+ "description": "Raw data within the certificate."
+ },
+ {
+ "name": "certificate.isVerified",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Indicates if certificate has been verified by owner of the private key."
+ },
+ {
+ "name": "certificate.purpose",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "A description that mentions the purpose of the certificate.",
+ "enum": [
+ "clientAuthentication",
+ "serverAuthentication"
+ ],
+ "x-ms-enum": {
+ "name": "CertificatePurpose",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "certificate.created",
+ "in": "query",
+ "description": "Time the certificate is created.",
+ "required": false,
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "name": "certificate.lastUpdated",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Time the certificate is last updated.",
+ "format": "date-time"
+ },
+ {
+ "name": "certificate.hasPrivateKey",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Indicates if the certificate contains a private key."
+ },
+ {
+ "name": "certificate.nonce",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Random number generated to indicate Proof of Possession."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "204": {
+ "description": "No content."
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the non-security related metadata of the provisioning service.",
+ "description": "Get the metadata of the provisioning service without SAS keys.",
+ "operationId": "IotDpsResource_Get",
+ "x-ms-examples": {
+ "DPSGet": {
+ "$ref": "./examples/DPSGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the provisioning service to retrieve."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group name."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Provisioning service description with no keys is included in the response.",
+ "schema": {
+ "$ref": "#/definitions/ProvisioningServiceDescription"
+ }
+ },
+ "default": {
+ "description": "Default error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "put": {
+ "tags": [
+ "PUT"
+ ],
+ "summary": "Create or update the metadata of the provisioning service.",
+ "description": "Create or update the metadata of the provisioning service. The usual pattern to modify a property is to retrieve the provisioning service metadata and security metadata, and then combine them with the modified values in a new body to update the provisioning service.",
+ "x-ms-long-running-operation": true,
+ "operationId": "IotDpsResource_CreateOrUpdate",
+ "x-ms-examples": {
+ "DPSCreate": {
+ "$ref": "./examples/DPSCreate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of provisioning service to create or update."
+ },
+ {
+ "name": "iotDpsDescription",
+ "in": "body",
+ "required": true,
+ "description": "Description of the provisioning service to create or update.",
+ "schema": {
+ "$ref": "#/definitions/ProvisioningServiceDescription"
+ }
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains all the non-security properties of the provisioning service. Security-related properties are set to null.",
+ "schema": {
+ "$ref": "#/definitions/ProvisioningServiceDescription"
+ }
+ },
+ "201": {
+ "description": "This is a long running operation. The operation returns a 201 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation. If successful, the operation returns HTTP status code of 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/ProvisioningServiceDescription"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "patch": {
+ "tags": [
+ "PATCH"
+ ],
+ "summary": "Update an existing provisioning service's tags.",
+ "description": "Update an existing provisioning service's tags. to update other fields use the CreateOrUpdate method",
+ "x-ms-long-running-operation": true,
+ "operationId": "IotDpsResource_Update",
+ "x-ms-examples": {
+ "DPSPatch": {
+ "$ref": "./examples/DPSPatch.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of provisioning service to create or update."
+ },
+ {
+ "name": "ProvisioningServiceTags",
+ "in": "body",
+ "required": true,
+ "description": "Updated tag information to set into the provisioning service instance.",
+ "schema": {
+ "$ref": "#/definitions/TagsResource"
+ }
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Provisioning Service was successfully updated",
+ "schema": {
+ "$ref": "#/definitions/ProvisioningServiceDescription"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "delete": {
+ "tags": [
+ "DELETE"
+ ],
+ "summary": "Delete the Provisioning Service",
+ "description": "Deletes the Provisioning Service.",
+ "x-ms-long-running-operation": true,
+ "operationId": "IotDpsResource_Delete",
+ "x-ms-examples": {
+ "DPSDelete": {
+ "$ref": "./examples/DPSDelete.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of provisioning service to delete."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The provisioning service resource provider always returns a 202 Accepted status code with valid Location and Retry-After headers. The resource provider also sets the Azure-AsyncOperation header with a URL that points to the operation resource for this operation. Subsequent GET attempts on the resource after a DELETE operation return a resource representation that indicates a transitional provisioning state (such as Terminating). To retrieve the status of the operation, a client can either poll the URL returned in the Location header after the Retry-After interval, get the provisioning service status directly, or query the operation resource."
+ },
+ "200": {
+ "description": "This is returned as a response to the status polling request for the delete operation. The body contains the resource representation that indicates a transitional provisioning state."
+ },
+ "204": {
+ "description": "Once the long running delete operation completes successfully, a 204 No Content status code is returned when the status polling request finds the provisioning service metadata in the service and the status of the delete operation is set to a completed state."
+ },
+ "404": {
+ "description": "After the long running delete operation completes successfully, a 404 Not Found is returned when the status polling request no longer finds the provisioning service metadata in the service."
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/certificates": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "operationId": "DpsCertificate_List",
+ "description": "Get all the certificates tied to the provisioning service.",
+ "x-ms-examples": {
+ "DPSGetCertificates": {
+ "$ref": "./examples/DPSGetCertificates.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of resource group."
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of provisioning service to retrieve certificates for."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of certificate descriptions in a JSON-serialized array.",
+ "schema": {
+ "$ref": "#/definitions/CertificateListDescription"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Devices/provisioningServices": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get all the provisioning services in a subscription.",
+ "description": "List all the provisioning services for a given subscription id.",
+ "operationId": "IotDpsResource_ListBySubscription",
+ "x-ms-examples": {
+ "DPSListBySubscription": {
+ "$ref": "./examples/DPSListBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the provisioning services in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/ProvisioningServiceDescriptionListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "operationId": "IotDpsResource_ListByResourceGroup",
+ "description": "Get a list of all provisioning services in the given resource group.",
+ "x-ms-examples": {
+ "DPSListByResourceGroup": {
+ "$ref": "./examples/DPSListByResourceGroup.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of provisioning services in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/ProvisioningServiceDescriptionListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/operationresults/{operationId}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "operationId": "IotDpsResource_GetOperationResult",
+ "description": "Gets the status of a long running operation, such as create, update or delete a provisioning service.",
+ "x-ms-examples": {
+ "DPSGetOperationResult": {
+ "$ref": "./examples/DPSGetOperationResult.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "operationId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Operation id corresponding to long running operation. Use this to poll for the status."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of provisioning service that the operation is running on."
+ },
+ {
+ "name": "asyncinfo",
+ "in": "query",
+ "description": "Async header used to poll on the status of the operation, obtained while creating the long running operation.",
+ "required": true,
+ "type": "string",
+ "default": "true"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The status of the long running operation.",
+ "schema": {
+ "$ref": "#/definitions/AsyncOperationResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/skus": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the list of valid SKUs for a provisioning service.",
+ "description": "Gets the list of valid SKUs and tiers for a provisioning service.",
+ "operationId": "IotDpsResource_listValidSkus",
+ "x-ms-examples": {
+ "DPSGetValidSku": {
+ "$ref": "./examples/DPSGetValidSku.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of provisioning service."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of resource group."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the valid SKUs for this provisioning service.",
+ "schema": {
+ "$ref": "#/definitions/IotDpsSkuDefinitionListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/certificates/{certificateName}/generateVerificationCode": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "DpsCertificate_GenerateVerificationCode",
+ "description": "Generate verification code for Proof of Possession.",
+ "x-ms-examples": {
+ "DPSGenerateVerificationCode": {
+ "$ref": "./examples/DPSGenerateVerificationCode.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "certificateName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The mandatory logical name of the certificate, that the provisioning service uses to access."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": true,
+ "type": "string",
+ "description": "ETag of the certificate. This is required to update an existing certificate, and ignored while creating a brand new certificate."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "name of resource group."
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of provisioning service."
+ },
+ {
+ "name": "certificate.name",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Common Name for the certificate."
+ },
+ {
+ "name": "certificate.rawBytes",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "byte",
+ "description": "Raw data of certificate."
+ },
+ {
+ "name": "certificate.isVerified",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Indicates if the certificate has been verified by owner of the private key."
+ },
+ {
+ "name": "certificate.purpose",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Description mentioning the purpose of the certificate.",
+ "enum": [
+ "clientAuthentication",
+ "serverAuthentication"
+ ],
+ "x-ms-enum": {
+ "name": "CertificatePurpose",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "certificate.created",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time",
+ "description": "Certificate creation time."
+ },
+ {
+ "name": "certificate.lastUpdated",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time",
+ "description": "Certificate last updated time."
+ },
+ {
+ "name": "certificate.hasPrivateKey",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Indicates if the certificate contains private key."
+ },
+ {
+ "name": "certificate.nonce",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Random number generated to indicate Proof of Possession."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Generated verification code for that certificate is returned.",
+ "schema": {
+ "$ref": "#/definitions/VerificationCodeResponse"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/certificates/{certificateName}/verify": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "DpsCertificate_VerifyCertificate",
+ "summary": "Verify certificate's private key possession.",
+ "description": "Verifies the certificate's private key possession by providing the leaf cert issued by the verifying pre uploaded certificate.",
+ "x-ms-examples": {
+ "DPSVerifyCertificate": {
+ "$ref": "./examples/DPSVerifyCertificate.json"
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "certificateName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The mandatory logical name of the certificate, that the provisioning service uses to access."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": true,
+ "type": "string",
+ "description": "ETag of the certificate."
+ },
+ {
+ "name": "request",
+ "in": "body",
+ "required": true,
+ "description": "The name of the certificate",
+ "schema": {
+ "$ref": "#/definitions/VerificationCodeRequest"
+ }
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group name."
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Provisioning service name."
+ },
+ {
+ "name": "certificate.name",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Common Name for the certificate."
+ },
+ {
+ "name": "certificate.rawBytes",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "byte",
+ "description": "Raw data of certificate."
+ },
+ {
+ "name": "certificate.isVerified",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Indicates if the certificate has been verified by owner of the private key."
+ },
+ {
+ "name": "certificate.purpose",
+ "in": "query",
+ "required": false,
+ "description": "Describe the purpose of the certificate.",
+ "type": "string",
+ "enum": [
+ "clientAuthentication",
+ "serverAuthentication"
+ ],
+ "x-ms-enum": {
+ "name": "CertificatePurpose",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "certificate.created",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time",
+ "description": "Certificate creation time."
+ },
+ {
+ "name": "certificate.lastUpdated",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time",
+ "description": "Certificate last updated time."
+ },
+ {
+ "name": "certificate.hasPrivateKey",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Indicates if the certificate contains private key."
+ },
+ {
+ "name": "certificate.nonce",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Random number generated to indicate Proof of Possession."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CertificateResponse"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Devices/checkProvisioningServiceNameAvailability": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "IotDpsResource_CheckProvisioningServiceNameAvailability",
+ "x-ms-examples": {
+ "DPSCheckName": {
+ "$ref": "./examples/DPSCheckNameAvailability.json"
+ }
+ },
+ "summary": "Check if a provisioning service name is available.",
+ "description": "Check if a provisioning service name is available. This will validate if the name is syntactically valid and if the name is usable",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "arguments",
+ "in": "body",
+ "required": true,
+ "description": "Set the name parameter in the OperationInputs structure to the name of the provisioning service to check.",
+ "schema": {
+ "$ref": "#/definitions/OperationInputs"
+ }
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized response that specifies whether the provisioning service name is available. If the name is not available, the body contains the reason.",
+ "schema": {
+ "$ref": "#/definitions/NameAvailabilityInfo"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/listkeys": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "IotDpsResource_ListKeys",
+ "x-ms-examples": {
+ "DPSListKeys": {
+ "$ref": "./examples/DPSListKeys.json"
+ }
+ },
+ "summary": "Get the security metadata for a provisioning service.",
+ "description": "List the primary and secondary keys for a provisioning service.",
+ "parameters": [
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The provisioning service name to get the shared access keys for."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "resource group name"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of shared access policies, including keys, that you can use to access the provisioning service endpoints.",
+ "schema": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRuleListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/keys/{keyName}/listkeys": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "IotDpsResource_ListKeysForKeyName",
+ "x-ms-examples": {
+ "DPSGetKey": {
+ "$ref": "./examples/DPSGetKey.json"
+ }
+ },
+ "summary": "Get a shared access policy by name from a provisioning service.",
+ "description": "List primary and secondary keys for a specific key name",
+ "parameters": [
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the provisioning service."
+ },
+ {
+ "name": "keyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Logical key name to get key-values for."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "description": "The name of the resource group that contains the provisioning service.",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized shared access policy, including keys, that you can use to access one or more provisioning service endpoints.",
+ "schema": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRule[AccessRightsDescription]"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{resourceName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "List private link resources",
+ "description": "List private link resources for the given provisioning service",
+ "operationId": "IotDpsResource_ListPrivateLinkResources",
+ "x-ms-examples": {
+ "PrivateLinkResources_List": {
+ "$ref": "./examples/DPSListPrivateLinkResources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the list of private link resources",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResources"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{resourceName}/privateLinkResources/{groupId}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the specified private link resource",
+ "description": "Get the specified private link resource for the given provisioning service",
+ "operationId": "IotDpsResource_GetPrivateLinkResources",
+ "x-ms-examples": {
+ "PrivateLinkResources_List": {
+ "$ref": "./examples/DPSGetPrivateLinkResources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/groupId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the specified of private link resource",
+ "schema": {
+ "$ref": "#/definitions/GroupIdInformation"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{resourceName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "List private endpoint connections",
+ "description": "List private endpoint connection properties",
+ "operationId": "IotDpsResource_ListPrivateEndpointConnections",
+ "x-ms-examples": {
+ "PrivateEndpointConnections_List": {
+ "$ref": "./examples/DPSListPrivateEndpointConnections.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the list of private endpoint connection properties",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnectionsList"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get private endpoint connection",
+ "description": "Get private endpoint connection properties",
+ "operationId": "IotDpsResource_GetPrivateEndpointConnection",
+ "x-ms-examples": {
+ "PrivateEndpointConnection_Get": {
+ "$ref": "./examples/DPSGetPrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the private endpoint connection properties",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "put": {
+ "tags": [
+ "PUT"
+ ],
+ "summary": "Create or update private endpoint connection",
+ "description": "Create or update the status of a private endpoint connection with the specified name",
+ "operationId": "IotDpsResource_CreateOrUpdatePrivateEndpointConnection",
+ "x-ms-examples": {
+ "PrivateEndpointConnection_CreateOrUpdate": {
+ "$ref": "./examples/DPSCreateOrUpdatePrivateEndpointConnection.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionName"
+ },
+ {
+ "name": "privateEndpointConnection",
+ "in": "body",
+ "description": "The private endpoint connection with updated properties",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "This is a long running operation. The operation returns a 201 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation. If successful, the operation returns HTTP status code of 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "200": {
+ "description": "This is returned as a response to the status polling request for the update operation.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "delete": {
+ "tags": [
+ "DELETE"
+ ],
+ "summary": "Delete private endpoint connection",
+ "description": "Delete private endpoint connection with the specified name",
+ "operationId": "IotDpsResource_DeletePrivateEndpointConnection",
+ "x-ms-examples": {
+ "PrivateEndpointConnection_Delete": {
+ "$ref": "./examples/DPSDeletePrivateEndpointConnection.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionName"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "This is a long running operation. The operation returns a 202 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "200": {
+ "description": "This is returned as a response to the status polling request for the delete operation.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "204": {
+ "description": "PrivateEndpoint does not exist."
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ }
+ },
+ "definitions": {
+ "AsyncOperationResult": {
+ "type": "object",
+ "description": "Result of a long running operation.",
+ "properties": {
+ "status": {
+ "description": "current status of a long running operation.",
+ "type": "string"
+ },
+ "error": {
+ "description": "Error message containing code, description and details",
+ "$ref": "#/definitions/ErrorMesssage"
+ }
+ }
+ },
+ "ErrorMesssage": {
+ "description": "Error response containing message and code.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "standard error code",
+ "type": "string"
+ },
+ "message": {
+ "description": "standard error description",
+ "type": "string"
+ },
+ "details": {
+ "description": "detailed summary of error",
+ "type": "string"
+ }
+ }
+ },
+ "CertificateListDescription": {
+ "description": "The JSON-serialized array of Certificate objects.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The array of Certificate objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateResponse"
+ }
+ }
+ }
+ },
+ "CertificateBodyDescription": {
+ "description": "The JSON-serialized X509 Certificate.",
+ "type": "object",
+ "properties": {
+ "certificate": {
+ "description": "Base-64 representation of the X509 leaf certificate .cer file or just .pem file content.",
+ "type": "string"
+ }
+ }
+ },
+ "CertificateResponse": {
+ "description": "The X509 Certificate.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "properties of a certificate",
+ "$ref": "#/definitions/CertificateProperties"
+ },
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "description": "The name of the certificate.",
+ "type": "string",
+ "readOnly": true
+ },
+ "etag": {
+ "description": "The entity tag.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "CertificateProperties": {
+ "description": "The description of an X509 CA Certificate.",
+ "type": "object",
+ "properties": {
+ "subject": {
+ "description": "The certificate's subject name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "expiry": {
+ "description": "The certificate's expiration date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "thumbprint": {
+ "description": "The certificate's thumbprint.",
+ "type": "string",
+ "readOnly": true
+ },
+ "isVerified": {
+ "description": "Determines whether certificate has been verified.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "created": {
+ "description": "The certificate's creation date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "updated": {
+ "description": "The certificate's last update date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ }
+ }
+ },
+ "IotDpsSkuInfo": {
+ "type": "object",
+ "description": "List of possible provisioning service SKUs.",
+ "properties": {
+ "name": {
+ "description": "Sku name.",
+ "enum": [
+ "S1"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IotDpsSku",
+ "modelAsString": true
+ }
+ },
+ "tier": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Pricing tier name of the provisioning service."
+ },
+ "capacity": {
+ "format": "int64",
+ "type": "integer",
+ "description": "The number of units to provision"
+ }
+ }
+ },
+ "ProvisioningServiceDescription": {
+ "description": "The description of the provisioning service.",
+ "type": "object",
+ "properties": {
+ "etag": {
+ "description": "The Etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal ETag convention.",
+ "type": "string"
+ },
+ "properties": {
+ "description": "Service specific properties for a provisioning service",
+ "$ref": "#/definitions/IotDpsPropertiesDescription"
+ },
+ "sku": {
+ "description": "Sku info for a provisioning Service.",
+ "$ref": "#/definitions/IotDpsSkuInfo"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "sku",
+ "properties"
+ ]
+ },
+ "IotDpsPropertiesDescription": {
+ "description": "the service specific properties of a provisioning service, including keys, linked iot hubs, current state, and system generated properties such as hostname and idScope",
+ "type": "object",
+ "properties": {
+ "state": {
+ "description": "Current state of the provisioning service.",
+ "enum": [
+ "Activating",
+ "Active",
+ "Deleting",
+ "Deleted",
+ "ActivationFailed",
+ "DeletionFailed",
+ "Transitioning",
+ "Suspending",
+ "Suspended",
+ "Resuming",
+ "FailingOver",
+ "FailoverFailed"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "state",
+ "modelAsString": true
+ }
+ },
+ "encryption": {
+ "description": "The encryption properties for the IoT DPS instance.",
+ "$ref": "#/definitions/EncryptionPropertiesDescription"
+ },
+ "publicNetworkAccess": {
+ "type": "string",
+ "description": "Whether requests from Public Network are allowed",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "PublicNetworkAccess"
+ }
+ },
+ "ipFilterRules": {
+ "description": "The IP filter rules.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IpFilterRule"
+ }
+ },
+ "privateEndpointConnections": {
+ "description": "Private endpoint connections created on this IotHub",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "provisioningState": {
+ "description": "The ARM provisioning state of the provisioning service.",
+ "type": "string"
+ },
+ "iotHubs": {
+ "type": "array",
+ "description": "List of IoT hubs associated with this provisioning service.",
+ "items": {
+ "$ref": "#/definitions/IotHubDefinitionDescription"
+ }
+ },
+ "allocationPolicy": {
+ "enum": [
+ "Hashed",
+ "GeoLatency",
+ "Static"
+ ],
+ "type": "string",
+ "description": "Allocation policy to be used by this provisioning service.",
+ "x-ms-enum": {
+ "name": "AllocationPolicy",
+ "modelAsString": true
+ }
+ },
+ "serviceOperationsHostName": {
+ "description": "Service endpoint for provisioning service.",
+ "type": "string",
+ "readOnly": true
+ },
+ "deviceProvisioningHostName": {
+ "type": "string",
+ "description": "Device endpoint for this provisioning service.",
+ "readOnly": true
+ },
+ "idScope": {
+ "type": "string",
+ "description": "Unique identifier of this provisioning service.",
+ "readOnly": true
+ },
+ "authorizationPolicies": {
+ "description": "List of authorization keys for a provisioning service.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRule[AccessRightsDescription]"
+ }
+ }
+ }
+ },
+ "IotHubDefinitionDescription": {
+ "type": "object",
+ "description": "Description of the IoT hub.",
+ "properties": {
+ "applyAllocationPolicy": {
+ "description": "flag for applying allocationPolicy or not for a given iot hub.",
+ "type": "boolean"
+ },
+ "allocationWeight": {
+ "description": "weight to apply for a given iot h.",
+ "format": "int32",
+ "type": "integer"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Host name of the IoT hub."
+ },
+ "connectionString": {
+ "type": "string",
+ "description": "Connection string of the IoT hub."
+ },
+ "location": {
+ "type": "string",
+ "description": "ARM region of the IoT hub."
+ }
+ },
+ "required": [
+ "connectionString",
+ "location"
+ ]
+ },
+ "EncryptionPropertiesDescription": {
+ "description": "The encryption properties for the IoT DPS instance.",
+ "type": "object",
+ "properties": {
+ "keySource": {
+ "description": "The source of the key.",
+ "type": "string"
+ },
+ "keyVaultProperties": {
+ "description": "The properties of the KeyVault key.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/KeyVaultKeyProperties"
+ }
+ }
+ }
+ },
+ "KeyVaultKeyProperties": {
+ "description": "The properties of the KeyVault key.",
+ "type": "object",
+ "properties": {
+ "keyIdentifier": {
+ "type": "string",
+ "description": "The identifier of the key."
+ }
+ }
+ },
+ "IpFilterRule": {
+ "description": "The IP filter rules for a provisioning Service.",
+ "type": "object",
+ "properties": {
+ "filterName": {
+ "description": "The name of the IP filter rule.",
+ "type": "string"
+ },
+ "action": {
+ "description": "The desired action for requests captured by this rule.",
+ "enum": [
+ "Accept",
+ "Reject"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IpFilterActionType",
+ "modelAsString": false
+ }
+ },
+ "ipMask": {
+ "description": "A string that contains the IP address range in CIDR notation for the rule.",
+ "type": "string"
+ },
+ "target": {
+ "description": "Target for requests captured by this rule.",
+ "enum": [
+ "all",
+ "serviceApi",
+ "deviceApi"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IpFilterTargetType",
+ "modelAsString": false
+ }
+ }
+ },
+ "required": [
+ "filterName",
+ "action",
+ "ipMask"
+ ]
+ },
+ "PrivateLinkResources": {
+ "description": "The available private link resources for a provisioning service",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The list of available private link resources for a provisioning service",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GroupIdInformation"
+ }
+ }
+ }
+ },
+ "GroupIdInformation": {
+ "description": "The group information for creating a private endpoint on a provisioning service",
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name.",
+ "pattern": "^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{2,49}[a-zA-Z0-9]$"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "properties": {
+ "description": "The properties for a group information object",
+ "$ref": "#/definitions/GroupIdInformationProperties"
+ }
+ },
+ "required": [
+ "properties"
+ ]
+ },
+ "GroupIdInformationProperties": {
+ "description": "The properties for a group information object",
+ "type": "object",
+ "properties": {
+ "groupId": {
+ "type": "string",
+ "description": "The group id"
+ },
+ "requiredMembers": {
+ "description": "The required members for a specific group id",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "requiredZoneNames": {
+ "description": "The required DNS zones for a specific group id",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "PrivateEndpointConnectionsList": {
+ "description": "The list of private endpoint connections for a provisioning service",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "PrivateEndpointConnection": {
+ "description": "The private endpoint connection of a provisioning service",
+ "x-ms-azure-resource": true,
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name.",
+ "pattern": "^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{2,49}[a-zA-Z0-9]$"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "properties": {
+ "description": "The properties of a private endpoint connection",
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties"
+ }
+ },
+ "required": [
+ "properties"
+ ]
+ },
+ "PrivateEndpointConnectionProperties": {
+ "description": "The properties of a private endpoint connection",
+ "type": "object",
+ "properties": {
+ "privateEndpoint": {
+ "description": "The private endpoint property of a private endpoint connection",
+ "$ref": "#/definitions/PrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "description": "The current state of a private endpoint connection",
+ "$ref": "#/definitions/PrivateLinkServiceConnectionState"
+ }
+ },
+ "required": [
+ "privateLinkServiceConnectionState"
+ ]
+ },
+ "PrivateEndpoint": {
+ "description": "The private endpoint property of a private endpoint connection",
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ }
+ }
+ },
+ "PrivateLinkServiceConnectionState": {
+ "description": "The current state of a private endpoint connection",
+ "type": "object",
+ "properties": {
+ "status": {
+ "description": "The status of a private endpoint connection",
+ "enum": [
+ "Pending",
+ "Approved",
+ "Rejected",
+ "Disconnected"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "PrivateLinkServiceConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "description": {
+ "type": "string",
+ "description": "The description for the current state of a private endpoint connection"
+ },
+ "actionsRequired": {
+ "type": "string",
+ "description": "Actions required for a private endpoint connection"
+ }
+ },
+ "required": [
+ "status",
+ "description"
+ ]
+ },
+ "SharedAccessSignatureAuthorizationRule[AccessRightsDescription]": {
+ "type": "object",
+ "description": "Description of the shared access key.",
+ "properties": {
+ "keyName": {
+ "type": "string",
+ "description": "Name of the key."
+ },
+ "primaryKey": {
+ "type": "string",
+ "description": "Primary SAS key value."
+ },
+ "secondaryKey": {
+ "type": "string",
+ "description": "Secondary SAS key value."
+ },
+ "rights": {
+ "description": "Rights that this key has.",
+ "enum": [
+ "ServiceConfig",
+ "EnrollmentRead",
+ "EnrollmentWrite",
+ "DeviceConnect",
+ "RegistrationStatusRead",
+ "RegistrationStatusWrite"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AccessRightsDescription",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "keyName",
+ "rights"
+ ]
+ },
+ "Resource": {
+ "description": "The common properties of an Azure resource.",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name.",
+ "pattern": "^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{2,49}[a-zA-Z0-9]$"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "location": {
+ "type": "string",
+ "description": "The resource location."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The resource tags."
+ }
+ },
+ "x-ms-azure-resource": true,
+ "required": [
+ "location"
+ ]
+ },
+ "OperationListResult": {
+ "description": "Result of the request to list provisioning service operations. It contains a list of operations and a URL link to get the next set of results.",
+ "properties": {
+ "value": {
+ "description": "Provisioning service operations supported by the Microsoft.Devices resource provider.",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/Operation"
+ }
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "Operation": {
+ "description": "Provisioning Service REST API operation.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Operation name: {provider}/{resource}/{read | write | action | delete}"
+ },
+ "display": {
+ "description": "The object that represents the operation.",
+ "properties": {
+ "provider": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Service provider: Microsoft Devices."
+ },
+ "resource": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource Type: ProvisioningServices."
+ },
+ "operation": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of the operation."
+ }
+ }
+ }
+ }
+ },
+ "ErrorDetails": {
+ "description": "Error details.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "httpStatusCode": {
+ "description": "The HTTP status code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "The error message.",
+ "type": "string",
+ "readOnly": true
+ },
+ "details": {
+ "description": "The error details.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "SharedAccessSignatureAuthorizationRuleListResult": {
+ "type": "object",
+ "description": "List of shared access keys.",
+ "properties": {
+ "value": {
+ "description": "The list of shared access policies.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRule[AccessRightsDescription]"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotDpsSkuDefinitionListResult": {
+ "type": "object",
+ "description": "List of available SKUs.",
+ "properties": {
+ "value": {
+ "description": "The list of SKUs",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IotDpsSkuDefinition"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotDpsSkuDefinition": {
+ "type": "object",
+ "description": "Available SKUs of tier and units.",
+ "properties": {
+ "name": {
+ "description": "Sku name.",
+ "enum": [
+ "S1"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IotDpsSku",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "OperationInputs": {
+ "description": "Input values for operation results call.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the Provisioning Service to check.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "NameAvailabilityInfo": {
+ "type": "object",
+ "description": "Description of name availability.",
+ "properties": {
+ "nameAvailable": {
+ "description": "specifies if a name is available or not",
+ "type": "boolean"
+ },
+ "reason": {
+ "description": "specifies the reason a name is unavailable",
+ "enum": [
+ "Invalid",
+ "AlreadyExists"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "NameUnavailabilityReason",
+ "modelAsString": true
+ }
+ },
+ "message": {
+ "description": "message containing a detailed reason name is unavailable",
+ "type": "string"
+ }
+ }
+ },
+ "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 Provisioning Service instance."
+ },
+ "ProvisioningServiceDescriptionListResult": {
+ "type": "object",
+ "description": "List of provisioning service descriptions.",
+ "properties": {
+ "value": {
+ "description": "List of provisioning service descriptions.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ProvisioningServiceDescription"
+ }
+ },
+ "nextLink": {
+ "description": "the next link",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "VerificationCodeResponse": {
+ "type": "object",
+ "description": "Description of the response of the verification code.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of certificate.",
+ "readOnly": true
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Request etag."
+ },
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "verificationCode": {
+ "type": "string",
+ "description": "Verification code."
+ },
+ "subject": {
+ "type": "string",
+ "description": "Certificate subject."
+ },
+ "expiry": {
+ "type": "string",
+ "description": "Code expiry."
+ },
+ "thumbprint": {
+ "type": "string",
+ "description": "Certificate thumbprint."
+ },
+ "isVerified": {
+ "type": "boolean",
+ "description": "Indicate if the certificate is verified by owner of private key."
+ },
+ "created": {
+ "type": "string",
+ "description": "Certificate created time."
+ },
+ "updated": {
+ "type": "string",
+ "description": "Certificate updated time."
+ }
+ }
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "VerificationCodeRequest": {
+ "type": "object",
+ "description": "The JSON-serialized leaf certificate",
+ "properties": {
+ "certificate": {
+ "description": "base-64 representation of X509 certificate .cer file or just .pem file content.",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "subscriptionId": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "The subscription identifier.",
+ "required": true,
+ "type": "string"
+ },
+ "api-version": {
+ "name": "api-version",
+ "in": "query",
+ "description": "The version of the API.",
+ "required": true,
+ "type": "string"
+ },
+ "resourceGroupName": {
+ "name": "resourceGroupName",
+ "description": "The name of the resource group that contains the provisioning service.",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "resourceName": {
+ "name": "resourceName",
+ "in": "path",
+ "description": "The name of the provisioning service.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "groupId": {
+ "name": "groupId",
+ "in": "path",
+ "description": "The name of the private link resource",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "privateEndpointConnectionName": {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "description": "The name of the private endpoint connection",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSCertificateCreateOrUpdate.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSCertificateCreateOrUpdate.json
new file mode 100644
index 000000000000..558f5c35e5b2
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSCertificateCreateOrUpdate.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "certificateDescription": {
+ "certificate": "############################################"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "subject": "CN=testdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:23:50 GMT"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServives/myFirstProvisioningService/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/ProvisioningServices/Certificates",
+ "etag": "AAAAAAExpNs="
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSCheckNameAvailability.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSCheckNameAvailability.json
new file mode 100644
index 000000000000..0e4aa5da3076
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSCheckNameAvailability.json
@@ -0,0 +1,18 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "arguments": {
+ "name": "test213123"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": true,
+ "reason": "Invalid",
+ "message": "name is valid"
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSCreate.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSCreate.json
new file mode 100644
index 000000000000..4b51ca38665a
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSCreate.json
@@ -0,0 +1,65 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "iotDpsDescription": {
+ "location": "East US",
+ "properties": {},
+ "sku": {
+ "name": "S1",
+ "capacity": 1
+ },
+ "tags": {}
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "etag": "AAAAAAAADGk=",
+ "name": "myFirstProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "myFirstProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012",
+ "authorizationPolicies": []
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups//providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService",
+ "tags": {},
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "etag": "AAAAAAAADGk=",
+ "name": "myFirstProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "myFirstProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012",
+ "authorizationPolicies": []
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups//providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService",
+ "tags": {},
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSCreateOrUpdatePrivateEndpointConnection.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSCreateOrUpdatePrivateEndpointConnection.json
new file mode 100644
index 000000000000..0f7bd6619300
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSCreateOrUpdatePrivateEndpointConnection.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "resourceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "privateEndpointConnectionName": "myPrivateEndpointConnection",
+ "privateEndpointConnection": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by johndoe@contoso.com"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by johndoe@contoso.com",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by johndoe@contoso.com",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSDelete.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSDelete.json
new file mode 100644
index 000000000000..df3ec6c19ac0
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {},
+ "204": {},
+ "202": {},
+ "404": {}
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSDeleteCertificate.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSDeleteCertificate.json
new file mode 100644
index 000000000000..05c0226c64d8
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSDeleteCertificate.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "If-Match": "AAAAAAAADGk="
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSDeletePrivateEndpointConnection.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSDeletePrivateEndpointConnection.json
new file mode 100644
index 000000000000..a6e6b9903e7e
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSDeletePrivateEndpointConnection.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "resourceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "privateEndpointConnectionName": "myPrivateEndpointConnection"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Disconnected",
+ "description": "Deleted",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Disconnected",
+ "description": "Deleted",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGenerateVerificationCode.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGenerateVerificationCode.json
new file mode 100644
index 000000000000..46046c8661fa
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGenerateVerificationCode.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "If-Match": "AAAAAAAADGk="
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "cert",
+ "properties": {
+ "verificationCode": "##################################",
+ "subject": "CN=andbucdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "##############################",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:26:56 GMT"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGet.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGet.json
new file mode 100644
index 000000000000..990419b2ff0d
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGet.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "etag": "AAAAAAAADGk=",
+ "name": "myFirstProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "myFirstProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012",
+ "authorizationPolicies": []
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService",
+ "tags": {},
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetCertificate.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetCertificate.json
new file mode 100644
index 000000000000..4eefdca87ec7
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetCertificate.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "subject": "CN=testdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:23:50 GMT"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/andbuc-hub/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/ProvisioningServices/Certificates",
+ "etag": "AAAAAAExpNs="
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetCertificates.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetCertificates.json
new file mode 100644
index 000000000000..0749e8b47528
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetCertificates.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "subject": "CN=testdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:23:50 GMT"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/andbuc-hub/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/ProvisioningServices/Certificates",
+ "etag": "AAAAAAExpNs="
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetKey.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetKey.json
new file mode 100644
index 000000000000..59cfd1dedda1
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetKey.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "keyName": "testKey"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "keyName": "testKey",
+ "primaryKey": "##################################",
+ "secondaryKey": "################################",
+ "rights": "RegistrationStatusWrite"
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetOperationResult.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetOperationResult.json
new file mode 100644
index 000000000000..7b42073c8891
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetOperationResult.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "operationId": "MTY5OTNmZDctODI5Yy00N2E2LTkxNDQtMDU1NGIyYzY1ZjRl",
+ "asyncinfo": "1508265712453"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "status": "Succeeded"
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetPrivateEndpointConnection.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetPrivateEndpointConnection.json
new file mode 100644
index 000000000000..f225fdfb3ed0
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetPrivateEndpointConnection.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "resourceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "privateEndpointConnectionName": "myPrivateEndpointConnection"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Pending",
+ "description": "Please approve my request!",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetPrivateLinkResources.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetPrivateLinkResources.json
new file mode 100644
index 000000000000..7e5dd092b9fe
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetPrivateLinkResources.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "resourceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "groupId": "iotDps"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateLinkResources/iotDps",
+ "name": "iotDps",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateLinkResources",
+ "properties": {
+ "groupId": "iotDps",
+ "requiredMembers": [
+ "iotDps"
+ ],
+ "requiredZoneNames": [
+ "privatelink.azure-devices-provisioning.net"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetValidSku.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetValidSku.json
new file mode 100644
index 000000000000..bd7172404ce3
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSGetValidSku.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "S1"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListByResourceGroup.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListByResourceGroup.json
new file mode 100644
index 000000000000..edcfab5f6c2d
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListByResourceGroup.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "resourceGroupName": "myResourceGroup"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "etag": "AAAAAAAADGk=",
+ "name": "myFirstProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "myFirstProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012"
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService",
+ "tags": {},
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ },
+ {
+ "etag": "AAAAAAAADGk=",
+ "name": "mySecondProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "mySecondProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012"
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/mySecondProvisioningService",
+ "tags": {},
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListBySubscription.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListBySubscription.json
new file mode 100644
index 000000000000..10809ab99f65
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListBySubscription.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "etag": "AAAAAAAADGk=",
+ "name": "myFirstProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "myFirstProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012"
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService",
+ "tags": {},
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ },
+ {
+ "etag": "AAAAAAAADGk=",
+ "name": "mySecondProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "myFirstProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012"
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/mySecondProvisioningService",
+ "tags": {},
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListKeys.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListKeys.json
new file mode 100644
index 000000000000..244001271379
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListKeys.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "keyName": "key1",
+ "primaryKey": "#####################################",
+ "secondaryKey": "###################################",
+ "rights": "ServiceConfig"
+ },
+ {
+ "keyName": "key2",
+ "primaryKey": "#######################################",
+ "secondaryKey": "####################################=",
+ "rights": "ServiceConfig"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListPrivateEndpointConnections.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListPrivateEndpointConnections.json
new file mode 100644
index 000000000000..44aedc7b3ca4
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListPrivateEndpointConnections.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "resourceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Pending",
+ "description": "Please approve my request!",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListPrivateLinkResources.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListPrivateLinkResources.json
new file mode 100644
index 000000000000..a734845280ad
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSListPrivateLinkResources.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "resourceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/PrivateLinkResources/iotDps",
+ "name": "iotDps",
+ "type": "Microsoft.Devices/ProvisioningServices/PrivateLinkResources",
+ "properties": {
+ "groupId": "iotDps",
+ "requiredMembers": [
+ "iotDps"
+ ],
+ "requiredZoneNames": [
+ "privatelink.azure-devices-provisioning.net"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSOperations.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSOperations.json
new file mode 100644
index 000000000000..8803ccd6798c
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSOperations.json
@@ -0,0 +1,293 @@
+{
+ "parameters": {
+ "api-version": "2020-03-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.Devices/register/action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Register Resource Provider"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/diagnosticSettings/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Diagnostic Setting"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/diagnosticSettings/write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Set Diagnostic Setting"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/metricDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read IotHub service metric definitions"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/logDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read IotHub service log definitions"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/operations/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get All ResourceProvider Operations"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/checkNameAvailability/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Check If IotHub name is available"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/usages/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Subscription Usages"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get IotHub(s)"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/Write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Create or update IotHub Resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/Delete",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Delete IotHub Resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/iotHubStats/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get IotHub Statistics"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/skus/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get valid IotHub Skus"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/listkeys/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get all IotHub Keys"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/iotHubKeys/listkeys/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get IotHub Key for the given name"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Create EventHub Consumer Group"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get EventHub Consumer Group(s)"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Delete",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Delete EventHub Consumer Group"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/exportDevices/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Export Devices"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/importDevices/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Import Devices"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/jobs/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get the Job(s) on IotHub"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/quotaMetrics/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Quota Metrics"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/routing/routes/$testall/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Routing Rule Test All"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/routing/routes/$testnew/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Routing Rule Test Route"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/routingEndpointsHealth/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Endpoint Health"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/diagnosticSettings/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Diagnostic Setting"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/diagnosticSettings/write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Set Diagnostic Setting"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/metricDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read DPS service metric definitions"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/logDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read DPS service log definitions"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/checkProvisioningServiceNameAvailability/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServives",
+ "operation": "Check If Provisioning Service name is available"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Get Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/Write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Create Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/Delete",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Delete Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/skus/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Delete Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/listkeys/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "get security related metadata"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSPatch.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSPatch.json
new file mode 100644
index 000000000000..ac5169c58f33
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSPatch.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "location": "East US",
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "ProvisioningServiceTags": {
+ "tags": {
+ "foo": "bar"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "etag": "AAAAAAAADGk=",
+ "name": "myFirstProvisioningService",
+ "location": "eastus",
+ "properties": {
+ "state": "Active",
+ "allocationPolicy": "Hashed",
+ "serviceOperationsHostName": "myFirstProvisioningService.azure-devices-provisioning.net",
+ "deviceProvisioningHostName": "global.azure-devices-provisioning.net",
+ "idScope": "0ne00000012"
+ },
+ "type": "Microsoft.Devices/ProvisioningServices",
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService",
+ "tags": {
+ "foo": "bar"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSVerifyCertificate.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSVerifyCertificate.json
new file mode 100644
index 000000000000..9fc26b15c818
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/examples/DPSVerifyCertificate.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "provisioningServiceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-03-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "If-Match": "AAAAAAAADGk=",
+ "request": {
+ "certificate": "#####################################"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "subject": "CN=andbucdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": true,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:26:56 GMT"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/ProvisioningServices/Certificates",
+ "etag": "AAAAAAExpTQ="
+ }
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/iotdps.json b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/iotdps.json
new file mode 100644
index 000000000000..410067ac2fe2
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/iotdps.json
@@ -0,0 +1,2515 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-03-01",
+ "x-ms-code-generation-settings": {
+ "host": "management.azure.com"
+ },
+ "title": "iotDpsClient",
+ "description": "API for using the Azure IoT Hub Device Provisioning Service features."
+ },
+ "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.Devices/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "operationId": "Operations_List",
+ "x-ms-examples": {
+ "DPSOperations": {
+ "$ref": "./examples/DPSOperations.json"
+ }
+ },
+ "description": "Lists all of the available Microsoft.Devices REST API operations.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/certificates/{certificateName}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "operationId": "DpsCertificate_Get",
+ "description": "Get the certificate from the provisioning service.",
+ "x-ms-examples": {
+ "DPSGetCertificate": {
+ "$ref": "./examples/DPSGetCertificate.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "certificateName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the certificate to retrieve."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the provisioning service the certificate is associated with."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "ETag of the certificate."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Metadata for the specified certificate.",
+ "schema": {
+ "$ref": "#/definitions/CertificateResponse"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PUT"
+ ],
+ "summary": "Upload the certificate to the provisioning service.",
+ "description": "Add new certificate or update an existing certificate.",
+ "operationId": "DpsCertificate_CreateOrUpdate",
+ "x-ms-examples": {
+ "DPSCreateOrUpdateCertificate": {
+ "$ref": "./examples/DPSCertificateCreateOrUpdate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "description": "Resource group identifier.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "description": "The name of the provisioning service.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "certificateName",
+ "in": "path",
+ "description": "The name of the certificate create or update.",
+ "required": true,
+ "type": "string",
+ "maxLength": 256
+ },
+ {
+ "name": "certificateDescription",
+ "in": "body",
+ "description": "The certificate body.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateBodyDescription"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "ETag of the certificate. This is required to update an existing certificate, and ignored while creating a brand new certificate."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "If certificate already exist and update was successful, the operation returns HTTP status code of 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/CertificateResponse"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "delete": {
+ "tags": [
+ "DELETE"
+ ],
+ "operationId": "DpsCertificate_Delete",
+ "summary": "Delete the Provisioning Service Certificate.",
+ "description": "Deletes the specified certificate associated with the Provisioning Service",
+ "x-ms-examples": {
+ "DPSDeleteCertificate": {
+ "$ref": "./examples/DPSDeleteCertificate.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": true,
+ "type": "string",
+ "description": "ETag of the certificate"
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the provisioning service."
+ },
+ {
+ "name": "certificateName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "This is a mandatory field, and is the logical name of the certificate that the provisioning service will access by."
+ },
+ {
+ "name": "certificate.name",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "This is optional, and it is the Common Name of the certificate."
+ },
+ {
+ "name": "certificate.rawBytes",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "byte",
+ "description": "Raw data within the certificate."
+ },
+ {
+ "name": "certificate.isVerified",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Indicates if certificate has been verified by owner of the private key."
+ },
+ {
+ "name": "certificate.purpose",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "A description that mentions the purpose of the certificate.",
+ "enum": [
+ "clientAuthentication",
+ "serverAuthentication"
+ ],
+ "x-ms-enum": {
+ "name": "CertificatePurpose",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "certificate.created",
+ "in": "query",
+ "description": "Time the certificate is created.",
+ "required": false,
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "name": "certificate.lastUpdated",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Time the certificate is last updated.",
+ "format": "date-time"
+ },
+ {
+ "name": "certificate.hasPrivateKey",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Indicates if the certificate contains a private key."
+ },
+ {
+ "name": "certificate.nonce",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Random number generated to indicate Proof of Possession."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK."
+ },
+ "204": {
+ "description": "No content."
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the non-security related metadata of the provisioning service.",
+ "description": "Get the metadata of the provisioning service without SAS keys.",
+ "operationId": "IotDpsResource_Get",
+ "x-ms-examples": {
+ "DPSGet": {
+ "$ref": "./examples/DPSGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the provisioning service to retrieve."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group name."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Provisioning service description with no keys is included in the response.",
+ "schema": {
+ "$ref": "#/definitions/ProvisioningServiceDescription"
+ }
+ },
+ "default": {
+ "description": "Default error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "put": {
+ "tags": [
+ "PUT"
+ ],
+ "summary": "Create or update the metadata of the provisioning service.",
+ "description": "Create or update the metadata of the provisioning service. The usual pattern to modify a property is to retrieve the provisioning service metadata and security metadata, and then combine them with the modified values in a new body to update the provisioning service.",
+ "x-ms-long-running-operation": true,
+ "operationId": "IotDpsResource_CreateOrUpdate",
+ "x-ms-examples": {
+ "DPSCreate": {
+ "$ref": "./examples/DPSCreate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of provisioning service to create or update."
+ },
+ {
+ "name": "iotDpsDescription",
+ "in": "body",
+ "required": true,
+ "description": "Description of the provisioning service to create or update.",
+ "schema": {
+ "$ref": "#/definitions/ProvisioningServiceDescription"
+ }
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains all the non-security properties of the provisioning service. Security-related properties are set to null.",
+ "schema": {
+ "$ref": "#/definitions/ProvisioningServiceDescription"
+ }
+ },
+ "201": {
+ "description": "This is a long running operation. The operation returns a 201 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation. If successful, the operation returns HTTP status code of 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/ProvisioningServiceDescription"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "patch": {
+ "tags": [
+ "PATCH"
+ ],
+ "summary": "Update an existing provisioning service's tags.",
+ "description": "Update an existing provisioning service's tags. to update other fields use the CreateOrUpdate method",
+ "x-ms-long-running-operation": true,
+ "operationId": "IotDpsResource_Update",
+ "x-ms-examples": {
+ "DPSPatch": {
+ "$ref": "./examples/DPSPatch.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of provisioning service to create or update."
+ },
+ {
+ "name": "ProvisioningServiceTags",
+ "in": "body",
+ "required": true,
+ "description": "Updated tag information to set into the provisioning service instance.",
+ "schema": {
+ "$ref": "#/definitions/TagsResource"
+ }
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Provisioning Service was successfully updated",
+ "schema": {
+ "$ref": "#/definitions/ProvisioningServiceDescription"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "delete": {
+ "tags": [
+ "DELETE"
+ ],
+ "summary": "Delete the Provisioning Service",
+ "description": "Deletes the Provisioning Service.",
+ "x-ms-long-running-operation": true,
+ "operationId": "IotDpsResource_Delete",
+ "x-ms-examples": {
+ "DPSDelete": {
+ "$ref": "./examples/DPSDelete.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of provisioning service to delete."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The provisioning service resource provider always returns a 202 Accepted status code with valid Location and Retry-After headers. The resource provider also sets the Azure-AsyncOperation header with a URL that points to the operation resource for this operation. Subsequent GET attempts on the resource after a DELETE operation return a resource representation that indicates a transitional provisioning state (such as Terminating). To retrieve the status of the operation, a client can either poll the URL returned in the Location header after the Retry-After interval, get the provisioning service status directly, or query the operation resource."
+ },
+ "200": {
+ "description": "This is returned as a response to the status polling request for the delete operation. The body contains the resource representation that indicates a transitional provisioning state."
+ },
+ "204": {
+ "description": "Once the long running delete operation completes successfully, a 204 No Content status code is returned when the status polling request finds the provisioning service metadata in the service and the status of the delete operation is set to a completed state."
+ },
+ "404": {
+ "description": "After the long running delete operation completes successfully, a 404 Not Found is returned when the status polling request no longer finds the provisioning service metadata in the service."
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/certificates": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "operationId": "DpsCertificate_List",
+ "description": "Get all the certificates tied to the provisioning service.",
+ "x-ms-examples": {
+ "DPSGetCertificates": {
+ "$ref": "./examples/DPSGetCertificates.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of resource group."
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of provisioning service to retrieve certificates for."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of certificate descriptions in a JSON-serialized array.",
+ "schema": {
+ "$ref": "#/definitions/CertificateListDescription"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Devices/provisioningServices": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get all the provisioning services in a subscription.",
+ "description": "List all the provisioning services for a given subscription id.",
+ "operationId": "IotDpsResource_ListBySubscription",
+ "x-ms-examples": {
+ "DPSListBySubscription": {
+ "$ref": "./examples/DPSListBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the provisioning services in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/ProvisioningServiceDescriptionListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "operationId": "IotDpsResource_ListByResourceGroup",
+ "description": "Get a list of all provisioning services in the given resource group.",
+ "x-ms-examples": {
+ "DPSListByResourceGroup": {
+ "$ref": "./examples/DPSListByResourceGroup.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "List of provisioning services in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/ProvisioningServiceDescriptionListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/operationresults/{operationId}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "operationId": "IotDpsResource_GetOperationResult",
+ "description": "Gets the status of a long running operation, such as create, update or delete a provisioning service.",
+ "x-ms-examples": {
+ "DPSGetOperationResult": {
+ "$ref": "./examples/DPSGetOperationResult.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "operationId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Operation id corresponding to long running operation. Use this to poll for the status."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of provisioning service that the operation is running on."
+ },
+ {
+ "name": "asyncinfo",
+ "in": "query",
+ "description": "Async header used to poll on the status of the operation, obtained while creating the long running operation.",
+ "required": true,
+ "type": "string",
+ "default": "true"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The status of the long running operation.",
+ "schema": {
+ "$ref": "#/definitions/AsyncOperationResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/skus": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the list of valid SKUs for a provisioning service.",
+ "description": "Gets the list of valid SKUs and tiers for a provisioning service.",
+ "operationId": "IotDpsResource_listValidSkus",
+ "x-ms-examples": {
+ "DPSGetValidSku": {
+ "$ref": "./examples/DPSGetValidSku.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of provisioning service."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of resource group."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the valid SKUs for this provisioning service.",
+ "schema": {
+ "$ref": "#/definitions/IotDpsSkuDefinitionListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/certificates/{certificateName}/generateVerificationCode": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "DpsCertificate_GenerateVerificationCode",
+ "description": "Generate verification code for Proof of Possession.",
+ "x-ms-examples": {
+ "DPSGenerateVerificationCode": {
+ "$ref": "./examples/DPSGenerateVerificationCode.json"
+ }
+ },
+ "parameters": [
+ {
+ "name": "certificateName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The mandatory logical name of the certificate, that the provisioning service uses to access."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": true,
+ "type": "string",
+ "description": "ETag of the certificate. This is required to update an existing certificate, and ignored while creating a brand new certificate."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "name of resource group."
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of provisioning service."
+ },
+ {
+ "name": "certificate.name",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Common Name for the certificate."
+ },
+ {
+ "name": "certificate.rawBytes",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "byte",
+ "description": "Raw data of certificate."
+ },
+ {
+ "name": "certificate.isVerified",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Indicates if the certificate has been verified by owner of the private key."
+ },
+ {
+ "name": "certificate.purpose",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Description mentioning the purpose of the certificate.",
+ "enum": [
+ "clientAuthentication",
+ "serverAuthentication"
+ ],
+ "x-ms-enum": {
+ "name": "CertificatePurpose",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "certificate.created",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time",
+ "description": "Certificate creation time."
+ },
+ {
+ "name": "certificate.lastUpdated",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time",
+ "description": "Certificate last updated time."
+ },
+ {
+ "name": "certificate.hasPrivateKey",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Indicates if the certificate contains private key."
+ },
+ {
+ "name": "certificate.nonce",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Random number generated to indicate Proof of Possession."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Generated verification code for that certificate is returned.",
+ "schema": {
+ "$ref": "#/definitions/VerificationCodeResponse"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/certificates/{certificateName}/verify": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "DpsCertificate_VerifyCertificate",
+ "summary": "Verify certificate's private key possession.",
+ "description": "Verifies the certificate's private key possession by providing the leaf cert issued by the verifying pre uploaded certificate.",
+ "x-ms-examples": {
+ "DPSVerifyCertificate": {
+ "$ref": "./examples/DPSVerifyCertificate.json"
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "certificateName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The mandatory logical name of the certificate, that the provisioning service uses to access."
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": true,
+ "type": "string",
+ "description": "ETag of the certificate."
+ },
+ {
+ "name": "request",
+ "in": "body",
+ "required": true,
+ "description": "The name of the certificate",
+ "schema": {
+ "$ref": "#/definitions/VerificationCodeRequest"
+ }
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group name."
+ },
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Provisioning service name."
+ },
+ {
+ "name": "certificate.name",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Common Name for the certificate."
+ },
+ {
+ "name": "certificate.rawBytes",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "byte",
+ "description": "Raw data of certificate."
+ },
+ {
+ "name": "certificate.isVerified",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Indicates if the certificate has been verified by owner of the private key."
+ },
+ {
+ "name": "certificate.purpose",
+ "in": "query",
+ "required": false,
+ "description": "Describe the purpose of the certificate.",
+ "type": "string",
+ "enum": [
+ "clientAuthentication",
+ "serverAuthentication"
+ ],
+ "x-ms-enum": {
+ "name": "CertificatePurpose",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "certificate.created",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time",
+ "description": "Certificate creation time."
+ },
+ {
+ "name": "certificate.lastUpdated",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "format": "date-time",
+ "description": "Certificate last updated time."
+ },
+ {
+ "name": "certificate.hasPrivateKey",
+ "in": "query",
+ "required": false,
+ "type": "boolean",
+ "description": "Indicates if the certificate contains private key."
+ },
+ {
+ "name": "certificate.nonce",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "Random number generated to indicate Proof of Possession."
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/CertificateResponse"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Devices/checkProvisioningServiceNameAvailability": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "IotDpsResource_CheckProvisioningServiceNameAvailability",
+ "x-ms-examples": {
+ "DPSCheckName": {
+ "$ref": "./examples/DPSCheckNameAvailability.json"
+ }
+ },
+ "summary": "Check if a provisioning service name is available.",
+ "description": "Check if a provisioning service name is available. This will validate if the name is syntactically valid and if the name is usable",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "arguments",
+ "in": "body",
+ "required": true,
+ "description": "Set the name parameter in the OperationInputs structure to the name of the provisioning service to check.",
+ "schema": {
+ "$ref": "#/definitions/OperationInputs"
+ }
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized response that specifies whether the provisioning service name is available. If the name is not available, the body contains the reason.",
+ "schema": {
+ "$ref": "#/definitions/NameAvailabilityInfo"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/listkeys": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "IotDpsResource_ListKeys",
+ "x-ms-examples": {
+ "DPSListKeys": {
+ "$ref": "./examples/DPSListKeys.json"
+ }
+ },
+ "summary": "Get the security metadata for a provisioning service.",
+ "description": "List the primary and secondary keys for a provisioning service.",
+ "parameters": [
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The provisioning service name to get the shared access keys for."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "resource group name"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of shared access policies, including keys, that you can use to access the provisioning service endpoints.",
+ "schema": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRuleListResult"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{provisioningServiceName}/keys/{keyName}/listkeys": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "IotDpsResource_ListKeysForKeyName",
+ "x-ms-examples": {
+ "DPSGetKey": {
+ "$ref": "./examples/DPSGetKey.json"
+ }
+ },
+ "summary": "Get a shared access policy by name from a provisioning service.",
+ "description": "List primary and secondary keys for a specific key name",
+ "parameters": [
+ {
+ "name": "provisioningServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the provisioning service."
+ },
+ {
+ "name": "keyName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Logical key name to get key-values for."
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "description": "The name of the resource group that contains the provisioning service.",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized shared access policy, including keys, that you can use to access one or more provisioning service endpoints.",
+ "schema": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRule[AccessRightsDescription]"
+ }
+ },
+ "default": {
+ "description": "Default error response.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{resourceName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "List private link resources",
+ "description": "List private link resources for the given provisioning service",
+ "operationId": "IotDpsResource_ListPrivateLinkResources",
+ "x-ms-examples": {
+ "PrivateLinkResources_List": {
+ "$ref": "./examples/DPSListPrivateLinkResources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the list of private link resources",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResources"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{resourceName}/privateLinkResources/{groupId}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the specified private link resource",
+ "description": "Get the specified private link resource for the given provisioning service",
+ "operationId": "IotDpsResource_GetPrivateLinkResources",
+ "x-ms-examples": {
+ "PrivateLinkResources_List": {
+ "$ref": "./examples/DPSGetPrivateLinkResources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/groupId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the specified of private link resource",
+ "schema": {
+ "$ref": "#/definitions/GroupIdInformation"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{resourceName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "List private endpoint connections",
+ "description": "List private endpoint connection properties",
+ "operationId": "IotDpsResource_ListPrivateEndpointConnections",
+ "x-ms-examples": {
+ "PrivateEndpointConnections_List": {
+ "$ref": "./examples/DPSListPrivateEndpointConnections.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the list of private endpoint connection properties",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnectionsList"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/provisioningServices/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get private endpoint connection",
+ "description": "Get private endpoint connection properties",
+ "operationId": "IotDpsResource_GetPrivateEndpointConnection",
+ "x-ms-examples": {
+ "PrivateEndpointConnection_Get": {
+ "$ref": "./examples/DPSGetPrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the private endpoint connection properties",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "put": {
+ "tags": [
+ "PUT"
+ ],
+ "summary": "Create or update private endpoint connection",
+ "description": "Create or update the status of a private endpoint connection with the specified name",
+ "operationId": "IotDpsResource_CreateOrUpdatePrivateEndpointConnection",
+ "x-ms-examples": {
+ "PrivateEndpointConnection_CreateOrUpdate": {
+ "$ref": "./examples/DPSCreateOrUpdatePrivateEndpointConnection.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionName"
+ },
+ {
+ "name": "privateEndpointConnection",
+ "in": "body",
+ "description": "The private endpoint connection with updated properties",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "This is a long running operation. The operation returns a 201 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation. If successful, the operation returns HTTP status code of 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "200": {
+ "description": "This is returned as a response to the status polling request for the update operation.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "delete": {
+ "tags": [
+ "DELETE"
+ ],
+ "summary": "Delete private endpoint connection",
+ "description": "Delete private endpoint connection with the specified name",
+ "operationId": "IotDpsResource_DeletePrivateEndpointConnection",
+ "x-ms-examples": {
+ "PrivateEndpointConnection_Delete": {
+ "$ref": "./examples/DPSDeletePrivateEndpointConnection.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionName"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "This is a long running operation. The operation returns a 202 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "200": {
+ "description": "This is returned as a response to the status polling request for the delete operation.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "204": {
+ "description": "PrivateEndpoint does not exist."
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ }
+ },
+ "definitions": {
+ "AsyncOperationResult": {
+ "type": "object",
+ "description": "Result of a long running operation.",
+ "properties": {
+ "status": {
+ "description": "current status of a long running operation.",
+ "type": "string"
+ },
+ "error": {
+ "description": "Error message containing code, description and details",
+ "$ref": "#/definitions/ErrorMesssage"
+ }
+ }
+ },
+ "ErrorMesssage": {
+ "description": "Error response containing message and code.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "standard error code",
+ "type": "string"
+ },
+ "message": {
+ "description": "standard error description",
+ "type": "string"
+ },
+ "details": {
+ "description": "detailed summary of error",
+ "type": "string"
+ }
+ }
+ },
+ "CertificateListDescription": {
+ "description": "The JSON-serialized array of Certificate objects.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The array of Certificate objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateResponse"
+ }
+ }
+ }
+ },
+ "CertificateBodyDescription": {
+ "description": "The JSON-serialized X509 Certificate.",
+ "type": "object",
+ "properties": {
+ "certificate": {
+ "description": "Base-64 representation of the X509 leaf certificate .cer file or just .pem file content.",
+ "type": "string"
+ }
+ }
+ },
+ "CertificateResponse": {
+ "description": "The X509 Certificate.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "properties of a certificate",
+ "$ref": "#/definitions/CertificateProperties"
+ },
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "description": "The name of the certificate.",
+ "type": "string",
+ "readOnly": true
+ },
+ "etag": {
+ "description": "The entity tag.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "CertificateProperties": {
+ "description": "The description of an X509 CA Certificate.",
+ "type": "object",
+ "properties": {
+ "subject": {
+ "description": "The certificate's subject name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "expiry": {
+ "description": "The certificate's expiration date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "thumbprint": {
+ "description": "The certificate's thumbprint.",
+ "type": "string",
+ "readOnly": true
+ },
+ "isVerified": {
+ "description": "Determines whether certificate has been verified.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "created": {
+ "description": "The certificate's creation date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "updated": {
+ "description": "The certificate's last update date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ }
+ }
+ },
+ "IotDpsSkuInfo": {
+ "type": "object",
+ "description": "List of possible provisioning service SKUs.",
+ "properties": {
+ "name": {
+ "description": "Sku name.",
+ "enum": [
+ "S1"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IotDpsSku",
+ "modelAsString": true
+ }
+ },
+ "tier": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Pricing tier name of the provisioning service."
+ },
+ "capacity": {
+ "format": "int64",
+ "type": "integer",
+ "description": "The number of units to provision"
+ }
+ }
+ },
+ "ProvisioningServiceDescription": {
+ "description": "The description of the provisioning service.",
+ "type": "object",
+ "properties": {
+ "etag": {
+ "description": "The Etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal ETag convention.",
+ "type": "string"
+ },
+ "properties": {
+ "description": "Service specific properties for a provisioning service",
+ "$ref": "#/definitions/IotDpsPropertiesDescription"
+ },
+ "sku": {
+ "description": "Sku info for a provisioning Service.",
+ "$ref": "#/definitions/IotDpsSkuInfo"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "sku",
+ "properties"
+ ]
+ },
+ "IotDpsPropertiesDescription": {
+ "description": "the service specific properties of a provisioning service, including keys, linked iot hubs, current state, and system generated properties such as hostname and idScope",
+ "type": "object",
+ "properties": {
+ "state": {
+ "description": "Current state of the provisioning service.",
+ "enum": [
+ "Activating",
+ "Active",
+ "Deleting",
+ "Deleted",
+ "ActivationFailed",
+ "DeletionFailed",
+ "Transitioning",
+ "Suspending",
+ "Suspended",
+ "Resuming",
+ "FailingOver",
+ "FailoverFailed"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "state",
+ "modelAsString": true
+ }
+ },
+ "publicNetworkAccess": {
+ "type": "string",
+ "description": "Whether requests from Public Network are allowed",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "PublicNetworkAccess"
+ }
+ },
+ "ipFilterRules": {
+ "description": "The IP filter rules.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IpFilterRule"
+ }
+ },
+ "privateEndpointConnections": {
+ "description": "Private endpoint connections created on this IotHub",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "provisioningState": {
+ "description": "The ARM provisioning state of the provisioning service.",
+ "type": "string"
+ },
+ "iotHubs": {
+ "type": "array",
+ "description": "List of IoT hubs associated with this provisioning service.",
+ "items": {
+ "$ref": "#/definitions/IotHubDefinitionDescription"
+ }
+ },
+ "allocationPolicy": {
+ "enum": [
+ "Hashed",
+ "GeoLatency",
+ "Static"
+ ],
+ "type": "string",
+ "description": "Allocation policy to be used by this provisioning service.",
+ "x-ms-enum": {
+ "name": "AllocationPolicy",
+ "modelAsString": true
+ }
+ },
+ "serviceOperationsHostName": {
+ "description": "Service endpoint for provisioning service.",
+ "type": "string",
+ "readOnly": true
+ },
+ "deviceProvisioningHostName": {
+ "type": "string",
+ "description": "Device endpoint for this provisioning service.",
+ "readOnly": true
+ },
+ "idScope": {
+ "type": "string",
+ "description": "Unique identifier of this provisioning service.",
+ "readOnly": true
+ },
+ "authorizationPolicies": {
+ "description": "List of authorization keys for a provisioning service.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRule[AccessRightsDescription]"
+ }
+ }
+ }
+ },
+ "IotHubDefinitionDescription": {
+ "type": "object",
+ "description": "Description of the IoT hub.",
+ "properties": {
+ "applyAllocationPolicy": {
+ "description": "flag for applying allocationPolicy or not for a given iot hub.",
+ "type": "boolean"
+ },
+ "allocationWeight": {
+ "description": "weight to apply for a given iot h.",
+ "format": "int32",
+ "type": "integer"
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Host name of the IoT hub."
+ },
+ "connectionString": {
+ "type": "string",
+ "description": "Connection string of the IoT hub."
+ },
+ "location": {
+ "type": "string",
+ "description": "ARM region of the IoT hub."
+ }
+ },
+ "required": [
+ "connectionString",
+ "location"
+ ]
+ },
+ "IpFilterRule": {
+ "description": "The IP filter rules for a provisioning Service.",
+ "type": "object",
+ "properties": {
+ "filterName": {
+ "description": "The name of the IP filter rule.",
+ "type": "string"
+ },
+ "action": {
+ "description": "The desired action for requests captured by this rule.",
+ "enum": [
+ "Accept",
+ "Reject"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IpFilterActionType",
+ "modelAsString": false
+ }
+ },
+ "ipMask": {
+ "description": "A string that contains the IP address range in CIDR notation for the rule.",
+ "type": "string"
+ },
+ "target": {
+ "description": "Target for requests captured by this rule.",
+ "enum": [
+ "all",
+ "serviceApi",
+ "deviceApi"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IpFilterTargetType",
+ "modelAsString": false
+ }
+ }
+ },
+ "required": [
+ "filterName",
+ "action",
+ "ipMask"
+ ]
+ },
+ "PrivateLinkResources": {
+ "description": "The available private link resources for a provisioning service",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The list of available private link resources for a provisioning service",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GroupIdInformation"
+ }
+ }
+ }
+ },
+ "GroupIdInformation": {
+ "description": "The group information for creating a private endpoint on a provisioning service",
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name.",
+ "pattern": "^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{2,49}[a-zA-Z0-9]$"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "properties": {
+ "description": "The properties for a group information object",
+ "$ref": "#/definitions/GroupIdInformationProperties"
+ }
+ },
+ "required": [
+ "properties"
+ ]
+ },
+ "GroupIdInformationProperties": {
+ "description": "The properties for a group information object",
+ "type": "object",
+ "properties": {
+ "groupId": {
+ "type": "string",
+ "description": "The group id"
+ },
+ "requiredMembers": {
+ "description": "The required members for a specific group id",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "requiredZoneNames": {
+ "description": "The required DNS zones for a specific group id",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "PrivateEndpointConnectionsList": {
+ "description": "The list of private endpoint connections for a provisioning service",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "PrivateEndpointConnection": {
+ "description": "The private endpoint connection of a provisioning service",
+ "x-ms-azure-resource": true,
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name.",
+ "pattern": "^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{2,49}[a-zA-Z0-9]$"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "properties": {
+ "description": "The properties of a private endpoint connection",
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties"
+ }
+ },
+ "required": [
+ "properties"
+ ]
+ },
+ "PrivateEndpointConnectionProperties": {
+ "description": "The properties of a private endpoint connection",
+ "type": "object",
+ "properties": {
+ "privateEndpoint": {
+ "description": "The private endpoint property of a private endpoint connection",
+ "$ref": "#/definitions/PrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "description": "The current state of a private endpoint connection",
+ "$ref": "#/definitions/PrivateLinkServiceConnectionState"
+ }
+ },
+ "required": [
+ "privateLinkServiceConnectionState"
+ ]
+ },
+ "PrivateEndpoint": {
+ "description": "The private endpoint property of a private endpoint connection",
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ }
+ }
+ },
+ "PrivateLinkServiceConnectionState": {
+ "description": "The current state of a private endpoint connection",
+ "type": "object",
+ "properties": {
+ "status": {
+ "description": "The status of a private endpoint connection",
+ "enum": [
+ "Pending",
+ "Approved",
+ "Rejected",
+ "Disconnected"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "PrivateLinkServiceConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "description": {
+ "type": "string",
+ "description": "The description for the current state of a private endpoint connection"
+ },
+ "actionsRequired": {
+ "type": "string",
+ "description": "Actions required for a private endpoint connection"
+ }
+ },
+ "required": [
+ "status",
+ "description"
+ ]
+ },
+ "SharedAccessSignatureAuthorizationRule[AccessRightsDescription]": {
+ "type": "object",
+ "description": "Description of the shared access key.",
+ "properties": {
+ "keyName": {
+ "type": "string",
+ "description": "Name of the key."
+ },
+ "primaryKey": {
+ "type": "string",
+ "description": "Primary SAS key value."
+ },
+ "secondaryKey": {
+ "type": "string",
+ "description": "Secondary SAS key value."
+ },
+ "rights": {
+ "description": "Rights that this key has.",
+ "enum": [
+ "ServiceConfig",
+ "EnrollmentRead",
+ "EnrollmentWrite",
+ "DeviceConnect",
+ "RegistrationStatusRead",
+ "RegistrationStatusWrite"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AccessRightsDescription",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "keyName",
+ "rights"
+ ]
+ },
+ "Resource": {
+ "description": "The common properties of an Azure resource.",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name.",
+ "pattern": "^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{2,49}[a-zA-Z0-9]$"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "location": {
+ "type": "string",
+ "description": "The resource location."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The resource tags."
+ }
+ },
+ "x-ms-azure-resource": true,
+ "required": [
+ "location"
+ ]
+ },
+ "OperationListResult": {
+ "description": "Result of the request to list provisioning service operations. It contains a list of operations and a URL link to get the next set of results.",
+ "properties": {
+ "value": {
+ "description": "Provisioning service operations supported by the Microsoft.Devices resource provider.",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/Operation"
+ }
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "Operation": {
+ "description": "Provisioning Service REST API operation.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Operation name: {provider}/{resource}/{read | write | action | delete}"
+ },
+ "display": {
+ "description": "The object that represents the operation.",
+ "properties": {
+ "provider": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Service provider: Microsoft Devices."
+ },
+ "resource": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource Type: ProvisioningServices."
+ },
+ "operation": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of the operation."
+ }
+ }
+ }
+ }
+ },
+ "ErrorDetails": {
+ "description": "Error details.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "httpStatusCode": {
+ "description": "The HTTP status code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "The error message.",
+ "type": "string",
+ "readOnly": true
+ },
+ "details": {
+ "description": "The error details.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "SharedAccessSignatureAuthorizationRuleListResult": {
+ "type": "object",
+ "description": "List of shared access keys.",
+ "properties": {
+ "value": {
+ "description": "The list of shared access policies.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRule[AccessRightsDescription]"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotDpsSkuDefinitionListResult": {
+ "type": "object",
+ "description": "List of available SKUs.",
+ "properties": {
+ "value": {
+ "description": "The list of SKUs",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IotDpsSkuDefinition"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotDpsSkuDefinition": {
+ "type": "object",
+ "description": "Available SKUs of tier and units.",
+ "properties": {
+ "name": {
+ "description": "Sku name.",
+ "enum": [
+ "S1"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IotDpsSku",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "OperationInputs": {
+ "description": "Input values for operation results call.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the Provisioning Service to check.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "NameAvailabilityInfo": {
+ "type": "object",
+ "description": "Description of name availability.",
+ "properties": {
+ "nameAvailable": {
+ "description": "specifies if a name is available or not",
+ "type": "boolean"
+ },
+ "reason": {
+ "description": "specifies the reason a name is unavailable",
+ "enum": [
+ "Invalid",
+ "AlreadyExists"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "NameUnavailabilityReason",
+ "modelAsString": true
+ }
+ },
+ "message": {
+ "description": "message containing a detailed reason name is unavailable",
+ "type": "string"
+ }
+ }
+ },
+ "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 Provisioning Service instance."
+ },
+ "ProvisioningServiceDescriptionListResult": {
+ "type": "object",
+ "description": "List of provisioning service descriptions.",
+ "properties": {
+ "value": {
+ "description": "List of provisioning service descriptions.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ProvisioningServiceDescription"
+ }
+ },
+ "nextLink": {
+ "description": "the next link",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "VerificationCodeResponse": {
+ "type": "object",
+ "description": "Description of the response of the verification code.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of certificate.",
+ "readOnly": true
+ },
+ "etag": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Request etag."
+ },
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "properties": {
+ "type": "object",
+ "properties": {
+ "verificationCode": {
+ "type": "string",
+ "description": "Verification code."
+ },
+ "subject": {
+ "type": "string",
+ "description": "Certificate subject."
+ },
+ "expiry": {
+ "type": "string",
+ "description": "Code expiry."
+ },
+ "thumbprint": {
+ "type": "string",
+ "description": "Certificate thumbprint."
+ },
+ "isVerified": {
+ "type": "boolean",
+ "description": "Indicate if the certificate is verified by owner of private key."
+ },
+ "created": {
+ "type": "string",
+ "description": "Certificate created time."
+ },
+ "updated": {
+ "type": "string",
+ "description": "Certificate updated time."
+ }
+ }
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "VerificationCodeRequest": {
+ "type": "object",
+ "description": "The JSON-serialized leaf certificate",
+ "properties": {
+ "certificate": {
+ "description": "base-64 representation of X509 certificate .cer file or just .pem file content.",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "subscriptionId": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "The subscription identifier.",
+ "required": true,
+ "type": "string"
+ },
+ "api-version": {
+ "name": "api-version",
+ "in": "query",
+ "description": "The version of the API.",
+ "required": true,
+ "type": "string"
+ },
+ "resourceGroupName": {
+ "name": "resourceGroupName",
+ "description": "The name of the resource group that contains the provisioning service.",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "resourceName": {
+ "name": "resourceName",
+ "in": "path",
+ "description": "The name of the provisioning service.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "groupId": {
+ "name": "groupId",
+ "in": "path",
+ "description": "The name of the private link resource",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "privateEndpointConnectionName": {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "description": "The name of the private endpoint connection",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/deviceprovisioningservices/resource-manager/readme.azureresourceschema.md b/specification/deviceprovisioningservices/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..307ea4b09f20
--- /dev/null
+++ b/specification/deviceprovisioningservices/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,84 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-devices-2020-09-01-preview
+ - tag: schema-devices-2020-03-01
+ - tag: schema-devices-2020-01-01
+ - tag: schema-devices-2018-01-22
+ - tag: schema-devices-2017-11-15
+ - tag: schema-devices-2017-08-21-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-devices-2020-09-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2020-09-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/preview/2020-09-01-preview/iotdps.json
+
+```
+
+### Tag: schema-devices-2020-03-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2020-03-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2020-03-01/iotdps.json
+
+```
+
+### Tag: schema-devices-2020-01-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2020-01-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2020-01-01/iotdps.json
+
+```
+
+### Tag: schema-devices-2018-01-22 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2018-01-22' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2018-01-22/iotdps.json
+
+```
+
+### Tag: schema-devices-2017-11-15 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2017-11-15' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2017-11-15/iotdps.json
+
+```
+
+### Tag: schema-devices-2017-08-21-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2017-08-21-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/preview/2017-08-21-preview/iotdps.json
+
+```
diff --git a/specification/deviceprovisioningservices/resource-manager/readme.md b/specification/deviceprovisioningservices/resource-manager/readme.md
index 9d6a860f4177..1c2ab28cd471 100644
--- a/specification/deviceprovisioningservices/resource-manager/readme.md
+++ b/specification/deviceprovisioningservices/resource-manager/readme.md
@@ -4,10 +4,10 @@
This is the AutoRest configuration file for Device Provisioning Services.
-
-
---
+
## Getting Started
+
To build the SDK for DeviceProvisioningServices, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run:
> `autorest`
@@ -15,16 +15,36 @@ To build the SDK for DeviceProvisioningServices, simply [Install AutoRest](https
To see additional help and options, run:
> `autorest --help`
+
---
## Configuration
### Basic Information
+
These are the global settings for the API.
``` yaml
openapi-type: arm
-tag: package-2018-01
+tag: package-preview-2020-09
+```
+
+
+### Tag: package-preview-2020-09
+
+These settings apply only when `--tag=package-preview-2020-09` is specified on the command line.
+
+```yaml $(tag) == 'package-preview-2020-09'
+input-file:
+ - Microsoft.Devices/preview/2020-09-01-preview/iotdps.json
+```
+### Tag: package-2020-03
+
+These settings apply only when `--tag=package-2020-03` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-03'
+input-file:
+ - Microsoft.Devices/stable/2020-03-01/iotdps.json
```
### Tag: package-2017-08
@@ -64,8 +84,8 @@ input-file:
```
---
-# Code Generation
+# Code Generation
## Swagger to SDK
@@ -80,9 +100,11 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js deviceprovisioningservices/resource-manager
```
-
## C#
These settings apply only when `--csharp` is specified on the command line.
@@ -113,11 +135,13 @@ python:
package-name: azure-mgmt-iothubprovisioningservices
clear-output-folder: true
```
+
``` yaml $(python) && $(python-mode) == 'update'
python:
no-namespace-folders: true
output-folder: $(python-sdks-folder)/iothub/azure-mgmt-iothubprovisioningservices/azure/mgmt/iothubprovisioningservices
```
+
``` yaml $(python) && $(python-mode) == 'create'
python:
basic-setup-py: true
@@ -190,32 +214,7 @@ regenerate-manager: true
generate-interface: true
```
+## AzureResourceSchema
-
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Devices/preview/2017-08-21-preview/iotdps.json
- - $(this-folder)/Microsoft.Devices/stable/2017-11-15/iotdps.json
- - $(this-folder)/Microsoft.Devices/stable/2018-01-22/iotdps.json
- - $(this-folder)/Microsoft.Devices/stable/2020-01-01/iotdps.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/devops/resource-manager/readme.azureresourceschema.md b/specification/devops/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..f9ba7f8d1279
--- /dev/null
+++ b/specification/devops/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-devops-2019-07-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-devops-2019-07-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-devops-2019-07-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DevOps/preview/2019-07-01-preview/devops.json
+
+```
diff --git a/specification/devops/resource-manager/readme.md b/specification/devops/resource-manager/readme.md
index bf7b56068c9c..cc8c568e45df 100644
--- a/specification/devops/resource-manager/readme.md
+++ b/specification/devops/resource-manager/readme.md
@@ -59,6 +59,9 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_devops']
- repo: azure-cli-extensions
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js devops/resource-manager
```
## Go
@@ -81,29 +84,9 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
See configuration in [readme.csharp.md](./readme.csharp.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.DevOps/preview/2019-07-01-preview/devops.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
## trenton
diff --git a/specification/devspaces/resource-manager/readme.azureresourceschema.md b/specification/devspaces/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..30adf4995497
--- /dev/null
+++ b/specification/devspaces/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-devspaces-2019-04-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-devspaces-2019-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devspaces-2019-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DevSpaces/stable/2019-04-01/devspaces.json
+
+```
diff --git a/specification/devspaces/resource-manager/readme.md b/specification/devspaces/resource-manager/readme.md
index 9bd342062655..6444496e7006 100644
--- a/specification/devspaces/resource-manager/readme.md
+++ b/specification/devspaces/resource-manager/readme.md
@@ -55,6 +55,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-python
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js devspaces/resource-manager
```
## C#
@@ -111,29 +114,9 @@ regenerate-manager: true
generate-interface: true
```
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.DevSpaces/stable/2019-04-01/devspaces.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
## Suppression
``` yaml
diff --git a/specification/devtestlabs/resource-manager/readme.azureresourceschema.md b/specification/devtestlabs/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..aac574024db7
--- /dev/null
+++ b/specification/devtestlabs/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,48 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-devtestlab-2018-09-15
+ - tag: schema-devtestlab-2016-05-15
+ - tag: schema-devtestlab-2015-05-21-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-devtestlab-2018-09-15 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devtestlab-2018-09-15' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DevTestLab/stable/2018-09-15/DTL.json
+
+```
+
+### Tag: schema-devtestlab-2016-05-15 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devtestlab-2016-05-15' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DevTestLab/stable/2016-05-15/DTL.json
+
+```
+
+### Tag: schema-devtestlab-2015-05-21-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-devtestlab-2015-05-21-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DevTestLab/preview/2015-05-21-preview/DTL.json
+
+```
diff --git a/specification/devtestlabs/resource-manager/readme.md b/specification/devtestlabs/resource-manager/readme.md
index 1e4ac41bae02..48c43e2caf60 100644
--- a/specification/devtestlabs/resource-manager/readme.md
+++ b/specification/devtestlabs/resource-manager/readme.md
@@ -78,6 +78,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_devtestlabs']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js devtestlabs/resource-manager
```
@@ -130,29 +133,7 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.DevTestLab/stable/2018-09-15/DTL.json
- - $(this-folder)/Microsoft.DevTestLab/stable/2016-05-15/DTL.json
- - $(this-folder)/Microsoft.DevTestLab/preview/2015-05-21-preview/DTL.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/digitaltwins/data-plane/Microsoft.DigitalTwins/preview/2020-05-31-preview/digitaltwins.json b/specification/digitaltwins/data-plane/Microsoft.DigitalTwins/preview/2020-05-31-preview/digitaltwins.json
index b17bda728464..fe035fde82aa 100644
--- a/specification/digitaltwins/data-plane/Microsoft.DigitalTwins/preview/2020-05-31-preview/digitaltwins.json
+++ b/specification/digitaltwins/data-plane/Microsoft.DigitalTwins/preview/2020-05-31-preview/digitaltwins.json
@@ -48,7 +48,7 @@
}
],
"responses": {
- "200": {
+ "201": {
"description": "Success",
"schema": {
"$ref": "#/definitions/NonPagedModelDataCollection"
diff --git a/specification/digitaltwins/data-plane/Microsoft.DigitalTwins/preview/2020-05-31-preview/examples/ModelAdd.json b/specification/digitaltwins/data-plane/Microsoft.DigitalTwins/preview/2020-05-31-preview/examples/ModelAdd.json
index b376ddb14860..b8b2b44eace4 100644
--- a/specification/digitaltwins/data-plane/Microsoft.DigitalTwins/preview/2020-05-31-preview/examples/ModelAdd.json
+++ b/specification/digitaltwins/data-plane/Microsoft.DigitalTwins/preview/2020-05-31-preview/examples/ModelAdd.json
@@ -31,7 +31,7 @@
"api-version": "2020-05-31-preview"
},
"responses": {
- "200": {
+ "201": {
"body": [
{
"id": "dtmi:com:example:Sample;1",
diff --git a/specification/digitaltwins/resource-manager/Microsoft.DigitalTwins/stable/2020-10-31/digitaltwins.json b/specification/digitaltwins/resource-manager/Microsoft.DigitalTwins/stable/2020-10-31/digitaltwins.json
new file mode 100644
index 000000000000..a0d33dd14c94
--- /dev/null
+++ b/specification/digitaltwins/resource-manager/Microsoft.DigitalTwins/stable/2020-10-31/digitaltwins.json
@@ -0,0 +1,1162 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-10-31",
+ "title": "AzureDigitalTwinsManagementClient",
+ "description": "Azure Digital Twins Client for managing DigitalTwinsInstance"
+ },
+ "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.DigitalTwins/digitalTwinsInstances/{resourceName}": {
+ "get": {
+ "tags": [
+ "DigitalTwinsInstance"
+ ],
+ "description": "Get DigitalTwinsInstances resource.",
+ "operationId": "DigitalTwins_Get",
+ "x-ms-examples": {
+ "Get a DigitalTwinsInstance resource": {
+ "$ref": "./examples/DigitalTwinsGet_example.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains all the non-security properties of the DigitalTwinsInstance. Security-related properties are set to null.",
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsDescription"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "DigitalTwinsInstance"
+ ],
+ "description": "Create or update the metadata of a DigitalTwinsInstance. The usual pattern to modify a property is to retrieve the DigitalTwinsInstance and security metadata, and then combine them with the modified values in a new body to update the DigitalTwinsInstance.",
+ "operationId": "DigitalTwins_CreateOrUpdate",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Put a DigitalTwinsInstance resource": {
+ "$ref": "./examples/DigitalTwinsPut_example.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "digitalTwinsCreate",
+ "in": "body",
+ "description": "The DigitalTwinsInstance and security metadata.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsDescription"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is returned as a response when the resource already exists and was updated successfully.",
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsDescription"
+ }
+ },
+ "201": {
+ "description": "Created - Put request accepted; the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsDescription"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "DigitalTwinsInstance"
+ ],
+ "description": "Update metadata of DigitalTwinsInstance.",
+ "operationId": "DigitalTwins_Update",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Patch a DigitalTwinsInstance resource": {
+ "$ref": "./examples/DigitalTwinsPatch_example.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "digitalTwinsPatchDescription",
+ "in": "body",
+ "description": "The DigitalTwinsInstance and security metadata.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsPatchDescription"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is returned as a response to the status polling request for the create or update operation. The body contains the resource representation that indicates a transitional provisioning state.",
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsDescription"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DigitalTwinsInstance"
+ ],
+ "description": "Delete a DigitalTwinsInstance.",
+ "operationId": "DigitalTwins_Delete",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete a DigitalTwinsInstance resource": {
+ "$ref": "./examples/DigitalTwinsDelete_example.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Returned if the operation was canceled or failed.",
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsDescription"
+ }
+ },
+ "202": {
+ "description": "Accepted - Delete request accepted; the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsDescription"
+ }
+ },
+ "204": {
+ "description": "Returned when the long running delete operation has finished, or the Digital Twins instance does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DigitalTwins/digitalTwinsInstances/{resourceName}/endpoints": {
+ "get": {
+ "tags": [
+ "Endpoints"
+ ],
+ "description": "Get DigitalTwinsInstance Endpoints.",
+ "operationId": "DigitalTwinsEndpoint_List",
+ "x-ms-examples": {
+ "Get a DigitalTwinsInstance endpoints": {
+ "$ref": "./examples/DigitalTwinsEndpointsGet_example.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains all the non-security properties of the DigitalTwinsInstance. Security-related properties are set to null.",
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsEndpointResourceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DigitalTwins/digitalTwinsInstances/{resourceName}/endpoints/{endpointName}": {
+ "get": {
+ "tags": [
+ "Endpoints"
+ ],
+ "description": "Get DigitalTwinsInstances Endpoint.",
+ "operationId": "DigitalTwinsEndpoint_Get",
+ "x-ms-examples": {
+ "Get a DigitalTwinsInstance endpoint": {
+ "$ref": "./examples/DigitalTwinsEndpointGet_example.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/endpointName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains all the non-security properties of the DigitalTwinsInstance. Security-related properties are set to null.",
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsEndpointResource"
+ }
+ },
+ "default": {
+ "description": "Default error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Endpoints"
+ ],
+ "description": "Create or update DigitalTwinsInstance endpoint.",
+ "operationId": "DigitalTwinsEndpoint_CreateOrUpdate",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Put a DigitalTwinsInstance resource": {
+ "$ref": "./examples/DigitalTwinsEndpointPut_example.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/endpointName"
+ },
+ {
+ "name": "endpointDescription",
+ "in": "body",
+ "description": "The DigitalTwinsInstance endpoint metadata and security metadata.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsEndpointResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is returned as a response to the status polling request for the create or update operation. The body contains the resource representation that indicates a transitional provisioning state.",
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsEndpointResource"
+ }
+ },
+ "201": {
+ "description": "Created - Put request accepted; the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsEndpointResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Endpoints"
+ ],
+ "description": "Delete a DigitalTwinsInstance endpoint.",
+ "operationId": "DigitalTwinsEndpoint_Delete",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete a DigitalTwinsInstance endpoint": {
+ "$ref": "./examples/DigitalTwinsEndpointDelete_example.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/endpointName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Returned if the operation was canceled or failed.",
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsEndpointResource"
+ }
+ },
+ "202": {
+ "description": "Accepted - Delete request accepted; the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsEndpointResource"
+ }
+ },
+ "204": {
+ "description": "Returned when the long running delete operation has finished, or the egress endpoint does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DigitalTwins/digitalTwinsInstances": {
+ "get": {
+ "tags": [
+ "DigitalTwinsInstance"
+ ],
+ "description": "Get all the DigitalTwinsInstances in a subscription.",
+ "operationId": "DigitalTwins_List",
+ "x-ms-examples": {
+ "Get DigitalTwinsInstance resources by subscription": {
+ "$ref": "./examples/DigitalTwinsList_example.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the DigitalTwinsInstances in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsDescriptionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DigitalTwins/digitalTwinsInstances": {
+ "get": {
+ "tags": [
+ "DigitalTwinsInstance"
+ ],
+ "description": "Get all the DigitalTwinsInstances in a resource group.",
+ "operationId": "DigitalTwins_ListByResourceGroup",
+ "x-ms-examples": {
+ "Get DigitalTwinsInstance resources by resource group": {
+ "$ref": "./examples/DigitalTwinsListByResourceGroup_example.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the DigitalTwinsInstances in the resource group. If more data is available, the body will contain a link to the next page of items (nextLink).",
+ "schema": {
+ "$ref": "#/definitions/DigitalTwinsDescriptionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.DigitalTwins/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Lists all of the available DigitalTwins service REST API operations.",
+ "operationId": "Operations_List",
+ "x-ms-examples": {
+ "Get available operations": {
+ "$ref": "./examples/DigitalTwinsOperationsList_example.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DigitalTwins/locations/{location}/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "CheckNameAvailability"
+ ],
+ "description": "Check if a DigitalTwinsInstance name is available.",
+ "operationId": "DigitalTwins_CheckNameAvailability",
+ "x-ms-examples": {
+ "Check name Availability": {
+ "$ref": "./examples/DigitalTwinsCheckNameAvailability_example.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/location"
+ },
+ {
+ "name": "digitalTwinsInstanceCheckName",
+ "in": "body",
+ "description": "Set the name parameter in the DigitalTwinsInstanceCheckName structure to the name of the DigitalTwinsInstance to check.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CheckNameRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized response that specifies whether the DigitalTwins service name is available. If the name is not available, the body contains the reason.",
+ "schema": {
+ "$ref": "#/definitions/CheckNameResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "DigitalTwinsProperties": {
+ "description": "The properties of a DigitalTwinsInstance.",
+ "type": "object",
+ "properties": {
+ "createdTime": {
+ "description": "Time when DigitalTwinsInstance was created.",
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time"
+ },
+ "lastUpdatedTime": {
+ "description": "Time when DigitalTwinsInstance was updated.",
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time"
+ },
+ "provisioningState": {
+ "description": "The provisioning state.",
+ "enum": [
+ "Provisioning",
+ "Deleting",
+ "Succeeded",
+ "Failed",
+ "Canceled",
+ "Deleted",
+ "Warning",
+ "Suspending",
+ "Restoring",
+ "Moving"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "provisioningState",
+ "modelAsString": true
+ }
+ },
+ "hostName": {
+ "description": "Api endpoint to work with DigitalTwinsInstance.",
+ "type": "string",
+ "x-nullable": true,
+ "readOnly": true
+ }
+ }
+ },
+ "DigitalTwinsDescription": {
+ "description": "The description of the DigitalTwins service.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "DigitalTwins instance properties.",
+ "$ref": "#/definitions/DigitalTwinsProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/DigitalTwinsResource"
+ }
+ ]
+ },
+ "DigitalTwinsPatchDescription": {
+ "description": "The description of the DigitalTwins service.",
+ "type": "object",
+ "properties": {
+ "tags": {
+ "description": "Instance tags",
+ "type": "object",
+ "x-nullable": true,
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "DigitalTwinsResource": {
+ "description": "The common properties of a DigitalTwinsInstance.",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name.",
+ "pattern": "^(?!-)[A-Za-z0-9-]{3,63}(?`.
+
+### Tag: schema-digitaltwins-2020-10-31 and azureresourceschema
+
+``` yaml $(tag) == 'schema-digitaltwins-2020-10-31' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DigitalTwins/stable/2020-10-31/digitaltwins.json
+
+```
+
+### Tag: schema-digitaltwins-2020-03-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-digitaltwins-2020-03-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DigitalTwins/preview/2020-03-01-preview/digitaltwins.json
+
+```
diff --git a/specification/digitaltwins/resource-manager/readme.go.md b/specification/digitaltwins/resource-manager/readme.go.md
index 8da406275cdd..78e8b74c463d 100644
--- a/specification/digitaltwins/resource-manager/readme.go.md
+++ b/specification/digitaltwins/resource-manager/readme.go.md
@@ -6,15 +6,27 @@ These settings apply only when `--go` is specified on the command line.
go:
license-header: MICROSOFT_APACHE_NO_VERSION
clear-output-folder: true
+ namespace: digitaltwins
```
### Go multi-api
``` yaml $(go) && $(multiapi)
batch:
+ - tag: package-2020-10
- tag: package-2020-03-01-preview
```
+### Tag: package-2020-10 and go
+
+These settings apply only when `--tag=package-2020-10 --go` is specified on the command line.
+Please also specify `--go-sdks-folder=digitaltwins`.
+
+```yaml $(tag) == 'package-2020-10' && $(go)
+namespace: digitaltwins
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2020-10-31/$(namespace)
+```
+
### Tag: package-2020-03-01-preview and go
These settings apply only when `--tag=package-2020-03-01-preview --go` is specified on the command line.
diff --git a/specification/digitaltwins/resource-manager/readme.java.md b/specification/digitaltwins/resource-manager/readme.java.md
index 14298c23e4ee..e85c4d26fdcb 100644
--- a/specification/digitaltwins/resource-manager/readme.java.md
+++ b/specification/digitaltwins/resource-manager/readme.java.md
@@ -16,9 +16,23 @@ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-digitaltwins
``` yaml $(java) && $(multiapi)
batch:
+ - tag: package-2020-10
- tag: package-2020-03-01-preview
```
+### Tag: package-2020-10 and java
+
+These settings apply only when `--tag=package-2020-10 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2020-10' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.digitaltwins.v2020_10_31
+ output-folder: $(azure-libraries-for-java-folder)/sdk/digitaltwins/mgmt-v2020_10_31
+regenerate-manager: true
+generate-interface: true
+```
+
### Tag: package-2020-03-01-preview and java
These settings apply only when `--tag=package-2020-03-01-preview --java` is specified on the command line.
diff --git a/specification/digitaltwins/resource-manager/readme.md b/specification/digitaltwins/resource-manager/readme.md
index dcdba572a32c..9b4edd43b37d 100644
--- a/specification/digitaltwins/resource-manager/readme.md
+++ b/specification/digitaltwins/resource-manager/readme.md
@@ -26,7 +26,16 @@ These are the global settings for the digitaltwins.
``` yaml
openapi-type: arm
-tag: package-2020-03-01-preview
+tag: package-2020-10
+```
+
+### Tag: package-2020-10
+
+These settings apply only when `--tag=package-2020-10` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-10'
+input-file:
+ - Microsoft.DigitalTwins/stable/2020-10-31/digitaltwins.json
```
### Tag: package-2020-03-01-preview
@@ -50,12 +59,17 @@ This is not used by Autorest itself.
``` yaml $(swagger-to-sdk)
swagger-to-sdk:
- repo: azure-sdk-for-python
+ after_scripts:
+ - python ./scripts/multiapi_init_gen.py azure-mgmt-digitaltwins
- repo: azure-sdk-for-java
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_digitaltwins']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js digitaltwins/resource-manager
```
## Go
@@ -82,29 +96,9 @@ See configuration in [readme.csharp.md](./readme.csharp.md)
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.DigitalTwins/preview/2020-03-01-preview/digitaltwins.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
## Suppression
@@ -116,4 +110,28 @@ directive:
reason: |-
Flattening properties generates SDK (using autorest) that does not support polymorphism.
In this case DigitalTwinsEndpointResourceProperties is used as a base class for EventGrid, EventHub and ServiceBus. Flattening DigitalTwinsEndpointResourceProperties removes the link between DigitalTwinsEndpointResource and resources above.
+ - suppress: TrackedResourceListByImmediateParent
+ where: $.definitions
+ from: digitaltwins.json
+ reason: 'This is a proxy resource, not a tracked resource.'
+ - suppress: EnumInsteadOfBoolean
+ where: $.definitions.CheckNameResult.properties.nameAvailable
+ from: digitaltwins.json
+ reason: The value will always be a boolean.
+ - suppress: SECRET_PROPERTY
+ where: '$.definitions.ServiceBus.allOf["1"].properties.primaryConnectionString'
+ from: digitaltwins.json
+ reason: 'Secrets are obfuscated on GETs. E.g., "Endpoint=sb://mysb.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=***". This is to allow customers to identify the namespace of the resource.'
+ - suppress: SECRET_PROPERTY
+ where: '$.definitions.ServiceBus.allOf["1"].properties.secondaryConnectionString'
+ from: digitaltwins.json
+ reason: Secrets are obfuscated on read.
+ - suppress: SECRET_PROPERTY
+ where: '$.definitions.EventHub.allOf["1"].properties.connectionStringPrimaryKey'
+ from: digitaltwins.json
+ reason: Secrets are obfuscated on read.
+ - suppress: SECRET_PROPERTY
+ where: '$.definitions.EventHub.allOf["1"].properties.connectionStringSecondaryKey'
+ from: digitaltwins.json
+ reason: Secrets are obfuscated on read.
```
diff --git a/specification/digitaltwins/resource-manager/readme.python.md b/specification/digitaltwins/resource-manager/readme.python.md
index 24e1b64ff0e7..b6ac8b85de37 100644
--- a/specification/digitaltwins/resource-manager/readme.python.md
+++ b/specification/digitaltwins/resource-manager/readme.python.md
@@ -10,7 +10,6 @@ python:
payload-flattening-threshold: 2
namespace: azure.mgmt.digitaltwins
package-name: azure-mgmt-digitaltwins
- package-version: 2020-03-01-preview
clear-output-folder: true
```
@@ -19,3 +18,35 @@ python:
no-namespace-folders: true
output-folder: $(python-sdks-folder)/digitaltwins/azure-mgmt-digitaltwins/azure/mgmt/digitaltwins
```
+
+### Python multi-api
+
+Generate all API versions currently shipped for this package
+
+```yaml $(python) && $(multiapi)
+batch:
+ - tag: package-2020-10
+ - tag: package-2020-03-01-preview
+```
+
+### Tag: package-2020-10 and python
+
+These settings apply only when `--tag=package-2020-10 --python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-10' && $(python)
+python:
+ namespace: azure.mgmt.digitaltwins.v2020_10_31
+ output-folder: $(python-sdks-folder)/digitaltwins/azure-mgmt-digitaltwins/azure/mgmt/digitaltwins/v2020_10_31_preview
+```
+
+### Tag: package-2020-03-01-preview and python
+
+These settings apply only when `--tag=package-2020-03-01-preview --python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+
+``` yaml $(tag) == 'package-2020-03-01-preview' && $(python)
+python:
+ namespace: azure.mgmt.digitaltwins.v2020_03_01_preview
+ output-folder: $(python-sdks-folder)/digitaltwins/azure-mgmt-digitaltwins/azure/mgmt/digitaltwins/v2020_03_01_preview
+```
diff --git a/specification/digitaltwins/resource-manager/readme.ruby.md b/specification/digitaltwins/resource-manager/readme.ruby.md
index 31f23b70c07d..ea228f0d9175 100644
--- a/specification/digitaltwins/resource-manager/readme.ruby.md
+++ b/specification/digitaltwins/resource-manager/readme.ruby.md
@@ -4,10 +4,20 @@ These settings apply only when `--ruby` is specified on the command line.
```yaml
package-name: azure_mgmt_digitaltwins
-package-version: 2020-03-01-preview
+package-version: 2020-10-31
azure-arm: true
```
+### Tag: package-2020-10 and ruby
+
+These settings apply only when `--tag=package-2020-10 --ruby` is specified on the command line.
+Please also specify `--ruby-sdks-folder=`.
+
+```yaml $(tag) == 'package-2020-10' && $(ruby)
+namespace: Microsoft.DigitalTwins
+output-folder: $(ruby-sdks-folder)/digitaltwins
+```
+
### Tag: package-2020-03-01-preview and ruby
These settings apply only when `--tag=package-2020-03-01-preview --ruby` is specified on the command line.
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/controller.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/controller.json
new file mode 100644
index 000000000000..c021fb9165bc
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/controller.json
@@ -0,0 +1,506 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-08-08-preview",
+ "title": "DNC",
+ "description": "DNC web api provides way to create, get and delete dnc controller"
+ },
+ "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.DelegatedNetwork/controller/{resourceName}": {
+ "get": {
+ "description": "Gets details about the specified dnc controller.",
+ "x-ms-examples": {
+ "Get details of a controller": {
+ "$ref": "./examples/getController.json"
+ }
+ },
+ "tags": [
+ "Controller"
+ ],
+ "operationId": "Controller_GetDetails",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/DelegatedController"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "description": "Create a dnc controller",
+ "x-ms-examples": {
+ "Create controller": {
+ "$ref": "./examples/putController.json"
+ }
+ },
+ "tags": [
+ "Controller"
+ ],
+ "operationId": "Controller_Create",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DelegatedController"
+ },
+ "description": "controller type parameters"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The operation completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/DelegatedController"
+ }
+ },
+ "201": {
+ "description": "InProgress. The operation is still in progress.",
+ "schema": {
+ "$ref": "#/definitions/DelegatedController"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "description": "Deletes the DNC controller",
+ "x-ms-examples": {
+ "Delete controller": {
+ "$ref": "./examples/deleteController.json"
+ }
+ },
+ "tags": [
+ "Controller"
+ ],
+ "operationId": "Controller_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$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/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "description": "Update dnc controller",
+ "x-ms-examples": {
+ "update controller": {
+ "$ref": "./examples/patchController.json"
+ }
+ },
+ "tags": [
+ "Controller"
+ ],
+ "operationId": "Controller_Patch",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ControllerResourceUpdateParameters"
+ },
+ "description": "controller type parameters"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The operation completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/DelegatedController"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DelegatedNetwork/controllers": {
+ "get": {
+ "tags": [
+ "DelegatedControllers"
+ ],
+ "description": "Get all the delegatedController resources in a subscription.",
+ "operationId": "DelegatedNetwork_ListBySubscription",
+ "x-ms-examples": {
+ "Get DelegatedController resources by subscription": {
+ "$ref": "./examples/controllerListBySub.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the DelegatedControllers in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/DelegatedControllers"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DelegatedNetwork/controllers": {
+ "get": {
+ "tags": [
+ "DelegatedControllers"
+ ],
+ "description": "Get all the delegatedController resources in a resource group.",
+ "operationId": "DelegatedNetwork_ListByResourceGroup",
+ "x-ms-examples": {
+ "Get DelegatedNetwork resources by resource group": {
+ "$ref": "./examples/controllerListByRG.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the delegatedControllers in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/DelegatedControllers"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ControllerResource": {
+ "description": "Represents an instance of a resource.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "An identifier that represents the resource."
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the resource."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The type of resource."
+ },
+ "location": {
+ "type": "string",
+ "description": "Location of the resource."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The resource tags."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "ControllerResourceUpdateParameters": {
+ "description": "Parameters for updating a resource.",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The resource tags."
+ }
+ }
+ },
+ "DelegatedControllers": {
+ "description": "An array of Delegated controller resources.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DelegatedController"
+ },
+ "description": "An array of Delegated controller resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of controllers.",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "value"
+ ]
+ },
+ "DelegatedController": {
+ "description": "Represents an instance of a DNC controller.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ControllerResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "readOnly": true,
+ "$ref": "#/definitions/DelegatedControllerProperties",
+ "description": "Properties of the provision operation request."
+ }
+ }
+ },
+ "DelegatedControllerProperties": {
+ "description": "Properties of Delegated controller resource.",
+ "type": "object",
+ "properties": {
+ "resourceGuid": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource guid."
+ },
+ "provisioningState": {
+ "type": "string",
+ "enum": [
+ "Deleting",
+ "Succeeded",
+ "Failed",
+ "Provisioning"
+ ],
+ "x-ms-enum": {
+ "name": "ControllerState",
+ "modelAsString": true
+ },
+ "readOnly": true,
+ "description": "The current state of dnc controller resource."
+ },
+ "dncAppId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "dnc application id should be used by customer to authenticate with dnc gateway."
+ },
+ "dncTenantId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "tenant id of dnc application id"
+ },
+ "dncEndpoint": {
+ "type": "string",
+ "readOnly": true,
+ "description": "dnc endpoint url that customers can use to connect to"
+ }
+ }
+ },
+ "ErrorResponse": {
+ "description": "Error response.",
+ "properties": {
+ "error": {
+ "description": "Error description",
+ "$ref": "#/definitions/ErrorDefinition"
+ }
+ }
+ },
+ "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": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A unique identifier for a 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": "The client API version."
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[-\\w\\._\\(\\)]+$",
+ "minLength": 1,
+ "maxLength": 90,
+ "x-ms-parameter-location": "method",
+ "description": "The name of the Azure Resource group of which a given DelegatedNetwork resource is part. This name must be at least 1 character in length, and no more than 90."
+ },
+ "resourceNameParameter": {
+ "name": "resourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-z][a-z0-9]*$",
+ "minLength": 3,
+ "maxLength": 63,
+ "x-ms-parameter-location": "method",
+ "description": "The name of the resource. It must be a minimum of 3 characters, and a maximum of 63."
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/delegatedSubnets.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/delegatedSubnets.json
new file mode 100644
index 000000000000..227454d9adc8
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/delegatedSubnets.json
@@ -0,0 +1,520 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-08-08-preview",
+ "title": "DNC",
+ "description": "DNC web api provides way to create, get and delete dnc controller"
+ },
+ "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.DelegatedNetwork/delegatedSubnets/{resourceName}": {
+ "get": {
+ "description": "Gets details about the specified dnc DelegatedSubnet Link.",
+ "x-ms-examples": {
+ "Get details of a delegated subnet": {
+ "$ref": "./examples/getDelegatedSubnet.json"
+ }
+ },
+ "tags": [
+ "DNCDelegatedSubnet"
+ ],
+ "operationId": "DelegatedSubnetService_GetDetails",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/DelegatedSubnet"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "description": "Put delegated subnet resource",
+ "x-ms-examples": {
+ "put delegated subnet": {
+ "$ref": "./examples/putDelegatedSubnet.json"
+ }
+ },
+ "tags": [
+ "DNCDelegatedSubnet"
+ ],
+ "operationId": "DelegatedSubnetService_PutDetails",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DelegatedSubnet"
+ },
+ "description": "Delegated subnet details."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/DelegatedSubnet"
+ }
+ },
+ "201": {
+ "description": "InProgress. The operation is still in progress",
+ "schema": {
+ "$ref": "#/definitions/DelegatedSubnet"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "description": "Patch delegated subnet resource",
+ "x-ms-examples": {
+ "patch delegated subnet": {
+ "$ref": "./examples/patchDelegatedSubnet.json"
+ }
+ },
+ "tags": [
+ "DNCDelegatedSubnet"
+ ],
+ "operationId": "DelegatedSubnetService_PatchDetails",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ResourceUpdateParameters"
+ },
+ "description": "Delegated subnet details."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/DelegatedSubnet"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "description": "Delete dnc DelegatedSubnet.",
+ "x-ms-examples": {
+ "delete delegated subnet": {
+ "$ref": "./examples/deleteDelegatedSubnet.json"
+ }
+ },
+ "tags": [
+ "DNCDelegatedSubnet"
+ ],
+ "operationId": "DelegatedSubnetService_DeleteDetails",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$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/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DelegatedNetwork/delegatedSubnets": {
+ "get": {
+ "tags": [
+ "DelegatedSubnets"
+ ],
+ "description": "Get all the DelegatedSubnets resources in a subscription.",
+ "operationId": "DelegatedSubnetService_ListBySubscription",
+ "x-ms-examples": {
+ "Get DelegatedSubnets resources by subscription": {
+ "$ref": "./examples/delegatedSubnetListBySub.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the DelegatedSubnets in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/DelegatedSubnets"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DelegatedNetwork/delegatedSubnets": {
+ "get": {
+ "tags": [
+ "DelegatedSubnets"
+ ],
+ "description": "Get all the DelegatedSubnets resources in a resource group.",
+ "operationId": "DelegatedSubnetService_ListByResourceGroup",
+ "x-ms-examples": {
+ "Get DelegatedSubnets resources by resource group": {
+ "$ref": "./examples/delegatedSubnetListByRG.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the DelegatedSubnets in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/DelegatedSubnets"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "DelegatedSubnetResource": {
+ "description": "Represents an instance of a resource.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "An identifier that represents the resource."
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the resource."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The type of resource."
+ },
+ "location": {
+ "type": "string",
+ "description": "Location of the resource."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The resource tags."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "ResourceUpdateParameters": {
+ "description": "Parameters for updating a resource.",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The resource tags."
+ }
+ }
+ },
+ "DelegatedSubnets": {
+ "description": "An array of DelegatedSubnet resources.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DelegatedSubnet"
+ },
+ "description": "An array of DelegatedSubnet resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of DelegatedSubnet resources.",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "value"
+ ]
+ },
+ "DelegatedSubnet": {
+ "description": "Represents an instance of a orchestrator.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/DelegatedSubnetResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "readOnly": true,
+ "$ref": "#/definitions/DelegatedSubnetProperties",
+ "description": "Properties of the provision operation request."
+ }
+ }
+ },
+ "DelegatedSubnetProperties": {
+ "description": "Properties of delegated subnet",
+ "type": "object",
+ "properties": {
+ "resourceGuid": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource guid."
+ },
+ "provisioningState": {
+ "type": "string",
+ "enum": [
+ "Deleting",
+ "Succeeded",
+ "Failed",
+ "Provisioning"
+ ],
+ "x-ms-enum": {
+ "name": "DelegatedSubnetState",
+ "modelAsString": true
+ },
+ "readOnly": true,
+ "description": "The current state of dnc delegated subnet resource."
+ },
+ "subnetDetails": {
+ "description": "orchestrator details",
+ "$ref": "#/definitions/subnetDetails"
+ },
+ "controllerDetails": {
+ "description": "controller details",
+ "$ref": "#/definitions/controllerDetails"
+ }
+ }
+ },
+ "subnetDetails": {
+ "description": "Properties of orchestrator",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "subnet arm resource id",
+ "type": "string"
+ }
+ }
+ },
+ "controllerDetails": {
+ "description": "controller details",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "controller arm resource id",
+ "type": "string"
+ }
+ }
+ },
+ "ErrorResponse": {
+ "description": "Error response.",
+ "properties": {
+ "error": {
+ "description": "Error description",
+ "$ref": "#/definitions/ErrorDefinition"
+ }
+ }
+ },
+ "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": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A unique identifier for a 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": "The client API version."
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[-\\w\\._\\(\\)]+$",
+ "minLength": 1,
+ "maxLength": 90,
+ "x-ms-parameter-location": "method",
+ "description": "The name of the Azure Resource group of which a given DelegatedNetwork resource is part. This name must be at least 1 character in length, and no more than 90."
+ },
+ "resourceNameParameter": {
+ "name": "resourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-z][a-z0-9]*$",
+ "minLength": 3,
+ "maxLength": 63,
+ "x-ms-parameter-location": "method",
+ "description": "The name of the resource. It must be a minimum of 3 characters, and a maximum of 63."
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/controllerListByRG.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/controllerListByRG.json
new file mode 100644
index 000000000000..a81f2d4d5193
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/controllerListByRG.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "50016170-c839-41ba-a724-51e9df440b9e",
+ "api-version": "2020-08-08-preview",
+ "resourceGroupName": "testRG"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/testcontroller",
+ "location": "West US",
+ "name": "testcontroller",
+ "type": "Microsoft.DelegatedNetwork/controller",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "5a82cbcf-e8ea-4175-ac2b-ad36a73f9801",
+ "dncAppId": "ac1192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "dncTenantId": "66192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "dncEndpoint": "https://orch.useast.dnc.azure.com"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/controllerListBySub.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/controllerListBySub.json
new file mode 100644
index 000000000000..5c58a73c6761
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/controllerListBySub.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "50016170-c839-41ba-a724-51e9df440b9e",
+ "api-version": "2020-08-08-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/testcontroller",
+ "location": "West US",
+ "name": "testcontroller",
+ "type": "Microsoft.DelegatedNetwork/controller",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "5a82cbcf-e8ea-4175-ac2b-ad36a73f9801",
+ "dncAppId": "ac1192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "dncTenantId": "66192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "dncEndpoint": "https://orch.useast.dnc.azure.com"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/delegatedNetworkOperationsList.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/delegatedNetworkOperationsList.json
new file mode 100644
index 000000000000..d56a67b6d20b
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/delegatedNetworkOperationsList.json
@@ -0,0 +1,95 @@
+{
+ "parameters": {
+ "api-version": "2020-08-08-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.DelegatedNetwork/controller/write",
+ "display": {
+ "provider": "Microsoft Delegated Network Service",
+ "resource": "Microsoft Delegated Network Controller Service instance",
+ "operation": "Create or update a Controller Service instance.",
+ "description": "Create or update a Controller Service instance."
+ }
+ },
+ {
+ "name": "Microsoft.DelegatedNetwork/controller/read",
+ "display": {
+ "provider": "Microsoft Delegated Network Service",
+ "resource": "Microsoft Delegated Network Controller Service instance",
+ "operation": "Get a Controller Service instance.",
+ "description": "Get a Controller Service instance."
+ }
+ },
+ {
+ "name": "Microsoft.DelegatedNetwork/controller/delete",
+ "display": {
+ "provider": "Microsoft Delegated Network Service",
+ "resource": "Microsoft Delegated Network Controller Service instance",
+ "operation": "Delete a Controller Service instance.",
+ "description": "Delete a Controller Service instance."
+ }
+ },
+ {
+ "name": "Microsoft.DelegatedNetwork/orchestratorInstances/write",
+ "display": {
+ "provider": "Microsoft Delegated Network Service",
+ "resource": "Microsoft Delegated Network orchestratorInstance",
+ "operation": "Create or update a orchestratorInstance.",
+ "description": "Create or update a orchestratorInstance."
+ }
+ },
+ {
+ "name": "Microsoft.DelegatedNetwork/controller/read",
+ "display": {
+ "provider": "Microsoft Delegated Network Service",
+ "resource": "Microsoft Delegated Network orchestratorInstance",
+ "operation": "Get a orchestratorInstances.",
+ "description": "Get a orchestratorInstance."
+ }
+ },
+ {
+ "name": "Microsoft.DelegatedNetwork/controller/delete",
+ "display": {
+ "provider": "Microsoft Delegated Network Service",
+ "resource": "Microsoft Delegated Network orchestratorInstance",
+ "operation": "Delete a orchestratorInstance.",
+ "description": "Delete a orchestratorInstance."
+ }
+ },
+ {
+ "name": "Microsoft.DelegatedNetwork/delegatedSubnets/write",
+ "display": {
+ "provider": "Microsoft Delegated Network Service",
+ "resource": "Microsoft Delegated subnet instance",
+ "operation": "Create or update a Delegated subnet instance.",
+ "description": "Create or update a Delegated subnet instance."
+ }
+ },
+ {
+ "name": "Microsoft.DelegatedNetwork/delegatedSubnets/read",
+ "display": {
+ "provider": "Microsoft Delegated Network Service",
+ "resource": "Microsoft Delegated subnet instance",
+ "operation": "Get a Delegated subnet instance.",
+ "description": "Get a Delegated subnet instance."
+ }
+ },
+ {
+ "name": "Microsoft.DelegatedNetwork/delegatedSubnets/delete",
+ "display": {
+ "provider": "Microsoft Delegated Network Controller Service",
+ "resource": "Microsoft Delegated subnet instance",
+ "operation": "Delete a Delegated subnet instance.",
+ "description": "Delete a Delegated subnet instance."
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/delegatedSubnetListByRG.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/delegatedSubnetListByRG.json
new file mode 100644
index 000000000000..8e0b0c7846e4
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/delegatedSubnetListByRG.json
@@ -0,0 +1,32 @@
+{
+ "parameters": {
+ "subscriptionId": "50016170-c839-41ba-a724-51e9df440b9e",
+ "api-version": "2020-08-08-preview",
+ "resourceGroupName": "testRG"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/delegatedSubnets/delegated1",
+ "location": "West US",
+ "name": "delegated1",
+ "type": "Microsoft.DelegatedNetwork/delegatedSubnets",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "5a82cbcf-e8ea-4175-ac2b-ad36a73f9801",
+ "subnetDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/testvnet/subnets/testsubnet"
+ },
+ "controllerDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/dnctestcontroller"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/delegatedSubnetListBySub.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/delegatedSubnetListBySub.json
new file mode 100644
index 000000000000..7eb3dd2c65ef
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/delegatedSubnetListBySub.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "50016170-c839-41ba-a724-51e9df440b9e",
+ "api-version": "2020-08-08-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/testvnet/subnets/testsubnet/providers/Microsoft.DelegatedNetwork/delegatedSubnets/delegated1",
+ "location": "West US",
+ "name": "delegated1",
+ "type": "Microsoft.DelegatedNetwork/delegatedSubnets",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "5a82cbcf-e8ea-4175-ac2b-ad36a73f9801",
+ "subnetDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/testvnet/subnets/testsubnet"
+ },
+ "controllerDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/dnctestcontroller"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/deleteController.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/deleteController.json
new file mode 100644
index 000000000000..3b80be1a636d
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/deleteController.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "subscriptionId": "613192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "resourceGroupName": "TestRG",
+ "resourceName": "testcontroller",
+ "api-version": "2020-08-08-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "description": "OK."
+ },
+ "202": {
+ "headers": {},
+ "description": "Accepted."
+ },
+ "204": {
+ "headers": {}
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/deleteDelegatedSubnet.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/deleteDelegatedSubnet.json
new file mode 100644
index 000000000000..ae6a8d624d0f
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/deleteDelegatedSubnet.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "subscriptionId": "613192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "resourceGroupName": "TestRG",
+ "resourceName": "delegated1",
+ "api-version": "2020-08-08-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "description": "OK."
+ },
+ "202": {
+ "headers": {},
+ "description": "Accepted."
+ },
+ "204": {
+ "headers": {}
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/deleteOrchestrator.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/deleteOrchestrator.json
new file mode 100644
index 000000000000..826523d95420
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/deleteOrchestrator.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "subscriptionId": "613192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "resourceGroupName": "TestRG",
+ "resourceName": "k8stest1",
+ "api-version": "2020-08-08-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "description": "OK."
+ },
+ "202": {
+ "headers": {},
+ "description": "Accepted."
+ },
+ "204": {
+ "headers": {}
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/getController.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/getController.json
new file mode 100644
index 000000000000..f583f14e4985
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/getController.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "613192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "resourceGroupName": "TestRG",
+ "resourceName": "testcontroller",
+ "api-version": "2020-08-08-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/testcontroller",
+ "location": "West US",
+ "name": "testcontroller",
+ "type": "Microsoft.DelegatedNetwork/controller",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "5a82cbcf-e8ea-4175-ac2b-ad36a73f9801",
+ "dncAppId": "ac1192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "dncTenantId": "66192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "dncEndpoint": "https://orch.useast.dnc.azure.com"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/getDelegatedSubnet.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/getDelegatedSubnet.json
new file mode 100644
index 000000000000..fe8dc64cd511
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/getDelegatedSubnet.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "613192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "resourceGroupName": "TestRG",
+ "resourceName": "delegated1",
+ "api-version": "2020-08-08-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/delegatedSubnets/delegated1",
+ "location": "West US",
+ "name": "delegated1",
+ "type": "Microsoft.DelegatedNetwork/delegatedSubnets",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "5a82cbcf-e8ea-4175-ac2b-ad36a73f9801",
+ "subnetDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/testvnet/subnets/testsubnet"
+ },
+ "controllerDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/dnctestcontroller"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/getOrchestrator.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/getOrchestrator.json
new file mode 100644
index 000000000000..7c0e763848c8
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/getOrchestrator.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "subscriptionId": "613192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "resourceGroupName": "TestRG",
+ "resourceName": "testk8s1",
+ "api-version": "2020-08-08-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/orchestrators/testk8s1",
+ "location": "West US",
+ "name": "testk8s1",
+ "type": "Microsoft.DelegatedNetwork/orchestrators",
+ "kind": "Kubernetes",
+ "identity": {
+ "principalId": "7a2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "tenantId": "3e2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "1b2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "orchestratorAppId": "546192d7-503f-477a-9cfe-4efc3ee2b6e1",
+ "orchestratorTenantId": "da6192d7-503f-477a-9cfe-4efc3ee2b6c3",
+ "clusterRootCA": "ddsadsad344mfdsfdl",
+ "apiServerEndpoint": "https://testk8s.cloudapp.net",
+ "controllerDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/testcontroller"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/orchestratorInstanceListByRG.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/orchestratorInstanceListByRG.json
new file mode 100644
index 000000000000..e4077f80797c
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/orchestratorInstanceListByRG.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "subscriptionId": "50016170-c839-41ba-a724-51e9df440b9e",
+ "api-version": "2020-08-08-preview",
+ "resourceGroupName": "testRG"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/orchestrators/testk8s1",
+ "location": "West US",
+ "name": "testk8s1",
+ "type": "Microsoft.DelegatedNetwork/orchestrators",
+ "kind": "Kubernetes",
+ "identity": {
+ "principalId": "7a2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "tenantId": "3e2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "1b2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "orchestratorAppId": "546192d7-503f-477a-9cfe-4efc3ee2b6e1",
+ "orchestratorTenantId": "da6192d7-503f-477a-9cfe-4efc3ee2b6c3",
+ "clusterRootCA": "ddsadsad344mfdsfdl",
+ "apiServerEndpoint": "https://testk8s.cloudapp.net",
+ "controllerDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/testcontroller"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/orchestratorInstanceListBySub.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/orchestratorInstanceListBySub.json
new file mode 100644
index 000000000000..c8a00c1bd581
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/orchestratorInstanceListBySub.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "subscriptionId": "50016170-c839-41ba-a724-51e9df440b9e",
+ "api-version": "2020-08-08-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/orchestrators/testk8s1",
+ "location": "West US",
+ "name": "testk8s1",
+ "type": "Microsoft.DelegatedNetwork/orchestrators",
+ "kind": "Kubernetes",
+ "identity": {
+ "principalId": "7a2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "tenantId": "3e2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "1b2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "orchestratorAppId": "546192d7-503f-477a-9cfe-4efc3ee2b6e1",
+ "orchestratorTenantId": "da6192d7-503f-477a-9cfe-4efc3ee2b6c3",
+ "clusterRootCA": "ddsadsad344mfdsfdl",
+ "apiServerEndpoint": "https://testk8s.cloudapp.net",
+ "controllerDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/testcontroller"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/patchController.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/patchController.json
new file mode 100644
index 000000000000..9f9f3614ac45
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/patchController.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "613192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "resourceGroupName": "TestRG",
+ "resourceName": "testcontroller",
+ "api-version": "2020-08-08-preview",
+ "parameters": {
+ "tags": {
+ "key": "value"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/testcontroller",
+ "location": "West US",
+ "name": "testcontroller",
+ "type": "Microsoft.DelegatedNetwork/controller",
+ "tags": {
+ "key": "value"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "5a82cbcf-e8ea-4175-ac2b-ad36a73f9801",
+ "dncAppId": "ac1192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "dncTenantId": "66192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "dncEndpoint": "https://orch.useast.dnc.azure.com"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/patchDelegatedSubnet.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/patchDelegatedSubnet.json
new file mode 100644
index 000000000000..9c2462969f5f
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/patchDelegatedSubnet.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "subscriptionId": "613192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "resourceGroupName": "TestRG",
+ "resourceName": "delegated1",
+ "api-version": "2020-08-08-preview",
+ "parameters": {
+ "tags": {
+ "key": "value"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/delegatedSubnets/delegated1",
+ "location": "West US",
+ "name": "delegated1",
+ "type": "Microsoft.DelegatedNetwork/delegatedSubnets",
+ "tags": {
+ "key": "value"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "5a82cbcf-e8ea-4175-ac2b-ad36a73f9801",
+ "subnetDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/testvnet/subnets/testsubnet"
+ },
+ "controllerDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/dnctestcontroller"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/patchOrchestrator.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/patchOrchestrator.json
new file mode 100644
index 000000000000..8cabeee2c9c5
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/patchOrchestrator.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "613192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "resourceGroupName": "TestRG",
+ "resourceName": "testk8s1",
+ "api-version": "2020-08-08-preview",
+ "parameters": {
+ "tags": {
+ "key": "value"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/orchestrators/testk8s1",
+ "location": "West US",
+ "name": "testk8s1",
+ "type": "Microsoft.DelegatedNetwork/orchestrators",
+ "kind": "Kubernetes",
+ "tags": {
+ "key": "value"
+ },
+ "identity": {
+ "principalId": "7a2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "tenantId": "3e2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "1b2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "orchestratorAppId": "546192d7-503f-477a-9cfe-4efc3ee2b6e1",
+ "orchestratorTenantId": "da6192d7-503f-477a-9cfe-4efc3ee2b6c3",
+ "clusterRootCA": "ddsadsad344mfdsfdl",
+ "apiServerEndpoint": "https://testk8s.cloudapp.net",
+ "controllerDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/testcontroller"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/putController.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/putController.json
new file mode 100644
index 000000000000..77ec462dc3a3
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/putController.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "613192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "resourceGroupName": "TestRG",
+ "resourceName": "testcontroller",
+ "api-version": "2020-08-08-preview",
+ "parameters": {
+ "location": "West US"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/testcontroller",
+ "location": "West US",
+ "name": "testcontroller",
+ "type": "Microsoft.DelegatedNetwork/controller",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "5a82cbcf-e8ea-4175-ac2b-ad36a73f9801",
+ "dncAppId": "ac1192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "dncTenantId": "66192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "dncEndpoint": "https://orch.useast.dnc.azure.com"
+ }
+ }
+ },
+ "201": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/testcontroller",
+ "location": "West US",
+ "name": "testcontroller",
+ "type": "Microsoft.DelegatedNetwork/controller",
+ "properties": {
+ "provisioningState": "Provisioning"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/putDelegatedSubnet.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/putDelegatedSubnet.json
new file mode 100644
index 000000000000..ed8fa91a8363
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/putDelegatedSubnet.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "subscriptionId": "613192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "resourceGroupName": "TestRG",
+ "resourceName": "delegated1",
+ "api-version": "2020-08-08-preview",
+ "parameters": {
+ "location": "West US",
+ "properties": {
+ "subnetDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/testvnet/subnets/testsubnet"
+ },
+ "controllerDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/dnctestcontroller"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/delegatedSubnets/delegated1",
+ "location": "West US",
+ "name": "delegated1",
+ "type": "Microsoft.DelegatedNetwork/delegatedSubnets",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "5a82cbcf-e8ea-4175-ac2b-ad36a73f9801",
+ "subnetDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/testvnet/subnets/testsubnet"
+ },
+ "controllerDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/dnctestcontroller"
+ }
+ }
+ }
+ },
+ "201": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/delegatedSubnets/delegated1",
+ "location": "West US",
+ "name": "delegated1",
+ "type": "Microsoft.DelegatedNetwork/delegatedSubnets",
+ "properties": {
+ "provisioningState": "Provisioning"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/putOrchestrator.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/putOrchestrator.json
new file mode 100644
index 000000000000..d98e3b7c2926
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/examples/putOrchestrator.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "subscriptionId": "613192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "resourceGroupName": "TestRG",
+ "resourceName": "testk8s1",
+ "api-version": "2020-08-08-preview",
+ "parameters": {
+ "location": "West US",
+ "kind": "Kubernetes",
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "orchestratorAppId": "546192d7-503f-477a-9cfe-4efc3ee2b6e1",
+ "orchestratorTenantId": "da6192d7-503f-477a-9cfe-4efc3ee2b6c3",
+ "clusterRootCA": "ddsadsad344mfdsfdl",
+ "apiServerEndpoint": "https://testk8s.cloudapp.net",
+ "controllerDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/testcontroller"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/orchestrators/testk8s1",
+ "location": "West US",
+ "name": "testk8s1",
+ "type": "Microsoft.DelegatedNetwork/orchestrators",
+ "kind": "Kubernetes",
+ "identity": {
+ "principalId": "7a2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "tenantId": "3e2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "provisioningState": "Succeeded",
+ "resourceGuid": "1b2192d7-503f-477a-9cfe-4efc3ee2bd60",
+ "orchestratorAppId": "546192d7-503f-477a-9cfe-4efc3ee2b6e1",
+ "orchestratorTenantId": "da6192d7-503f-477a-9cfe-4efc3ee2b6c3",
+ "clusterRootCA": "ddsadsad344mfdsfdl",
+ "apiServerEndpoint": "https://testk8s.cloudapp.net",
+ "controllerDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/testcontroller"
+ }
+ }
+ }
+ },
+ "201": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/orchestrators/testk8s1",
+ "location": "West US",
+ "name": "testk8s1",
+ "type": "Microsoft.DelegatedNetwork/orchestrators",
+ "kind": "Kubernetes",
+ "properties": {
+ "provisioningState": "Provisioning",
+ "controllerDetails": {
+ "id": "/subscriptions/613192d7-503f-477a-9cfe-4efc3ee2bd60/resourceGroups/TestRG/providers/Microsoft.DelegatedNetwork/controller/testcontroller"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/operations.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/operations.json
new file mode 100644
index 000000000000..3c101da6934e
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/operations.json
@@ -0,0 +1,194 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-08-08-preview",
+ "title": "DNC",
+ "description": "DNC web api provides way to create, get and delete dnc controller"
+ },
+ "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.DelegatedNetwork/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Lists all of the available DelegatedNetwork service REST API operations.",
+ "operationId": "Operations_List",
+ "x-ms-examples": {
+ "Get available operations": {
+ "$ref": "./examples/delegatedNetworkOperationsList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "OperationListResult": {
+ "description": "Result of request to list controller operations.It contains a list of operations and a URL link to get the next set of results",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "uniqueItems": false,
+ "readOnly": true,
+ "description": "List of operations supported by the Microsoft.DelegatedNetwork resource provider.",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ }
+ },
+ "nextLink": {
+ "description": "URL to get the next set of operation list results if there are any.",
+ "type": "string"
+ }
+ }
+ },
+ "Operation": {
+ "description": "Microsoft.DelegatedNetwork REST API operation definition",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}.",
+ "type": "string",
+ "readOnly": true
+ },
+ "origin": {
+ "description": "Origin of the operation",
+ "type": "string"
+ },
+ "isDataAction": {
+ "description": "Gets or sets a value indicating whether the operation is a data action or not.",
+ "type": "boolean"
+ },
+ "display": {
+ "description": "Operation properties display",
+ "$ref": "#/definitions/OperationDisplay"
+ },
+ "properties": {
+ "$ref": "#/definitions/OperationProperties",
+ "description": "Properties of the operation"
+ }
+ }
+ },
+ "OperationDisplay": {
+ "description": "The object that represents the operation.",
+ "type": "object",
+ "properties": {
+ "provider": {
+ "description": "Service provider: Microsoft.DelegatedNetwork.",
+ "type": "string",
+ "readOnly": true
+ },
+ "resource": {
+ "description": "Resource on which the operation is performed: controller, etc.",
+ "type": "string",
+ "readOnly": true
+ },
+ "operation": {
+ "description": "Operation type: create, get, delete, etc.",
+ "type": "string",
+ "readOnly": true
+ },
+ "description": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Friendly description for the operation,"
+ }
+ }
+ },
+ "OperationProperties": {
+ "description": "Operation properties.",
+ "type": "object",
+ "properties": {}
+ },
+ "ErrorResponse": {
+ "description": "Error response.",
+ "properties": {
+ "error": {
+ "description": "Error description",
+ "$ref": "#/definitions/ErrorDefinition"
+ }
+ }
+ },
+ "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 client API version."
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/orchestrators.json b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/orchestrators.json
new file mode 100644
index 000000000000..82e58c69c10c
--- /dev/null
+++ b/specification/dnc/resource-manager/Microsoft.DelegatedNetwork/preview/2020-08-08-preview/orchestrators.json
@@ -0,0 +1,567 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-08-08-preview",
+ "title": "DNC",
+ "description": "DNC web api provides way to create, get and delete dnc controller"
+ },
+ "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.DelegatedNetwork/orchestrators/{resourceName}": {
+ "get": {
+ "description": "Gets details about the orchestrator instance.",
+ "x-ms-examples": {
+ "Get details of a orchestratorInstance": {
+ "$ref": "./examples/getOrchestrator.json"
+ }
+ },
+ "tags": [
+ "OrchestratorInstance"
+ ],
+ "operationId": "OrchestratorInstanceService_GetDetails",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/Orchestrator"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "description": "Create a orchestrator instance",
+ "x-ms-examples": {
+ "Create orchestrator instance": {
+ "$ref": "./examples/putOrchestrator.json"
+ }
+ },
+ "tags": [
+ "OrchestratorInstance"
+ ],
+ "operationId": "OrchestratorInstanceService_Create",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Orchestrator"
+ },
+ "description": "OrchestratorInstance type parameters"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The operation completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/Orchestrator"
+ }
+ },
+ "201": {
+ "description": "InProgress. The operation is still in progress.",
+ "schema": {
+ "$ref": "#/definitions/Orchestrator"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "description": "Deletes the Orchestrator Instance",
+ "x-ms-examples": {
+ "Delete Orchestrator Instance": {
+ "$ref": "./examples/deleteOrchestrator.json"
+ }
+ },
+ "tags": [
+ "OrchestratorInstance"
+ ],
+ "operationId": "OrchestratorInstanceService_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$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/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "description": "Update Orchestrator Instance",
+ "x-ms-examples": {
+ "update Orchestrator Instance": {
+ "$ref": "./examples/patchOrchestrator.json"
+ }
+ },
+ "tags": [
+ "OrchestratorInstance"
+ ],
+ "operationId": "OrchestratorInstanceService_Patch",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/resourceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/OrchestratorResourceUpdateParameters"
+ },
+ "description": "OrchestratorInstance update parameters"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The operation completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/Orchestrator"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.DelegatedNetwork/orchestrators": {
+ "get": {
+ "tags": [
+ "OrchestratorInstanceList"
+ ],
+ "description": "Get all the orchestratorInstance resources in a subscription.",
+ "operationId": "OrchestratorInstanceService_ListBySubscription",
+ "x-ms-examples": {
+ "Get orchestratorInstance resources by subscription": {
+ "$ref": "./examples/orchestratorInstanceListBySub.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the orchestratorInstance in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/Orchestrators"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DelegatedNetwork/orchestrators": {
+ "get": {
+ "tags": [
+ "OrchestratorInstanceList"
+ ],
+ "description": "Get all the OrchestratorInstances resources in a resource group.",
+ "operationId": "OrchestratorInstanceService_ListByResourceGroup",
+ "x-ms-examples": {
+ "Get OrchestratorInstance resources by resource group": {
+ "$ref": "./examples/orchestratorInstanceListByRG.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the orchestratorInstances in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/Orchestrators"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "OrchestratorResource": {
+ "description": "Represents an instance of a resource.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "An identifier that represents the resource."
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the resource."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The type of resource."
+ },
+ "location": {
+ "type": "string",
+ "description": "Location of the resource."
+ },
+ "kind": {
+ "type": "string",
+ "description": "The kind of workbook. Choices are user and shared.",
+ "enum": [
+ "Kubernetes"
+ ],
+ "x-ms-enum": {
+ "name": "OrchestratorKind",
+ "modelAsString": true
+ }
+ },
+ "identity": {
+ "$ref": "#/definitions/OrchestratorIdentity",
+ "description": "The identity of the orchestrator"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The resource tags."
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "x-ms-azure-resource": true
+ },
+ "OrchestratorResourceUpdateParameters": {
+ "description": "Parameters for updating a resource.",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The resource tags."
+ }
+ }
+ },
+ "Orchestrators": {
+ "description": "An array of OrchestratorInstance resources.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Orchestrator"
+ },
+ "description": "An array of OrchestratorInstance resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of orchestrators.",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "value"
+ ]
+ },
+ "Orchestrator": {
+ "description": "Represents an instance of a orchestrator.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/OrchestratorResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/OrchestratorResourceProperties",
+ "description": "Properties of the provision operation request."
+ }
+ }
+ },
+ "OrchestratorResourceProperties": {
+ "description": "Properties of orchestrator",
+ "type": "object",
+ "properties": {
+ "resourceGuid": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resource guid."
+ },
+ "provisioningState": {
+ "type": "string",
+ "enum": [
+ "Deleting",
+ "Succeeded",
+ "Failed",
+ "Provisioning"
+ ],
+ "x-ms-enum": {
+ "name": "OrchestratorInstanceState",
+ "modelAsString": true
+ },
+ "readOnly": true,
+ "description": "The current state of orchestratorInstance resource."
+ },
+ "orchestratorAppId": {
+ "description": "AAD ID used with apiserver",
+ "type": "string"
+ },
+ "orchestratorTenantId": {
+ "description": "TenantID of server App ID",
+ "type": "string"
+ },
+ "clusterRootCA": {
+ "description": "RootCA certificate of kubernetes cluster base64 encoded",
+ "type": "string"
+ },
+ "apiServerEndpoint": {
+ "description": "K8s APIServer url",
+ "type": "string"
+ },
+ "controllerDetails": {
+ "description": "controller details",
+ "$ref": "#/definitions/ControllerDetails"
+ }
+ },
+ "required": [
+ "controllerDetails"
+ ]
+ },
+ "OrchestratorIdentity": {
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of the system assigned identity which is used by orchestrator."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant id of the system assigned identity which is used by orchestrator."
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of identity used for orchestrator cluster. Type 'SystemAssigned' will use an implicitly created identity orchestrator clusters",
+ "enum": [
+ "SystemAssigned",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceIdentityType",
+ "modelAsString": false
+ }
+ }
+ }
+ },
+ "ControllerDetails": {
+ "description": "controller details",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "controller arm resource id",
+ "type": "string"
+ }
+ }
+ },
+ "ErrorResponse": {
+ "description": "Error response.",
+ "properties": {
+ "error": {
+ "description": "Error description",
+ "$ref": "#/definitions/ErrorDefinition"
+ }
+ }
+ },
+ "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": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "A unique identifier for a 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": "The client API version."
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[-\\w\\._\\(\\)]+$",
+ "minLength": 1,
+ "maxLength": 90,
+ "x-ms-parameter-location": "method",
+ "description": "The name of the Azure Resource group of which a given DelegatedNetwork resource is part. This name must be at least 1 character in length, and no more than 90."
+ },
+ "resourceNameParameter": {
+ "name": "resourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-z][a-z0-9]*$",
+ "minLength": 3,
+ "maxLength": 63,
+ "x-ms-parameter-location": "method",
+ "description": "The name of the resource. It must be a minimum of 3 characters, and a maximum of 63."
+ }
+ }
+}
diff --git a/specification/dnc/resource-manager/readme.azureresourceschema.md b/specification/dnc/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..bba0b7146906
--- /dev/null
+++ b/specification/dnc/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-delegatednetwork-2020-08-08-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-delegatednetwork-2020-08-08-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-delegatednetwork-2020-08-08-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.DelegatedNetwork/preview/2020-08-08-preview/DelegatedNetwork.json
+
+```
diff --git a/specification/dnc/resource-manager/readme.go.md b/specification/dnc/resource-manager/readme.go.md
new file mode 100644
index 000000000000..971e71d00cb0
--- /dev/null
+++ b/specification/dnc/resource-manager/readme.go.md
@@ -0,0 +1,26 @@
+## Go
+
+These settings apply only when `--go` is specified on the command line.
+
+``` yaml $(go)
+go:
+ license-header: MICROSOFT_APACHE_NO_VERSION
+ clear-output-folder: true
+ namespace: delegatednetwork
+```
+
+### Go multi-api
+
+``` yaml $(go) && $(multiapi)
+batch:
+ - tag: package-2020-08-08-preview
+```
+
+### Tag: package-2020-08-08-preview and go
+
+These settings apply only when `--tag=package-2020-08-08-preview --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag)=='package-2020-08-08-preview' && $(go)
+output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-08-08-preview/$(namespace)
+```
\ No newline at end of file
diff --git a/specification/dnc/resource-manager/readme.md b/specification/dnc/resource-manager/readme.md
new file mode 100644
index 000000000000..cec8467edf34
--- /dev/null
+++ b/specification/dnc/resource-manager/readme.md
@@ -0,0 +1,119 @@
+# DelegatedNetwork
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for DelegatedNetwork.
+
+
+
+---
+## Getting Started
+To build the SDK for DelegatedNetwork, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run:
+
+> `autorest`
+
+To see additional help and options, run:
+
+> `autorest --help`
+---
+
+## Configuration
+
+
+
+### Basic Information
+These are the global settings for the DelegatedNetwork API.
+
+``` yaml
+openapi-type: arm
+tag: package-2020-08-08-preview
+```
+
+
+### Tag: package-2020-08-08-preview
+
+These settings apply only when `--tag=package-2020-08-08-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-08-08-preview'
+input-file:
+- Microsoft.DelegatedNetwork/preview/2020-08-08-preview/controller.json
+- Microsoft.DelegatedNetwork/preview/2020-08-08-preview/orchestrators.json
+- Microsoft.DelegatedNetwork/preview/2020-08-08-preview/delegatedSubnets.json
+- Microsoft.DelegatedNetwork/preview/2020-08-08-preview/operations.json
+```
+
+---
+# Code Generation
+
+
+## Swagger to SDK
+
+This section describes what SDK should be generated by the automatic system.
+This is not used by Autorest itself.
+
+``` yaml $(swagger-to-sdk)
+swagger-to-sdk:
+ - repo: azure-sdk-for-net
+ - repo: azure-sdk-for-python
+ - repo: azure-sdk-for-java
+ - repo: azure-sdk-for-go
+ - repo: azure-sdk-for-js
+```
+
+## C#
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+``` yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ namespace: Microsoft.Azure.Management.DelegatedNetwork
+ output-folder: $(csharp-sdks-folder)/DelegatedNetwork/Microsoft.Azure.Management.DelegatedNetwork/src/Generated
+ clear-output-folder: true
+```
+
+## Go
+
+See configuration in [readme.go.md](./readme.go.md)
+
+## Java
+
+These settings apply only when `--java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(java)
+azure-arm: true
+fluent: true
+namespace: com.microsoft.azure.management.DelegatedNetwork
+license-header: MICROSOFT_MIT_NO_CODEGEN
+payload-flattening-threshold: 1
+output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-DelegatedNetwork
+```
+
+### Java multi-api
+
+``` yaml $(java) && $(multiapi)
+batch:
+ - tag: package-2020-08-08-preview
+```
+
+### Tag: package-2020-08-08-preview and java
+
+These settings apply only when `--tag=package-2020-08-08-preview --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2020-08-08-preview' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.DelegatedNetwork.2020-08-08-preview
+ output-folder: $(azure-libraries-for-java-folder)/sdk/DelegatedNetwork/mgmt-2020-08-08-preview
+regenerate-manager: true
+generate-interface: true
+```
+
+## Python
+
+See configuration in [readme.python.md](./readme.python.md)
+
+
diff --git a/specification/dns/resource-manager/readme.azureresourceschema.md b/specification/dns/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..743edd736482
--- /dev/null
+++ b/specification/dns/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,84 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-network-2018-05-01
+ - tag: schema-network-2018-03-01-preview
+ - tag: schema-network-2017-10-01
+ - tag: schema-network-2017-09-01
+ - tag: schema-network-2016-04-01
+ - tag: schema-network-2015-05-04-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-network-2018-05-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2018-05-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/stable/2018-05-01/dns.json
+
+```
+
+### Tag: schema-network-2018-03-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2018-03-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/preview/2018-03-01-preview/dns.json
+
+```
+
+### Tag: schema-network-2017-10-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2017-10-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/stable/2017-10-01/dns.json
+
+```
+
+### Tag: schema-network-2017-09-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2017-09-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/stable/2017-09-01/dns.json
+
+```
+
+### Tag: schema-network-2016-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2016-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/stable/2016-04-01/dns.json
+
+```
+
+### Tag: schema-network-2015-05-04-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2015-05-04-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/preview/2015-05-04-preview/dns.json
+
+```
diff --git a/specification/dns/resource-manager/readme.md b/specification/dns/resource-manager/readme.md
index 60903e790fef..5d8de0645a02 100644
--- a/specification/dns/resource-manager/readme.md
+++ b/specification/dns/resource-manager/readme.md
@@ -160,6 +160,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_dns']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js dns/resource-manager
```
## Go
@@ -224,32 +227,7 @@ input-file:
- Microsoft.Network/stable/2016-04-01/dns.json
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Network/stable/2018-05-01/dns.json
- - $(this-folder)/Microsoft.Network/preview/2018-03-01-preview/dns.json
- - $(this-folder)/Microsoft.Network/stable/2017-10-01/dns.json
- - $(this-folder)/Microsoft.Network/stable/2017-09-01/dns.json
- - $(this-folder)/Microsoft.Network/stable/2016-04-01/dns.json
- - $(this-folder)/Microsoft.Network/preview/2015-05-04-preview/dns.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/CreateOuContainer.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/CreateOuContainer.json
new file mode 100644
index 000000000000..6e5aec2db2c5
--- /dev/null
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/CreateOuContainer.json
@@ -0,0 +1,100 @@
+{
+ "parameters": {
+ "api-version": "2017-06-01",
+ "subscriptionId": "1639790a-76a2-4ac4-98d9-8562f5dfcb4d",
+ "resourceGroupName": "OuContainerResourceGroup",
+ "domainServiceName": "OuContainer.com",
+ "ouContainerName": "OuContainer1",
+ "containerAccount": {
+ "accountName": "AccountName1",
+ "spn": "Spn1",
+ "password": "Password1"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "body": {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer1",
+ "name": "OuContainer.com/OuContainer1",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer1",
+ "accounts": [
+ {
+ "accountName": "AccountName1",
+ "spn": "Spn1"
+ },
+ {
+ "accountName": "AccountName2",
+ "spn": "Spn2"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "description": "HTTP 201 (Created) if the operation was successful.",
+ "body": {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer1",
+ "name": "OuContainer.com/OuContainer1",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer1",
+ "accounts": [
+ {
+ "accountName": "AccountName1",
+ "spn": "Spn1"
+ },
+ {
+ "accountName": "AccountName2",
+ "spn": "Spn2"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously.",
+ "body": {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer1",
+ "name": "OuContainer.com/OuContainer1",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer1",
+ "accounts": [
+ {
+ "accountName": "AccountName1",
+ "spn": "Spn1"
+ },
+ {
+ "accountName": "AccountName2",
+ "spn": "Spn2"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/DeleteOuContainer.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/DeleteOuContainer.json
new file mode 100644
index 000000000000..11b98fc2c715
--- /dev/null
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/DeleteOuContainer.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "api-version": "2017-06-01",
+ "subscriptionId": "1639790a-76a2-4ac4-98d9-8562f5dfcb4d",
+ "resourceGroupName": "OuContainerResourceGroup",
+ "domainServiceName": "OuContainer.com",
+ "ouContainerName": "OuContainer1"
+ },
+ "responses": {
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful."
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously."
+ },
+ "204": {
+ "description": "HTTP 204 (Not Content) should be used if the resource does not exist and the request is well formed."
+ }
+ }
+}
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/GetOuContainer.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/GetOuContainer.json
new file mode 100644
index 000000000000..c6f150bbe889
--- /dev/null
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/GetOuContainer.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "api-version": "2017-06-01",
+ "subscriptionId": "1639790a-76a2-4ac4-98d9-8562f5dfcb4d",
+ "resourceGroupName": "OuContainerResourceGroup",
+ "domainServiceName": "OuContainer.com",
+ "ouContainerName": "OuContainer1"
+ },
+ "responses": {
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "body": {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer1",
+ "name": "OuContainer.com/OuContainer1",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer1",
+ "accounts": [
+ {
+ "accountName": "AccountName1",
+ "spn": "Spn1"
+ },
+ {
+ "accountName": "AccountName2",
+ "spn": "Spn2"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/ListOuContainers.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/ListOuContainers.json
new file mode 100644
index 000000000000..2842071473a8
--- /dev/null
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/ListOuContainers.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "api-version": "2017-06-01",
+ "subscriptionId": "1639790a-76a2-4ac4-98d9-8562f5dfcb4d",
+ "resourceGroupName": "OuContainerResourceGroup",
+ "domainServiceName": "OuContainer.com"
+ },
+ "responses": {
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer1",
+ "name": "OuContainer.com/OuContainer1",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer1",
+ "accounts": [
+ {
+ "accountName": "AccountName1",
+ "spn": "Spn1"
+ },
+ {
+ "accountName": "AccountName2",
+ "spn": "Spn2"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer2",
+ "name": "OuContainer.com/OuContainer2",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer2",
+ "accounts": [
+ {
+ "accountName": "AccountName3",
+ "spn": "Spn3"
+ },
+ {
+ "accountName": "AccountName4",
+ "spn": "Spn4"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/UpdateOuContainer.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/UpdateOuContainer.json
new file mode 100644
index 000000000000..bc23efd4cf82
--- /dev/null
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/examples/UpdateOuContainer.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "api-version": "2017-06-01",
+ "subscriptionId": "1639790a-76a2-4ac4-98d9-8562f5dfcb4d",
+ "resourceGroupName": "OuContainerResourceGroup",
+ "domainServiceName": "OuContainer.com",
+ "ouContainerName": "OuContainer1",
+ "containerAccount": {
+ "accountName": "AccountName1",
+ "spn": "Spn1",
+ "password": "Password1"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "body": {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer1",
+ "name": "OuContainer.com/OuContainer1",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer1",
+ "accounts": [
+ {
+ "accountName": "AccountName1",
+ "spn": "Spn1"
+ },
+ {
+ "accountName": "AccountName2",
+ "spn": "Spn2"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously.",
+ "body": {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer1",
+ "name": "OuContainer.com/OuContainer1",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer1",
+ "accounts": [
+ {
+ "accountName": "AccountName1",
+ "spn": "Spn1"
+ },
+ {
+ "accountName": "AccountName2",
+ "spn": "Spn2"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/oucontainer.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/oucontainer.json
new file mode 100644
index 000000000000..6a2aed422bab
--- /dev/null
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2017-06-01/oucontainer.json
@@ -0,0 +1,603 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Domain Services Resource Provider",
+ "description": "The AAD Domain Services API.",
+ "version": "2017-06-01"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.Aad/operations": {
+ "get": {
+ "tags": [
+ "OuContainer"
+ ],
+ "description": "Lists all the available OuContainer operations.",
+ "operationId": "OuContainerOperations_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/OperationEntityListResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Operations": {
+ "$ref": "./examples/GetOperations.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Aad/domainServices/{domainServiceName}/ouContainer": {
+ "get": {
+ "tags": [
+ "OuContainer"
+ ],
+ "operationId": "OuContainer_List",
+ "summary": "List of OuContainers in DomainService instance",
+ "description": "The List of OuContainers in DomainService instance.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DomainServiceNameParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/OuContainerListResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List of OuContainers": {
+ "$ref": "./examples/ListOuContainers.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Aad/domainServices/{domainServiceName}/ouContainer/{ouContainerName}": {
+ "get": {
+ "tags": [
+ "OuContainer"
+ ],
+ "operationId": "OuContainer_Get",
+ "summary": "Get particular OuContainer in DomainService instance",
+ "description": "Get OuContainer in DomainService instance.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DomainServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/OuContainerNameParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/OuContainer"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List of OuContainers": {
+ "$ref": "./examples/GetOuContainer.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "OuContainer"
+ ],
+ "operationId": "OuContainer_Create",
+ "summary": "Create OuContainer",
+ "description": "The Create OuContainer operation creates a new OuContainer under the specified Domain Service instance.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DomainServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/OuContainerNameParameter"
+ },
+ {
+ "name": "containerAccount",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ContainerAccount"
+ },
+ "description": "Container Account Description."
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/OuContainer"
+ }
+ },
+ "201": {
+ "description": "HTTP 201 (Created) if the operation completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/OuContainer"
+ }
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/OuContainer"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create Domain Service": {
+ "$ref": "./examples/CreateOuContainer.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "OuContainer"
+ ],
+ "operationId": "OuContainer_Delete",
+ "summary": "Delete OuContainer",
+ "description": "The Delete OuContainer operation deletes specified OuContainer.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DomainServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/OuContainerNameParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful."
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously."
+ },
+ "204": {
+ "description": "HTTP 204 (Not Content) should be used if the resource does not exist and the request is well formed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete OuContainer": {
+ "$ref": "./examples/DeleteOuContainer.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "OuContainer"
+ ],
+ "operationId": "OuContainer_Update",
+ "summary": "Update OuContainer (PATCH Resource)",
+ "description": "The Update OuContainer operation can be used to update the existing OuContainers.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DomainServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/OuContainerNameParameter"
+ },
+ {
+ "name": "containerAccount",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ContainerAccount"
+ },
+ "description": "Container Account Description."
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/OuContainer"
+ }
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/OuContainer"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update Domain Service": {
+ "$ref": "./examples/UpdateOuContainer.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "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",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ },
+ "etag": {
+ "type": "string",
+ "description": "Resource etag"
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "OuContainerListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OuContainer"
+ },
+ "description": "The list of OuContainer."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The continuation token for the next page of results.",
+ "readOnly": true
+ }
+ },
+ "description": "The response from the List OuContainer operation."
+ },
+ "OuContainer": {
+ "description": "Resource for OuContainer.",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/OuContainerProperties",
+ "description": "OuContainer properties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ]
+ },
+ "OuContainerProperties": {
+ "description": "Properties of the OuContainer.",
+ "properties": {
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Azure Active Directory tenant id"
+ },
+ "domainName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The domain name of Domain Services."
+ },
+ "deploymentId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The Deployment id"
+ },
+ "containerId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The OuContainer name"
+ },
+ "accounts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerAccount",
+ "description": "Container Account"
+ },
+ "description": "The list of container accounts"
+ },
+ "serviceStatus": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Status of OuContainer instance"
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The current deployment or provisioning state, which only appears in the response."
+ }
+ }
+ },
+ "ContainerAccount": {
+ "description": "Container Account Description",
+ "properties": {
+ "accountName": {
+ "type": "string",
+ "description": "The account name"
+ },
+ "spn": {
+ "type": "string",
+ "description": "The account spn"
+ },
+ "password": {
+ "type": "string",
+ "description": "The account password"
+ }
+ }
+ },
+ "OperationEntityListResult": {
+ "description": "The list of domain service operation response.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The list of operations.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationEntity"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The continuation token for the next page of results.",
+ "readOnly": true
+ }
+ }
+ },
+ "OperationEntity": {
+ "description": "The operation supported by Domain Services.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}.",
+ "type": "string"
+ },
+ "display": {
+ "$ref": "#/definitions/OperationDisplayInfo",
+ "description": "The operation supported by Domain Services."
+ },
+ "origin": {
+ "description": "The origin of the operation.",
+ "type": "string"
+ }
+ }
+ },
+ "OperationDisplayInfo": {
+ "description": "The operation supported by Domain Services.",
+ "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: Domain Services.",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource on which the operation is performed.",
+ "type": "string"
+ }
+ }
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "description": "An error response from the Domain Services.",
+ "$ref": "#/definitions/CloudErrorBody"
+ }
+ },
+ "description": "An error response from the Domain Services."
+ },
+ "CloudErrorBody": {
+ "x-ms-external": true,
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "A message describing the error, intended to be suitable for display in a user interface."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the particular error. For example, the name of the property in error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudErrorBody"
+ },
+ "description": "A list of additional details about the error."
+ }
+ },
+ "description": "An error response from the Domain Services."
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Gets subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group within the user's subscription. The name is case insensitive.",
+ "pattern": "^[-\\w\\._\\(\\)]+$",
+ "minLength": 1,
+ "maxLength": 90,
+ "x-ms-parameter-location": "method"
+ },
+ "DomainServiceNameParameter": {
+ "name": "domainServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the domain service.",
+ "x-ms-parameter-location": "method"
+ },
+ "OuContainerNameParameter": {
+ "name": "ouContainerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the OuContainer.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/CreateOuContainer.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/CreateOuContainer.json
new file mode 100644
index 000000000000..0f5651845b81
--- /dev/null
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/CreateOuContainer.json
@@ -0,0 +1,100 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01",
+ "subscriptionId": "1639790a-76a2-4ac4-98d9-8562f5dfcb4d",
+ "resourceGroupName": "OuContainerResourceGroup",
+ "domainServiceName": "OuContainer.com",
+ "ouContainerName": "OuContainer1",
+ "containerAccount": {
+ "accountName": "AccountName1",
+ "spn": "Spn1",
+ "password": "Password1"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "body": {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer1",
+ "name": "OuContainer.com/OuContainer1",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer1",
+ "accounts": [
+ {
+ "accountName": "AccountName1",
+ "spn": "Spn1"
+ },
+ {
+ "accountName": "AccountName2",
+ "spn": "Spn2"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "description": "HTTP 201 (Created) if the operation was successful.",
+ "body": {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer1",
+ "name": "OuContainer.com/OuContainer1",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer1",
+ "accounts": [
+ {
+ "accountName": "AccountName1",
+ "spn": "Spn1"
+ },
+ {
+ "accountName": "AccountName2",
+ "spn": "Spn2"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously.",
+ "body": {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer1",
+ "name": "OuContainer.com/OuContainer1",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer1",
+ "accounts": [
+ {
+ "accountName": "AccountName1",
+ "spn": "Spn1"
+ },
+ {
+ "accountName": "AccountName2",
+ "spn": "Spn2"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/DeleteOuContainer.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/DeleteOuContainer.json
new file mode 100644
index 000000000000..ab7dec2f11de
--- /dev/null
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/DeleteOuContainer.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01",
+ "subscriptionId": "1639790a-76a2-4ac4-98d9-8562f5dfcb4d",
+ "resourceGroupName": "OuContainerResourceGroup",
+ "domainServiceName": "OuContainer.com",
+ "ouContainerName": "OuContainer1"
+ },
+ "responses": {
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful."
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously."
+ },
+ "204": {
+ "description": "HTTP 204 (Not Content) should be used if the resource does not exist and the request is well formed."
+ }
+ }
+}
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/GetOuContainer.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/GetOuContainer.json
new file mode 100644
index 000000000000..90b57878c52d
--- /dev/null
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/GetOuContainer.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01",
+ "subscriptionId": "1639790a-76a2-4ac4-98d9-8562f5dfcb4d",
+ "resourceGroupName": "OuContainerResourceGroup",
+ "domainServiceName": "OuContainer.com",
+ "ouContainerName": "OuContainer1"
+ },
+ "responses": {
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "body": {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer1",
+ "name": "OuContainer.com/OuContainer1",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer1",
+ "accounts": [
+ {
+ "accountName": "AccountName1",
+ "spn": "Spn1"
+ },
+ {
+ "accountName": "AccountName2",
+ "spn": "Spn2"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/ListOuContainers.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/ListOuContainers.json
new file mode 100644
index 000000000000..0153c95e3fed
--- /dev/null
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/ListOuContainers.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01",
+ "subscriptionId": "1639790a-76a2-4ac4-98d9-8562f5dfcb4d",
+ "resourceGroupName": "OuContainerResourceGroup",
+ "domainServiceName": "OuContainer.com"
+ },
+ "responses": {
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer1",
+ "name": "OuContainer.com/OuContainer1",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer1",
+ "accounts": [
+ {
+ "accountName": "AccountName1",
+ "spn": "Spn1"
+ },
+ {
+ "accountName": "AccountName2",
+ "spn": "Spn2"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer2",
+ "name": "OuContainer.com/OuContainer2",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer2",
+ "accounts": [
+ {
+ "accountName": "AccountName3",
+ "spn": "Spn3"
+ },
+ {
+ "accountName": "AccountName4",
+ "spn": "Spn4"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/UpdateOuContainer.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/UpdateOuContainer.json
new file mode 100644
index 000000000000..5849aa98e585
--- /dev/null
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/examples/UpdateOuContainer.json
@@ -0,0 +1,72 @@
+{
+ "parameters": {
+ "api-version": "2020-01-01",
+ "subscriptionId": "1639790a-76a2-4ac4-98d9-8562f5dfcb4d",
+ "resourceGroupName": "OuContainerResourceGroup",
+ "domainServiceName": "OuContainer.com",
+ "ouContainerName": "OuContainer1",
+ "containerAccount": {
+ "accountName": "AccountName1",
+ "spn": "Spn1",
+ "password": "Password1"
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "body": {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer1",
+ "name": "OuContainer.com/OuContainer1",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer1",
+ "accounts": [
+ {
+ "accountName": "AccountName1",
+ "spn": "Spn1"
+ },
+ {
+ "accountName": "AccountName2",
+ "spn": "Spn2"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously.",
+ "body": {
+ "id": "/subscriptions/1639790a-76a2-4ac4-98d9-8562f5dfcb4d/resourceGroups/ouContainerResourceGroup/providers/Microsoft.AAD/domainServices/ouContainer.com/ouContainer/ouContainer1",
+ "name": "OuContainer.com/OuContainer1",
+ "type": "Microsoft.AAD/DomainServices/OuContainer",
+ "location": "westus",
+ "etag": "W/\"datetime'2017-04-10T04%3A42%3A19.7067387Z'\"",
+ "properties": {
+ "tenantId": "3f8cd22c-7b32-48aa-a01c-f533133b1def",
+ "domainName": "OuContainer.com",
+ "deploymentId": "0FC50BDB-AC45-48E4-BC92-F0651EA0687B",
+ "containerId": "OuContainer1",
+ "accounts": [
+ {
+ "accountName": "AccountName1",
+ "spn": "Spn1"
+ },
+ {
+ "accountName": "AccountName2",
+ "spn": "Spn2"
+ }
+ ],
+ "serviceStatus": "Running",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/oucontainer.json b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/oucontainer.json
new file mode 100644
index 000000000000..84bf755c076f
--- /dev/null
+++ b/specification/domainservices/resource-manager/Microsoft.AAD/stable/2020-01-01/oucontainer.json
@@ -0,0 +1,603 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Domain Services Resource Provider",
+ "description": "The AAD Domain Services API.",
+ "version": "2020-01-01"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.Aad/operations": {
+ "get": {
+ "tags": [
+ "OuContainer"
+ ],
+ "description": "Lists all the available OuContainer operations.",
+ "operationId": "OuContainerOperations_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/OperationEntityListResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Operations": {
+ "$ref": "./examples/GetOperations.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Aad/domainServices/{domainServiceName}/ouContainer": {
+ "get": {
+ "tags": [
+ "OuContainer"
+ ],
+ "operationId": "OuContainer_List",
+ "summary": "List of OuContainers in DomainService instance",
+ "description": "The List of OuContainers in DomainService instance.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DomainServiceNameParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/OuContainerListResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List of OuContainers": {
+ "$ref": "./examples/ListOuContainers.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Aad/domainServices/{domainServiceName}/ouContainer/{ouContainerName}": {
+ "get": {
+ "tags": [
+ "OuContainer"
+ ],
+ "operationId": "OuContainer_Get",
+ "summary": "Get particular OuContainer in DomainService instance",
+ "description": "Get OuContainer in DomainService instance.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DomainServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/OuContainerNameParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/OuContainer"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List of OuContainers": {
+ "$ref": "./examples/GetOuContainer.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "OuContainer"
+ ],
+ "operationId": "OuContainer_Create",
+ "summary": "Create OuContainer",
+ "description": "The Create OuContainer operation creates a new OuContainer under the specified Domain Service instance.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DomainServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/OuContainerNameParameter"
+ },
+ {
+ "name": "containerAccount",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ContainerAccount"
+ },
+ "description": "Container Account Description."
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/OuContainer"
+ }
+ },
+ "201": {
+ "description": "HTTP 201 (Created) if the operation completed successfully.",
+ "schema": {
+ "$ref": "#/definitions/OuContainer"
+ }
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/OuContainer"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create Domain Service": {
+ "$ref": "./examples/CreateOuContainer.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "OuContainer"
+ ],
+ "operationId": "OuContainer_Delete",
+ "summary": "Delete OuContainer",
+ "description": "The Delete OuContainer operation deletes specified OuContainer.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DomainServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/OuContainerNameParameter"
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful."
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously."
+ },
+ "204": {
+ "description": "HTTP 204 (Not Content) should be used if the resource does not exist and the request is well formed."
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete OuContainer": {
+ "$ref": "./examples/DeleteOuContainer.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "OuContainer"
+ ],
+ "operationId": "OuContainer_Update",
+ "summary": "Update OuContainer (PATCH Resource)",
+ "description": "The Update OuContainer operation can be used to update the existing OuContainers.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DomainServiceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/OuContainerNameParameter"
+ },
+ {
+ "name": "containerAccount",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ContainerAccount"
+ },
+ "description": "Container Account Description."
+ }
+ ],
+ "responses": {
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ },
+ "200": {
+ "description": "HTTP 200 (OK) if the operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/OuContainer"
+ }
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/OuContainer"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update Domain Service": {
+ "$ref": "./examples/UpdateOuContainer.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "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",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ]
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ },
+ "etag": {
+ "type": "string",
+ "description": "Resource etag"
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "OuContainerListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OuContainer"
+ },
+ "description": "The list of OuContainer."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The continuation token for the next page of results.",
+ "readOnly": true
+ }
+ },
+ "description": "The response from the List OuContainer operation."
+ },
+ "OuContainer": {
+ "description": "Resource for OuContainer.",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/OuContainerProperties",
+ "description": "OuContainer properties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ]
+ },
+ "OuContainerProperties": {
+ "description": "Properties of the OuContainer.",
+ "properties": {
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Azure Active Directory tenant id"
+ },
+ "domainName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The domain name of Domain Services."
+ },
+ "deploymentId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The Deployment id"
+ },
+ "containerId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The OuContainer name"
+ },
+ "accounts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ContainerAccount",
+ "description": "Container Account"
+ },
+ "description": "The list of container accounts"
+ },
+ "serviceStatus": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Status of OuContainer instance"
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The current deployment or provisioning state, which only appears in the response."
+ }
+ }
+ },
+ "ContainerAccount": {
+ "description": "Container Account Description",
+ "properties": {
+ "accountName": {
+ "type": "string",
+ "description": "The account name"
+ },
+ "spn": {
+ "type": "string",
+ "description": "The account spn"
+ },
+ "password": {
+ "type": "string",
+ "description": "The account password"
+ }
+ }
+ },
+ "OperationEntityListResult": {
+ "description": "The list of domain service operation response.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The list of operations.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationEntity"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The continuation token for the next page of results.",
+ "readOnly": true
+ }
+ }
+ },
+ "OperationEntity": {
+ "description": "The operation supported by Domain Services.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}.",
+ "type": "string"
+ },
+ "display": {
+ "$ref": "#/definitions/OperationDisplayInfo",
+ "description": "The operation supported by Domain Services."
+ },
+ "origin": {
+ "description": "The origin of the operation.",
+ "type": "string"
+ }
+ }
+ },
+ "OperationDisplayInfo": {
+ "description": "The operation supported by Domain Services.",
+ "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: Domain Services.",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource on which the operation is performed.",
+ "type": "string"
+ }
+ }
+ },
+ "CloudError": {
+ "x-ms-external": true,
+ "properties": {
+ "error": {
+ "description": "An error response from the Domain Services.",
+ "$ref": "#/definitions/CloudErrorBody"
+ }
+ },
+ "description": "An error response from the Domain Services."
+ },
+ "CloudErrorBody": {
+ "x-ms-external": true,
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "A message describing the error, intended to be suitable for display in a user interface."
+ },
+ "target": {
+ "type": "string",
+ "description": "The target of the particular error. For example, the name of the property in error."
+ },
+ "details": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudErrorBody"
+ },
+ "description": "A list of additional details about the error."
+ }
+ },
+ "description": "An error response from the Domain Services."
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Gets subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group within the user's subscription. The name is case insensitive.",
+ "pattern": "^[-\\w\\._\\(\\)]+$",
+ "minLength": 1,
+ "maxLength": 90,
+ "x-ms-parameter-location": "method"
+ },
+ "DomainServiceNameParameter": {
+ "name": "domainServiceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the domain service.",
+ "x-ms-parameter-location": "method"
+ },
+ "OuContainerNameParameter": {
+ "name": "ouContainerName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the OuContainer.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/domainservices/resource-manager/readme.azureresourceschema.md b/specification/domainservices/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..24b8ecacf69b
--- /dev/null
+++ b/specification/domainservices/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,50 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-aad-2020-01-01
+ - tag: schema-aad-2017-06-01
+ - tag: schema-aad-2017-01-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-aad-2020-01-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-aad-2020-01-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.AAD/stable/2020-01-01/domainservices.json
+ - Microsoft.AAD/stable/2020-01-01/oucontainer.json
+
+```
+
+### Tag: schema-aad-2017-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-aad-2017-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.AAD/stable/2017-06-01/domainservices.json
+ - Microsoft.AAD/stable/2017-06-01/oucontainer.json
+
+```
+
+### Tag: schema-aad-2017-01-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-aad-2017-01-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.AAD/stable/2017-01-01/domainservices.json
+
+```
diff --git a/specification/domainservices/resource-manager/readme.md b/specification/domainservices/resource-manager/readme.md
index a3c8ec8ccf18..a9d111ac2021 100644
--- a/specification/domainservices/resource-manager/readme.md
+++ b/specification/domainservices/resource-manager/readme.md
@@ -1,184 +1,160 @@
-# DomainServices
-
-> see https://aka.ms/autorest
-
-This is the AutoRest configuration file for DomainServices.
-
-
-
----
-## Getting Started
-To build the SDK for DomainServices, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run:
-
-> `autorest`
-
-To see additional help and options, run:
-
-> `autorest --help`
----
-
-## Configuration
-
-
-
-### Basic Information
-These are the global settings for the DomainServices API.
-
-``` yaml
-openapi-type: arm
-tag: package-2017-06
-```
-
-### Tag: package-2020-01
-
-These settings apply only when `--tag=package-2020-01` is specified on the command line.
-
-``` yaml $(tag) == 'package-2020-01'
-input-file:
-- Microsoft.AAD/stable/2020-01-01/domainservices.json
-```
-
-### Tag: package-2017-06
-
-These settings apply only when `--tag=package-2017-06` is specified on the command line.
-
-``` yaml $(tag) == 'package-2017-06'
-input-file:
-- Microsoft.AAD/stable/2017-06-01/domainservices.json
-```
-
-### Tag: package-2017-01
-
-These settings apply only when `--tag=package-2017-01` is specified on the command line.
-
-``` yaml $(tag) == 'package-2017-01'
-input-file:
-- Microsoft.AAD/stable/2017-01-01/domainservices.json
-```
-
----
-# Code Generation
-
-
-## Swagger to SDK
-
-This section describes what SDK should be generated by the automatic system.
-This is not used by Autorest itself.
-
-``` yaml $(swagger-to-sdk)
-swagger-to-sdk:
- - repo: azure-sdk-for-net
- - repo: azure-sdk-for-go
- - repo: azure-sdk-for-js
- - repo: azure-sdk-for-node
-```
-
-## C#
-
-These settings apply only when `--csharp` is specified on the command line.
-Please also specify `--csharp-sdks-folder=`.
-
-``` yaml $(csharp)
-csharp:
- azure-arm: true
- license-header: MICROSOFT_MIT_NO_VERSION
- namespace: Microsoft.Azure.Management.DomainServices
- payload-flattening-threshold: 2
- output-folder: $(csharp-sdks-folder)/domainservices/Microsoft.Azure.Management.DomainServices/src/Generated
- clear-output-folder: true
-```
-
-## Go
-
-See configuration in [readme.go.md](./readme.go.md)
-
-## Java
-
-These settings apply only when `--java` is specified on the command line.
-Please also specify `--azure-libraries-for-java-folder=`.
-
-``` yaml $(java)
-azure-arm: true
-fluent: true
-namespace: com.microsoft.azure.management.domainservices
-license-header: MICROSOFT_MIT_NO_CODEGEN
-payload-flattening-threshold: 1
-output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-domainservices
-```
-
-### Java multi-api
-
-``` yaml $(java) && $(multiapi)
-batch:
- - tag: package-2020-01
- - tag: package-2017-06
- - tag: package-2017-01
-```
-
-### Tag: package-2020-01 and java
-
-These settings apply only when `--tag=package-2020-01 --java` is specified on the command line.
-Please also specify `--azure-libraries-for-java=`.
-
-``` yaml $(tag) == 'package-2020-01' && $(java) && $(multiapi)
-java:
- namespace: com.microsoft.azure.management.domainservices.v2020_01_01
- output-folder: $(azure-libraries-for-java-folder)/sdk/domainservices/mgmt-v2020_01_01
-regenerate-manager: true
-generate-interface: true
-```
-
-### Tag: package-2017-06 and java
-
-These settings apply only when `--tag=package-2017-06 --java` is specified on the command line.
-Please also specify `--azure-libraries-for-java=`.
-
-``` yaml $(tag) == 'package-2017-06' && $(java) && $(multiapi)
-java:
- namespace: com.microsoft.azure.management.domainservices.v2017_06_01
- output-folder: $(azure-libraries-for-java-folder)/sdk/domainservices/mgmt-v2017_06_01
-regenerate-manager: true
-generate-interface: true
-```
-
-### Tag: package-2017-01 and java
-
-These settings apply only when `--tag=package-2017-01 --java` is specified on the command line.
-Please also specify `--azure-libraries-for-java=`.
-
-``` yaml $(tag) == 'package-2017-01' && $(java) && $(multiapi)
-java:
- namespace: com.microsoft.azure.management.domainservices.v2017_01_01
- output-folder: $(azure-libraries-for-java-folder)/sdk/domainservices/mgmt-v2017_01_01
-regenerate-manager: true
-generate-interface: true
-```
-
-
-
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.AAD/stable/2020-01-01/domainservices.json
- - $(this-folder)/Microsoft.AAD/stable/2017-06-01/domainservices.json
- - $(this-folder)/Microsoft.AAD/stable/2017-01-01/domainservices.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
-
+# DomainServices
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for DomainServices.
+
+
+
+---
+## Getting Started
+To build the SDK for DomainServices, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run:
+
+> `autorest`
+
+To see additional help and options, run:
+
+> `autorest --help`
+---
+
+## Configuration
+
+
+
+### Basic Information
+These are the global settings for the DomainServices API.
+
+``` yaml
+openapi-type: arm
+tag: package-2017-06
+```
+
+### Tag: package-2020-01
+
+These settings apply only when `--tag=package-2020-01` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-01'
+input-file:
+- Microsoft.AAD/stable/2020-01-01/domainservices.json
+- Microsoft.AAD/stable/2020-01-01/oucontainer.json
+```
+
+### Tag: package-2017-06
+
+These settings apply only when `--tag=package-2017-06` is specified on the command line.
+
+``` yaml $(tag) == 'package-2017-06'
+input-file:
+- Microsoft.AAD/stable/2017-06-01/domainservices.json
+- Microsoft.AAD/stable/2017-06-01/oucontainer.json
+```
+
+### Tag: package-2017-01
+
+These settings apply only when `--tag=package-2017-01` is specified on the command line.
+
+``` yaml $(tag) == 'package-2017-01'
+input-file:
+- Microsoft.AAD/stable/2017-01-01/domainservices.json
+```
+
+---
+# Code Generation
+
+
+## Swagger to SDK
+
+This section describes what SDK should be generated by the automatic system.
+This is not used by Autorest itself.
+
+``` yaml $(swagger-to-sdk)
+swagger-to-sdk:
+ - repo: azure-sdk-for-net
+ - repo: azure-sdk-for-go
+ - repo: azure-sdk-for-js
+ - repo: azure-sdk-for-node
+```
+
+## C#
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+``` yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ namespace: Microsoft.Azure.Management.DomainServices
+ payload-flattening-threshold: 2
+ output-folder: $(csharp-sdks-folder)/domainservices/Microsoft.Azure.Management.DomainServices/src/Generated
+ clear-output-folder: true
+```
+
+## Go
+
+See configuration in [readme.go.md](./readme.go.md)
+
+## Java
+
+These settings apply only when `--java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(java)
+azure-arm: true
+fluent: true
+namespace: com.microsoft.azure.management.domainservices
+license-header: MICROSOFT_MIT_NO_CODEGEN
+payload-flattening-threshold: 1
+output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-domainservices
+```
+
+### Java multi-api
+
+``` yaml $(java) && $(multiapi)
+batch:
+ - tag: package-2020-01
+ - tag: package-2017-06
+ - tag: package-2017-01
+```
+
+### Tag: package-2020-01 and java
+
+These settings apply only when `--tag=package-2020-01 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2020-01' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.domainservices.v2020_01_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/domainservices/mgmt-v2020_01_01
+regenerate-manager: true
+generate-interface: true
+```
+
+### Tag: package-2017-06 and java
+
+These settings apply only when `--tag=package-2017-06 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2017-06' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.domainservices.v2017_06_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/domainservices/mgmt-v2017_06_01
+regenerate-manager: true
+generate-interface: true
+```
+
+### Tag: package-2017-01 and java
+
+These settings apply only when `--tag=package-2017-01 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2017-01' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.domainservices.v2017_01_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/domainservices/mgmt-v2017_01_01
+regenerate-manager: true
+generate-interface: true
+```
+
+
+
diff --git a/specification/engagementfabric/resource-manager/readme.azureresourceschema.md b/specification/engagementfabric/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..29aa52048494
--- /dev/null
+++ b/specification/engagementfabric/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-engagementfabric-2018-09-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-engagementfabric-2018-09-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-engagementfabric-2018-09-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EngagementFabric/preview/2018-09-01/EngagementFabric.json
+
+```
diff --git a/specification/engagementfabric/resource-manager/readme.md b/specification/engagementfabric/resource-manager/readme.md
index 728d6321e9fd..c34f5beb220e 100644
--- a/specification/engagementfabric/resource-manager/readme.md
+++ b/specification/engagementfabric/resource-manager/readme.md
@@ -59,6 +59,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_engagement_fabric']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js engagementfabric/resource-manager
```
@@ -124,27 +127,7 @@ payload-flattening-threshold: 1
output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-engagementfabric
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.EngagementFabric/preview/2018-09-01/EngagementFabric.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json b/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json
new file mode 100644
index 000000000000..384521adebae
--- /dev/null
+++ b/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json
@@ -0,0 +1,352 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2018-01-01",
+ "title": "Schema of Azure Communication Services events published to Azure Event Grid",
+ "description": "Describes the schema of the Azure Communication Services events published to Azure Event Grid. This corresponds to the Data property of an EventGridEvent."
+ },
+ "paths": {},
+ "definitions": {
+ "ACSChatMessageReceivedEventData": {
+ "description": "Schema of the Data property of an EventGridEvent for an Microsoft.Communication.ChatMessageReceived event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ACSChatMessageEventBaseProperties"
+ }
+ ],
+ "properties": {
+ "messageBody": {
+ "description": "The body of the chat message",
+ "type": "string"
+ }
+ }
+ },
+ "ACSChatMessageEditedEventData": {
+ "description": "Schema of the Data property of an EventGridEvent for an Microsoft.Communication.ChatMessageEdited event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ACSChatMessageEventBaseProperties"
+ }
+ ],
+ "properties": {
+ "messageBody": {
+ "description": "The body of the chat message",
+ "type": "string"
+ },
+ "editTime": {
+ "description": "The time at which the message was edited",
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ },
+ "ACSChatMessageDeletedEventData": {
+ "description": "Schema of the Data property of an EventGridEvent for an Microsoft.Communication.ChatMessageDeleted event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ACSChatMessageEventBaseProperties"
+ }
+ ],
+ "properties": {
+ "deleteTime": {
+ "description": "The time at which the message was deleted",
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ },
+ "ACSChatThreadCreatedWithUserEventData": {
+ "description": "Schema of the Data property of an EventGridEvent for an Microsoft.Communication.ChatThreadCreatedWithUser event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ACSChatThreadEventBaseProperties"
+ }
+ ],
+ "properties": {
+ "createdBy": {
+ "description": "The MRI of the creator of the thread",
+ "type": "string"
+ },
+ "properties": {
+ "description": "The thread properties",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "members": {
+ "description": "The list of properties of users who are part of the thread",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ACSChatThreadMemberProperties"
+ }
+ }
+ }
+ },
+ "ACSChatThreadWithUserDeletedEventData": {
+ "description": "Schema of the Data property of an EventGridEvent for an Microsoft.Communication.ChatThreadWithUserDeleted event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ACSChatThreadEventBaseProperties"
+ }
+ ],
+ "properties": {
+ "deletedBy": {
+ "description": "The MRI of the user who deleted the thread",
+ "type": "string"
+ },
+ "deleteTime": {
+ "description": "The deletion time of the thread",
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ },
+ "ACSChatThreadPropertiesUpdatedPerUserEventData": {
+ "description": "Schema of the Data property of an EventGridEvent for an Microsoft.Communication.ChatThreadPropertiesUpdatedPerUser event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ACSChatThreadEventBaseProperties"
+ }
+ ],
+ "properties": {
+ "editedBy": {
+ "description": "The MRI of the user who updated the thread properties",
+ "type": "string"
+ },
+ "editTime": {
+ "description": "The time at which the properties of the thread were updated",
+ "format": "date-time",
+ "type": "string"
+ },
+ "properties": {
+ "description": "The updated thread properties",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ "ACSChatMemberAddedToThreadWithUserEventData": {
+ "description": "Schema of the Data property of an EventGridEvent for an Microsoft.Communication.ChatMemberAddedToThreadWithUser event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ACSChatThreadEventBaseProperties"
+ }
+ ],
+ "properties": {
+ "time": {
+ "description": "The time at which the user was added to the thread",
+ "format": "date-time",
+ "type": "string"
+ },
+ "addedBy": {
+ "description": "The MRI of the user who added the user",
+ "type": "string"
+ },
+ "memberAdded": {
+ "description": "The details of the user who was added",
+ "$ref": "#/definitions/ACSChatThreadMemberProperties"
+ }
+ }
+ },
+ "ACSChatMemberRemovedFromThreadWithUserEventData": {
+ "description": "Schema of the Data property of an EventGridEvent for an Microsoft.Communication.ChatMemberRemovedFromThreadWithUser event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ACSChatThreadEventBaseProperties"
+ }
+ ],
+ "properties": {
+ "time": {
+ "description": "The time at which the user was removed to the thread",
+ "format": "date-time",
+ "type": "string"
+ },
+ "removedBy": {
+ "description": "The MRI of the user who removed the user",
+ "type": "string"
+ },
+ "memberRemoved": {
+ "description": "The details of the user who was removed",
+ "$ref": "#/definitions/ACSChatThreadMemberProperties"
+ }
+ }
+ },
+ "AcsSmsDeliveryReportReceivedEventData": {
+ "description": "Schema of the Data property of an EventGridEvent for an Microsoft.Communication.SMSDeliveryReportReceived event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/AcsSmsEventBaseProperties"
+ }
+ ],
+ "properties": {
+ "deliveryStatus": {
+ "description": "Status of Delivery",
+ "type": "string"
+ },
+ "deliveryStatusDetails": {
+ "description": "Details about Delivery Status",
+ "type": "string"
+ },
+ "deliveryAttempts": {
+ "description": "List of details of delivery attempts made",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AcsSmsDeliveryAttemptProperties"
+ }
+ },
+ "receivedTimestamp": {
+ "description": "The time at which the SMS delivery report was received",
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ },
+ "AcsSmsReceivedEventData": {
+ "description": "Schema of the Data property of an EventGridEvent for an Microsoft.Communication.SMSReceived event.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/AcsSmsEventBaseProperties"
+ }
+ ],
+ "properties": {
+ "message": {
+ "description": "The SMS content",
+ "type": "string"
+ },
+ "receivedTimestamp": {
+ "description": "The time at which the SMS was received",
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ },
+ "ACSChatThreadEventBaseProperties": {
+ "description": "Schema of common properties of all chat thread events",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ACSChatEventBaseProperties"
+ }
+ ],
+ "properties": {
+ "createTime": {
+ "description": "The original creation time of the thread",
+ "format": "date-time",
+ "type": "string"
+ },
+ "version": {
+ "description": "The version of the thread",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "ACSChatMessageEventBaseProperties": {
+ "description": "Schema of common properties of all chat message events",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ACSChatEventBaseProperties"
+ }
+ ],
+ "properties": {
+ "messageId": {
+ "description": "The chat message id",
+ "type": "string"
+ },
+ "senderId": {
+ "description": "The MRI of the sender",
+ "type": "string"
+ },
+ "senderDisplayName": {
+ "description": "The display name of the sender",
+ "type": "string"
+ },
+ "composeTime": {
+ "description": "The original compose time of the message",
+ "format": "date-time",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of the message",
+ "type": "string"
+ },
+ "version": {
+ "description": "The version of the message",
+ "type": "integer",
+ "format": "int64"
+ }
+ }
+ },
+ "ACSChatEventBaseProperties": {
+ "description": "Schema of common properties of all chat events",
+ "type": "object",
+ "properties": {
+ "recipientId": {
+ "description": "The MRI of the target user",
+ "type": "string"
+ },
+ "transactionId": {
+ "description": "The transaction id will be used as co-relation vector",
+ "type": "string"
+ },
+ "threadId": {
+ "description": "The chat thread id",
+ "type": "string"
+ }
+ }
+ },
+ "ACSChatThreadMemberProperties": {
+ "description": "Schema of the chat thread member",
+ "type": "object",
+ "properties": {
+ "displayName": {
+ "description": "The name of the user",
+ "type": "string"
+ },
+ "memberId": {
+ "description": "The MRI of the user",
+ "type": "string"
+ }
+ }
+ },
+ "AcsSmsEventBaseProperties": {
+ "description": "Schema of common properties of all SMS events",
+ "type": "object",
+ "properties": {
+ "messageId": {
+ "description": "The identity of the SMS message",
+ "type": "string"
+ },
+ "from": {
+ "description": "The identity of SMS message sender",
+ "type": "string"
+ },
+ "to": {
+ "description": "The identity of SMS message receiver",
+ "type": "string"
+ }
+ }
+ },
+ "AcsSmsDeliveryAttemptProperties": {
+ "description": "Schema for details of a delivery attempt",
+ "type": "object",
+ "properties": {
+ "timestamp": {
+ "description": "TimeStamp when delivery was attempted",
+ "format": "date-time",
+ "type": "string"
+ },
+ "segmentsSucceeded": {
+ "description": "Number of segments that were successfully delivered",
+ "type": "integer"
+ },
+ "segmentsFailed": {
+ "description": "Number of segments whose delivery failed",
+ "type": "integer"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/EventGrid.json b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/EventGrid.json
index 5220d070ce4a..b70b49b75ed7 100644
--- a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/EventGrid.json
+++ b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/EventGrid.json
@@ -70,10 +70,93 @@
}
}
},
+ "x-ms-paths": {
+ "/api/events?overload=cloudEvent": {
+ "post": {
+ "consumes": [
+ "application/cloudevents-batch+json; charset=utf-8"
+ ],
+ "tags": [
+ "Events"
+ ],
+ "description": "Publishes a batch of events to an Azure Event Grid topic.",
+ "operationId": "PublishCloudEventEvents",
+ "parameters": [
+ {
+ "name": "events",
+ "description": "An array of events to be published to Event Grid.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudEventEvent"
+ }
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error.\n\n * 429 Too Many Events\n\n * 404 Not Found."
+ }
+ },
+ "x-ms-examples": {
+ "PublishEventsToEventGridTopicAsCloudEvents": {
+ "$ref": "./examples/PublishEventsToEventGridTopicAsCloudEvents.json"
+ }
+ }
+ }
+ },
+ "/api/events?overload=customEvent": {
+ "post": {
+ "tags": [
+ "Events"
+ ],
+ "description": "Publishes a batch of events to an Azure Event Grid topic.",
+ "operationId": "PublishCustomEventEvents",
+ "parameters": [
+ {
+ "name": "events",
+ "description": "An array of events to be published to Event Grid.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CustomEventEvent"
+ }
+ }
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "default": {
+ "description": "*** Error Responses: ***\n\n * 400 Bad Request.\n\n * 500 Internal Server Error.\n\n * 429 Too Many Events\n\n * 404 Not Found."
+ }
+ },
+ "x-ms-examples": {
+ "PublishEventsToEventGridTopicAsCloudEvents": {
+ "$ref": "./examples/PublishEventsToEventGridTopicAsCustomSchemaEvents.json"
+ }
+ }
+ }
+ }
+ },
"definitions": {
"EventGridEvent": {
"type": "object",
- "description": "Properties of an event published to an Event Grid topic.",
+ "description": "Properties of an event published to an Event Grid topic using the EventGrid Schema.",
"required": [
"id",
"subject",
@@ -119,6 +202,65 @@
}
}
},
+ "CloudEventEvent": {
+ "type": "object",
+ "description": "Properties of an event published to an Event Grid topic using the CloudEvent 1.0 Schema",
+ "required": [
+ "type",
+ "specversion",
+ "source",
+ "id"
+ ],
+ "properties": {
+ "id": {
+ "description": "An identifier for the event. The combination of id and source must be unique for each distinct event.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Identifies the context in which an event happened. The combination of id and source must be unique for each distinct event.",
+ "type": "string"
+ },
+ "data": {
+ "description": "Event data specific to the event type.",
+ "type": "object"
+ },
+ "data_base64": {
+ "description": "Event data specific to the event type, encoded as a base64 string.",
+ "type": "string",
+ "format": "byte"
+ },
+ "type": {
+ "description": "Type of event related to the originating occurrence.",
+ "type": "string"
+ },
+ "time": {
+ "description": "The time (in UTC) the event was generated, in RFC3339 format.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "specversion": {
+ "description": "The version of the CloudEvents specification which the event uses.",
+ "type": "string"
+ },
+ "dataschema": {
+ "description": "Identifies the schema that data adheres to.",
+ "type": "string"
+ },
+ "datacontenttype": {
+ "description": "Content type of data value.",
+ "type": "string"
+ },
+ "subject": {
+ "description": "This describes the subject of the event in the context of the event producer (identified by source).",
+ "type": "string"
+ }
+ },
+ "additionalProperties": true
+ },
+ "CustomEventEvent": {
+ "type": "object",
+ "description": "Properties of an event published to an Event Grid topic using a custom schema"
+ },
"SubscriptionValidationEventData": {
"description": "Schema of the Data property of an EventGridEvent for a Microsoft.EventGrid.SubscriptionValidationEvent.",
"type": "object",
diff --git a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/examples/PublishEventsToEventGridTopicAsCloudEvents.json b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/examples/PublishEventsToEventGridTopicAsCloudEvents.json
new file mode 100644
index 000000000000..8f8d89f0d232
--- /dev/null
+++ b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/examples/PublishEventsToEventGridTopicAsCloudEvents.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "topicHostname": "mytopic.westcentralus-1.eventgrid.azure.net",
+ "api-version": "2018-01-01",
+ "events": [
+ {
+ "id": "b3ccc7e3-c1cb-49bf-b7c8-0d4e60980616",
+ "source": "/microsoft/autorest/examples/eventgrid/cloud-events/publish",
+ "specversion": "1.0",
+ "data": {
+ "Property1": "Value1",
+ "Property2": "Value2"
+ },
+ "type": "Microsoft.Contoso.TestEvent",
+ "time": "2017-12-04T22:06:09.147165Z"
+ }
+ ]
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/examples/PublishEventsToEventGridTopicAsCustomSchemaEvents.json b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/examples/PublishEventsToEventGridTopicAsCustomSchemaEvents.json
new file mode 100644
index 000000000000..cba65d5dce7b
--- /dev/null
+++ b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/examples/PublishEventsToEventGridTopicAsCustomSchemaEvents.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "topicHostname": "mytopic.westcentralus-1.eventgrid.azure.net",
+ "api-version": "2018-01-01",
+ "events": [
+ {
+ "sub": "Test event",
+ "data": {
+ "Property1": "Value1",
+ "Property2": "Value2"
+ },
+ "type": "Microsoft.Contoso.TestEvent",
+ "ver": "1.0"
+ }
+ ]
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/eventgrid/data-plane/Microsoft.KeyVault/stable/2018-01-01/KeyVault.json b/specification/eventgrid/data-plane/Microsoft.KeyVault/stable/2018-01-01/KeyVault.json
index b49ea347e927..acd30d40cc77 100644
--- a/specification/eventgrid/data-plane/Microsoft.KeyVault/stable/2018-01-01/KeyVault.json
+++ b/specification/eventgrid/data-plane/Microsoft.KeyVault/stable/2018-01-01/KeyVault.json
@@ -312,6 +312,40 @@
"type": "number"
}
}
+ },
+ "KeyVaultVaultAccessPolicyChangedEventData": {
+ "description": "Schema of the Data property of an EventGridEvent for an VaultAccessPolicyChanged event.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The id of the object that triggered this event.",
+ "type": "string"
+ },
+ "vaultName": {
+ "description": "Key vault name of the object that triggered this event.",
+ "type": "string"
+ },
+ "objectType": {
+ "description": "The type of the object that triggered this event",
+ "type": "string"
+ },
+ "objectName": {
+ "description": "The name of the object that triggered this event",
+ "type": "string"
+ },
+ "version": {
+ "description": "The version of the object that triggered this event",
+ "type": "string"
+ },
+ "nbf": {
+ "description": "Not before date of the object that triggered this event",
+ "type": "number"
+ },
+ "exp": {
+ "description": "The expiration date of the object that triggered this event",
+ "type": "number"
+ }
+ }
}
}
}
diff --git a/specification/eventgrid/data-plane/readme.md b/specification/eventgrid/data-plane/readme.md
index fd7eb6016138..744ddac3e43e 100644
--- a/specification/eventgrid/data-plane/readme.md
+++ b/specification/eventgrid/data-plane/readme.md
@@ -59,6 +59,16 @@ input-file:
- Microsoft.MachineLearningServices/stable/2018-01-01/MachineLearningServices.json
- Microsoft.Cache/stable/2018-01-01/RedisCache.json
- Microsoft.Web/stable/2018-01-01/Web.json
+- Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json
+```
+
+### Suppression
+``` yaml
+directive:
+ - suppress: DefinitionsPropertiesNamesCamelCase
+ from: Microsoft.EventGrid/stable/2018-01-01/EventGrid.json
+ where: $.definitions.CloudEventEvent.properties.data_base64
+ reason: This parameter name is defined by the Cloud Events 1.0 specification
```
---
@@ -141,6 +151,7 @@ input-file:
- $(this-folder)/Microsoft.MachineLearningServices/stable/2018-01-01/MachineLearningServices.json
- $(this-folder)/Microsoft.Cache/stable/2018-01-01/RedisCache.json
- $(this-folder)/Microsoft.Web/stable/2018-01-01/Web.json
+ - $(this-folder)/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json
```
diff --git a/specification/eventgrid/resource-manager/readme.azureresourceschema.md b/specification/eventgrid/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..5afb66e43cbe
--- /dev/null
+++ b/specification/eventgrid/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,144 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-eventgrid-2020-06-01
+ - tag: schema-eventgrid-2020-04-01-preview
+ - tag: schema-eventgrid-2020-01-01-preview
+ - tag: schema-eventgrid-2019-06-01
+ - tag: schema-eventgrid-2019-02-01-preview
+ - tag: schema-eventgrid-2019-01-01
+ - tag: schema-eventgrid-2018-09-15-preview
+ - tag: schema-eventgrid-2018-05-01-preview
+ - tag: schema-eventgrid-2018-01-01
+ - tag: schema-eventgrid-2017-09-15-preview
+ - tag: schema-eventgrid-2017-06-15-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-eventgrid-2020-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventgrid-2020-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventGrid/stable/2020-06-01/EventGrid.json
+
+```
+
+### Tag: schema-eventgrid-2020-04-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventgrid-2020-04-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventGrid/preview/2020-04-01-preview/EventGrid.json
+
+```
+
+### Tag: schema-eventgrid-2020-01-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventgrid-2020-01-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventGrid/preview/2020-01-01-preview/EventGrid.json
+
+```
+
+### Tag: schema-eventgrid-2019-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventgrid-2019-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventGrid/stable/2019-06-01/EventGrid.json
+
+```
+
+### Tag: schema-eventgrid-2019-02-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventgrid-2019-02-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventGrid/preview/2019-02-01-preview/EventGrid.json
+
+```
+
+### Tag: schema-eventgrid-2019-01-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventgrid-2019-01-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventGrid/stable/2019-01-01/EventGrid.json
+
+```
+
+### Tag: schema-eventgrid-2018-09-15-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventgrid-2018-09-15-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventGrid/preview/2018-09-15-preview/EventGrid.json
+
+```
+
+### Tag: schema-eventgrid-2018-05-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventgrid-2018-05-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventGrid/preview/2018-05-01-preview/EventGrid.json
+
+```
+
+### Tag: schema-eventgrid-2018-01-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventgrid-2018-01-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventGrid/stable/2018-01-01/EventGrid.json
+
+```
+
+### Tag: schema-eventgrid-2017-09-15-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventgrid-2017-09-15-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventGrid/preview/2017-09-15-preview/EventGrid.json
+
+```
+
+### Tag: schema-eventgrid-2017-06-15-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventgrid-2017-06-15-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventGrid/preview/2017-06-15-preview/EventGrid.json
+
+```
diff --git a/specification/eventgrid/resource-manager/readme.md b/specification/eventgrid/resource-manager/readme.md
index 85b509c238ed..1ba6e68d7af4 100644
--- a/specification/eventgrid/resource-manager/readme.md
+++ b/specification/eventgrid/resource-manager/readme.md
@@ -173,6 +173,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_event_grid']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js eventgrid/resource-manager
```
## C#
@@ -198,36 +201,7 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.EventGrid/stable/2020-06-01/EventGrid.json
- - $(this-folder)/Microsoft.EventGrid/preview/2020-04-01-preview/EventGrid.json
- - $(this-folder)/Microsoft.EventGrid/preview/2020-01-01-preview/EventGrid.json
- - $(this-folder)/Microsoft.EventGrid/stable/2019-06-01/EventGrid.json
- - $(this-folder)/Microsoft.EventGrid/preview/2019-02-01-preview/EventGrid.json
- - $(this-folder)/Microsoft.EventGrid/stable/2019-01-01/EventGrid.json
- - $(this-folder)/Microsoft.EventGrid/preview/2018-09-15-preview/EventGrid.json
- - $(this-folder)/Microsoft.EventGrid/preview/2018-05-01-preview/EventGrid.json
- - $(this-folder)/Microsoft.EventGrid/stable/2018-01-01/EventGrid.json
- - $(this-folder)/Microsoft.EventGrid/preview/2017-09-15-preview/EventGrid.json
- - $(this-folder)/Microsoft.EventGrid/preview/2017-06-15-preview/EventGrid.json
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-```
-
-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/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/AvailableClusterRegions-preview.json b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/AvailableClusterRegions-preview.json
index 4c22e44c12d0..74ec2f20ba61 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/AvailableClusterRegions-preview.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/AvailableClusterRegions-preview.json
@@ -48,10 +48,10 @@
"description": "List the quantity of available pre-provisioned Event Hubs Clusters, indexed by Azure region.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
}
],
"responses": {
@@ -64,7 +64,7 @@
"default": {
"description": "Error response describing why available clusters could not be successfully listed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/Clusters-preview.json b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/Clusters-preview.json
index 548a7852cd5f..9300b0e7a82a 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/Clusters-preview.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/Clusters-preview.json
@@ -48,13 +48,13 @@
"description": "Lists the available Event Hubs Clusters within an ARM resource group",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
}
],
"responses": {
@@ -67,7 +67,7 @@
"default": {
"description": "Event Hub Cluster error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -90,16 +90,16 @@
"description": "Gets the resource description of the specified Event Hubs Cluster.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ClusterNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ClusterNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
}
],
"responses": {
@@ -112,7 +112,7 @@
"default": {
"description": "Event Hubs Cluster error response describing why the cluster description get operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -130,13 +130,13 @@
"description": "Creates or updates an instance of an Event Hubs Cluster.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ClusterNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ClusterNameParameter"
},
{
"name": "parameters",
@@ -151,7 +151,7 @@
"description": "Parameters for creating a eventhub cluster resource."
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
}
],
"responses": {
@@ -173,7 +173,7 @@
"default": {
"description": "Event Hubs error response detailing why the Event Hubs Cluster create or update operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -192,16 +192,16 @@
"description": "Modifies mutable properties on the Event Hubs Cluster. This operation is idempotent.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ClusterNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ClusterNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
"name": "parameters",
@@ -232,7 +232,7 @@
"default": {
"description": "Event Hubs error response detailing why the Event Hubs Cluster update operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -251,16 +251,16 @@
"description": "Deletes an existing Event Hubs Cluster. This operation is idempotent.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ClusterNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ClusterNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
}
],
"responses": {
@@ -276,7 +276,7 @@
"default": {
"description": "Event Hubs error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -291,16 +291,16 @@
"operationId": "Clusters_ListNamespaces",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ClusterNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ClusterNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
}
],
"description": "List all Event Hubs Namespace IDs in an Event Hubs Dedicated Cluster.",
@@ -319,7 +319,7 @@
"default": {
"description": "Event Hubs Cluster error response detailing why this operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -362,7 +362,7 @@
},
"allOf": [
{
- "$ref": "../../common/v1/definitions.json#/definitions/TrackedResource"
+ "$ref": "../../../common/v1/definitions.json#/definitions/TrackedResource"
}
],
"description": "Single Event Hubs Cluster resource in List or Get operations."
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateEndPointConnectionCreate.json b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateEndPointConnectionCreate.json
new file mode 100644
index 000000000000..c485ea28d9f8
--- /dev/null
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateEndPointConnectionCreate.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "namespaceName": "sdk-Namespace-2924",
+ "resourceGroupName": "ArunMonocle",
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "subID",
+ "privateEndpointConnectionName": "privateEndpointConnectionName",
+ "parameters": {
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/dbedb4e0-40e6-4145-81f3-f1314c150774/resourceGroups/SDK-EventHub-8396/providers/Microsoft.Network/privateEndpoints/sdk-Namespace-2847"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Rejected",
+ "description": "testing"
+ },
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/dbedb4e0-40e6-4145-81f3-f1314c150774/resourceGroups/SDK-EventHub-4794/providers/Microsoft.EventHub/namespaces/sdk-Namespace-5828/privateEndpointConnections/928c44d5-b7c6-423b-b6fa-811e0c27b3e0",
+ "name": "928c44d5-b7c6-423b-b6fa-811e0c27b3e0",
+ "type": "Microsoft.EventHub/Namespaces/PrivateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/dbedb4e0-40e6-4145-81f3-f1314c150774/resourceGroups/SDK-EventHub-4794/providers/Microsoft.Network/privateEndpoints/sdk-Namespace-5828"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/dbedb4e0-40e6-4145-81f3-f1314c150774/resourceGroups/SDK-EventHub-4794/providers/Microsoft.EventHub/namespaces/sdk-Namespace-5828/privateEndpointConnections/928c44d5-b7c6-423b-b6fa-811e0c27b3e0",
+ "name": "928c44d5-b7c6-423b-b6fa-811e0c27b3e0",
+ "type": "Microsoft.EventHub/Namespaces/PrivateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/dbedb4e0-40e6-4145-81f3-f1314c150774/resourceGroups/SDK-EventHub-4794/providers/Microsoft.Network/privateEndpoints/sdk-Namespace-5828"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateEndPointConnectionDelete.json b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateEndPointConnectionDelete.json
new file mode 100644
index 000000000000..68fd4f7ca8ae
--- /dev/null
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateEndPointConnectionDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "namespaceName": "sdk-Namespace-3285",
+ "resourceGroupName": "ArunMonocle",
+ "privateEndpointConnectionName": "928c44d5-b7c6-423b-b6fa-811e0c27b3e0",
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "5f750a97-50d9-4e36-8081-c9ee4c0210d4"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateEndPointConnectionGet.json b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateEndPointConnectionGet.json
new file mode 100644
index 000000000000..801342ade57b
--- /dev/null
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateEndPointConnectionGet.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "namespaceName": "sdk-Namespace-5828",
+ "resourceGroupName": "SDK-EventHub-4794",
+ "privateEndpointConnectionName": "privateEndpointConnectionName",
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "subID"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/dbedb4e0-40e6-4145-81f3-f1314c150774/resourceGroups/SDK-EventHub-4794/providers/Microsoft.EventHub/namespaces/sdk-Namespace-5828/privateEndpointConnections/privateEndpointConnectionName",
+ "name": "privateEndpointConnectionName",
+ "type": "Microsoft.EventHub/Namespaces/PrivateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/dbedb4e0-40e6-4145-81f3-f1314c150774/resourceGroups/SDK-EventHub-4794/providers/Microsoft.Network/privateEndpoints/sdk-Namespace-5828"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateEndPointConnectionList.json b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateEndPointConnectionList.json
new file mode 100644
index 000000000000..4095c639f900
--- /dev/null
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateEndPointConnectionList.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "namespaceName": "sdk-Namespace-5828",
+ "resourceGroupName": "SDK-EventHub-4794",
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "subID"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/dbedb4e0-40e6-4145-81f3-f1314c150774/resourceGroups/SDK-EventHub-7182/providers/Microsoft.EventHub/namespaces/sdk-Namespace-5705-new/privateEndpointConnections/5dc668b3-70e4-437f-b61c-a3c1e594be7a",
+ "name": "5dc668b3-70e4-437f-b61c-a3c1e594be7a",
+ "type": "Microsoft.EventHub/Namespaces/PrivateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/dbedb4e0-40e6-4145-81f3-f1314c150774/resourceGroups/SDK-EventHub-7182/providers/Microsoft.Network/privateEndpoints/sdk-Namespace-5705-new"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateLinkResourcesGet.json b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateLinkResourcesGet.json
new file mode 100644
index 000000000000..c71adb869dde
--- /dev/null
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/examples/NameSpaces/PrivateLinkResourcesGet.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "namespaceName": "sdk-Namespace-2924",
+ "resourceGroupName": "ArunMonocle",
+ "api-version": "2018-01-01-preview",
+ "subscriptionId": "subID"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "subscriptions/subID/resourceGroups/SDK-EventHub-4794/providers/Microsoft.EventHub/namespaces/sdk-Namespace-5828/privateLinkResources/namespace",
+ "name": "namespace",
+ "type": "Microsoft.EventHub/namespaces/privateLinkResources",
+ "properties": {
+ "groupId": "namespace",
+ "requiredMembers": [
+ "namespace"
+ ],
+ "requiredZoneNames": [
+ "privatelink.EventHub.windows.net"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/ipfilterrules-preview.json b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/ipfilterrules-preview.json
index 7382364c2424..2ce68eb88f9f 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/ipfilterrules-preview.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/ipfilterrules-preview.json
@@ -48,16 +48,16 @@
"description": "Gets a list of IP Filter rules for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -70,7 +70,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -93,13 +93,13 @@
"description": "Creates or updates an IpFilterRule for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/IpFilterRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/IpFilterRuleNameParameter"
},
{
"name": "parameters",
@@ -111,10 +111,10 @@
"description": "The Namespace IpFilterRule."
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -127,7 +127,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -145,19 +145,19 @@
"description": "Deletes an IpFilterRule for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/IpFilterRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/IpFilterRuleNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -170,7 +170,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -188,19 +188,19 @@
"description": "Gets an IpFilterRule for a Namespace by rule name.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/IpFilterRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/IpFilterRuleNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -213,7 +213,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -252,7 +252,7 @@
},
"allOf": [
{
- "$ref": "../../common/v1/definitions.json#/definitions/Resource"
+ "$ref": "../../../common/v1/definitions.json#/definitions/Resource"
}
],
"description": "Single item in a List or Get IpFilterRules operation"
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/namespaces-preview.json b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/namespaces-preview.json
index 0f2174cfb648..02608d7b5225 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/namespaces-preview.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/namespaces-preview.json
@@ -48,10 +48,10 @@
"description": "Lists all the available Namespaces within a subscription, irrespective of the resource groups.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -64,7 +64,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -87,13 +87,13 @@
"description": "Lists the available Namespaces within a resource group.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -106,7 +106,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -129,10 +129,10 @@
"description": "Creates or updates a namespace. Once created, this namespace's resource manifest is immutable. This operation is idempotent.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
"name": "parameters",
@@ -147,10 +147,10 @@
"description": "Parameters for creating a namespace resource."
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -172,7 +172,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -191,16 +191,16 @@
"description": "Deletes an existing namespace. This operation also removes all associated resources under the namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -216,7 +216,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -235,16 +235,16 @@
"description": "Gets the description of the specified namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -263,7 +263,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -281,10 +281,10 @@
"description": "Creates or updates a namespace. Once created, this namespace's resource manifest is immutable. This operation is idempotent.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
"name": "parameters",
@@ -296,10 +296,10 @@
"description": "Parameters for updating a namespace resource."
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -321,7 +321,259 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventHub/namespaces/{namespaceName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "Namespaces PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_List",
+ "x-ms-examples": {
+ "NameSpaceCreate": {
+ "$ref": "./examples/NameSpaces/PrivateEndPointConnectionList.json"
+ }
+ },
+ "description": "Gets the available PrivateEndpointConnections within a namespace.",
+ "externalDocs": {
+ "url": "https://msdn.microsoft.com/en-us/library/azure/mt639412.aspx"
+ },
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "PrivateEndpointConnections successfully returned.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "EventHubEventHub error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventHub/namespaces/{namespaceName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "put": {
+ "tags": [
+ "Namespaces PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_CreateOrUpdate",
+ "x-ms-examples": {
+ "NameSpacePrivateEndPointConnectionCreate": {
+ "$ref": "./examples/NameSpaces/PrivateEndPointConnectionCreate.json"
+ }
+ },
+ "description": "Creates or updates PrivateEndpointConnections of service namespace.",
+ "externalDocs": {
+ "url": "https://msdn.microsoft.com/en-us/library/azure/mt639408.aspx"
+ },
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/PrivateEndpointConnectionNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "Parameters supplied to update Status of PrivateEndPoint Connection to namespace resource."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Status of PrivateEndPoint Connection Created successfully.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "201": {
+ "description": "Request to update Status of PrivateEndPoint Connection accepted.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Eventhub error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Namespaces PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Delete",
+ "x-ms-examples": {
+ "NameSpacePrivateEndPointConnectionDelete": {
+ "$ref": "./examples/NameSpaces/PrivateEndPointConnectionDelete.json"
+ }
+ },
+ "description": "Deletes an existing namespace. This operation also removes all associated resources under the namespace.",
+ "externalDocs": {
+ "url": "https://msdn.microsoft.com/en-us/library/azure/mt639389.aspx"
+ },
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/PrivateEndpointConnectionNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Private Endpoint Connection successfully deleted."
+ },
+ "202": {
+ "description": "Private Endpoint Connection delete request accepted."
+ },
+ "204": {
+ "description": "No content."
+ },
+ "default": {
+ "description": "Eventhub error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "Namespaces PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Get",
+ "x-ms-examples": {
+ "NameSpacePrivateEndPointConnectionGet": {
+ "$ref": "./examples/NameSpaces/PrivateEndPointConnectionGet.json"
+ }
+ },
+ "description": "Gets a description for the specified Private Endpoint Connection name.",
+ "externalDocs": {
+ "url": "https://msdn.microsoft.com/en-us/library/azure/mt639379.aspx"
+ },
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/PrivateEndpointConnectionNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Private Endpoint Connection successfully returned.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Eventhub error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventHub/namespaces/{namespaceName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "Namespaces PrivateLinkResources"
+ ],
+ "operationId": "PrivateLinkResources_Get",
+ "x-ms-examples": {
+ "NameSpacePrivateLinkResourcesGet": {
+ "$ref": "./examples/NameSpaces/PrivateLinkResourcesGet.json"
+ }
+ },
+ "description": "Gets lists of resources that supports Privatelinks.",
+ "externalDocs": {
+ "url": "https://msdn.microsoft.com/en-us/library/azure/mt639379.aspx"
+ },
+ "parameters": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Private Link resource List",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResourcesListResult"
+ }
+ },
+ "default": {
+ "description": "Eventhub error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -418,7 +670,7 @@
},
"allOf": [
{
- "$ref": "../../common/v1/definitions.json#/definitions/TrackedResource"
+ "$ref": "../../../common/v1/definitions.json#/definitions/TrackedResource"
}
],
"description": "Single Namespace item in List or Get Operation"
@@ -534,6 +786,159 @@
}
},
"description": "Properties to configure keyVault Properties"
+ },
+ "PrivateEndpointConnection": {
+ "description": "Properties of the PrivateEndpointConnection.",
+ "allOf": [
+ {
+ "$ref": "../../../common/v1/definitions.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "description": "Properties of the PrivateEndpointConnection.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "PrivateEndpointConnectionProperties": {
+ "description": "Properties of the private endpoint connection resource.",
+ "properties": {
+ "privateEndpoint": {
+ "$ref": "#/definitions/PrivateEndpoint",
+ "description": "The Private Endpoint resource for this Connection."
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "#/definitions/ConnectionState",
+ "description": "Details about the state of the connection."
+ },
+ "provisioningState": {
+ "description": "Provisioning state of the Private Endpoint Connection.",
+ "enum": [
+ "Creating",
+ "Updating",
+ "Deleting",
+ "Succeeded",
+ "Canceled",
+ "Failed"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "EndPointProvisioningState",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "PrivateEndpoint": {
+ "description": "PrivateEndpoint information.",
+ "properties": {
+ "id": {
+ "description": "The ARM identifier for Private Endpoint.",
+ "type": "string"
+ }
+ }
+ },
+ "ConnectionState": {
+ "description": "ConnectionState information.",
+ "properties": {
+ "status": {
+ "description": "Status of the connection.",
+ "enum": [
+ "Pending",
+ "Approved",
+ "Rejected",
+ "Disconnected"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "PrivateLinkConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "description": {
+ "description": "Description of the connection state.",
+ "type": "string"
+ }
+ }
+ },
+ "PrivateEndpointConnectionListResult": {
+ "description": "Result of the list of all private endpoint connections operation.",
+ "properties": {
+ "value": {
+ "description": "A collection of private endpoint connection resources.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "nextLink": {
+ "description": "A link for the next page of private endpoint connection resources.",
+ "type": "string"
+ }
+ }
+ },
+ "PrivateLinkResource": {
+ "description": "Information of the private link resource.",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateLinkResourceProperties",
+ "description": "Properties of the private link resource.",
+ "x-ms-client-flatten": true
+ },
+ "id": {
+ "description": "Fully qualified identifier of the resource.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the resource",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of the resource",
+ "type": "string"
+ }
+ }
+ },
+ "PrivateLinkResourceProperties": {
+ "description": "Properties of PrivateLinkResource",
+ "properties": {
+ "groupId": {
+ "description": "The private link resource group id.",
+ "type": "string"
+ },
+ "requiredMembers": {
+ "type": "array",
+ "description": "The private link resource required member names.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "requiredZoneNames": {
+ "type": "array",
+ "description": "The private link resource Private link DNS zone name.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "PrivateLinkResourcesListResult": {
+ "description": "Result of the List private link resources operation.",
+ "properties": {
+ "value": {
+ "description": "A collection of private link resources",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ }
+ },
+ "nextLink": {
+ "description": "A link for the next page of private link resources.",
+ "type": "string"
+ }
+ }
}
},
"parameters": {}
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/networkrulessets-preview.json b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/networkrulessets-preview.json
index ec6f1f0a20c5..8d3a1c5da7b5 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/networkrulessets-preview.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/networkrulessets-preview.json
@@ -48,16 +48,16 @@
"description": "Create or update NetworkRuleSet for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
"name": "parameters",
@@ -79,7 +79,7 @@
"default": {
"description": "ServiceBus error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -97,16 +97,16 @@
"description": "Gets NetworkRuleSet for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -119,7 +119,7 @@
"default": {
"description": "ServiceBus error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -177,6 +177,10 @@
"description": "NetworkRuleSet properties",
"x-ms-client-flatten": true,
"properties": {
+ "trustedServiceAccessEnabled": {
+ "type": "boolean",
+ "description": "Value that indicates whether Trusted Service Access is Enabled or not."
+ },
"defaultAction": {
"type": "string",
"description": "Default Action for Network Rule Set",
@@ -208,7 +212,7 @@
},
"allOf": [
{
- "$ref": "../../common/v1/definitions.json#/definitions/Resource"
+ "$ref": "../../../common/v1/definitions.json#/definitions/Resource"
}
],
"description": "Description of topic resource."
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/operations-preview.json b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/operations-preview.json
index 38b1a7b797f1..62e20b653170 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/operations-preview.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/operations-preview.json
@@ -48,7 +48,7 @@
"description": "Lists all of the available Event Hub REST API operations.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
}
],
"responses": {
@@ -61,7 +61,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/quotaConfiguration-preview.json b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/quotaConfiguration-preview.json
index bbadf4caec7d..4ad879168429 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/quotaConfiguration-preview.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/quotaConfiguration-preview.json
@@ -42,16 +42,16 @@
"operationId": "Configuration_Patch",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ClusterNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ClusterNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
"name": "parameters",
@@ -91,7 +91,7 @@
"default": {
"description": "Event Hubs Cluster error response describing why the get cluster quotas and settings operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -103,16 +103,16 @@
"operationId": "Configuration_Get",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ClusterNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ClusterNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
}
],
"x-ms-examples": {
@@ -131,7 +131,7 @@
"default": {
"description": "Event Hubs Cluster error response describing why the get cluster quotas and settings operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/virtualnetworkrules-preview.json b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/virtualnetworkrules-preview.json
index fc417f5a93f5..e4936125742c 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/virtualnetworkrules-preview.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/preview/2018-01-01-preview/virtualnetworkrules-preview.json
@@ -48,16 +48,16 @@
"description": "Gets a list of VirtualNetwork rules for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -70,7 +70,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -93,19 +93,19 @@
"description": "Creates or updates an VirtualNetworkRule for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/VirtualNetworkRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/VirtualNetworkRuleNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
"name": "parameters",
@@ -127,7 +127,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -145,19 +145,19 @@
"description": "Deletes an VirtualNetworkRule for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/VirtualNetworkRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/VirtualNetworkRuleNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -170,7 +170,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -188,19 +188,19 @@
"description": "Gets an VirtualNetworkRule for a Namespace by rule name.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/VirtualNetworkRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/VirtualNetworkRuleNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -213,7 +213,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -236,7 +236,7 @@
},
"allOf": [
{
- "$ref": "../../common/v1/definitions.json#/definitions/Resource"
+ "$ref": "../../../common/v1/definitions.json#/definitions/Resource"
}
],
"description": "Single item in a List or Get VirtualNetworkRules operation"
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/AuthorizationRules.json b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/AuthorizationRules.json
index 28d3422cedb3..b738f5d8b82e 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/AuthorizationRules.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/AuthorizationRules.json
@@ -48,16 +48,16 @@
"description": "Gets a list of authorization rules for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -70,7 +70,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -93,13 +93,13 @@
"description": "Creates or updates an AuthorizationRule for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
},
{
"name": "parameters",
@@ -111,10 +111,10 @@
"description": "The shared access AuthorizationRule."
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -127,7 +127,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -145,19 +145,19 @@
"description": "Deletes an AuthorizationRule for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -170,7 +170,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -188,19 +188,19 @@
"description": "Gets an AuthorizationRule for a Namespace by rule name.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -213,7 +213,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -233,19 +233,19 @@
"description": "Gets the primary and secondary connection strings for the Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -258,7 +258,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -278,13 +278,13 @@
"description": "Regenerates the primary or secondary connection strings for the specified Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
},
{
"name": "parameters",
@@ -296,10 +296,10 @@
"description": "Parameters required to regenerate the connection string."
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -312,7 +312,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -332,19 +332,19 @@
"description": "Gets a list of authorization rules for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -357,7 +357,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -380,22 +380,22 @@
"description": "Gets an AuthorizationRule for a Namespace by rule name.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -408,7 +408,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -428,22 +428,22 @@
"description": "Gets the primary and secondary connection strings for the Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -456,7 +456,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -476,19 +476,19 @@
"description": "Gets the authorization rules for an Event Hub.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/EventHubNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/EventHubNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -501,7 +501,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -524,16 +524,16 @@
"description": "Creates or updates an AuthorizationRule for the specified Event Hub. Creation/update of the AuthorizationRule will take a few seconds to take effect.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/EventHubNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/EventHubNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
},
{
"name": "parameters",
@@ -545,10 +545,10 @@
"description": "The shared access AuthorizationRule."
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -561,7 +561,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -579,22 +579,22 @@
"description": "Gets an AuthorizationRule for an Event Hub by rule name.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/EventHubNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/EventHubNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -607,7 +607,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -625,22 +625,22 @@
"description": "Deletes an Event Hub AuthorizationRule.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/EventHubNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/EventHubNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -653,7 +653,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -673,22 +673,22 @@
"description": "Gets the ACS and SAS connection strings for the Event Hub.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/EventHubNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/EventHubNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -701,7 +701,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -721,16 +721,16 @@
"description": "Regenerates the ACS and SAS connection strings for the Event Hub.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/EventHubNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/EventHubNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AuthorizationRuleNameParameter"
},
{
"name": "parameters",
@@ -742,10 +742,10 @@
"description": "Parameters supplied to regenerate the AuthorizationRule Keys (PrimaryKey/SecondaryKey)."
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -758,7 +758,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -812,7 +812,7 @@
},
"allOf": [
{
- "$ref": "../../common/v1/definitions.json#/definitions/Resource"
+ "$ref": "../../../common/v1/definitions.json#/definitions/Resource"
}
],
"description": "Single item in a List or Get AuthorizationRule operation"
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/CheckNameAvailability.json b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/CheckNameAvailability.json
index d8b451acdd39..6ca247347f90 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/CheckNameAvailability.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/CheckNameAvailability.json
@@ -48,10 +48,10 @@
"description": "Check the give Namespace name availability.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
"name": "parameters",
@@ -73,7 +73,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/consumergroups.json b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/consumergroups.json
index 3f9cf49a0dec..b74f5c4d0881 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/consumergroups.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/consumergroups.json
@@ -48,16 +48,16 @@
"description": "Creates or updates an Event Hubs consumer group as a nested resource within a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/EventHubNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/EventHubNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ConsumerGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ConsumerGroupNameParameter"
},
{
"name": "parameters",
@@ -69,10 +69,10 @@
"description": "Parameters supplied to create or update a consumer group resource."
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -85,7 +85,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -103,22 +103,22 @@
"description": "Deletes a consumer group from the specified Event Hub and resource group.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/EventHubNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/EventHubNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ConsumerGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ConsumerGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -131,7 +131,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -149,22 +149,22 @@
"description": "Gets a description for the specified consumer group.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/EventHubNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/EventHubNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ConsumerGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ConsumerGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -177,7 +177,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -197,25 +197,25 @@
"description": "Gets all the consumer groups in a Namespace. An empty feed is returned if no consumer group exists in the Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/EventHubNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/EventHubNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SkipParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SkipParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/TopParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/TopParameter"
}
],
"responses": {
@@ -228,7 +228,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -266,7 +266,7 @@
},
"allOf": [
{
- "$ref": "../../common/v1/definitions.json#/definitions/Resource"
+ "$ref": "../../../common/v1/definitions.json#/definitions/Resource"
}
],
"description": "Single item in List or Get Consumer group operation"
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/disasterRecoveryConfigs.json b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/disasterRecoveryConfigs.json
index 68c26c6f4bba..9b32c93c837a 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/disasterRecoveryConfigs.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/disasterRecoveryConfigs.json
@@ -48,16 +48,16 @@
"description": "Check the give Namespace name availability.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
"name": "parameters",
@@ -79,7 +79,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -99,16 +99,16 @@
"description": "Gets all Alias(Disaster Recovery configurations)",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -121,7 +121,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -144,13 +144,13 @@
"description": "Creates or updates a new Alias(Disaster Recovery configuration)",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
},
{
"name": "parameters",
@@ -162,10 +162,10 @@
"description": "Parameters required to create an Alias(Disaster Recovery configuration)"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -181,7 +181,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -199,19 +199,19 @@
"description": "Deletes an Alias(Disaster Recovery configuration)",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -221,7 +221,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -239,19 +239,19 @@
"description": "Retrieves Alias(Disaster Recovery configuration) for primary or secondary namespace",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -264,7 +264,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -284,19 +284,19 @@
"description": "This operation disables the Disaster Recovery and stops replicating changes from primary to secondary namespaces",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -306,7 +306,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -326,19 +326,19 @@
"description": "Invokes GEO DR failover and reconfigure the alias to point to the secondary namespace",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/AliasNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/AliasNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -348,7 +348,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -455,7 +455,7 @@
},
"allOf": [
{
- "$ref": "../../common/v1/definitions.json#/definitions/Resource"
+ "$ref": "../../../common/v1/definitions.json#/definitions/Resource"
}
],
"description": "Single item in List or Get Alias(Disaster Recovery configuration) operation"
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/eventhubs.json b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/eventhubs.json
index 7018d4b01cf6..6a0c933a21cf 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/eventhubs.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/eventhubs.json
@@ -48,22 +48,22 @@
"description": "Gets all the Event Hubs in a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SkipParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SkipParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/TopParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/TopParameter"
}
],
"responses": {
@@ -76,7 +76,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -99,13 +99,13 @@
"description": "Creates or updates a new Event Hub as a nested resource within a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/EventHubNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/EventHubNameParameter"
},
{
"name": "parameters",
@@ -117,10 +117,10 @@
"description": "Parameters supplied to create an Event Hub resource."
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -133,7 +133,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -151,19 +151,19 @@
"description": "Deletes an Event Hub from the specified Namespace and resource group.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/EventHubNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/EventHubNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -176,7 +176,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -194,19 +194,19 @@
"description": "Gets an Event Hubs description for the specified Event Hub.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/EventHubNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/EventHubNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -219,7 +219,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -336,7 +336,7 @@
},
"allOf": [
{
- "$ref": "../../common/v1/definitions.json#/definitions/Resource"
+ "$ref": "../../../common/v1/definitions.json#/definitions/Resource"
}
],
"description": "Single item in List or Get Event Hub operation"
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/namespaces.json b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/namespaces.json
index b58303be6651..455dbbeea42f 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/namespaces.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/namespaces.json
@@ -48,10 +48,10 @@
"description": "Lists all the available Namespaces within a subscription, irrespective of the resource groups.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -64,7 +64,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -87,13 +87,13 @@
"description": "Lists the available Namespaces within a resource group.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -106,7 +106,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -129,10 +129,10 @@
"description": "Creates or updates a namespace. Once created, this namespace's resource manifest is immutable. This operation is idempotent.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
"name": "parameters",
@@ -147,10 +147,10 @@
"description": "Parameters for creating a namespace resource."
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -172,7 +172,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -191,16 +191,16 @@
"description": "Deletes an existing namespace. This operation also removes all associated resources under the namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -216,7 +216,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -235,16 +235,16 @@
"description": "Gets the description of the specified namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -263,7 +263,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -281,10 +281,10 @@
"description": "Creates or updates a namespace. Once created, this namespace's resource manifest is immutable. This operation is idempotent.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
"name": "parameters",
@@ -296,10 +296,10 @@
"description": "Parameters for updating a namespace resource."
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -321,7 +321,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -341,16 +341,16 @@
"description": "Gets messaging plan for specified namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -363,7 +363,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -484,7 +484,7 @@
},
"allOf": [
{
- "$ref": "../../common/v1/definitions.json#/definitions/TrackedResource"
+ "$ref": "../../../common/v1/definitions.json#/definitions/TrackedResource"
}
],
"description": "Single Namespace item in List or Get Operation"
@@ -523,7 +523,7 @@
},
"allOf": [
{
- "$ref": "../../common/v1/definitions.json#/definitions/TrackedResource"
+ "$ref": "../../../common/v1/definitions.json#/definitions/TrackedResource"
}
],
"description": "Messaging Plan for the namespace"
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/networkRuleSets.json b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/networkRuleSets.json
index edb72a67288c..ce564ce00c3d 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/networkRuleSets.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/networkRuleSets.json
@@ -48,16 +48,16 @@
"description": "Create or update NetworkRuleSet for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
"name": "parameters",
@@ -79,7 +79,7 @@
"default": {
"description": "EventHub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -97,16 +97,16 @@
"description": "Gets NetworkRuleSet for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -119,7 +119,7 @@
"default": {
"description": "EventHub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
}
@@ -139,16 +139,16 @@
"description": "Gets list of NetworkRuleSet for a Namespace.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ResourceGroupNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/NamespaceNameParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
}
],
"responses": {
@@ -161,7 +161,7 @@
"default": {
"description": "EventHub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -257,7 +257,7 @@
},
"allOf": [
{
- "$ref": "../../common/v1/definitions.json#/definitions/Resource"
+ "$ref": "../../../common/v1/definitions.json#/definitions/Resource"
}
],
"description": "Description of NetworkRuleSet resource."
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/operations.json b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/operations.json
index 967a75365837..3766fecc4d77 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/operations.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/operations.json
@@ -48,7 +48,7 @@
"description": "Lists all of the available Event Hub REST API operations.",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
}
],
"responses": {
@@ -61,7 +61,7 @@
"default": {
"description": "Eventhub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/sku.json b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/sku.json
index 1d69a375178a..28e64afd14e3 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/sku.json
+++ b/specification/eventhub/resource-manager/Microsoft.EventHub/stable/2017-04-01/sku.json
@@ -51,13 +51,13 @@
"description": "Gets the available Regions for a given sku",
"parameters": [
{
- "$ref": "../../common/v1/definitions.json#/parameters/ApiVersionParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/ApiVersionParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SubscriptionIdParameter"
},
{
- "$ref": "../../common/v1/definitions.json#/parameters/SkuNameParameter"
+ "$ref": "../../../common/v1/definitions.json#/parameters/SkuNameParameter"
}
],
"responses": {
@@ -70,7 +70,7 @@
"default": {
"description": "EventHub error response describing why the operation failed.",
"schema": {
- "$ref": "../../common/v1/definitions.json#/definitions/ErrorResponse"
+ "$ref": "../../../common/v1/definitions.json#/definitions/ErrorResponse"
}
}
},
@@ -101,7 +101,7 @@
},
"allOf": [
{
- "$ref": "../../common/v1/definitions.json#/definitions/TrackedResource"
+ "$ref": "../../../common/v1/definitions.json#/definitions/TrackedResource"
}
],
"description": "Messaging Region"
diff --git a/specification/eventhub/resource-manager/Microsoft.EventHub/common/v1/definitions.json b/specification/eventhub/resource-manager/common/v1/definitions.json
similarity index 95%
rename from specification/eventhub/resource-manager/Microsoft.EventHub/common/v1/definitions.json
rename to specification/eventhub/resource-manager/common/v1/definitions.json
index 195b5900769a..780fed1348d1 100644
--- a/specification/eventhub/resource-manager/Microsoft.EventHub/common/v1/definitions.json
+++ b/specification/eventhub/resource-manager/common/v1/definitions.json
@@ -19,7 +19,7 @@
}
},
"info": {
- "version": "2017-04-01",
+ "version": "1.0",
"title": "Common types"
},
"paths": {},
@@ -120,13 +120,21 @@
"x-ms-parameter-location": "method",
"description": "The Namespace name"
},
+ "PrivateEndpointConnectionNameParameter": {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method",
+ "description": "The PrivateEndpointConnection name"
+ },
"EventHubNameParameter": {
"name": "eventHubName",
"in": "path",
"required": true,
"type": "string",
"minLength": 1,
- "maxLength": 50,
+ "maxLength": 256,
"x-ms-parameter-location": "method",
"description": "The Event Hub name"
},
diff --git a/specification/eventhub/resource-manager/readme.azureresourceschema.md b/specification/eventhub/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..3130b6b9875d
--- /dev/null
+++ b/specification/eventhub/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,74 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-eventhub-2018-01-01-preview
+ - tag: schema-eventhub-2017-04-01
+ - tag: schema-eventhub-2015-08-01
+ - tag: schema-eventhub-2014-09-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-eventhub-2018-01-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventhub-2018-01-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventHub/preview/2018-01-01-preview/AvailableClusterRegions-preview.json
+ - Microsoft.EventHub/preview/2018-01-01-preview/Clusters-preview.json
+ - Microsoft.EventHub/preview/2018-01-01-preview/ipfilterrules-preview.json
+ - Microsoft.EventHub/preview/2018-01-01-preview/namespaces-preview.json
+ - Microsoft.EventHub/preview/2018-01-01-preview/quotaConfiguration-preview.json
+ - Microsoft.EventHub/preview/2018-01-01-preview/virtualnetworkrules-preview.json
+ - Microsoft.EventHub/preview/2018-01-01-preview/networkrulessets-preview.json
+
+```
+
+### Tag: schema-eventhub-2017-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventhub-2017-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventHub/stable/2017-04-01/AuthorizationRules.json
+ - Microsoft.EventHub/stable/2017-04-01/CheckNameAvailability.json
+ - Microsoft.EventHub/stable/2017-04-01/consumergroups.json
+ - Microsoft.EventHub/stable/2017-04-01/disasterRecoveryConfigs.json
+ - Microsoft.EventHub/stable/2017-04-01/eventhubs.json
+ - Microsoft.EventHub/stable/2017-04-01/namespaces.json
+ - Microsoft.EventHub/stable/2017-04-01/networkRuleSets.json
+ - Microsoft.EventHub/stable/2017-04-01/operations.json
+ - Microsoft.EventHub/stable/2017-04-01/sku.json
+
+```
+
+### Tag: schema-eventhub-2015-08-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventhub-2015-08-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventHub/stable/2015-08-01/EventHub.json
+
+```
+
+### Tag: schema-eventhub-2014-09-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-eventhub-2014-09-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.EventHub/stable/2014-09-01/EventHub.json
+
+```
diff --git a/specification/eventhub/resource-manager/readme.md b/specification/eventhub/resource-manager/readme.md
index a8da92c7327c..1e0cfd30b013 100644
--- a/specification/eventhub/resource-manager/readme.md
+++ b/specification/eventhub/resource-manager/readme.md
@@ -29,6 +29,13 @@ openapi-type: arm
tag: package-2018-01-preview
```
+## Suppression
+
+``` yaml
+directive:
+ - suppress: R4007
+ reason: DefaultErrorResponseSchema - we will be Implementing in new API version
+```
### Tag: package-2017-04
@@ -114,6 +121,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_event_hub']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js eventhub/resource-manager
```
@@ -143,44 +153,7 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
+## AzureResourceSchema
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.EventHub/stable/2017-04-01/AuthorizationRules.json
- - $(this-folder)/Microsoft.EventHub/stable/2017-04-01/CheckNameAvailability.json
- - $(this-folder)/Microsoft.EventHub/stable/2017-04-01/consumergroups.json
- - $(this-folder)/Microsoft.EventHub/stable/2017-04-01/disasterRecoveryConfigs.json
- - $(this-folder)/Microsoft.EventHub/stable/2017-04-01/eventhubs.json
- - $(this-folder)/Microsoft.EventHub/stable/2017-04-01/namespaces.json
- - $(this-folder)/Microsoft.EventHub/stable/2017-04-01/networkRuleSets.json
- - $(this-folder)/Microsoft.EventHub/stable/2017-04-01/operations.json
- - $(this-folder)/Microsoft.EventHub/stable/2017-04-01/sku.json
- - $(this-folder)/Microsoft.EventHub/stable/2015-08-01/EventHub.json
- - $(this-folder)/Microsoft.EventHub/stable/2014-09-01/EventHub.json
- - $(this-folder)/Microsoft.EventHub/preview/2018-01-01-preview/AvailableClusterRegions-preview.json
- - $(this-folder)/Microsoft.EventHub/preview/2018-01-01-preview/Clusters-preview.json
- - $(this-folder)/Microsoft.EventHub/preview/2018-01-01-preview/ipfilterrules-preview.json
- - $(this-folder)/Microsoft.EventHub/preview/2018-01-01-preview/namespaces-preview.json
- - $(this-folder)/Microsoft.EventHub/preview/2018-01-01-preview/quotaConfiguration-preview.json
- - $(this-folder)/Microsoft.EventHub/preview/2018-01-01-preview/virtualnetworkrules-preview.json
- - $(this-folder)/Microsoft.EventHub/preview/2018-01-01-preview/networkrulessets-preview.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/frontdoor/resource-manager/readme.azureresourceschema.md b/specification/frontdoor/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..ced50d8c16cb
--- /dev/null
+++ b/specification/frontdoor/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,141 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-network-2020-05-01
+ - tag: schema-network-2020-04-01
+ - tag: schema-network-2020-01-01
+ - tag: schema-network-2019-11-01
+ - tag: schema-network-2019-10-01
+ - tag: schema-network-2019-05-01
+ - tag: schema-network-2019-04-01
+ - tag: schema-network-2019-03-01-preview
+ - tag: schema-network-2019-03-01
+ - tag: schema-network-2018-08-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-network-2020-05-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2020-05-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/stable/2020-05-01/network.json
+ - Microsoft.Network/stable/2020-05-01/frontdoor.json
+
+```
+
+### Tag: schema-network-2020-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2020-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/stable/2020-04-01/webapplicationfirewall.json
+ - Microsoft.Network/stable/2020-04-01/network.json
+ - Microsoft.Network/stable/2020-04-01/frontdoor.json
+
+```
+
+### Tag: schema-network-2020-01-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2020-01-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/stable/2020-01-01/network.json
+ - Microsoft.Network/stable/2020-01-01/frontdoor.json
+
+```
+
+### Tag: schema-network-2019-11-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2019-11-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/stable/2019-11-01/networkexperiment.json
+ - Microsoft.Network/stable/2019-11-01/network.json
+
+```
+
+### Tag: schema-network-2019-10-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2019-10-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/stable/2019-10-01/webapplicationfirewall.json
+
+```
+
+### Tag: schema-network-2019-05-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2019-05-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/stable/2019-05-01/frontdoor.json
+ - Microsoft.Network/stable/2019-05-01/network.json
+
+```
+
+### Tag: schema-network-2019-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2019-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/stable/2019-04-01/frontdoor.json
+ - Microsoft.Network/stable/2019-04-01/network.json
+
+```
+
+### Tag: schema-network-2019-03-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2019-03-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/preview/2019-03-01-preview/webapplicationfirewall.json
+
+```
+
+### Tag: schema-network-2019-03-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2019-03-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/stable/2019-03-01/webapplicationfirewall.json
+
+```
+
+### Tag: schema-network-2018-08-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-network-2018-08-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Network/preview/2018-08-01-preview/frontdoor.json
+ - Microsoft.Network/preview/2018-08-01-preview/network.json
+ - Microsoft.Network/preview/2018-08-01-preview/webapplicationfirewall.json
+
+```
diff --git a/specification/frontdoor/resource-manager/readme.md b/specification/frontdoor/resource-manager/readme.md
index 70eef2f16531..f7f90e9f4fcf 100644
--- a/specification/frontdoor/resource-manager/readme.md
+++ b/specification/frontdoor/resource-manager/readme.md
@@ -199,6 +199,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js frontdoor/resource-manager
```
@@ -257,45 +260,7 @@ directive:
reason: Direct copy of ValidateCustomDomain API in CDN Resource Provider.
```
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Network/stable/2020-05-01/network.json
- - $(this-folder)/Microsoft.Network/stable/2019-11-01/networkexperiment.json
- - $(this-folder)/Microsoft.Network/stable/2020-05-01/frontdoor.json
- - $(this-folder)/Microsoft.Network/stable/2020-04-01/webapplicationfirewall.json
- - $(this-folder)/Microsoft.Network/stable/2020-04-01/network.json
- - $(this-folder)/Microsoft.Network/stable/2020-04-01/frontdoor.json
- - $(this-folder)/Microsoft.Network/stable/2020-01-01/network.json
- - $(this-folder)/Microsoft.Network/stable/2020-01-01/frontdoor.json
- - $(this-folder)/Microsoft.Network/stable/2019-10-01/webapplicationfirewall.json
- - $(this-folder)/Microsoft.Network/stable/2019-11-01/network.json
- - $(this-folder)/Microsoft.Network/stable/2019-05-01/frontdoor.json
- - $(this-folder)/Microsoft.Network/stable/2019-05-01/network.json
- - $(this-folder)/Microsoft.Network/stable/2019-03-01/webapplicationfirewall.json
- - $(this-folder)/Microsoft.Network/stable/2019-04-01/frontdoor.json
- - $(this-folder)/Microsoft.Network/stable/2019-04-01/network.json
- - $(this-folder)/Microsoft.Network/preview/2018-08-01-preview/frontdoor.json
- - $(this-folder)/Microsoft.Network/preview/2018-08-01-preview/network.json
- - $(this-folder)/Microsoft.Network/preview/2019-03-01-preview/webapplicationfirewall.json
- - $(this-folder)/Microsoft.Network/preview/2018-08-01-preview/webapplicationfirewall.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/guestconfiguration/resource-manager/readme.azureresourceschema.md b/specification/guestconfiguration/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..22f8040208d4
--- /dev/null
+++ b/specification/guestconfiguration/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,60 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-guestconfiguration-2020-06-25
+ - tag: schema-guestconfiguration-2018-11-20
+ - tag: schema-guestconfiguration-2018-06-30-preview
+ - tag: schema-guestconfiguration-2018-01-20-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-guestconfiguration-2020-06-25 and azureresourceschema
+
+``` yaml $(tag) == 'schema-guestconfiguration-2020-06-25' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.GuestConfiguration/stable/2020-06-25/guestconfiguration.json
+
+```
+
+### Tag: schema-guestconfiguration-2018-11-20 and azureresourceschema
+
+``` yaml $(tag) == 'schema-guestconfiguration-2018-11-20' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.GuestConfiguration/stable/2018-11-20/guestconfiguration.json
+
+```
+
+### Tag: schema-guestconfiguration-2018-06-30-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-guestconfiguration-2018-06-30-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.GuestConfiguration/preview/2018-06-30-preview/guestconfiguration.json
+
+```
+
+### Tag: schema-guestconfiguration-2018-01-20-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-guestconfiguration-2018-01-20-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.GuestConfiguration/preview/2018-01-20-preview/guestconfiguration.json
+
+```
diff --git a/specification/guestconfiguration/resource-manager/readme.md b/specification/guestconfiguration/resource-manager/readme.md
index 2a96dbda74b9..a114e01a1f17 100644
--- a/specification/guestconfiguration/resource-manager/readme.md
+++ b/specification/guestconfiguration/resource-manager/readme.md
@@ -113,6 +113,9 @@ This is not used by Autorest itself.
``` yaml $(swagger-to-sdk)
swagger-to-sdk:
- repo: azure-cli-extensions
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js guestconfiguration/resource-manager
```
@@ -130,30 +133,7 @@ csharp:
clear-output-folder: true
```
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.GuestConfiguration/stable/2020-06-25/guestconfiguration.json
- - $(this-folder)/Microsoft.GuestConfiguration/stable/2018-11-20/guestconfiguration.json
- - $(this-folder)/Microsoft.GuestConfiguration/preview/2018-06-30-preview/guestconfiguration.json
- - $(this-folder)/Microsoft.GuestConfiguration/preview/2018-01-20-preview/guestconfiguration.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/hanaonazure/resource-manager/readme.azureresourceschema.md b/specification/hanaonazure/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..22ee3b84d3de
--- /dev/null
+++ b/specification/hanaonazure/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,36 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-hanaonazure-2020-02-07-preview
+ - tag: schema-hanaonazure-2017-11-03-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-hanaonazure-2020-02-07-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-hanaonazure-2020-02-07-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HanaOnAzure/preview/2020-02-07-preview/hanaonazure.json
+
+```
+
+### Tag: schema-hanaonazure-2017-11-03-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-hanaonazure-2017-11-03-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HanaOnAzure/preview/2017-11-03-preview/hanaonazure.json
+
+```
diff --git a/specification/hanaonazure/resource-manager/readme.md b/specification/hanaonazure/resource-manager/readme.md
index 301fed2c8de8..eb1b84774518 100644
--- a/specification/hanaonazure/resource-manager/readme.md
+++ b/specification/hanaonazure/resource-manager/readme.md
@@ -67,6 +67,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js hanaonazure/resource-manager
```
## Go
@@ -109,28 +112,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.HanaOnAzure/preview/2017-11-03-preview/hanaonazure.json
- - $(this-folder)/Microsoft.HanaOnAzure/preview/2020-02-07-preview/hanaonazure.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/hardwaresecuritymodules/resource-manager/readme.azureresourceschema.md b/specification/hardwaresecuritymodules/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..1bb0e7808dae
--- /dev/null
+++ b/specification/hardwaresecuritymodules/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-hardwaresecuritymodules-2018-10-31-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-hardwaresecuritymodules-2018-10-31-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-hardwaresecuritymodules-2018-10-31-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HardwareSecurityModules/preview/2018-10-31-preview/dedicatedhsm.json
+
+```
diff --git a/specification/hardwaresecuritymodules/resource-manager/readme.md b/specification/hardwaresecuritymodules/resource-manager/readme.md
index 59a76b0d23c6..422e0f3f94bf 100644
--- a/specification/hardwaresecuritymodules/resource-manager/readme.md
+++ b/specification/hardwaresecuritymodules/resource-manager/readme.md
@@ -41,29 +41,10 @@ input-file:
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.HardwareSecurityModules/preview/2018-10-31-preview/dedicatedhsm.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
# Code Generation
@@ -76,5 +57,8 @@ This is not used by Autorest itself.
``` yaml $(swagger-to-sdk)
swagger-to-sdk:
- repo: azure-cli-extensions
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js hardwaresecuritymodules/resource-manager
```
diff --git a/specification/hdinsight/data-plane/Microsoft.HDInsight/preview/2018-11-01-preview/livySpark.json b/specification/hdinsight/data-plane/Microsoft.HDInsight/preview/2018-11-01-preview/livySpark.json
index d5cbc84df867..98c9f0e22eb5 100644
--- a/specification/hdinsight/data-plane/Microsoft.HDInsight/preview/2018-11-01-preview/livySpark.json
+++ b/specification/hdinsight/data-plane/Microsoft.HDInsight/preview/2018-11-01-preview/livySpark.json
@@ -705,14 +705,17 @@
"type": "object",
"properties": {
"from": {
+ "description": "The start index to fetch Spark Batch jobs.",
"format": "int32",
"type": "integer"
},
"total": {
+ "description": "Number of Spark Batch jobs to fetch.",
"format": "int32",
"type": "integer"
},
"sessions": {
+ "description": "List of spark batch jobs.",
"uniqueItems": false,
"type": "array",
"items": {
@@ -725,22 +728,27 @@
"type": "object",
"properties": {
"id": {
+ "description": "The livy id of the spark batch job.",
"format": "int32",
"type": "integer"
},
"appId": {
+ "description": "The application id of this job.",
"type": "string"
},
"appInfo": {
+ "description": "The detailed application info.",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"state": {
- "type": "string"
+ "description": "The current state of the spark batch job",
+ "$ref": "#/definitions/JobState"
},
"log": {
+ "description": "The log lines.",
"x-ms-client-name": "logLines",
"uniqueItems": false,
"type": "array",
@@ -754,15 +762,19 @@
"type": "object",
"properties": {
"file": {
+ "description": "File containing the application to execute.",
"type": "string"
},
"proxyUser": {
+ "description": "User to impersonate when running the job.",
"type": "string"
},
"className": {
+ "description": "Application Java/Spark main class.",
"type": "string"
},
"args": {
+ "description": "Command line arguments for the application.",
"x-ms-client-name": "arguments",
"uniqueItems": false,
"type": "array",
@@ -771,6 +783,7 @@
}
},
"jars": {
+ "description": "Jars to be used in this batch job.",
"uniqueItems": false,
"type": "array",
"items": {
@@ -778,6 +791,7 @@
}
},
"pyFiles": {
+ "description": "Python files to be used in this batch job.",
"x-ms-client-name": "pythonFiles",
"uniqueItems": false,
"type": "array",
@@ -786,6 +800,7 @@
}
},
"files": {
+ "description": "Files to be used in this batch job.",
"uniqueItems": false,
"type": "array",
"items": {
@@ -793,25 +808,31 @@
}
},
"driverMemory": {
+ "description": "Amount of memory to use for the driver process.",
"type": "string"
},
"driverCores": {
+ "description": "Number of cores to use for the driver process.",
"format": "int32",
"type": "integer"
},
"executorMemory": {
+ "description": "Amount of memory to use per executor process.",
"type": "string"
},
"executorCores": {
+ "description": "Number of cores to use for each executor.",
"format": "int32",
"type": "integer"
},
"numExecutors": {
+ "description": "Number of executors to launch for this batch job.",
"x-ms-client-name": "executorCount",
"format": "int32",
"type": "integer"
},
"archives": {
+ "description": "Archives to be used in this batch job.",
"uniqueItems": false,
"type": "array",
"items": {
@@ -819,12 +840,15 @@
}
},
"queue": {
+ "description": "The name of the YARN queue to which submitted.",
"type": "string"
},
"name": {
+ "description": "The name of this batch job.",
"type": "string"
},
"conf": {
+ "description": "Spark configuration properties.",
"x-ms-client-name": "configuration",
"type": "object",
"additionalProperties": {
@@ -837,14 +861,17 @@
"type": "object",
"properties": {
"from": {
+ "description": "The start index to fetch spark sessions.",
"format": "int32",
"type": "integer"
},
"total": {
+ "description": "Number of spark sessions to fetch.",
"format": "int32",
"type": "integer"
},
"sessions": {
+ "description": "List of spark sessions.",
"uniqueItems": false,
"type": "array",
"items": {
@@ -857,22 +884,28 @@
"type": "object",
"properties": {
"id": {
+ "description": "The livy id of the spark session job.",
"format": "int32",
"type": "integer"
},
"appId": {
+ "description": "The application id of this job.",
"type": "string"
},
"owner": {
+ "description": "Remote user who submitted this job.",
"type": "string"
},
"proxyUser": {
+ "description": "User to impersonate when running.",
"type": "string"
},
"kind": {
- "type": "string"
+ "description": "Spark session job kind.",
+ "$ref": "#/definitions/SessionJobKind"
},
"log": {
+ "description": "The log lines.",
"x-ms-client-name": "logLines",
"uniqueItems": false,
"type": "array",
@@ -881,9 +914,11 @@
}
},
"state": {
- "type": "string"
+ "description": "The current state of the spark session job",
+ "$ref": "#/definitions/JobState"
},
"appInfo": {
+ "description": "The detailed application info.",
"type": "object",
"additionalProperties": {
"type": "string"
@@ -895,22 +930,15 @@
"type": "object",
"properties": {
"kind": {
- "type": "string",
- "x-ms-enum": {
- "name": "SessionJobKind",
- "modelAsString": true
- },
- "enum": [
- "spark",
- "pyspark",
- "sparkr",
- "sql"
- ]
+ "description": "Spark session job kind.",
+ "$ref": "#/definitions/SessionJobKind"
},
"proxyUser": {
+ "description": "User to impersonate when starting the session.",
"type": "string"
},
"jars": {
+ "description": "Jars to be used in this session.",
"uniqueItems": false,
"type": "array",
"items": {
@@ -918,6 +946,7 @@
}
},
"pyFiles": {
+ "description": "Python files to be used in this session.",
"x-ms-client-name": "pythonFiles",
"uniqueItems": false,
"type": "array",
@@ -926,6 +955,7 @@
}
},
"files": {
+ "description": "Files to be used in this session.",
"uniqueItems": false,
"type": "array",
"items": {
@@ -933,25 +963,31 @@
}
},
"driverMemory": {
+ "description": "Amount of memory to use for the driver process.",
"type": "string"
},
"driverCores": {
+ "description": "Number of cores to use for the driver process.",
"format": "int32",
"type": "integer"
},
"executorMemory": {
+ "description": "Amount of memory to use per executor process.",
"type": "string"
},
"executorCores": {
+ "description": "Number of cores to use for each executor.",
"format": "int32",
"type": "integer"
},
"numExecutors": {
+ "description": "Number of executors to launch for this session.",
"x-ms-client-name": "executorCount",
"format": "int32",
"type": "integer"
},
"archives": {
+ "description": "Archives to be used in this session.",
"uniqueItems": false,
"type": "array",
"items": {
@@ -959,12 +995,15 @@
}
},
"queue": {
+ "description": "The name of the YARN queue to which submitted.",
"type": "string"
},
"name": {
+ "description": "The name of this session.",
"type": "string"
},
"conf": {
+ "description": "Spark configuration properties.",
"x-ms-client-name": "configuration",
"type": "object",
"additionalProperties": {
@@ -972,6 +1011,7 @@
}
},
"heartbeatTimeoutInSecond": {
+ "description": "Timeout in second to which session be orphaned.",
"format": "int32",
"type": "integer"
}
@@ -981,22 +1021,27 @@
"type": "object",
"properties": {
"id": {
+ "description": "The livy id of the spark job.",
"format": "int32",
"type": "integer"
},
"from": {
+ "description": "Offset from start of log.",
"format": "int32",
"type": "integer"
},
"size": {
+ "description": "Max number of log lines.",
"format": "int32",
"type": "integer"
},
"total": {
+ "description": "Total number of log lines.",
"format": "int64",
"type": "integer"
},
"log": {
+ "description": "The log lines.",
"x-ms-client-name": "logLines",
"uniqueItems": false,
"type": "array",
@@ -1010,11 +1055,13 @@
"type": "object",
"properties": {
"id": {
+ "description": "The livy id of the spark job.",
"format": "int32",
"type": "integer"
},
"state": {
- "type": "string"
+ "description": "The current state of the spark job",
+ "$ref": "#/definitions/JobState"
}
}
},
@@ -1022,6 +1069,7 @@
"type": "object",
"properties": {
"statements": {
+ "description": "List of spark statements.",
"uniqueItems": false,
"type": "array",
"items": {
@@ -1034,19 +1082,24 @@
"type": "object",
"properties": {
"id": {
+ "description": "The livy id of the spark statement job.",
"format": "int32",
"type": "integer"
},
"code": {
+ "description": "The execution code.",
"type": "string"
},
"state": {
- "type": "string"
+ "description": "The current state of the spark statement.",
+ "$ref": "#/definitions/StatementState"
},
"output": {
+ "description": "The execution output.",
"$ref": "#/definitions/SparkStatementOutput"
},
"progress": {
+ "description": "The execution progress.",
"type": "number",
"format": "double"
}
@@ -1056,17 +1109,80 @@
"type": "object",
"properties": {
"status": {
- "type": "string"
+ "description": "Execution status.",
+ "$ref": "#/definitions/StatementExecutionStatus"
},
"execution_count": {
+ "description": "A monotonically increasing number.",
"format": "int32",
"type": "integer"
},
"data": {
+ "description": "Statement output.",
"type": "object"
}
}
},
+ "SessionJobKind": {
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SessionJobKind",
+ "modelAsString": true
+ },
+ "enum": [
+ "spark",
+ "pyspark",
+ "sparkr",
+ "sql"
+ ]
+ },
+ "StatementState": {
+ "type": "string",
+ "x-ms-enum": {
+ "name": "StatementState",
+ "modelAsString": true
+ },
+ "enum": [
+ "waiting",
+ "running",
+ "available",
+ "error",
+ "cancelling",
+ "cancelled"
+ ]
+ },
+ "JobState": {
+ "type": "string",
+ "x-ms-enum": {
+ "name": "JobState",
+ "modelAsString": true
+ },
+ "enum": [
+ "not_started",
+ "starting",
+ "idle",
+ "running",
+ "busy",
+ "shutting_down",
+ "error",
+ "dead",
+ "killed",
+ "success",
+ "recovering"
+ ]
+ },
+ "StatementExecutionStatus": {
+ "type": "string",
+ "x-ms-enum": {
+ "name": "StatementExecutionStatus",
+ "modelAsString": true
+ },
+ "enum": [
+ "ok",
+ "error",
+ "abort"
+ ]
+ },
"SparkStatementRequest": {
"type": "object",
"properties": {
@@ -1074,7 +1190,7 @@
"type": "string"
},
"kind": {
- "type": "string"
+ "$ref": "#/definitions/SessionJobKind"
}
}
},
diff --git a/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/cluster.json b/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/cluster.json
index 51e8c92bb28a..d54d458c76dd 100644
--- a/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/cluster.json
+++ b/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/cluster.json
@@ -71,6 +71,9 @@
},
"Create cluster with encryption in transit": {
"$ref": "./examples/CreateHDInsightClusterWithEncryptionInTransit.json"
+ },
+ "Create cluster with encryption at host": {
+ "$ref": "./examples/CreateHDInsightClusterWithEncryptionAtHost.json"
}
},
"parameters": [
diff --git a/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/examples/CreateHDInsightClusterWithEncryptionAtHost.json b/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/examples/CreateHDInsightClusterWithEncryptionAtHost.json
new file mode 100644
index 000000000000..ccab7cf8a894
--- /dev/null
+++ b/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/examples/CreateHDInsightClusterWithEncryptionAtHost.json
@@ -0,0 +1,176 @@
+{
+ "parameters": {
+ "clusterName": "cluster1",
+ "resourceGroupName": "rg1",
+ "api-version": "2015-03-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "clusterVersion": "3.6",
+ "osType": "Linux",
+ "tier": "Standard",
+ "clusterDefinition": {
+ "kind": "Hadoop",
+ "configurations": {
+ "gateway": {
+ "restAuthCredential.isEnabled": true,
+ "restAuthCredential.username": "admin",
+ "restAuthCredential.password": "**********"
+ }
+ }
+ },
+ "computeProfile": {
+ "roles": [
+ {
+ "name": "headnode",
+ "targetInstanceCount": 2,
+ "hardwareProfile": {
+ "vmSize": "Standard_DS14_v2"
+ },
+ "osProfile": {
+ "linuxOperatingSystemProfile": {
+ "username": "sshuser",
+ "password": "**********"
+ }
+ }
+ },
+ {
+ "name": "workernode",
+ "targetInstanceCount": 3,
+ "hardwareProfile": {
+ "vmSize": "Standard_DS14_v2"
+ },
+ "osProfile": {
+ "linuxOperatingSystemProfile": {
+ "username": "sshuser",
+ "password": "**********"
+ }
+ }
+ },
+ {
+ "name": "zookeepernode",
+ "targetInstanceCount": 3,
+ "hardwareProfile": {
+ "vmSize": "Standard_DS14_v2"
+ },
+ "osProfile": {
+ "linuxOperatingSystemProfile": {
+ "username": "sshuser",
+ "password": "**********"
+ }
+ }
+ }
+ ]
+ },
+ "storageProfile": {
+ "storageaccounts": [
+ {
+ "name": "mystorage.blob.core.windows.net",
+ "isDefault": true,
+ "container": "default8525",
+ "key": "storagekey"
+ }
+ ]
+ },
+ "diskEncryptionProperties": {
+ "encryptionAtHost": true
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.HDInsight/pathToOperationResult"
+ },
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.HDInsight/clusters/cluster1",
+ "name": "cluster1",
+ "type": "Microsoft.HDInsight/clusters",
+ "location": "South Central US",
+ "etag": "3b76ce3d-892c-4036-9d8b-8ade18ba7a4b",
+ "tags": null,
+ "properties": {
+ "clusterVersion": "3.6.1000.67",
+ "osType": "Linux",
+ "clusterDefinition": {
+ "blueprint": "https://blueprints.azurehdinsight.net/hadoop-3.6.1000.67.2001080246.json",
+ "kind": "Hadoop",
+ "componentVersion": {
+ "Hadoop": "2.7"
+ }
+ },
+ "computeProfile": {
+ "roles": [
+ {
+ "name": "headnode",
+ "targetInstanceCount": 2,
+ "hardwareProfile": {
+ "vmSize": "standard_ds14_v2"
+ },
+ "osProfile": {
+ "linuxOperatingSystemProfile": {
+ "username": "sshuser"
+ }
+ }
+ },
+ {
+ "name": "workernode",
+ "targetInstanceCount": 3,
+ "hardwareProfile": {
+ "vmSize": "standard_ds14_v2"
+ },
+ "osProfile": {
+ "linuxOperatingSystemProfile": {
+ "username": "sshuser"
+ }
+ }
+ },
+ {
+ "name": "zookeepernode",
+ "targetInstanceCount": 3,
+ "hardwareProfile": {
+ "vmSize": "standard_ds14_v2"
+ },
+ "osProfile": {
+ "linuxOperatingSystemProfile": {
+ "username": "sshuser"
+ }
+ }
+ }
+ ]
+ },
+ "provisioningState": "Succeeded",
+ "clusterState": "Running",
+ "createdDate": "2020-01-10T08:36:39.153",
+ "quotaInfo": {
+ "coresUsed": 20
+ },
+ "connectivityEndpoints": [
+ {
+ "name": "SSH",
+ "protocol": "TCP",
+ "location": "cluster1-ssh.azurehdinsight.net",
+ "port": 22
+ },
+ {
+ "name": "HTTPS",
+ "protocol": "TCP",
+ "location": "cluster1.azurehdinsight.net",
+ "port": 443
+ }
+ ],
+ "tier": "Standard",
+ "diskEncryptionProperties": {
+ "vaultUri": null,
+ "keyName": null,
+ "keyVersion": null,
+ "encryptionAlgorithm": null,
+ "msiResourceId": null,
+ "encryptionAtHost": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hdinsight/resource-manager/Microsoft.HDInsight/stable/2018-06-01-preview/cluster.json b/specification/hdinsight/resource-manager/Microsoft.HDInsight/stable/2018-06-01-preview/cluster.json
index 87b6a7b87d82..0f31a7a726cb 100644
--- a/specification/hdinsight/resource-manager/Microsoft.HDInsight/stable/2018-06-01-preview/cluster.json
+++ b/specification/hdinsight/resource-manager/Microsoft.HDInsight/stable/2018-06-01-preview/cluster.json
@@ -71,6 +71,9 @@
},
"Create cluster with encryption in transit": {
"$ref": "./examples/CreateHDInsightClusterWithEncryptionInTransit.json"
+ },
+ "Create cluster with encryption at host": {
+ "$ref": "./examples/CreateHDInsightClusterWithEncryptionAtHost.json"
}
},
"parameters": [
@@ -1599,6 +1602,11 @@
"msiResourceId": {
"type": "string",
"description": "Resource ID of Managed Identity that is used to access the key vault."
+ },
+ "encryptionAtHost": {
+ "type": "boolean",
+ "default": false,
+ "description": "Indicates whether or not resource disk encryption is enabled."
}
}
},
diff --git a/specification/hdinsight/resource-manager/Microsoft.HDInsight/stable/2018-06-01-preview/examples/CreateHDInsightClusterWithEncryptionAtHost.json b/specification/hdinsight/resource-manager/Microsoft.HDInsight/stable/2018-06-01-preview/examples/CreateHDInsightClusterWithEncryptionAtHost.json
new file mode 100644
index 000000000000..9251c4bfc1d0
--- /dev/null
+++ b/specification/hdinsight/resource-manager/Microsoft.HDInsight/stable/2018-06-01-preview/examples/CreateHDInsightClusterWithEncryptionAtHost.json
@@ -0,0 +1,176 @@
+{
+ "parameters": {
+ "clusterName": "cluster1",
+ "resourceGroupName": "rg1",
+ "api-version": "2018-06-01-preview",
+ "subscriptionId": "subid",
+ "parameters": {
+ "properties": {
+ "clusterVersion": "3.6",
+ "osType": "Linux",
+ "tier": "Standard",
+ "clusterDefinition": {
+ "kind": "Hadoop",
+ "configurations": {
+ "gateway": {
+ "restAuthCredential.isEnabled": true,
+ "restAuthCredential.username": "admin",
+ "restAuthCredential.password": "**********"
+ }
+ }
+ },
+ "computeProfile": {
+ "roles": [
+ {
+ "name": "headnode",
+ "targetInstanceCount": 2,
+ "hardwareProfile": {
+ "vmSize": "Standard_DS14_v2"
+ },
+ "osProfile": {
+ "linuxOperatingSystemProfile": {
+ "username": "sshuser",
+ "password": "**********"
+ }
+ }
+ },
+ {
+ "name": "workernode",
+ "targetInstanceCount": 3,
+ "hardwareProfile": {
+ "vmSize": "Standard_DS14_v2"
+ },
+ "osProfile": {
+ "linuxOperatingSystemProfile": {
+ "username": "sshuser",
+ "password": "**********"
+ }
+ }
+ },
+ {
+ "name": "zookeepernode",
+ "targetInstanceCount": 3,
+ "hardwareProfile": {
+ "vmSize": "Standard_DS14_v2"
+ },
+ "osProfile": {
+ "linuxOperatingSystemProfile": {
+ "username": "sshuser",
+ "password": "**********"
+ }
+ }
+ }
+ ]
+ },
+ "storageProfile": {
+ "storageaccounts": [
+ {
+ "name": "mystorage.blob.core.windows.net",
+ "isDefault": true,
+ "container": "default8525",
+ "key": "storagekey"
+ }
+ ]
+ },
+ "diskEncryptionProperties": {
+ "encryptionAtHost": true
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {
+ "location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.HDInsight/pathToOperationResult"
+ },
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.HDInsight/clusters/cluster1",
+ "name": "cluster1",
+ "type": "Microsoft.HDInsight/clusters",
+ "location": "South Central US",
+ "etag": "3b76ce3d-892c-4036-9d8b-8ade18ba7a4b",
+ "tags": null,
+ "properties": {
+ "clusterVersion": "3.6.1000.67",
+ "osType": "Linux",
+ "clusterDefinition": {
+ "blueprint": "https://blueprints.azurehdinsight.net/hadoop-3.6.1000.67.2001080246.json",
+ "kind": "Hadoop",
+ "componentVersion": {
+ "Hadoop": "2.7"
+ }
+ },
+ "computeProfile": {
+ "roles": [
+ {
+ "name": "headnode",
+ "targetInstanceCount": 2,
+ "hardwareProfile": {
+ "vmSize": "standard_ds14_v2"
+ },
+ "osProfile": {
+ "linuxOperatingSystemProfile": {
+ "username": "sshuser"
+ }
+ }
+ },
+ {
+ "name": "workernode",
+ "targetInstanceCount": 3,
+ "hardwareProfile": {
+ "vmSize": "standard_ds14_v2"
+ },
+ "osProfile": {
+ "linuxOperatingSystemProfile": {
+ "username": "sshuser"
+ }
+ }
+ },
+ {
+ "name": "zookeepernode",
+ "targetInstanceCount": 3,
+ "hardwareProfile": {
+ "vmSize": "standard_ds14_v2"
+ },
+ "osProfile": {
+ "linuxOperatingSystemProfile": {
+ "username": "sshuser"
+ }
+ }
+ }
+ ]
+ },
+ "provisioningState": "Succeeded",
+ "clusterState": "Running",
+ "createdDate": "2020-01-10T08:36:39.153",
+ "quotaInfo": {
+ "coresUsed": 20
+ },
+ "connectivityEndpoints": [
+ {
+ "name": "SSH",
+ "protocol": "TCP",
+ "location": "cluster1-ssh.azurehdinsight.net",
+ "port": 22
+ },
+ {
+ "name": "HTTPS",
+ "protocol": "TCP",
+ "location": "cluster1.azurehdinsight.net",
+ "port": 443
+ }
+ ],
+ "tier": "Standard",
+ "diskEncryptionProperties": {
+ "vaultUri": null,
+ "keyName": null,
+ "keyVersion": null,
+ "encryptionAlgorithm": null,
+ "msiResourceId": null,
+ "encryptionAtHost": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hdinsight/resource-manager/readme.azureresourceschema.md b/specification/hdinsight/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..99c384687156
--- /dev/null
+++ b/specification/hdinsight/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,49 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-hdinsight-2018-06-01-preview
+ - tag: schema-hdinsight-2015-03-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-hdinsight-2018-06-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-hdinsight-2018-06-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HDInsight/stable/2018-06-01-preview/cluster.json
+ - Microsoft.HDInsight/stable/2018-06-01-preview/applications.json
+ - Microsoft.HDInsight/stable/2018-06-01-preview/locations.json
+ - Microsoft.HDInsight/stable/2018-06-01-preview/configurations.json
+ - Microsoft.HDInsight/stable/2018-06-01-preview/extensions.json
+ - Microsoft.HDInsight/stable/2018-06-01-preview/scriptActions.json
+ - Microsoft.HDInsight/stable/2018-06-01-preview/operations.json
+ - Microsoft.HDInsight/stable/2018-06-01-preview/virtualMachines.json
+
+```
+
+### Tag: schema-hdinsight-2015-03-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-hdinsight-2015-03-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HDInsight/preview/2015-03-01-preview/cluster.json
+ - Microsoft.HDInsight/preview/2015-03-01-preview/applications.json
+ - Microsoft.HDInsight/preview/2015-03-01-preview/locations.json
+ - Microsoft.HDInsight/preview/2015-03-01-preview/configurations.json
+ - Microsoft.HDInsight/preview/2015-03-01-preview/extensions.json
+ - Microsoft.HDInsight/preview/2015-03-01-preview/scriptActions.json
+ - Microsoft.HDInsight/preview/2015-03-01-preview/operations.json
+
+```
diff --git a/specification/hdinsight/resource-manager/readme.go.md b/specification/hdinsight/resource-manager/readme.go.md
index 0f22247259b0..c0639958fa2e 100644
--- a/specification/hdinsight/resource-manager/readme.go.md
+++ b/specification/hdinsight/resource-manager/readme.go.md
@@ -23,7 +23,7 @@ These settings apply only when `--tag=package-2018-06-preview --go` is specified
Please also specify `--go-sdk-folder=`.
``` yaml $(tag) == 'package-2018-06-preview' && $(go)
-output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2018-06-01-preview/$(namespace)
+output-folder: $(go-sdk-folder)/services/$(namespace)/mgmt/2018-06-01/$(namespace)
```
### Tag: package-2015-03-preview and go
diff --git a/specification/hdinsight/resource-manager/readme.md b/specification/hdinsight/resource-manager/readme.md
index 97f592973d92..53114925c2bd 100644
--- a/specification/hdinsight/resource-manager/readme.md
+++ b/specification/hdinsight/resource-manager/readme.md
@@ -132,6 +132,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-python
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js hdinsight/resource-manager
```
## Python
@@ -208,41 +211,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.HDInsight/stable/2018-06-01-preview/cluster.json
- - $(this-folder)/Microsoft.HDInsight/stable/2018-06-01-preview/applications.json
- - $(this-folder)/Microsoft.HDInsight/stable/2018-06-01-preview/locations.json
- - $(this-folder)/Microsoft.HDInsight/stable/2018-06-01-preview/configurations.json
- - $(this-folder)/Microsoft.HDInsight/stable/2018-06-01-preview/extensions.json
- - $(this-folder)/Microsoft.HDInsight/stable/2018-06-01-preview/scriptActions.json
- - $(this-folder)/Microsoft.HDInsight/stable/2018-06-01-preview/operations.json
- - $(this-folder)/Microsoft.HDInsight/stable/2018-06-01-preview/virtualMachines.json
- - $(this-folder)/Microsoft.HDInsight/preview/2015-03-01-preview/cluster.json
- - $(this-folder)/Microsoft.HDInsight/preview/2015-03-01-preview/applications.json
- - $(this-folder)/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json
- - $(this-folder)/Microsoft.HDInsight/preview/2015-03-01-preview/configurations.json
- - $(this-folder)/Microsoft.HDInsight/preview/2015-03-01-preview/extensions.json
- - $(this-folder)/Microsoft.HDInsight/preview/2015-03-01-preview/scriptActions.json
- - $(this-folder)/Microsoft.HDInsight/preview/2015-03-01-preview/operations.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/CheckNameAvailabilityPost.json b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/CheckNameAvailabilityPost.json
new file mode 100644
index 000000000000..4bcf5e0ea023
--- /dev/null
+++ b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/CheckNameAvailabilityPost.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "api-version": "2020-03-15",
+ "subscriptionId": "subid",
+ "checkNameAvailabilityInputs": {
+ "type": "Microsoft.HealthcareApis/services",
+ "name": "serviceName"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": false,
+ "reason": "AlreadyExists",
+ "message": "Service name is not available."
+ }
+ }
+ }
+}
diff --git a/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/OperationResultsGet.json b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/OperationResultsGet.json
new file mode 100644
index 000000000000..fc456dd9cd27
--- /dev/null
+++ b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/OperationResultsGet.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "api-version": "2020-03-15",
+ "subscriptionId": "subid",
+ "locationName": "westus",
+ "operationResultId": "exampleid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/providers/Microsoft.HealthcareApis/locations/westus/operationresults/exampleid",
+ "name": "servicename",
+ "status": "Requested",
+ "startTime": "2019-01-21T06:03:30.2716301Z",
+ "properties": {}
+ }
+ },
+ "404": {
+ "body": {
+ "error": {
+ "code": "OperationResultNotFound",
+ "message": "The operation result was not found."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/OperationsList.json b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/OperationsList.json
new file mode 100644
index 000000000000..fb6ef411d36a
--- /dev/null
+++ b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/OperationsList.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "api-version": "2020-03-15"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.HealthcareApis/services/read",
+ "display": {},
+ "origin": "user,system"
+ },
+ {
+ "name": "Microsoft.HealthcareApis/services/write",
+ "display": {},
+ "origin": "user,system"
+ },
+ {
+ "name": "Microsoft.HealthcareApis/services/delete",
+ "display": {},
+ "origin": "user,system"
+ },
+ {
+ "name": "Microsoft.HealthcareApis/locations/operationresults/read",
+ "display": {
+ "provider": "Microsoft.HealthcareApis",
+ "resource": "operationresults",
+ "operation": "read",
+ "description": "Get the status of an asynchronous operation"
+ },
+ "origin": "user,system"
+ },
+ {
+ "name": "Microsoft.HealthcareApis/checkNameAvailability/post",
+ "display": {},
+ "origin": "user"
+ },
+ {
+ "name": "Microsoft.HealthcareApis/Operations/read",
+ "display": {
+ "provider": "Microsoft.HealthcareApis",
+ "resource": "operations",
+ "operation": "read",
+ "description": "Get the list of operations supported by this Resource Provider."
+ },
+ "origin": "user,system"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceCreate.json b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceCreate.json
new file mode 100644
index 000000000000..0913fe446c46
--- /dev/null
+++ b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceCreate.json
@@ -0,0 +1,171 @@
+{
+ "parameters": {
+ "resourceName": "service1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-15",
+ "subscriptionId": "subid",
+ "serviceDescription": {
+ "location": "westus2",
+ "tags": {},
+ "kind": "fhir-R4",
+ "properties": {
+ "accessPolicies": [
+ {
+ "objectId": "c487e7d1-3210-41a3-8ccc-e9372b78da47"
+ },
+ {
+ "objectId": "5b307da8-43d4-492b-8b66-b0294ade872f"
+ }
+ ],
+ "cosmosDbConfiguration": {
+ "offerThroughput": 1000,
+ "keyVaultKeyUri": "https://my-vault.vault.azure.net/keys/my-key"
+ },
+ "authenticationConfiguration": {
+ "authority": "https://login.microsoftonline.com/abfde7b2-df0f-47e6-aabf-2462b07508dc",
+ "audience": "https://azurehealthcareapis.com",
+ "smartProxyEnabled": true
+ },
+ "corsConfiguration": {
+ "origins": [
+ "*"
+ ],
+ "headers": [
+ "*"
+ ],
+ "methods": [
+ "DELETE",
+ "GET",
+ "OPTIONS",
+ "PATCH",
+ "POST",
+ "PUT"
+ ],
+ "maxAge": 1440,
+ "allowCredentials": false
+ },
+ "exportConfiguration": {
+ "storageAccountName": "existingStorageAccount"
+ }
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.HealthcareApis/services/service1",
+ "name": "service1",
+ "location": "West US 2",
+ "type": "Microsoft.HealthcareApis/services",
+ "kind": "fhir-R4",
+ "etag": "etagvalue",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Creating",
+ "accessPolicies": [
+ {
+ "objectId": "c487e7d1-3210-41a3-8ccc-e9372b78da47"
+ },
+ {
+ "objectId": "5b307da8-43d4-492b-8b66-b0294ade872f"
+ }
+ ],
+ "cosmosDbConfiguration": {
+ "offerThroughput": 1000,
+ "keyVaultKeyUri": "https://my-vault.vault.azure.net/keys/my-key"
+ },
+ "authenticationConfiguration": {
+ "authority": "https://login.microsoftonline.com/abfde7b2-df0f-47e6-aabf-2462b07508dc",
+ "audience": "https://azurehealthcareapis.com",
+ "smartProxyEnabled": true
+ },
+ "corsConfiguration": {
+ "origins": [
+ "*"
+ ],
+ "headers": [
+ "*"
+ ],
+ "methods": [
+ "DELETE",
+ "GET",
+ "OPTIONS",
+ "PATCH",
+ "POST",
+ "PUT"
+ ],
+ "maxAge": 1440,
+ "allowCredentials": false
+ },
+ "exportConfiguration": {
+ "storageAccountName": "existingStorageAccount"
+ }
+ },
+ "identity": {
+ "principalId": "03fe6ae0-952c-4e4b-954b-cc0364dd252e",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d8cd011db47",
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.HealthcareApis/services/service1",
+ "name": "service1",
+ "location": "West US 2",
+ "type": "Microsoft.HealthcareApis/services",
+ "kind": "fhir-R4",
+ "etag": "etagvalue",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Creating",
+ "accessPolicies": [
+ {
+ "objectId": "c487e7d1-3210-41a3-8ccc-e9372b78da47"
+ },
+ {
+ "objectId": "5b307da8-43d4-492b-8b66-b0294ade872f"
+ }
+ ],
+ "cosmosDbConfiguration": {
+ "offerThroughput": 1000
+ },
+ "authenticationConfiguration": {
+ "authority": "https://login.microsoftonline.com/abfde7b2-df0f-47e6-aabf-2462b07508dc",
+ "audience": "https://azurehealthcareapis.com",
+ "smartProxyEnabled": true
+ },
+ "corsConfiguration": {
+ "origins": [
+ "*"
+ ],
+ "headers": [
+ "*"
+ ],
+ "methods": [
+ "DELETE",
+ "GET",
+ "OPTIONS",
+ "PATCH",
+ "POST",
+ "PUT"
+ ],
+ "maxAge": 1440,
+ "allowCredentials": false
+ },
+ "exportConfiguration": {
+ "storageAccountName": "existingStorageAccount"
+ }
+ },
+ "identity": {
+ "principalId": "03fe6ae0-952c-4e4b-954b-cc0364dd252e",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d8cd011db47",
+ "type": "SystemAssigned"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceCreateMinimum.json b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceCreateMinimum.json
new file mode 100644
index 000000000000..5623735dcb6d
--- /dev/null
+++ b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceCreateMinimum.json
@@ -0,0 +1,91 @@
+{
+ "parameters": {
+ "resourceName": "service2",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-15",
+ "subscriptionId": "subid",
+ "serviceDescription": {
+ "location": "westus2",
+ "tags": {},
+ "kind": "fhir-R4",
+ "properties": {
+ "accessPolicies": [
+ {
+ "objectId": "c487e7d1-3210-41a3-8ccc-e9372b78da47"
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.HealthcareApis/services/service2",
+ "name": "service2",
+ "type": "Microsoft.HealthcareApis/services",
+ "etag": "etagvalue",
+ "location": "westus2",
+ "kind": "fhir-R4",
+ "tags": {},
+ "properties": {
+ "accessPolicies": [
+ {
+ "objectId": "c487e7d1-3210-41a3-8ccc-e9372b78da47"
+ }
+ ],
+ "cosmosDbConfiguration": {
+ "offerThroughput": 1000
+ },
+ "authenticationConfiguration": {
+ "authority": "https://login.microsoftonline.com/abfde7b2-df0f-47e6-aabf-2462b07508dc",
+ "audience": "https://azurehealthcareapis.com",
+ "smartProxyEnabled": false
+ },
+ "corsConfiguration": {
+ "origins": [],
+ "headers": [],
+ "methods": [],
+ "maxAge": null,
+ "allowCredentials": false
+ },
+ "provisioningState": "Creating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.HealthcareApis/services/service2",
+ "name": "service2",
+ "type": "Microsoft.HealthcareApis/services",
+ "etag": "etagvalue",
+ "location": "westus2",
+ "kind": "fhir-R4",
+ "tags": {},
+ "properties": {
+ "accessPolicies": [
+ {
+ "objectId": "c487e7d1-3210-41a3-8ccc-e9372b78da47"
+ }
+ ],
+ "cosmosDbConfiguration": {
+ "offerThroughput": 1000,
+ "keyVaultKeyUri": null
+ },
+ "authenticationConfiguration": {
+ "authority": "https://login.microsoftonline.com/abfde7b2-df0f-47e6-aabf-2462b07508dc",
+ "audience": "https://azurehealthcareapis.com",
+ "smartProxyEnabled": false
+ },
+ "corsConfiguration": {
+ "origins": [],
+ "headers": [],
+ "methods": [],
+ "maxAge": null,
+ "allowCredentials": false
+ },
+ "provisioningState": "Creating"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceDelete.json b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceDelete.json
new file mode 100644
index 000000000000..6f463e67ae50
--- /dev/null
+++ b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceDelete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "resourceName": "service1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-15",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceGet.json b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceGet.json
new file mode 100644
index 000000000000..ca5cf7e079ad
--- /dev/null
+++ b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceGet.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "resourceName": "service1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-15",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.HealthcareApis/services/service1",
+ "name": "service1",
+ "location": "West US",
+ "type": "Microsoft.HealthcareApis/services",
+ "kind": "fhir-R4",
+ "etag": "etagvalue",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Creating",
+ "accessPolicies": [
+ {
+ "objectId": "c487e7d1-3210-41a3-8ccc-e9372b78da47"
+ },
+ {
+ "objectId": "5b307da8-43d4-492b-8b66-b0294ade872f"
+ }
+ ],
+ "cosmosDbConfiguration": {
+ "offerThroughput": 1000,
+ "keyVaultKeyUri": "https://my-vault.vault.azure.net/keys/my-key"
+ },
+ "authenticationConfiguration": {
+ "authority": "https://login.microsoftonline.com/abfde7b2-df0f-47e6-aabf-2462b07508dc",
+ "audience": "https://azurehealthcareapis.com",
+ "smartProxyEnabled": true
+ },
+ "corsConfiguration": {
+ "origins": [
+ "*"
+ ],
+ "headers": [
+ "*"
+ ],
+ "methods": [
+ "DELETE",
+ "GET",
+ "OPTIONS",
+ "PATCH",
+ "POST",
+ "PUT"
+ ],
+ "maxAge": 1440,
+ "allowCredentials": false
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceList.json b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceList.json
new file mode 100644
index 000000000000..a390808e92b9
--- /dev/null
+++ b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceList.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "api-version": "2020-03-15",
+ "subscriptionId": "subid"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.HealthcareApis/services/service1",
+ "name": "service1",
+ "location": "West US",
+ "type": "Microsoft.HealthcareApis/services",
+ "kind": "fhir-R4",
+ "etag": "etag",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Creating",
+ "accessPolicies": [
+ {
+ "objectId": "c487e7d1-3210-41a3-8ccc-e9372b78da47"
+ },
+ {
+ "objectId": "5b307da8-43d4-492b-8b66-b0294ade872f"
+ }
+ ],
+ "cosmosDbConfiguration": {
+ "offerThroughput": 1000,
+ "keyVaultKeyUri": "https://my-vault.vault.azure.net/keys/my-key"
+ },
+ "authenticationConfiguration": {
+ "authority": "https://login.microsoftonline.com/abfde7b2-df0f-47e6-aabf-2462b07508dc",
+ "audience": "https://azurehealthcareapis.com",
+ "smartProxyEnabled": true
+ },
+ "corsConfiguration": {
+ "origins": [
+ "*"
+ ],
+ "headers": [
+ "*"
+ ],
+ "methods": [
+ "DELETE",
+ "GET",
+ "OPTIONS",
+ "PATCH",
+ "POST",
+ "PUT"
+ ],
+ "maxAge": 1440,
+ "allowCredentials": false
+ }
+ }
+ }
+ ],
+ "nextLink": "https://host/subscriptions/subid/providers/Microsoft.HealthcareApis/services?api-version=2018-08-20-preview&%24skipToken=e30%3d"
+ }
+ }
+ }
+}
diff --git a/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceListByResourceGroup.json b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceListByResourceGroup.json
new file mode 100644
index 000000000000..18c57575d8f0
--- /dev/null
+++ b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServiceListByResourceGroup.json
@@ -0,0 +1,63 @@
+{
+ "parameters": {
+ "api-version": "2020-03-15",
+ "subscriptionId": "subid",
+ "resourceGroupName": "rgname"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.HealthcareApis/services/dddb8dcb-effb-4290-bb47-ce1e8440c729",
+ "name": "service1",
+ "location": "westus",
+ "type": "Microsoft.HealthcareApis/services",
+ "kind": "fhir-R4",
+ "tags": {},
+ "etag": "etagvalue",
+ "properties": {
+ "provisioningState": "Creating",
+ "accessPolicies": [
+ {
+ "objectId": "c487e7d1-3210-41a3-8ccc-e9372b78da47"
+ },
+ {
+ "objectId": "5b307da8-43d4-492b-8b66-b0294ade872f"
+ }
+ ],
+ "cosmosDbConfiguration": {
+ "offerThroughput": 1000,
+ "keyVaultKeyUri": "https://my-vault.vault.azure.net/keys/my-key"
+ },
+ "authenticationConfiguration": {
+ "authority": "https://login.microsoftonline.com/abfde7b2-df0f-47e6-aabf-2462b07508dc",
+ "audience": "https://azurehealthcareapis.com",
+ "smartProxyEnabled": true
+ },
+ "corsConfiguration": {
+ "origins": [
+ "*"
+ ],
+ "headers": [
+ "*"
+ ],
+ "methods": [
+ "DELETE",
+ "GET",
+ "OPTIONS",
+ "PATCH",
+ "POST",
+ "PUT"
+ ],
+ "maxAge": 1440,
+ "allowCredentials": false
+ }
+ }
+ }
+ ],
+ "nextLink": "https://host/subscriptions/subid/resourceGroups/rgname/providers/Microsoft.HealthcareApis/services?api-version=2018-08-20-preview&%24skipToken=e30%3d"
+ }
+ }
+ }
+}
diff --git a/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServicePatch.json b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServicePatch.json
new file mode 100644
index 000000000000..f039be7c4ac7
--- /dev/null
+++ b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/examples/ServicePatch.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "resourceName": "service1",
+ "resourceGroupName": "rg1",
+ "api-version": "2020-03-15",
+ "subscriptionId": "subid",
+ "servicePatchDescription": {
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.HealthcareApis/services/service1",
+ "name": "service1",
+ "location": "West US",
+ "type": "Microsoft.HealthcareApis/services",
+ "kind": "fhir-R4",
+ "etag": "etagvalue",
+ "tags": {
+ "tag1": "value1",
+ "tag2": "value2"
+ },
+ "properties": {
+ "provisioningState": "Creating",
+ "accessPolicies": [
+ {
+ "objectId": "c487e7d1-3210-41a3-8ccc-e9372b78da47"
+ },
+ {
+ "objectId": "5b307da8-43d4-492b-8b66-b0294ade872f"
+ }
+ ],
+ "cosmosDbConfiguration": {
+ "offerThroughput": 1000,
+ "keyVaultKeyUri": "https://my-vault.vault.azure.net/keys/my-key"
+ },
+ "authenticationConfiguration": {
+ "authority": "https://login.microsoftonline.com/abfde7b2-df0f-47e6-aabf-2462b07508dc",
+ "audience": "https://azurehealthcareapis.com",
+ "smartProxyEnabled": true
+ },
+ "corsConfiguration": {
+ "origins": [
+ "*"
+ ],
+ "headers": [
+ "*"
+ ],
+ "methods": [
+ "DELETE",
+ "GET",
+ "OPTIONS",
+ "PATCH",
+ "POST",
+ "PUT"
+ ],
+ "maxAge": 1440,
+ "allowCredentials": false
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/healthcare-apis.json b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/healthcare-apis.json
new file mode 100644
index 000000000000..8f52e2e545cf
--- /dev/null
+++ b/specification/healthcareapis/resource-manager/Microsoft.HealthcareApis/stable/2020-03-15/healthcare-apis.json
@@ -0,0 +1,989 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-03-15",
+ "title": "HealthcareApisClient",
+ "description": "Use this API to manage Microsoft HealthcareApis services in your Azure subscription."
+ },
+ "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.HealthcareApis/services/{resourceName}": {
+ "get": {
+ "tags": [
+ "Resource"
+ ],
+ "description": "Get the metadata of a service instance.",
+ "operationId": "Services_Get",
+ "x-ms-examples": {
+ "Get metadata": {
+ "$ref": "./examples/ServiceGet.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains all of the properties of the service instance.",
+ "schema": {
+ "$ref": "#/definitions/ServicesDescription"
+ }
+ },
+ "default": {
+ "description": "Default error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "put": {
+ "tags": [
+ "Resource"
+ ],
+ "description": "Create or update the metadata of a service instance.",
+ "operationId": "Services_CreateOrUpdate",
+ "x-ms-examples": {
+ "Create or Update a service with all parameters": {
+ "$ref": "./examples/ServiceCreate.json"
+ },
+ "Create or Update a service with minimum parameters": {
+ "$ref": "./examples/ServiceCreateMinimum.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "serviceDescription",
+ "in": "body",
+ "description": "The service instance metadata.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ServicesDescription"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Updated - Put request accepted and an existing resource is being updated; the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/ServicesDescription"
+ }
+ },
+ "201": {
+ "description": "Created - Put request accepted and a new resource was created; the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/ServicesDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "patch": {
+ "tags": [
+ "Resource"
+ ],
+ "description": "Update the metadata of a service instance.",
+ "operationId": "Services_Update",
+ "x-ms-examples": {
+ "Patch service": {
+ "$ref": "./examples/ServicePatch.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "servicePatchDescription",
+ "in": "body",
+ "description": "The service instance metadata and security metadata.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ServicesPatchDescription"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The tags for the resource were updated successfully.",
+ "schema": {
+ "$ref": "#/definitions/ServicesDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "delete": {
+ "tags": [
+ "Resource"
+ ],
+ "description": "Delete a service instance.",
+ "operationId": "Services_Delete",
+ "x-ms-examples": {
+ "Delete service": {
+ "$ref": "./examples/ServiceDelete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted - Delete request accepted; the operation will complete asynchronously."
+ },
+ "204": {
+ "description": "The resource does not exist."
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HealthcareApis/services": {
+ "get": {
+ "tags": [
+ "Collection"
+ ],
+ "description": "Get all the service instances in a subscription.",
+ "operationId": "Services_List",
+ "x-ms-examples": {
+ "List all services in subscription": {
+ "$ref": "./examples/ServiceList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the service instances in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/ServicesDescriptionListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HealthcareApis/services": {
+ "get": {
+ "tags": [
+ "Collection"
+ ],
+ "description": "Get all the service instances in a resource group.",
+ "operationId": "Services_ListByResourceGroup",
+ "x-ms-examples": {
+ "List all services in resource group": {
+ "$ref": "./examples/ServiceListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the service instances in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/ServicesDescriptionListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/providers/Microsoft.HealthcareApis/operations": {
+ "get": {
+ "tags": [
+ "Proxy"
+ ],
+ "description": "Lists all of the available Healthcare service REST API operations.",
+ "operationId": "Operations_List",
+ "x-ms-examples": {
+ "List operations": {
+ "$ref": "./examples/OperationsList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HealthcareApis/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "Proxy"
+ ],
+ "description": "Check if a service instance name is available.",
+ "operationId": "Services_CheckNameAvailability",
+ "x-ms-examples": {
+ "Check name availability": {
+ "$ref": "./examples/CheckNameAvailabilityPost.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "checkNameAvailabilityInputs",
+ "in": "body",
+ "description": "Set the name parameter in the CheckNameAvailabilityParameters structure to the name of the service instance to check.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CheckNameAvailabilityParameters"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized response that specifies whether the service name is available. If the name is not available, the body contains the reason.",
+ "schema": {
+ "$ref": "#/definitions/ServicesNameAvailabilityInfo"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HealthcareApis/locations/{locationName}/operationresults/{operationResultId}": {
+ "get": {
+ "tags": [
+ "Resource"
+ ],
+ "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/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/locationName"
+ },
+ {
+ "$ref": "#/parameters/operationResultId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains all of the properties of the operation result.",
+ "schema": {
+ "$ref": "#/definitions/OperationResultsDescription"
+ }
+ },
+ "404": {
+ "description": "No operation result was found matching operationResultId.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ },
+ "default": {
+ "description": "Default error response",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ }
+ },
+ "definitions": {
+ "ServicesProperties": {
+ "description": "The properties of a service instance.",
+ "type": "object",
+ "properties": {
+ "provisioningState": {
+ "description": "The provisioning state.",
+ "enum": [
+ "Deleting",
+ "Succeeded",
+ "Creating",
+ "Accepted",
+ "Verifying",
+ "Updating",
+ "Failed",
+ "Canceled",
+ "Deprovisioned"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "provisioningState",
+ "modelAsString": true
+ }
+ },
+ "accessPolicies": {
+ "$ref": "#/definitions/ServiceAccessPoliciesInfo",
+ "description": "The access policies of the service instance."
+ },
+ "cosmosDbConfiguration": {
+ "$ref": "#/definitions/ServiceCosmosDbConfigurationInfo",
+ "description": "The settings for the Cosmos DB database backing the service."
+ },
+ "authenticationConfiguration": {
+ "$ref": "#/definitions/ServiceAuthenticationConfigurationInfo",
+ "description": "The authentication configuration for the service instance."
+ },
+ "corsConfiguration": {
+ "$ref": "#/definitions/ServiceCorsConfigurationInfo",
+ "description": "The settings for the CORS configuration of the service instance."
+ },
+ "exportConfiguration": {
+ "$ref": "#/definitions/ServiceExportConfigurationInfo",
+ "description": "The settings for the export operation of the service instance."
+ }
+ }
+ },
+ "ServiceAccessPoliciesInfo": {
+ "description": "The access policies of the service instance.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServiceAccessPolicyEntry"
+ }
+ },
+ "ServiceAccessPolicyEntry": {
+ "description": "An access policy entry.",
+ "properties": {
+ "objectId": {
+ "description": "An Azure AD object ID (User or Apps) that is allowed access to the FHIR service.",
+ "type": "string",
+ "pattern": "^(([0-9A-Fa-f]{8}[-]?(?:[0-9A-Fa-f]{4}[-]?){3}[0-9A-Fa-f]{12}){1})+$"
+ }
+ },
+ "required": [
+ "objectId"
+ ]
+ },
+ "ServiceCosmosDbConfigurationInfo": {
+ "description": "The settings for the Cosmos DB database backing the service.",
+ "type": "object",
+ "properties": {
+ "offerThroughput": {
+ "type": "integer",
+ "description": "The provisioned throughput for the backing database.",
+ "readOnly": false,
+ "minimum": 400,
+ "maximum": 10000
+ },
+ "keyVaultKeyUri": {
+ "type": "string",
+ "description": "The URI of the customer-managed key for the backing database.",
+ "readOnly": false
+ }
+ }
+ },
+ "ServiceAuthenticationConfigurationInfo": {
+ "description": "Authentication configuration information",
+ "type": "object",
+ "properties": {
+ "authority": {
+ "type": "string",
+ "description": "The authority url for the service",
+ "readOnly": false
+ },
+ "audience": {
+ "type": "string",
+ "description": "The audience url for the service",
+ "readOnly": false
+ },
+ "smartProxyEnabled": {
+ "type": "boolean",
+ "description": "If the SMART on FHIR proxy is enabled",
+ "readOnly": false
+ }
+ }
+ },
+ "ServiceCorsConfigurationInfo": {
+ "description": "The settings for the CORS configuration of the service instance.",
+ "type": "object",
+ "properties": {
+ "origins": {
+ "type": "array",
+ "description": "The origins to be allowed via CORS.",
+ "readOnly": false,
+ "items": {
+ "$ref": "#/definitions/ServiceCorsConfigurationOriginEntry"
+ }
+ },
+ "headers": {
+ "type": "array",
+ "description": "The headers to be allowed via CORS.",
+ "readOnly": false,
+ "items": {
+ "$ref": "#/definitions/ServiceCorsConfigurationHeaderEntry"
+ }
+ },
+ "methods": {
+ "type": "array",
+ "description": "The methods to be allowed via CORS.",
+ "readOnly": false,
+ "items": {
+ "$ref": "#/definitions/ServiceCorsConfigurationMethodEntry"
+ }
+ },
+ "maxAge": {
+ "type": "integer",
+ "description": "The max age to be allowed via CORS.",
+ "readOnly": false,
+ "minimum": 0,
+ "maximum": 99999
+ },
+ "allowCredentials": {
+ "type": "boolean",
+ "description": "If credentials are allowed via CORS.",
+ "readOnly": false
+ }
+ }
+ },
+ "ServiceExportConfigurationInfo": {
+ "description": "Export operation configuration information",
+ "type": "object",
+ "properties": {
+ "storageAccountName": {
+ "type": "string",
+ "description": "The name of the default export storage account.",
+ "readOnly": false
+ }
+ }
+ },
+ "ServiceCorsConfigurationOriginEntry": {
+ "description": "An origin for CORS.",
+ "type": "string",
+ "pattern": "^(?:(?:(?:[hH][tT][tT][pP](?:[sS]|))\\:\\/\\/(?:[a-zA-Z0-9-]+[.]?)+(?:\\:[0-9]{1,5})?|[*]))$"
+ },
+ "ServiceCorsConfigurationHeaderEntry": {
+ "description": "A header for CORS.",
+ "type": "string"
+ },
+ "ServiceCorsConfigurationMethodEntry": {
+ "description": "A method for CORS.",
+ "type": "string"
+ },
+ "ServicesDescription": {
+ "description": "The description of the service.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": false,
+ "description": "The common properties of a service.",
+ "$ref": "#/definitions/ServicesProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ]
+ },
+ "ServicesPatchDescription": {
+ "description": "The description of the service.",
+ "type": "object",
+ "properties": {
+ "tags": {
+ "description": "Instance tags",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "Resource": {
+ "description": "The common properties of a service.",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name.",
+ "pattern": "^[a-z0-9][a-z0-9-]{1,21}[a-z0-9]$"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "kind": {
+ "readOnly": false,
+ "type": "string",
+ "description": "The kind of the service.",
+ "enum": [
+ "fhir",
+ "fhir-Stu3",
+ "fhir-R4"
+ ],
+ "x-ms-enum": {
+ "name": "kind",
+ "modelAsString": false
+ }
+ },
+ "location": {
+ "type": "string",
+ "description": "The resource location.",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The resource tags."
+ },
+ "etag": {
+ "description": "An etag associated with the resource, used for optimistic concurrency when editing it.",
+ "type": "string"
+ },
+ "identity": {
+ "type": "object",
+ "description": "Setting indicating whether the service has a managed identity associated with it.",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal ID of the resource identity."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant ID of the resource."
+ },
+ "type": {
+ "description": "Type of identity being specified, currently SystemAssigned and None are allowed.",
+ "type": "string",
+ "enum": [
+ "SystemAssigned",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "ManagedServiceIdentityType",
+ "modelAsString": true
+ }
+ }
+ }
+ }
+ },
+ "x-ms-azure-resource": true,
+ "required": [
+ "location",
+ "kind"
+ ]
+ },
+ "ErrorDetails": {
+ "description": "Error details.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "description": "Object containing error details.",
+ "$ref": "#/definitions/ErrorDetailsInternal"
+ }
+ }
+ },
+ "ErrorDetailsInternal": {
+ "description": "Error details.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "The error message.",
+ "type": "string",
+ "readOnly": true
+ },
+ "target": {
+ "description": "The target of the particular error.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ServicesDescriptionListResult": {
+ "description": "A list of service description objects with a next link.",
+ "type": "object",
+ "properties": {
+ "nextLink": {
+ "description": "The link used to get the next page of service description objects.",
+ "type": "string"
+ },
+ "value": {
+ "description": "A list of service description objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ServicesDescription"
+ }
+ }
+ }
+ },
+ "OperationListResult": {
+ "description": "A list of service operations. It contains a list of operations and a URL link to get the next set of results.",
+ "type": "object",
+ "properties": {
+ "nextLink": {
+ "description": "The link used to get the next page of service description objects.",
+ "type": "string"
+ },
+ "value": {
+ "description": "A list of service operations supported by the Microsoft.HealthcareApis resource provider.",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/Operation"
+ }
+ }
+ }
+ },
+ "Operation": {
+ "description": "Service REST API operation.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Operation name: {provider}/{resource}/{read | write | action | delete}"
+ },
+ "origin": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Default value is 'user,system'."
+ },
+ "display": {
+ "description": "The information displayed about the operation.",
+ "$ref": "#/definitions/OperationDisplay"
+ }
+ }
+ },
+ "OperationDisplay": {
+ "description": "The object that represents the operation.",
+ "type": "object",
+ "properties": {
+ "provider": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Service provider: Microsoft.HealthcareApis"
+ },
+ "resource": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource Type: Services"
+ },
+ "operation": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of the operation"
+ },
+ "description": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Friendly description for the operation,"
+ }
+ }
+ },
+ "CheckNameAvailabilityParameters": {
+ "description": "Input values.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the service instance to check.",
+ "type": "string"
+ },
+ "type": {
+ "description": "The fully qualified resource type which includes provider namespace.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ]
+ },
+ "ServicesNameAvailabilityInfo": {
+ "description": "The properties indicating whether a given service name is available.",
+ "type": "object",
+ "properties": {
+ "nameAvailable": {
+ "description": "The value which indicates whether the provided name is available.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "reason": {
+ "description": "The reason for unavailability.",
+ "enum": [
+ "Invalid",
+ "AlreadyExists"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "ServiceNameUnavailabilityReason",
+ "modelAsString": false
+ }
+ },
+ "message": {
+ "description": "The detailed reason message.",
+ "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": {
+ "description": "The time that the operation was started.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "properties": {
+ "x-ms-client-flatten": false,
+ "description": "Additional properties of the operation result."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "subscriptionId": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "The subscription identifier.",
+ "required": true,
+ "type": "string"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ },
+ "resourceGroupName": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "description": "The name of the resource group that contains the service instance.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method",
+ "pattern": "^[-\\w\\._\\(\\)]+$",
+ "minLength": 1,
+ "maxLength": 90
+ },
+ "resourceName": {
+ "name": "resourceName",
+ "in": "path",
+ "description": "The name of the service instance.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method",
+ "minLength": 3,
+ "maxLength": 24
+ },
+ "locationName": {
+ "name": "locationName",
+ "in": "path",
+ "description": "The location of the operation.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "operationResultId": {
+ "name": "operationResultId",
+ "in": "path",
+ "description": "The ID of the operation result to get.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/healthcareapis/resource-manager/readme.azureresourceschema.md b/specification/healthcareapis/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..42e1803f9586
--- /dev/null
+++ b/specification/healthcareapis/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,48 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-healthcareapis-2020-03-15
+ - tag: schema-healthcareapis-2019-09-16
+ - tag: schema-healthcareapis-2018-08-20-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-healthcareapis-2020-03-15 and azureresourceschema
+
+``` yaml $(tag) == 'schema-healthcareapis-2020-03-15' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HealthcareApis/stable/2020-03-15/healthcare-apis.json
+
+```
+
+### Tag: schema-healthcareapis-2019-09-16 and azureresourceschema
+
+``` yaml $(tag) == 'schema-healthcareapis-2019-09-16' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HealthcareApis/stable/2019-09-16/healthcare-apis.json
+
+```
+
+### Tag: schema-healthcareapis-2018-08-20-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-healthcareapis-2018-08-20-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HealthcareApis/preview/2018-08-20-preview/healthcare-apis.json
+
+```
diff --git a/specification/healthcareapis/resource-manager/readme.md b/specification/healthcareapis/resource-manager/readme.md
index b9add5d92b09..43f34c10e10f 100644
--- a/specification/healthcareapis/resource-manager/readme.md
+++ b/specification/healthcareapis/resource-manager/readme.md
@@ -4,10 +4,10 @@
This is the AutoRest configuration file for HealthcareApis.
-
-
---
+
## Getting Started
+
To build the SDK for HealthcareApis, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run:
> `autorest`
@@ -15,23 +15,32 @@ To build the SDK for HealthcareApis, simply [Install AutoRest](https://aka.ms/au
To see additional help and options, run:
> `autorest --help`
+
---
## Configuration
-
-
### Basic Information
+
These are the global settings for HealthcareApis service.
``` yaml
title: HealthcareApisManagementClient
description: Azure Healthcare APIs Client
openapi-type: arm
-tag: package-2019-09
+tag: package-2020-03
azure-arm: true
```
+
+### Tag: package-2020-03
+
+These settings apply only when `--tag=package-2020-03` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-03'
+input-file:
+ - Microsoft.HealthcareApis/stable/2020-03-15/healthcare-apis.json
+```
### Tag: package-2019-09
These settings apply only when `--tag=package-2019-09` is specified on the command line.
@@ -52,7 +61,6 @@ input-file:
# Code Generation
-
## Swagger to SDK
This section describes what SDK should be generated by the automatic system.
@@ -65,7 +73,11 @@ swagger-to-sdk:
- repo: azure-sdk-for-java
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js healthcareapis/resource-manager
```
+
## C#
These settings apply only when `--csharp` is specified on the command line.
@@ -80,6 +92,7 @@ csharp:
output-folder: $(csharp-sdks-folder)/healthcareapis/Microsoft.Azure.Management.HealthcareApis/src/Generated
clear-output-folder: true
```
+
## Python
See configuration in [readme.python.md](./readme.python.md)
@@ -142,28 +155,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
+## AzureResourceSchema
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.HealthcareApis/stable/2019-09-16/healthcare-apis.json
- - $(this-folder)/Microsoft.HealthcareApis/preview/2018-08-20-preview/healthcare-apis.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/HybridCompute.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/HybridCompute.json
new file mode 100644
index 000000000000..1503a5844cc0
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/HybridCompute.json
@@ -0,0 +1,1212 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "HybridComputeManagementClient",
+ "description": "The Hybrid Compute Management Client.",
+ "version": "2020-07-30-preview"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}": {
+ "put": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_CreateOrUpdate",
+ "description": "The operation to create or update a hybrid machine resource identity in Azure.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the hybrid machine."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Machine"
+ },
+ "description": "Parameters supplied to the Create hybrid machine operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Machine"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or Update a Machine": {
+ "$ref": "./examples/Machines_CreateOrUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_Update",
+ "description": "The operation to update a hybrid machine.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the hybrid machine."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MachineUpdate"
+ },
+ "description": "Parameters supplied to the Update hybrid machine operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Machine"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update a Machine": {
+ "$ref": "./examples/Machines_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_Delete",
+ "description": "The operation to remove a hybrid machine identity in Azure.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the hybrid machine."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete a Machine": {
+ "$ref": "./examples/Machines_Delete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_Get",
+ "description": "Retrieves information about the model view or the instance view of a hybrid machine.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the hybrid machine."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation.",
+ "enum": [
+ "instanceView"
+ ],
+ "x-ms-enum": {
+ "name": "InstanceViewTypes",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Machine"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Machine": {
+ "$ref": "./examples/Machines_Get.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines": {
+ "get": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_ListByResourceGroup",
+ "description": "Lists all the hybrid machines in the specified resource group. Use the nextLink property in the response to get the next page of hybrid machines.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List Machines by resource group": {
+ "$ref": "./examples/Machines_ListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HybridCompute/machines": {
+ "get": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_ListBySubscription",
+ "description": "Lists all the hybrid machines in the specified subscription. Use the nextLink property in the response to get the next page of hybrid machines.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List Machines by resource group": {
+ "$ref": "./examples/Machines_ListBySubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}": {
+ "put": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_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": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine where the extension should be created or updated."
+ },
+ {
+ "name": "extensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine extension."
+ },
+ {
+ "name": "extensionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MachineExtension"
+ },
+ "description": "Parameters supplied to the Create Machine Extension operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineExtension"
+ }
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously."
+ }
+ },
+ "x-ms-examples": {
+ "Create or Update a Machine Extension": {
+ "$ref": "./examples/PUTExtension.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_Update",
+ "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": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine where the extension should be created or updated."
+ },
+ {
+ "name": "extensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine extension."
+ },
+ {
+ "name": "extensionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MachineExtensionUpdate"
+ },
+ "description": "Parameters supplied to the Create Machine Extension operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineExtension"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-examples": {
+ "Create or Update a Machine Extension": {
+ "$ref": "./examples/UpdateExtension.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_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": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine where the extension should be deleted."
+ },
+ {
+ "name": "extensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the 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,
+ "x-ms-examples": {
+ "Delete a Machine Extension": {
+ "$ref": "./examples/DELETEExtension.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_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": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine containing the extension."
+ },
+ {
+ "name": "extensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine extension."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineExtension"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GET Machine Extension": {
+ "$ref": "./examples/GETExtension.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions": {
+ "get": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_List",
+ "description": "The operation to get all extensions of a non-Azure machine",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the 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/MachineExtensionsListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GET all Machine Extensions": {
+ "$ref": "./examples/LISTExtension.json"
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.HybridCompute/operations": {
+ "get": {
+ "tags": [
+ "operations"
+ ],
+ "operationId": "Operations_List",
+ "description": "Gets a list of hybrid compute operations.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ }
+ },
+ "definitions": {
+ "OperationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/OperationValue"
+ },
+ "description": "The list of compute operations"
+ }
+ },
+ "description": "The List Compute Operation operation response."
+ },
+ "OperationValue": {
+ "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,
+ "allOf": [
+ {
+ "$ref": "#/definitions/OperationValueDisplay"
+ }
+ ],
+ "description": "Display properties"
+ }
+ },
+ "description": "Describes the properties of a Compute Operation value."
+ },
+ "OperationValueDisplay": {
+ "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 Hybrid Compute Operation Value Display."
+ },
+ "OSProfile": {
+ "readOnly": true,
+ "properties": {
+ "computerName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Specifies the host OS name of the hybrid machine."
+ }
+ },
+ "description": "Specifies the operating system settings for the hybrid machine."
+ },
+ "MachineProperties": {
+ "properties": {
+ "locationData": {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/locationData"
+ },
+ "osProfile": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/OSProfile"
+ }
+ ],
+ "description": "Specifies the operating system settings for the hybrid machine."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The provisioning state, which only appears in the response."
+ },
+ "status": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The status of the hybrid machine agent.",
+ "enum": [
+ "Connected",
+ "Disconnected",
+ "Error"
+ ],
+ "x-ms-enum": {
+ "name": "StatusTypes",
+ "modelAsString": true
+ }
+ },
+ "lastStatusChange": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The time of the last status change."
+ },
+ "errorDetails": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDetail"
+ },
+ "description": "Details about the error state."
+ },
+ "agentVersion": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The hybrid machine agent full version."
+ },
+ "vmId": {
+ "type": "string",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ],
+ "description": "Specifies the hybrid machine unique ID."
+ },
+ "displayName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the hybrid machine display name."
+ },
+ "machineFqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the hybrid machine FQDN."
+ },
+ "clientPublicKey": {
+ "type": "string",
+ "description": "Public Key that the client provides to be used during initial resource onboarding"
+ },
+ "osName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The Operating System running on the hybrid machine."
+ },
+ "osVersion": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The version of Operating System running on the hybrid machine."
+ },
+ "vmUuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the Arc Machine's unique SMBIOS ID"
+ },
+ "extensions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineExtensionInstanceView"
+ },
+ "description": "Machine Extensions information"
+ },
+ "osSku": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the Operating System product SKU."
+ },
+ "domainName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the Windows domain name."
+ },
+ "adFqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the AD fully qualified display name."
+ },
+ "dnsFqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the DNS fully qualified display name."
+ }
+ },
+ "description": "Describes the properties of a hybrid machine."
+ },
+ "MachineUpdateProperties": {
+ "properties": {
+ "locationData": {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/locationData"
+ }
+ },
+ "description": "Describes the ARM updatable properties of a hybrid machine."
+ },
+ "Machine": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineProperties"
+ }
+ ],
+ "description": "Hybrid Compute Machine properties"
+ },
+ "identity": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Identity"
+ }
+ ]
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "description": "Describes a hybrid machine."
+ },
+ "MachineUpdate": {
+ "properties": {
+ "identity": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/Identity"
+ }
+ ],
+ "description": "Hybrid Compute Machine Managed Identity"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineUpdateProperties"
+ }
+ ],
+ "description": "Hybrid Compute Machine properties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Describes a hybrid machine Update."
+ },
+ "MachineListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Machine"
+ },
+ "description": "The list of hybrid machines."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of Machines. Call ListNext() with this URI to fetch the next page of hybrid machines."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List hybrid machine operation response."
+ },
+ "UpdateResource": {
+ "description": "The Update Resource model definition.",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ }
+ },
+ "ErrorDetail": {
+ "title": "Error details.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The error's code.",
+ "type": "string"
+ },
+ "message": {
+ "description": "A human readable error message.",
+ "type": "string"
+ },
+ "target": {
+ "description": "Indicates which property in the request is responsible for the error.",
+ "type": "string"
+ },
+ "details": {
+ "description": "Additional error details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDetail"
+ }
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ]
+ },
+ "ErrorResponse": {
+ "title": "Error response.",
+ "description": "Contains details when the response code indicates an error.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "description": "The error details.",
+ "$ref": "#/definitions/ErrorDetail"
+ }
+ },
+ "required": [
+ "error"
+ ]
+ },
+ "Identity": {
+ "title": "Managed Identity.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "The identity type.",
+ "type": "string"
+ },
+ "principalId": {
+ "readOnly": true,
+ "description": "The identity's principal id.",
+ "type": "string"
+ },
+ "tenantId": {
+ "readOnly": true,
+ "description": "The identity's tenant id.",
+ "type": "string"
+ }
+ }
+ },
+ "MachineExtension": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineExtensionProperties"
+ }
+ ],
+ "description": "Describes Machine Extension Properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "description": "Describes a Machine Extension."
+ },
+ "MachineExtensionUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineExtensionUpdateProperties"
+ }
+ ],
+ "description": "Describes Machine Extension Update Properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Describes a Machine Extension Update."
+ },
+ "MachineExtensionProperties": {
+ "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."
+ },
+ "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": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineExtensionInstanceView"
+ }
+ ],
+ "description": "The machine extension instance view."
+ }
+ },
+ "description": "Describes the properties of a Machine Extension."
+ },
+ "MachineExtensionUpdateProperties": {
+ "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."
+ },
+ "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 Machine Extension."
+ },
+ "MachineExtensionInstanceView": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The 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."
+ },
+ "status": {
+ "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": true
+ }
+ },
+ "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."
+ }
+ },
+ "description": "Describes the Machine Extension Instance View."
+ },
+ "MachineExtensionsListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineExtension"
+ },
+ "description": "The list of extensions"
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of machine extensions. Call ListNext() with this to fetch the next page of extensions."
+ }
+ },
+ "description": "Describes the Machine Extensions List Result."
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/DELETEExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/DELETEExtension.json
new file mode 100644
index 000000000000..662076fb9114
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/DELETEExtension.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "extensionName": "MMA",
+ "api-version": "2020-07-30-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/GETExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/GETExtension.json
new file mode 100644
index 000000000000..860ebd816aef
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/GETExtension.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "extensionName": "CustomScriptExtension",
+ "api-version": "2020-07-30-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/CustomScriptExtension",
+ "name": "CustomScriptExtension",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "location": "eastus2euap",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "type": "string",
+ "typeHandlerVersion": "1.10.3",
+ "autoUpgradeMinorVersion": false,
+ "settings": "@{commandToExecute=powershell.exe -c \"Get-Process | Where-Object { $_.CPU -gt 10000 }\"}",
+ "protectedSettings": {},
+ "provisioningState": "Succeeded",
+ "instanceView": {
+ "name": "CustomScriptExtension",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "status": {
+ "code": "success",
+ "level": "Information",
+ "displayStatus": "Provisioning succeeded",
+ "message": "Finished executing command, StdOut: , StdErr:",
+ "time": "2019-08-08T20:42:10.999Z"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/LISTExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/LISTExtension.json
new file mode 100644
index 000000000000..26f7a5c44e57
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/LISTExtension.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-07-30-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/CustomScriptExtension",
+ "name": "CustomScriptExtension",
+ "location": "eastus2euap",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "autoUpgradeMinorVersion": false,
+ "settings": {
+ "commandToExecute": "powershell.exe -c \"Get-Process | Where-Object { $_.CPU -gt 10000 }\""
+ },
+ "provisioningState": "Succeeded",
+ "instanceView": {
+ "name": "CustomScriptExtension",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "status": {
+ "code": "success",
+ "level": "Information",
+ "displayStatus": "Provisioning succeeded",
+ "message": "formattedMessage: Finished executing command, StdOut: , StdErr: ",
+ "time": "2020-08-13T17:18:57.405Z"
+ }
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/winosupdateextension",
+ "name": "winosupdateextension",
+ "location": "eastus2euap",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "properties": {
+ "publisher": "microsoft.softwareupdatemanagement.test",
+ "type": "windowsosupdateextension",
+ "typeHandlerVersion": "1.0.0.0",
+ "autoUpgradeMinorVersion": false,
+ "settings": {},
+ "provisioningState": "Creating",
+ "instanceView": {
+ "name": "winosupdateextension",
+ "type": "windowsosupdateextension",
+ "typeHandlerVersion": "1.0.0.0",
+ "status": {}
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_CreateOrUpdate.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_CreateOrUpdate.json
new file mode 100644
index 000000000000..689cbb023e87
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_CreateOrUpdate.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-07-30-preview",
+ "parameters": {
+ "location": "eastus2euap",
+ "properties": {
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "string",
+ "tenantId": "string"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond",
+ "city": "redmond",
+ "district": null,
+ "countryOrRegion": "usa"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_Delete.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_Delete.json
new file mode 100644
index 000000000000..8f0a211d6c34
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_Delete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-07-30-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_Get.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_Get.json
new file mode 100644
index 000000000000..b7bc22092de3
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_Get.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-07-30-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "string",
+ "tenantId": "string"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond",
+ "city": "redmond",
+ "district": null,
+ "countryOrRegion": "usa"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_ListByResourceGroup.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_ListByResourceGroup.json
new file mode 100644
index 000000000000..f9359557c3fb
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_ListByResourceGroup.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-30-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "f7a068cc-b0b8-46e8-a203-22f301a62a8f",
+ "tenantId": "c4098cc-91b8-46c2-a205-d82ab1a62a8f"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ },
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine2",
+ "name": "myMachine2",
+ "location": "westus2",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "e7a068cc-b0b8-46e8-a203-22f301a62a8f",
+ "tenantId": "c4098cc-91b8-46c2-a205-d82ab1a62a8f"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "a4a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_ListBySubscription.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_ListBySubscription.json
new file mode 100644
index 000000000000..a51eff845c69
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_ListBySubscription.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "api-version": "2020-07-30-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "string",
+ "tenantId": "string"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ },
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup2/providers/Microsoft.HybridCompute/machines/myMachine2",
+ "name": "myMachine2",
+ "location": "westus2",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "e7a068cc-b0b8-46e8-a203-22f301a62a8f",
+ "tenantId": "c4098cc-91b8-46c2-a205-d82ab1a62a8f"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "a4a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ ],
+ "nextLink": "string"
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_Update.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_Update.json
new file mode 100644
index 000000000000..4944e20150b5
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/Machines_Update.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-07-30-preview",
+ "location": "eastus2euap",
+ "parameters": {
+ "properties": {
+ "locationData": {
+ "name": "Redmond"
+ }
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "string",
+ "tenantId": "string"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/PUTExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/PUTExtension.json
new file mode 100644
index 000000000000..afe1f55d5faa
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/PUTExtension.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "extensionName": "CustomScriptExtension",
+ "api-version": "2020-07-30-preview",
+ "extensionParameters": {
+ "location": "eastus2euap",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "typeHandlerVersion": "1.10",
+ "type": "CustomScriptExtension",
+ "settings": {
+ "commandToExecute": "powershell.exe -c \"Get-Process | Where-Object { $_.CPU -gt 10000 }\""
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/CustomScriptExtension",
+ "name": "CustomScriptExtension",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "location": "eastus2euap",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "type": "string",
+ "typeHandlerVersion": "1.10.3",
+ "autoUpgradeMinorVersion": false,
+ "settings": "@{commandToExecute=powershell.exe -c \"Get-Process | Where-Object { $_.CPU -gt 10000 }\"}",
+ "protectedSettings": {},
+ "provisioningState": "Succeeded",
+ "instanceView": {
+ "name": "CustomScriptExtension",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "status": {
+ "code": "success",
+ "level": "Information",
+ "message": "Finished executing command, StdOut: , StdErr:",
+ "time": "2020-08-08T20:42:10.999Z"
+ }
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/UpdateExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/UpdateExtension.json
new file mode 100644
index 000000000000..713470d5b138
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-07-30-preview/examples/UpdateExtension.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "extensionName": "CustomScriptExtension",
+ "api-version": "2020-07-30-preview",
+ "extensionParameters": {
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "typeHandlerVersion": "1.10",
+ "type": "CustomScriptExtension",
+ "settings": {
+ "commandToExecute": "powershell.exe -c \"Get-Process | Where-Object { $_.CPU -lt 100 }\""
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/CustomScriptExtension",
+ "name": "CustomScriptExtension",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "location": "eastus2euap",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "type": "string",
+ "typeHandlerVersion": "1.10.3",
+ "autoUpgradeMinorVersion": false,
+ "settings": "@{commandToExecute=powershell.exe -c \"Get-Process | Where-Object { $_.CPU -lt 100 }\"}",
+ "protectedSettings": {},
+ "provisioningState": "Succeeded",
+ "instanceView": {
+ "name": "CustomScriptExtension",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "status": {
+ "code": "success",
+ "level": "Information",
+ "message": "Finished executing command, StdOut: , StdErr:",
+ "time": "2020-01-08T20:42:10.999Z"
+ }
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/HybridCompute.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/HybridCompute.json
new file mode 100644
index 000000000000..8ba25706434d
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/HybridCompute.json
@@ -0,0 +1,1205 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "HybridComputeManagementClient",
+ "description": "The Hybrid Compute Management Client.",
+ "version": "2020-08-15-preview"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}": {
+ "put": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_CreateOrUpdate",
+ "description": "The operation to create or update a hybrid machine resource identity in Azure.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the hybrid machine."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Machine"
+ },
+ "description": "Parameters supplied to the Create hybrid machine operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Machine"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or Update a Machine": {
+ "$ref": "./examples/Machines_CreateOrUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_Update",
+ "description": "The operation to update a hybrid machine.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the hybrid machine."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MachineUpdate"
+ },
+ "description": "Parameters supplied to the Update hybrid machine operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Machine"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update a Machine": {
+ "$ref": "./examples/Machines_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_Delete",
+ "description": "The operation to remove a hybrid machine identity in Azure.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the hybrid machine."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete a Machine": {
+ "$ref": "./examples/Machines_Delete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_Get",
+ "description": "Retrieves information about the model view or the instance view of a hybrid machine.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the hybrid machine."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation.",
+ "enum": [
+ "instanceView"
+ ],
+ "x-ms-enum": {
+ "name": "InstanceViewTypes",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Machine"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Machine": {
+ "$ref": "./examples/Machines_Get.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines": {
+ "get": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_ListByResourceGroup",
+ "description": "Lists all the hybrid machines in the specified resource group. Use the nextLink property in the response to get the next page of hybrid machines.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List Machines by resource group": {
+ "$ref": "./examples/Machines_ListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HybridCompute/machines": {
+ "get": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_ListBySubscription",
+ "description": "Lists all the hybrid machines in the specified subscription. Use the nextLink property in the response to get the next page of hybrid machines.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List Machines by resource group": {
+ "$ref": "./examples/Machines_ListBySubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}": {
+ "put": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_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": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine where the extension should be created or updated."
+ },
+ {
+ "name": "extensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine extension."
+ },
+ {
+ "name": "extensionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MachineExtension"
+ },
+ "description": "Parameters supplied to the Create Machine Extension operation."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineExtension"
+ }
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously."
+ }
+ },
+ "x-ms-examples": {
+ "Create or Update a Machine Extension": {
+ "$ref": "./examples/PUTExtension.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_Update",
+ "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": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine where the extension should be created or updated."
+ },
+ {
+ "name": "extensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine extension."
+ },
+ {
+ "name": "extensionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MachineExtensionUpdate"
+ },
+ "description": "Parameters supplied to the Create Machine Extension operation."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineExtension"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-examples": {
+ "Create or Update a Machine Extension": {
+ "$ref": "./examples/UpdateExtension.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_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": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine where the extension should be deleted."
+ },
+ {
+ "name": "extensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine extension."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "No Content"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete a Machine Extension": {
+ "$ref": "./examples/DELETEExtension.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_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": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine containing the extension."
+ },
+ {
+ "name": "extensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine extension."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineExtension"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GET Machine Extension": {
+ "$ref": "./examples/GETExtension.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions": {
+ "get": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_List",
+ "description": "The operation to get all extensions of a non-Azure machine",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine containing the extension."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation."
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineExtensionsListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GET all Machine Extensions": {
+ "$ref": "./examples/LISTExtension.json"
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.HybridCompute/operations": {
+ "get": {
+ "tags": [
+ "operations"
+ ],
+ "operationId": "Operations_List",
+ "description": "Gets a list of hybrid compute operations.",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ }
+ },
+ "definitions": {
+ "OperationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/OperationValue"
+ },
+ "description": "The list of compute operations"
+ }
+ },
+ "description": "The List Compute Operation operation response."
+ },
+ "OperationValue": {
+ "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,
+ "allOf": [
+ {
+ "$ref": "#/definitions/OperationValueDisplay"
+ }
+ ],
+ "description": "Display properties"
+ }
+ },
+ "description": "Describes the properties of a Compute Operation value."
+ },
+ "OperationValueDisplay": {
+ "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 Hybrid Compute Operation Value Display."
+ },
+ "OSProfile": {
+ "readOnly": true,
+ "properties": {
+ "computerName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Specifies the host OS name of the hybrid machine."
+ }
+ },
+ "description": "Specifies the operating system settings for the hybrid machine."
+ },
+ "MachineProperties": {
+ "properties": {
+ "locationData": {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/locationData"
+ },
+ "osProfile": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/OSProfile"
+ }
+ ],
+ "description": "Specifies the operating system settings for the hybrid machine."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The provisioning state, which only appears in the response."
+ },
+ "status": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The status of the hybrid machine agent.",
+ "enum": [
+ "Connected",
+ "Disconnected",
+ "Error"
+ ],
+ "x-ms-enum": {
+ "name": "StatusTypes",
+ "modelAsString": true
+ }
+ },
+ "lastStatusChange": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The time of the last status change."
+ },
+ "errorDetails": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDetail"
+ },
+ "description": "Details about the error state."
+ },
+ "agentVersion": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The hybrid machine agent full version."
+ },
+ "vmId": {
+ "type": "string",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ],
+ "description": "Specifies the hybrid machine unique ID."
+ },
+ "displayName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the hybrid machine display name."
+ },
+ "machineFqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the hybrid machine FQDN."
+ },
+ "clientPublicKey": {
+ "type": "string",
+ "description": "Public Key that the client provides to be used during initial resource onboarding"
+ },
+ "osName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The Operating System running on the hybrid machine."
+ },
+ "osVersion": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The version of Operating System running on the hybrid machine."
+ },
+ "vmUuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the Arc Machine's unique SMBIOS ID"
+ },
+ "extensions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineExtensionInstanceView"
+ },
+ "description": "Machine Extensions information"
+ },
+ "osSku": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the Operating System product SKU."
+ },
+ "domainName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the Windows domain name."
+ },
+ "adFqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the AD fully qualified display name."
+ },
+ "dnsFqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the DNS fully qualified display name."
+ },
+ "privateLinkScopedResources": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of private link scoped resources associated with this machine."
+ }
+ },
+ "description": "Describes the properties of a hybrid machine."
+ },
+ "MachineUpdateProperties": {
+ "properties": {
+ "locationData": {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/locationData"
+ }
+ },
+ "description": "Describes the ARM updatable properties of a hybrid machine."
+ },
+ "Machine": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineProperties"
+ }
+ ],
+ "description": "Hybrid Compute Machine properties"
+ },
+ "identity": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Identity"
+ }
+ ]
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "description": "Describes a hybrid machine."
+ },
+ "MachineUpdate": {
+ "properties": {
+ "identity": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/Identity"
+ }
+ ],
+ "description": "Hybrid Compute Machine Managed Identity"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineUpdateProperties"
+ }
+ ],
+ "description": "Hybrid Compute Machine properties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Describes a hybrid machine Update."
+ },
+ "MachineListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Machine"
+ },
+ "description": "The list of hybrid machines."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of Machines. Call ListNext() with this URI to fetch the next page of hybrid machines."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List hybrid machine operation response."
+ },
+ "UpdateResource": {
+ "description": "The Update Resource model definition.",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ }
+ },
+ "ErrorDetail": {
+ "title": "Error details.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The error's code.",
+ "type": "string"
+ },
+ "message": {
+ "description": "A human readable error message.",
+ "type": "string"
+ },
+ "target": {
+ "description": "Indicates which property in the request is responsible for the error.",
+ "type": "string"
+ },
+ "details": {
+ "description": "Additional error details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDetail"
+ }
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ]
+ },
+ "ErrorResponse": {
+ "title": "Error response.",
+ "description": "Contains details when the response code indicates an error.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "description": "The error details.",
+ "$ref": "#/definitions/ErrorDetail"
+ }
+ },
+ "required": [
+ "error"
+ ]
+ },
+ "Identity": {
+ "title": "Managed Identity.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "The identity type.",
+ "type": "string"
+ },
+ "principalId": {
+ "readOnly": true,
+ "description": "The identity's principal id.",
+ "type": "string"
+ },
+ "tenantId": {
+ "readOnly": true,
+ "description": "The identity's tenant id.",
+ "type": "string"
+ }
+ }
+ },
+ "MachineExtension": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineExtensionProperties"
+ }
+ ],
+ "description": "Describes Machine Extension Properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "description": "Describes a Machine Extension."
+ },
+ "MachineExtensionUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineExtensionUpdateProperties"
+ }
+ ],
+ "description": "Describes Machine Extension Update Properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Describes a Machine Extension Update."
+ },
+ "MachineExtensionProperties": {
+ "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."
+ },
+ "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": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineExtensionInstanceView"
+ }
+ ],
+ "description": "The machine extension instance view."
+ }
+ },
+ "description": "Describes the properties of a Machine Extension."
+ },
+ "MachineExtensionUpdateProperties": {
+ "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."
+ },
+ "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 Machine Extension."
+ },
+ "MachineExtensionInstanceView": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The 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."
+ },
+ "status": {
+ "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": true
+ }
+ },
+ "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."
+ }
+ },
+ "description": "Describes the Machine Extension Instance View."
+ },
+ "MachineExtensionsListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineExtension"
+ },
+ "description": "The list of extensions"
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of machine extensions. Call ListNext() with this to fetch the next page of extensions."
+ }
+ },
+ "description": "Describes the Machine Extensions List Result."
+ }
+ },
+ "parameters": {}
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/DELETEExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/DELETEExtension.json
new file mode 100644
index 000000000000..11665bd285e8
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/DELETEExtension.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "extensionName": "MMA",
+ "api-version": "2020-08-15-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/GETExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/GETExtension.json
new file mode 100644
index 000000000000..81ef4f179bc9
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/GETExtension.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "extensionName": "CustomScriptExtension",
+ "api-version": "2020-08-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/CustomScriptExtension",
+ "name": "CustomScriptExtension",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "location": "eastus2euap",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "type": "string",
+ "typeHandlerVersion": "1.10.3",
+ "autoUpgradeMinorVersion": false,
+ "settings": "@{commandToExecute=powershell.exe -c \"Get-Process | Where-Object { $_.CPU -gt 10000 }\"}",
+ "protectedSettings": {},
+ "provisioningState": "Succeeded",
+ "instanceView": {
+ "name": "CustomScriptExtension",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "status": {
+ "code": "success",
+ "level": "Information",
+ "displayStatus": "Provisioning succeeded",
+ "message": "Finished executing command, StdOut: , StdErr:",
+ "time": "2019-08-08T20:42:10.999Z"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/LISTExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/LISTExtension.json
new file mode 100644
index 000000000000..21e731a8cee1
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/LISTExtension.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-08-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/CustomScriptExtension",
+ "name": "CustomScriptExtension",
+ "location": "eastus2euap",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "autoUpgradeMinorVersion": false,
+ "settings": {
+ "commandToExecute": "powershell.exe -c \"Get-Process | Where-Object { $_.CPU -gt 10000 }\""
+ },
+ "provisioningState": "Succeeded",
+ "instanceView": {
+ "name": "CustomScriptExtension",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "status": {
+ "code": "success",
+ "level": "Information",
+ "displayStatus": "Provisioning succeeded",
+ "message": "formattedMessage: Finished executing command, StdOut: , StdErr: ",
+ "time": "2020-08-13T17:18:57.405Z"
+ }
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/winosupdateextension",
+ "name": "winosupdateextension",
+ "location": "eastus2euap",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "properties": {
+ "publisher": "microsoft.softwareupdatemanagement.test",
+ "type": "windowsosupdateextension",
+ "typeHandlerVersion": "1.0.0.0",
+ "autoUpgradeMinorVersion": false,
+ "settings": {},
+ "provisioningState": "Creating",
+ "instanceView": {
+ "name": "winosupdateextension",
+ "type": "windowsosupdateextension",
+ "typeHandlerVersion": "1.0.0.0",
+ "status": {}
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_CreateOrUpdate.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_CreateOrUpdate.json
new file mode 100644
index 000000000000..b4ed6ca14786
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_CreateOrUpdate.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-08-15-preview",
+ "parameters": {
+ "location": "eastus2euap",
+ "properties": {
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "string",
+ "tenantId": "string"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "privateLinkScopedResources": [
+ "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/scopedResources/scoped-resource-name"
+ ],
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond",
+ "city": "redmond",
+ "district": null,
+ "countryOrRegion": "usa"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_Delete.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_Delete.json
new file mode 100644
index 000000000000..871d9aeee1cb
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_Delete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-08-15-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_Get.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_Get.json
new file mode 100644
index 000000000000..008718dd4d85
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_Get.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-08-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "string",
+ "tenantId": "string"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "privateLinkScopedResources": [
+ "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/scopedResources/scoped-resource-name"
+ ],
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond",
+ "city": "redmond",
+ "district": null,
+ "countryOrRegion": "usa"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_ListByResourceGroup.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_ListByResourceGroup.json
new file mode 100644
index 000000000000..1f451d855140
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_ListByResourceGroup.json
@@ -0,0 +1,89 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "f7a068cc-b0b8-46e8-a203-22f301a62a8f",
+ "tenantId": "c4098cc-91b8-46c2-a205-d82ab1a62a8f"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "privateLinkScopedResources": [
+ "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/scopedResources/scoped-resource-name"
+ ],
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ },
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine2",
+ "name": "myMachine2",
+ "location": "westus2",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "e7a068cc-b0b8-46e8-a203-22f301a62a8f",
+ "tenantId": "c4098cc-91b8-46c2-a205-d82ab1a62a8f"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "privateLinkScopedResources": [
+ "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/scopedResources/scoped-resource-name2"
+ ],
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "a4a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_ListBySubscription.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_ListBySubscription.json
new file mode 100644
index 000000000000..578067cfe6db
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_ListBySubscription.json
@@ -0,0 +1,88 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "api-version": "2020-08-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "string",
+ "tenantId": "string"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "privateLinkScopedResources": [
+ "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/scopedResources/scoped-resource-name"
+ ],
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ },
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup2/providers/Microsoft.HybridCompute/machines/myMachine2",
+ "name": "myMachine2",
+ "location": "westus2",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "e7a068cc-b0b8-46e8-a203-22f301a62a8f",
+ "tenantId": "c4098cc-91b8-46c2-a205-d82ab1a62a8f"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "privateLinkScopedResources": [
+ "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/scopedResources/scoped-resource-name2"
+ ],
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "a4a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ ],
+ "nextLink": "string"
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_Update.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_Update.json
new file mode 100644
index 000000000000..69ba54c6543a
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/Machines_Update.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-08-15-preview",
+ "location": "eastus2euap",
+ "parameters": {
+ "properties": {
+ "locationData": {
+ "name": "Redmond"
+ }
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "string",
+ "tenantId": "string"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "privateLinkScopedResources": [
+ "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/scopedResources/scoped-resource-name"
+ ],
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PUTExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PUTExtension.json
new file mode 100644
index 000000000000..ef06564af353
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PUTExtension.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "extensionName": "CustomScriptExtension",
+ "api-version": "2020-08-15-preview",
+ "extensionParameters": {
+ "location": "eastus2euap",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "typeHandlerVersion": "1.10",
+ "type": "CustomScriptExtension",
+ "settings": {
+ "commandToExecute": "powershell.exe -c \"Get-Process | Where-Object { $_.CPU -gt 10000 }\""
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/CustomScriptExtension",
+ "name": "CustomScriptExtension",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "location": "eastus2euap",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "type": "string",
+ "typeHandlerVersion": "1.10.3",
+ "autoUpgradeMinorVersion": false,
+ "settings": "@{commandToExecute=powershell.exe -c \"Get-Process | Where-Object { $_.CPU -gt 10000 }\"}",
+ "protectedSettings": {},
+ "provisioningState": "Succeeded",
+ "instanceView": {
+ "name": "CustomScriptExtension",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "status": {
+ "code": "success",
+ "level": "Information",
+ "message": "Finished executing command, StdOut: , StdErr:",
+ "time": "2020-08-08T20:42:10.999Z"
+ }
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateEndpointConnectionDelete.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateEndpointConnectionDelete.json
new file mode 100644
index 000000000000..35015feb8d2d
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateEndpointConnectionDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "myResourceGroup",
+ "scopeName": "myPrivateLinkScope",
+ "privateEndpointConnectionName": "private-endpoint-connection-name",
+ "api-version": "2020-08-15-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateEndpointConnectionGet.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateEndpointConnectionGet.json
new file mode 100644
index 000000000000..ce4874f2ad7d
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateEndpointConnectionGet.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "myResourceGroup",
+ "scopeName": "myPrivateLinkScope",
+ "privateEndpointConnectionName": "private-endpoint-connection-name",
+ "api-version": "2020-08-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name",
+ "name": "private-endpoint-connection-name",
+ "type": "Microsoft.HybridCompute/privateLinkScopes/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateEndpointConnectionList.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateEndpointConnectionList.json
new file mode 100644
index 000000000000..56a8b7d4e74f
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateEndpointConnectionList.json
@@ -0,0 +1,48 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "myResourceGroup",
+ "scopeName": "myPrivateLinkScope",
+ "api-version": "2020-08-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name-2",
+ "name": "private-endpoint-connection-name",
+ "type": "Microsoft.HybridCompute/privateLinkScopes/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-approved",
+ "actionsRequired": "None"
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name-2",
+ "name": "private-endpoint-connection-name-2",
+ "type": "Microsoft.HybridCompute/privateLinkScopes/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name-2"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Pending",
+ "description": "Please approve my connection.",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateEndpointConnectionUpdate.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateEndpointConnectionUpdate.json
new file mode 100644
index 000000000000..e5537ca5b39a
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateEndpointConnectionUpdate.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "myResourceGroup",
+ "scopeName": "myPrivateLinkScope",
+ "privateEndpointConnectionName": "private-endpoint-connection-name",
+ "api-version": "2020-08-15-preview",
+ "parameters": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by johndoe@contoso.com"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name",
+ "name": "private-endpoint-connection-name",
+ "type": "Microsoft.HybridCompute/privateLinkScopes/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by johndoe@contoso.com",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json
new file mode 100644
index 000000000000..99edb39f0070
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "myResourceGroup",
+ "scopeName": "myPrivateLinkScope",
+ "api-version": "2020-08-15-preview",
+ "groupName": "hybridcompute"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/privateLinkResources/hybridcompute",
+ "name": "hybridcompute",
+ "type": "Microsoft.HybridCompute/privateLinkScopes/privateLinkResources",
+ "properties": {
+ "groupId": "hybridcompute",
+ "requiredMembers": [
+ "HybridCompute.Server",
+ "HybridCompute.K8sConfiguration",
+ "GuestConfig.DP"
+ ],
+ "requiredZoneNames": [
+ "privatelink.his.arc.azure.com",
+ "privatelink.kubernetesconfiguration.azure.com",
+ "privatelink.Guestconfiguration.azure.com"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json
new file mode 100644
index 000000000000..203972d0f2ca
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "myResourceGroup",
+ "scopeName": "myPrivateLinkScope",
+ "api-version": "2020-08-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/privateLinkResources/hybridcompute",
+ "name": "hybridcompute",
+ "type": "Microsoft.HybridCompute/privateLinkScopes/privateLinkResources",
+ "properties": {
+ "groupId": "hybridcompute",
+ "requiredMembers": [
+ "HybridCompute.ServerDP",
+ "HybridCompute.K8sConfigurationDP",
+ "HybridCompute.GuestConfigDP"
+ ],
+ "requiredZoneNames": [
+ "privatelink.his.arc.azure.com",
+ "privatelink.kubernetesconfiguration.azure.com",
+ "privatelink.Guestconfiguration.azure.com"
+ ]
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopedResourceDelete.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopedResourceDelete.json
new file mode 100644
index 000000000000..2b177d893207
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopedResourceDelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "myResourceGroup",
+ "scopeName": "myPrivateLinkScope",
+ "name": "scoped-resource-name",
+ "api-version": "2020-08-15-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopedResourceGet.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopedResourceGet.json
new file mode 100644
index 000000000000..aa2d586359e1
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopedResourceGet.json
@@ -0,0 +1,22 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "myResourceGroup",
+ "scopeName": "myPrivateLinkScope",
+ "name": "scoped-resource-name",
+ "api-version": "2020-08-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/scopedResources/scoped-resource-name",
+ "name": "scoped-resource-name",
+ "type": "Microsoft.HybridCompute/privateLinkScopes/scopedResources",
+ "properties": {
+ "linkedResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.Kubernetes/ConnectedCluster/ConnectedClusterName1",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopedResourceList.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopedResourceList.json
new file mode 100644
index 000000000000..4363b54a9074
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopedResourceList.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "myResourceGroup",
+ "scopeName": "myPrivateLinkScope",
+ "api-version": "2020-08-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/scopedResources/scoped-resource-name1",
+ "name": "scoped-resource-name1",
+ "type": "Microsoft.HybridCompute/privateLinkScopes/scopedResources",
+ "properties": {
+ "linkedResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/machineName1",
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/scopedResources/scoped-resource-name2",
+ "name": "scoped-resource-name2",
+ "type": "Microsoft.HybridCompute/privateLinkScopes/scopedResources",
+ "properties": {
+ "linkedResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.Kubernetes/ConnectedCluster/ConnectedClusterName2",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopedResourceUpdate.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopedResourceUpdate.json
new file mode 100644
index 000000000000..7e0e32acbb76
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopedResourceUpdate.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "myResourceGroup",
+ "scopeName": "myPrivateLinkScope",
+ "name": "scoped-resource-name",
+ "api-version": "2020-08-15-preview",
+ "parameters": {
+ "properties": {
+ "linkedResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/machineName1"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/scopedResources/scoped-resource-name",
+ "name": "scoped-resource-name",
+ "type": "Microsoft.HybridCompute/privateLinkScopes/scopedResources",
+ "properties": {
+ "linkedResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/machineName1",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/privateLinkScopes/myPrivateLinkScope/scopedResources/scoped-resource-name",
+ "name": "scoped-resource-name",
+ "type": "Microsoft.HybridCompute/privateLinkScopes/scopedResources",
+ "properties": {
+ "linkedResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/machineName1",
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesCreate.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesCreate.json
new file mode 100644
index 000000000000..2975811bfdcc
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesCreate.json
@@ -0,0 +1,39 @@
+{
+ "parameters": {
+ "api-version": "2020-08-15-preview",
+ "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919",
+ "resourceGroupName": "my-resource-group",
+ "scopeName": "my-privatelinkscope",
+ "parameters": {
+ "location": "westus"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/microsoft.hybridcompute/privateLinkScopes/my-privatelinkscope",
+ "name": "my-privatelinkscope",
+ "type": "Microsoft.HybridCompute/privateLinkScopes",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicNetworkAccess": "Disabled"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/microsoft.hybridcompute/privateLinkScopes/my-privatelinkscope",
+ "name": "my-privatelinkscope",
+ "type": "Microsoft.HybridCompute/privateLinkScopes",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicNetworkAccess": "Disabled"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesDelete.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesDelete.json
new file mode 100644
index 000000000000..56a13d7cbf2f
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesDelete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-08-15-preview",
+ "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919",
+ "resourceGroupName": "my-resource-group",
+ "scopeName": "my-privatelinkscope"
+ },
+ "responses": {
+ "200": {},
+ "204": {},
+ "202": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesGet.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesGet.json
new file mode 100644
index 000000000000..c54013c0de07
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesGet.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "api-version": "2020-08-15-preview",
+ "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919",
+ "resourceGroupName": "my-resource-group",
+ "scopeName": "my-privatelinkscope"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/microsoft.hybridcompute/privateLinkScopes/my-privatelinkscope",
+ "name": "my-privatelinkscope",
+ "type": "Microsoft.HybridCompute/privateLinkScopes",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicNetworkAccess": "Disabled"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesList.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesList.json
new file mode 100644
index 000000000000..63e1a8e83692
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesList.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "api-version": "2019-10-17-preview",
+ "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/microsoft.hybridcompute/privateLinkScopes/my-privatelinkscope",
+ "name": "my-privatelinkscope",
+ "type": "Microsoft.HybridCompute/privateLinkScopes",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicNetworkAccess": "Disabled"
+ }
+ },
+ {
+ "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/microsoft.hybridcompute/privateLinkScopes/my-other-privatelinkscope",
+ "name": "my-other-privatelinkscope",
+ "type": "Microsoft.HybridCompute/privateLinkScopes",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicNetworkAccess": "Disabled"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesListByResourceGroup.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesListByResourceGroup.json
new file mode 100644
index 000000000000..ca999f43b5cf
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesListByResourceGroup.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "api-version": "2020-08-15-preview",
+ "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919",
+ "resourceGroupName": "my-resource-group"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/microsoft.hybridcompute/privateLinkScopes/my-privatelinkscope",
+ "name": "my-privatelinkscope",
+ "type": "Microsoft.HybridCompute/privateLinkScopes",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicNetworkAccess": "Disabled"
+ }
+ },
+ {
+ "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/microsoft.hybridcompute/privateLinkScopes/my-other-privatelinkscope",
+ "name": "my-other-privatelinkscope",
+ "type": "Microsoft.HybridCompute/privateLinkScopes",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "provisioningState": "Succeeded",
+ "publicNetworkAccess": "Disabled"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesUpdate.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesUpdate.json
new file mode 100644
index 000000000000..396ef792e969
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesUpdate.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "api-version": "2020-08-15-preview",
+ "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919",
+ "resourceGroupName": "my-resource-group",
+ "scopeName": "my-privatelinkscope",
+ "parameters": {
+ "location": "westus",
+ "tags": {
+ "Tag1": "Value1"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/microsoft.hybridCompute/privateLinkScopes/my-privatelinkscope",
+ "name": "my-privatelinkscope",
+ "type": "Microsoft.HybridCompute/privateLinkScopes",
+ "location": "westus",
+ "tags": {
+ "Tag1": "Value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/microsoft.hybridCompute/privateLinkScopes/my-privatelinkscope",
+ "name": "my-privatelinkscope",
+ "type": "Microsoft.HybridCompute/privateLinkScopes",
+ "location": "westus",
+ "tags": {
+ "Tag1": "Value1"
+ },
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesUpdateTagsOnly.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesUpdateTagsOnly.json
new file mode 100644
index 000000000000..7b18b40dfedb
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/PrivateLinkScopesUpdateTagsOnly.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "api-version": "2020-08-15-preview",
+ "subscriptionId": "subid",
+ "resourceGroupName": "my-resource-group",
+ "scopeName": "my-privatelinkscope",
+ "PrivateLinkScopeTags": {
+ "tags": {
+ "Tag1": "Value1",
+ "Tag2": "Value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/microsoft.hybridcompute/privateLinkScopes/my-privatelinkscope",
+ "name": "my-privatelinkscope",
+ "type": "Microsoft.HybridCompute/privateLinkScopes",
+ "location": "westus",
+ "tags": {
+ "Tag1": "Value1",
+ "Tag2": "Value2"
+ },
+ "properties": {
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/UpdateExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/UpdateExtension.json
new file mode 100644
index 000000000000..f3dabfd2747b
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/examples/UpdateExtension.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "extensionName": "CustomScriptExtension",
+ "api-version": "2020-08-15-preview",
+ "extensionParameters": {
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "typeHandlerVersion": "1.10",
+ "type": "CustomScriptExtension",
+ "settings": {
+ "commandToExecute": "powershell.exe -c \"Get-Process | Where-Object { $_.CPU -lt 100 }\""
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/CustomScriptExtension",
+ "name": "CustomScriptExtension",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "location": "eastus2euap",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "type": "string",
+ "typeHandlerVersion": "1.10.3",
+ "autoUpgradeMinorVersion": false,
+ "settings": "@{commandToExecute=powershell.exe -c \"Get-Process | Where-Object { $_.CPU -lt 100 }\"}",
+ "protectedSettings": {},
+ "provisioningState": "Succeeded",
+ "instanceView": {
+ "name": "CustomScriptExtension",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "status": {
+ "code": "success",
+ "level": "Information",
+ "message": "Finished executing command, StdOut: , StdErr:",
+ "time": "2020-01-08T20:42:10.999Z"
+ }
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/privateLinkScopes.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/privateLinkScopes.json
new file mode 100644
index 000000000000..e128ff52eb6f
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/preview/2020-08-15-preview/privateLinkScopes.json
@@ -0,0 +1,1239 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "HybridComputeManagementClient",
+ "x-ms-code-generation-settings": {
+ "name": "HybridComputeManagementClient"
+ },
+ "description": "Azure Arc( Servers and K8s Clusters) API reference for Private Link's Scopes management.",
+ "version": "2020-08-15-preview"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HybridCompute/privateLinkScopes": {
+ "get": {
+ "description": "Gets a list of all Azure Arc PrivateLinkScopes within a subscription.",
+ "operationId": "PrivateLinkScopes_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 Azure Arc PrivateLinkScope definitions.",
+ "schema": {
+ "$ref": "#/definitions/HybridComputePrivateLinkScopeListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateLinkScopesList.json": {
+ "$ref": "./examples/PrivateLinkScopesList.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/privateLinkScopes": {
+ "get": {
+ "description": "Gets a list of Azure Arc PrivateLinkScopes within a resource group.",
+ "operationId": "PrivateLinkScopes_ListByResourceGroup",
+ "parameters": [
+ {
+ "$ref": "#/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 Azure Arc PrivateLinkScope definitions.",
+ "schema": {
+ "$ref": "#/definitions/HybridComputePrivateLinkScopeListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateLinkScopeListByResourceGroup": {
+ "$ref": "./examples/PrivateLinkScopesListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/privateLinkScopes/{scopeName}": {
+ "delete": {
+ "description": "Deletes a Azure Arc PrivateLinkScope.",
+ "operationId": "PrivateLinkScopes_Delete",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkScopeName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request when deleting an Azure Arc PrivateLinkScope."
+ },
+ "202": {
+ "description": "Accepted."
+ },
+ "204": {
+ "description": "The specified PrivateLinkScope does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "PrivateLinkScopesDelete": {
+ "$ref": "./examples/PrivateLinkScopesDelete.json"
+ }
+ }
+ },
+ "get": {
+ "description": "Returns a Azure Arc PrivateLinkScope.",
+ "operationId": "PrivateLinkScopes_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkScopeName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Azure Arc PrivateLinkScope definition.",
+ "schema": {
+ "$ref": "#/definitions/HybridComputePrivateLinkScope"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateLinkScopeGet": {
+ "$ref": "./examples/PrivateLinkScopesGet.json"
+ }
+ }
+ },
+ "put": {
+ "description": "Creates (or updates) a Azure Arc PrivateLinkScope. Note: You cannot specify a different value for InstrumentationKey nor AppId in the Put operation.",
+ "operationId": "PrivateLinkScopes_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkScopeName"
+ },
+ {
+ "name": "parameters",
+ "description": "Properties that need to be specified to create or update a Azure Arc for Servers and Clusters PrivateLinkScope.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/HybridComputePrivateLinkScope"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful request when creating or updating a Azure Arc PrivateLinkScope. The updated PrivateLinkScope is returned.",
+ "schema": {
+ "$ref": "#/definitions/HybridComputePrivateLinkScope"
+ }
+ },
+ "201": {
+ "description": "Successful request when creating or updating a Azure Arc PrivateLinkScope. The updated PrivateLinkScope was created and is returned.",
+ "schema": {
+ "$ref": "#/definitions/HybridComputePrivateLinkScope"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateLinkScopeCreate": {
+ "$ref": "./examples/PrivateLinkScopesCreate.json"
+ },
+ "PrivateLinkScopeUpdate": {
+ "$ref": "./examples/PrivateLinkScopesUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "description": "Updates an existing PrivateLinkScope's tags. To update other fields use the CreateOrUpdate method.",
+ "operationId": "PrivateLinkScopes_UpdateTags",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkScopeName"
+ },
+ {
+ "name": "PrivateLinkScopeTags",
+ "description": "Updated tag information to set into the PrivateLinkScope instance.",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TagsResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Updating the Azure Arc PrivateLinkScope's tags was successful. PrivateLinkScope tags are updated and returned with the rest of the PrivateLinkScope's object properties.",
+ "schema": {
+ "$ref": "#/definitions/HybridComputePrivateLinkScope"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "PrivateLinkScopeUpdateTagsOnly": {
+ "$ref": "./examples/PrivateLinkScopesUpdateTagsOnly.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/privateLinkScopes/{scopeName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "PrivateLinkResources"
+ ],
+ "description": "Gets the private link resources that need to be created for a Azure Monitor PrivateLinkScope.",
+ "operationId": "PrivateLinkResources_ListByPrivateLinkScope",
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkScopeName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved private link resources.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResourceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Gets private endpoint connection.": {
+ "$ref": "./examples/PrivateLinkScopePrivateLinkResourceListGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/privateLinkScopes/{scopeName}/privateLinkResources/{groupName}": {
+ "get": {
+ "tags": [
+ "PrivateLinkResources"
+ ],
+ "description": "Gets the private link resources that need to be created for a Azure Monitor PrivateLinkScope.",
+ "operationId": "PrivateLinkResources_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkScopeName"
+ },
+ {
+ "$ref": "#/parameters/GroupNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved a specified private link resource.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Gets private endpoint connection.": {
+ "$ref": "./examples/PrivateLinkScopePrivateLinkResourceGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/privateLinkScopes/{scopeName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "description": "Gets a private endpoint connection.",
+ "operationId": "PrivateEndpointConnections_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkScopeName"
+ },
+ {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "description": "The name of the private endpoint connection.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved a specified private endpoint connection.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Gets private endpoint connection.": {
+ "$ref": "./examples/PrivateEndpointConnectionGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "description": "Approve or reject a private endpoint connection with a given name.",
+ "operationId": "PrivateEndpointConnections_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkScopeName"
+ },
+ {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "description": "The name of the private endpoint connection.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully approved or rejected private endpoint connection.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Approve or reject a private endpoint connection with a given name.": {
+ "$ref": "./examples/PrivateEndpointConnectionUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "description": "Deletes a private endpoint connection with a given name.",
+ "operationId": "PrivateEndpointConnections_Delete",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkScopeName"
+ },
+ {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "description": "The name of the private endpoint connection.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted private endpoint connection."
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "Private endpoint connection does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Deletes a private endpoint connection with a given name.": {
+ "$ref": "./examples/PrivateEndpointConnectionDelete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/privateLinkScopes/{scopeName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "description": "Gets all private endpoint connections on a private link scope.",
+ "operationId": "PrivateEndpointConnections_ListByPrivateLinkScope",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkScopeName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved private endpoint connections.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnectionListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Gets list of private endpoint connections on a private link scope.": {
+ "$ref": "./examples/PrivateEndpointConnectionList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/privateLinkScopes/{scopeName}/scopedResources/{name}": {
+ "get": {
+ "tags": [
+ "PrivateLinkScopedResources"
+ ],
+ "description": "Gets a scoped resource in a private link scope.",
+ "operationId": "PrivateLinkScopedResources_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkScopeName"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "description": "The name of the scoped resource object.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved a scoped resource in a private link scope.",
+ "schema": {
+ "$ref": "#/definitions/ScopedResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Gets private link scoped resource.": {
+ "$ref": "./examples/PrivateLinkScopedResourceGet.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PrivateLinkScopedResources"
+ ],
+ "description": "Approve or reject a private endpoint connection with a given name.",
+ "operationId": "PrivateLinkScopedResources_CreateOrUpdate",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkScopeName"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "description": "The name of the scoped resource object.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ScopedResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully create or updated a new Azure Arc scoped resource in a private link scope.",
+ "schema": {
+ "$ref": "#/definitions/ScopedResource"
+ }
+ },
+ "201": {
+ "description": "Successfully created a new Azure Arc scoped resource in a private link scope.",
+ "schema": {
+ "$ref": "#/definitions/ScopedResource"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update a scoped resource in a private link scope.": {
+ "$ref": "./examples/PrivateLinkScopedResourceUpdate.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "PrivateLinkScopedResources"
+ ],
+ "description": "Deletes a private endpoint connection with a given name.",
+ "operationId": "PrivateLinkScopedResources_Delete",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkScopeName"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "description": "The name of the scoped resource object.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted scoped resource."
+ },
+ "202": {
+ "description": "Accepted"
+ },
+ "204": {
+ "description": "Scoped resource does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Deletes a scoped resource with a given name.": {
+ "$ref": "./examples/PrivateLinkScopedResourceDelete.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/privateLinkScopes/{scopeName}/scopedResources": {
+ "get": {
+ "tags": [
+ "PrivateLinkScopedResources"
+ ],
+ "description": "Gets all private endpoint connections on a private link scope.",
+ "operationId": "PrivateLinkScopedResources_ListByPrivateLinkScope",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateLinkScopeName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved scoped resources in a private link scope.",
+ "schema": {
+ "$ref": "#/definitions/ScopedResourceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Gets list of scoped resources in a private link scope.": {
+ "$ref": "./examples/PrivateLinkScopedResourceList.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "PrivateLinkScopesResource": {
+ "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 PrivateLinkScope instance."
+ },
+ "HybridComputePrivateLinkScope": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "description": "Properties that define a Azure Arc PrivateLinkScope resource.",
+ "$ref": "#/definitions/HybridComputePrivateLinkScopeProperties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/PrivateLinkScopesResource"
+ }
+ ],
+ "description": "An Azure Arc PrivateLinkScope definition."
+ },
+ "HybridComputePrivateLinkScopeProperties": {
+ "description": "Properties that define a Azure Arc PrivateLinkScope resource.",
+ "properties": {
+ "publicNetworkAccess": {
+ "description": "Indicates whether machines associated with the private link scope can also use public Azure Arc service endpoints.",
+ "$ref": "#/definitions/PublicNetworkAccessType"
+ },
+ "provisioningState": {
+ "type": "string",
+ "description": "Current state of this PrivateLinkScope: 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 Provisioning ,Succeeded, Canceled and Failed.",
+ "readOnly": true
+ },
+ "privateEndpointConnections": {
+ "readOnly": true,
+ "description": "List of private endpoint connections.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ }
+ }
+ },
+ "HybridComputePrivateLinkScopeListResult": {
+ "description": "Describes the list of Azure Arc PrivateLinkScope resources.",
+ "required": [
+ "value"
+ ],
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "List of Azure Arc PrivateLinkScope definitions.",
+ "items": {
+ "$ref": "#/definitions/HybridComputePrivateLinkScope"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to get the next set of Azure Arc PrivateLinkScope definitions if too many PrivateLinkScopes where returned in the result set."
+ }
+ }
+ },
+ "PrivateLinkResourceListResult": {
+ "description": "A list of private link resources",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "PrivateLinkResource": {
+ "description": "A private link resource",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateLinkResourceProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ]
+ },
+ "PrivateLinkResourceProperties": {
+ "description": "Properties of a private link resource.",
+ "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": {
+ "description": "Required DNS zone names of the the private link resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "PrivateEndpointConnectionProperties": {
+ "description": "Properties of a private endpoint connection.",
+ "type": "object",
+ "properties": {
+ "privateEndpoint": {
+ "$ref": "#/definitions/PrivateEndpointProperty",
+ "description": "Private endpoint which the connection belongs to."
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "#/definitions/PrivateLinkServiceConnectionStateProperty",
+ "description": "Connection state of the private endpoint connection."
+ },
+ "provisioningState": {
+ "description": "State of the private endpoint connection.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "PrivateEndpointProperty": {
+ "description": "Private endpoint which the connection belongs to.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Resource id of the private endpoint.",
+ "type": "string"
+ }
+ }
+ },
+ "PrivateLinkServiceConnectionStateProperty": {
+ "description": "State of the private endpoint connection.",
+ "type": "object",
+ "required": [
+ "status",
+ "description"
+ ],
+ "properties": {
+ "status": {
+ "description": "The private link service connection status.",
+ "type": "string"
+ },
+ "description": {
+ "description": "The private link service connection description.",
+ "type": "string"
+ },
+ "actionsRequired": {
+ "description": "The actions required for private link service connection.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "PrivateEndpointConnection": {
+ "description": "A private endpoint connection",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "PrivateEndpointConnectionListResult": {
+ "description": "A list of private endpoint connections.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ScopedResourceListResult": {
+ "description": "A list of scoped resources in a private link scope.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "Array of results.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ScopedResource"
+ },
+ "readOnly": true
+ },
+ "nextLink": {
+ "description": "Link to retrieve next page of results.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ScopedResource": {
+ "description": "A private link scoped resource",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ScopedResourceProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "ScopedResourceProperties": {
+ "description": "Properties of a private link scoped resource.",
+ "type": "object",
+ "properties": {
+ "linkedResourceId": {
+ "description": "The resource id of the scoped Azure monitor resource.",
+ "type": "string"
+ },
+ "provisioningState": {
+ "description": "State of the private endpoint connection.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "ErrorResponseCommon": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/ErrorResponseV2"
+ }
+ ],
+ "properties": {
+ "details": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResponseCommon"
+ },
+ "description": "The error details."
+ },
+ "additionalInfo": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorAdditionalInfo"
+ },
+ "description": "The error additional info."
+ }
+ },
+ "description": "The resource management error response."
+ },
+ "ErrorAdditionalInfo": {
+ "properties": {
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The additional info type."
+ },
+ "info": {
+ "readOnly": true,
+ "type": "object",
+ "description": "The additional info."
+ }
+ },
+ "description": "The resource management error additional info."
+ },
+ "ErrorResponseV2": {
+ "properties": {
+ "error": {
+ "type": "object",
+ "description": "The error object.",
+ "properties": {
+ "code": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The error code."
+ },
+ "message": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The error message."
+ },
+ "target": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The error target."
+ },
+ "details": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResponseV2"
+ },
+ "description": "The error details."
+ },
+ "additionalInfo": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorAdditionalInfo"
+ },
+ "description": "The error additional info."
+ }
+ }
+ }
+ },
+ "description": "The resource management error response."
+ },
+ "PublicNetworkAccessType": {
+ "type": "string",
+ "description": "The network access policy to determine if Azure Arc agents can use public Azure Arc service endpoints. Defaults to disabled (access to Azure Arc services only via private link).",
+ "default": "Disabled",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "PublicNetworkAccessType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Enabled",
+ "description": "Allows Azure Arc agents to communicate with Azure Arc services over both public (internet) and private endpoints."
+ },
+ {
+ "value": "Disabled",
+ "description": "Does not allow Azure Arc agents to communicate with Azure Arc services over public (internet) endpoints. The agents must use the private link."
+ }
+ ]
+ }
+ }
+ },
+ "parameters": {
+ "PrivateLinkScopeName": {
+ "name": "scopeName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Azure Arc PrivateLinkScope resource.",
+ "x-ms-parameter-location": "method"
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group.",
+ "x-ms-parameter-location": "method"
+ },
+ "GroupNameParameter": {
+ "name": "groupName",
+ "in": "path",
+ "description": "The name of the private link resource.",
+ "required": true,
+ "x-ms-parameter-location": "method",
+ "type": "string"
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/HybridCompute.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/HybridCompute.json
new file mode 100644
index 000000000000..3b8a59c50a8a
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/HybridCompute.json
@@ -0,0 +1,1221 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "HybridComputeManagementClient",
+ "description": "The Hybrid Compute Management Client.",
+ "version": "2020-08-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}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}": {
+ "put": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_CreateOrUpdate",
+ "description": "The operation to create or update a hybrid machine resource identity in Azure.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the hybrid machine."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Machine"
+ },
+ "description": "Parameters supplied to the Create hybrid machine operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Machine"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create or Update a Machine": {
+ "$ref": "./examples/Machines_CreateOrUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_Update",
+ "description": "The operation to update a hybrid machine.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the hybrid machine."
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MachineUpdate"
+ },
+ "description": "Parameters supplied to the Update hybrid machine operation."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Machine"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update a Machine": {
+ "$ref": "./examples/Machines_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_Delete",
+ "description": "The operation to remove a hybrid machine identity in Azure.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the hybrid machine."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete a Machine": {
+ "$ref": "./examples/Machines_Delete.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_Get",
+ "description": "Retrieves information about the model view or the instance view of a hybrid machine.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the hybrid machine."
+ },
+ {
+ "name": "$expand",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "The expand expression to apply on the operation.",
+ "enum": [
+ "instanceView"
+ ],
+ "x-ms-enum": {
+ "name": "InstanceViewTypes",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Machine"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Machine": {
+ "$ref": "./examples/Machines_Get.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines": {
+ "get": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_ListByResourceGroup",
+ "description": "Lists all the hybrid machines in the specified resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List Machines by resource group": {
+ "$ref": "./examples/Machines_ListByResourceGroup.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.HybridCompute/machines": {
+ "get": {
+ "tags": [
+ "machines"
+ ],
+ "operationId": "Machines_ListBySubscription",
+ "description": "Lists all the hybrid machines in the specified subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List Machines by resource group": {
+ "$ref": "./examples/Machines_ListBySubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}": {
+ "put": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_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": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine where the extension should be created or updated."
+ },
+ {
+ "name": "extensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine extension."
+ },
+ {
+ "name": "extensionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MachineExtension"
+ },
+ "description": "Parameters supplied to the Create Machine Extension operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineExtension"
+ }
+ },
+ "202": {
+ "description": "HTTP 202 (Accepted) if the operation was successfully started and will complete asynchronously."
+ }
+ },
+ "x-ms-examples": {
+ "Create or Update a Machine Extension": {
+ "$ref": "./examples/PUTExtension.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "patch": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_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": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine where the extension should be created or updated."
+ },
+ {
+ "name": "extensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine extension."
+ },
+ {
+ "name": "extensionParameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/MachineExtensionUpdate"
+ },
+ "description": "Parameters supplied to the Create Machine Extension operation."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineExtension"
+ }
+ },
+ "202": {
+ "description": "Accepted"
+ }
+ },
+ "x-ms-examples": {
+ "Create or Update a Machine Extension": {
+ "$ref": "./examples/UpdateExtension.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "delete": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_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": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine where the extension should be deleted."
+ },
+ {
+ "name": "extensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the 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,
+ "x-ms-examples": {
+ "Delete a Machine Extension": {
+ "$ref": "./examples/DELETEExtension.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_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": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine containing the extension."
+ },
+ {
+ "name": "extensionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the machine extension."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/MachineExtension"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Machine Extension": {
+ "$ref": "./examples/GETExtension.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions": {
+ "get": {
+ "tags": [
+ "MachineExtensions"
+ ],
+ "operationId": "MachineExtensions_List",
+ "description": "The operation to get all extensions of a non-Azure machine",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the resource group."
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the 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/MachineExtensionsListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Get all Machine Extensions": {
+ "$ref": "./examples/LISTExtension.json"
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.HybridCompute/operations": {
+ "get": {
+ "tags": [
+ "operations"
+ ],
+ "operationId": "Operations_List",
+ "description": "Gets a list of hybrid compute operations.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ }
+ },
+ "definitions": {
+ "OperationListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/OperationValue"
+ },
+ "description": "The list of compute operations"
+ }
+ },
+ "description": "The List Compute Operation operation response."
+ },
+ "OperationValue": {
+ "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,
+ "allOf": [
+ {
+ "$ref": "#/definitions/OperationValueDisplay"
+ }
+ ],
+ "description": "Display properties"
+ }
+ },
+ "description": "Describes the properties of a Compute Operation value."
+ },
+ "OperationValueDisplay": {
+ "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 Hybrid Compute Operation Value Display."
+ },
+ "OSProfile": {
+ "readOnly": true,
+ "properties": {
+ "computerName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Specifies the host OS name of the hybrid machine."
+ }
+ },
+ "description": "Specifies the operating system settings for the hybrid machine."
+ },
+ "MachineProperties": {
+ "properties": {
+ "locationData": {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/locationData"
+ },
+ "osProfile": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/OSProfile"
+ }
+ ],
+ "description": "Specifies the operating system settings for the hybrid machine."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The provisioning state, which only appears in the response."
+ },
+ "status": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The status of the hybrid machine agent.",
+ "enum": [
+ "Connected",
+ "Disconnected",
+ "Error"
+ ],
+ "x-ms-enum": {
+ "name": "StatusTypes",
+ "modelAsString": true
+ }
+ },
+ "lastStatusChange": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The time of the last status change."
+ },
+ "errorDetails": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDetail"
+ },
+ "description": "Details about the error state."
+ },
+ "agentVersion": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The hybrid machine agent full version."
+ },
+ "vmId": {
+ "type": "string",
+ "x-ms-mutability": [
+ "read",
+ "create"
+ ],
+ "description": "Specifies the hybrid machine unique ID."
+ },
+ "displayName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the hybrid machine display name."
+ },
+ "machineFqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the hybrid machine FQDN."
+ },
+ "clientPublicKey": {
+ "type": "string",
+ "description": "Public Key that the client provides to be used during initial resource onboarding"
+ },
+ "osName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The Operating System running on the hybrid machine."
+ },
+ "osVersion": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The version of Operating System running on the hybrid machine."
+ },
+ "vmUuid": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the Arc Machine's unique SMBIOS ID"
+ },
+ "extensions": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineExtensionInstanceView"
+ },
+ "description": "Machine Extensions information"
+ },
+ "osSku": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the Operating System product SKU."
+ },
+ "domainName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the Windows domain name."
+ },
+ "adFqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the AD fully qualified display name."
+ },
+ "dnsFqdn": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the DNS fully qualified display name."
+ }
+ },
+ "description": "Describes the properties of a hybrid machine."
+ },
+ "MachineUpdateProperties": {
+ "properties": {
+ "locationData": {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/locationData"
+ }
+ },
+ "description": "Describes the ARM updatable properties of a hybrid machine."
+ },
+ "Machine": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineProperties"
+ }
+ ],
+ "description": "Hybrid Compute Machine properties"
+ },
+ "identity": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Identity"
+ }
+ ]
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "description": "Describes a hybrid machine."
+ },
+ "MachineUpdate": {
+ "properties": {
+ "identity": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/Identity"
+ }
+ ],
+ "description": "Hybrid Compute Machine Managed Identity"
+ },
+ "properties": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineUpdateProperties"
+ }
+ ],
+ "description": "Hybrid Compute Machine properties"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Describes a hybrid machine Update."
+ },
+ "MachineListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Machine"
+ },
+ "description": "The list of hybrid machines."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of Machines. Call ListNext() with this URI to fetch the next page of hybrid machines."
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "description": "The List hybrid machine operation response."
+ },
+ "UpdateResource": {
+ "description": "The Update Resource model definition.",
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ }
+ },
+ "ErrorDetail": {
+ "title": "Error details.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The error's code.",
+ "type": "string"
+ },
+ "message": {
+ "description": "A human readable error message.",
+ "type": "string"
+ },
+ "target": {
+ "description": "Indicates which property in the request is responsible for the error.",
+ "type": "string"
+ },
+ "details": {
+ "description": "Additional error details.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorDetail"
+ }
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ]
+ },
+ "ErrorResponse": {
+ "title": "Error response.",
+ "description": "Contains details when the response code indicates an error.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "description": "The error details.",
+ "$ref": "#/definitions/ErrorDetail"
+ }
+ },
+ "required": [
+ "error"
+ ]
+ },
+ "Identity": {
+ "title": "Managed Identity.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "The identity type.",
+ "type": "string"
+ },
+ "principalId": {
+ "readOnly": true,
+ "description": "The identity's principal id.",
+ "type": "string"
+ },
+ "tenantId": {
+ "readOnly": true,
+ "description": "The identity's tenant id.",
+ "type": "string"
+ }
+ }
+ },
+ "MachineExtension": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineExtensionProperties"
+ }
+ ],
+ "description": "Describes Machine Extension Properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource"
+ }
+ ],
+ "description": "Describes a Machine Extension."
+ },
+ "MachineExtensionUpdate": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineExtensionUpdateProperties"
+ }
+ ],
+ "description": "Describes Machine Extension Update Properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/UpdateResource"
+ }
+ ],
+ "description": "Describes a Machine Extension Update."
+ },
+ "MachineExtensionProperties": {
+ "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."
+ },
+ "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": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/MachineExtensionInstanceView"
+ }
+ ],
+ "description": "The machine extension instance view."
+ }
+ },
+ "description": "Describes the properties of a Machine Extension."
+ },
+ "MachineExtensionUpdateProperties": {
+ "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."
+ },
+ "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 Machine Extension."
+ },
+ "MachineExtensionInstanceView": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The machine extension name."
+ },
+ "type": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Specifies the type of the extension; an example is \"CustomScriptExtension\"."
+ },
+ "typeHandlerVersion": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Specifies the version of the script handler."
+ },
+ "status": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The status code."
+ },
+ "level": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The level code.",
+ "enum": [
+ "Info",
+ "Warning",
+ "Error"
+ ],
+ "x-ms-enum": {
+ "name": "StatusLevelTypes",
+ "modelAsString": true
+ }
+ },
+ "displayStatus": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The short localizable label for the status."
+ },
+ "message": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The detailed status message, including for alerts and error messages."
+ },
+ "time": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "description": "The time of the status."
+ }
+ },
+ "description": "Instance view status."
+ }
+ },
+ "description": "Describes the Machine Extension Instance View."
+ },
+ "MachineExtensionsListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineExtension"
+ },
+ "description": "The list of extensions"
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The uri to fetch the next page of machine extensions. Call ListNext() with this to fetch the next page of extensions."
+ }
+ },
+ "description": "Describes the Machine Extensions List Result."
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/DELETEExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/DELETEExtension.json
new file mode 100644
index 000000000000..9fd984c65ae1
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/DELETEExtension.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "extensionName": "MMA",
+ "api-version": "2020-08-02"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/GETExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/GETExtension.json
new file mode 100644
index 000000000000..3b19eabcec0d
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/GETExtension.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "extensionName": "CustomScriptExtension",
+ "api-version": "2020-08-02"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/CustomScriptExtension",
+ "name": "CustomScriptExtension",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "location": "eastus2euap",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "type": "string",
+ "typeHandlerVersion": "1.10.3",
+ "autoUpgradeMinorVersion": false,
+ "settings": "@{commandToExecute=powershell.exe -c \"Get-Process | Where-Object { $_.CPU -gt 10000 }\"}",
+ "protectedSettings": {},
+ "provisioningState": "Succeeded",
+ "instanceView": {
+ "name": "CustomScriptExtension",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "status": {
+ "code": "success",
+ "level": "Information",
+ "displayStatus": "Provisioning succeeded",
+ "message": "Finished executing command, StdOut: , StdErr:",
+ "time": "2019-08-08T20:42:10.999Z"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/LISTExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/LISTExtension.json
new file mode 100644
index 000000000000..7c582e273f3f
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/LISTExtension.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-08-02"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/CustomScriptExtension",
+ "name": "CustomScriptExtension",
+ "location": "eastus2euap",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "autoUpgradeMinorVersion": false,
+ "settings": {
+ "commandToExecute": "powershell.exe -c \"Get-Process | Where-Object { $_.CPU -gt 10000 }\""
+ },
+ "provisioningState": "Succeeded",
+ "instanceView": {
+ "name": "CustomScriptExtension",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "status": {
+ "code": "success",
+ "level": "Information",
+ "displayStatus": "Provisioning succeeded",
+ "message": "formattedMessage: Finished executing command, StdOut: , StdErr: ",
+ "time": "2020-08-13T17:18:57.405Z"
+ }
+ }
+ }
+ },
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/winosupdateextension",
+ "name": "winosupdateextension",
+ "location": "eastus2euap",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "properties": {
+ "publisher": "microsoft.softwareupdatemanagement.test",
+ "type": "windowsosupdateextension",
+ "typeHandlerVersion": "1.0.0.0",
+ "autoUpgradeMinorVersion": false,
+ "settings": {},
+ "provisioningState": "Creating",
+ "instanceView": {
+ "name": "winosupdateextension",
+ "type": "windowsosupdateextension",
+ "typeHandlerVersion": "1.0.0.0",
+ "status": {}
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_CreateOrUpdate.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_CreateOrUpdate.json
new file mode 100644
index 000000000000..1d1ddf766e4d
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_CreateOrUpdate.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-08-02",
+ "parameters": {
+ "location": "eastus2euap",
+ "properties": {
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "string",
+ "tenantId": "string"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond",
+ "city": "redmond",
+ "district": null,
+ "countryOrRegion": "usa"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_Delete.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_Delete.json
new file mode 100644
index 000000000000..2376cf3566ae
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_Delete.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-08-02"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_Get.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_Get.json
new file mode 100644
index 000000000000..27caaa9aa0f1
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_Get.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-08-02"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "string",
+ "tenantId": "string"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond",
+ "city": "redmond",
+ "district": null,
+ "countryOrRegion": "usa"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_ListByResourceGroup.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_ListByResourceGroup.json
new file mode 100644
index 000000000000..ea2e1d488be7
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_ListByResourceGroup.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-02"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "f7a068cc-b0b8-46e8-a203-22f301a62a8f",
+ "tenantId": "c4098cc-91b8-46c2-a205-d82ab1a62a8f"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ },
+ {
+ "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine2",
+ "name": "myMachine2",
+ "location": "westus2",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "e7a068cc-b0b8-46e8-a203-22f301a62a8f",
+ "tenantId": "c4098cc-91b8-46c2-a205-d82ab1a62a8f"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "a4a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_ListBySubscription.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_ListBySubscription.json
new file mode 100644
index 000000000000..04511ecac2b0
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_ListBySubscription.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "api-version": "2020-08-02"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "string",
+ "tenantId": "string"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ },
+ {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup2/providers/Microsoft.HybridCompute/machines/myMachine2",
+ "name": "myMachine2",
+ "location": "westus2",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "e7a068cc-b0b8-46e8-a203-22f301a62a8f",
+ "tenantId": "c4098cc-91b8-46c2-a205-d82ab1a62a8f"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "a4a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ ],
+ "nextLink": "string"
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_Update.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_Update.json
new file mode 100644
index 000000000000..a86eabdc0f42
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/Machines_Update.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscription-id}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "api-version": "2020-08-02",
+ "location": "eastus2euap",
+ "parameters": {
+ "properties": {
+ "locationData": {
+ "name": "Redmond"
+ }
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/machines/myMachine",
+ "name": "myMachine",
+ "location": "eastus2euap",
+ "tags": null,
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "string",
+ "tenantId": "string"
+ },
+ "type": "Microsoft.HybridCompute/machines",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "agentVersion": null,
+ "status": null,
+ "lastStatusChange": null,
+ "errorDetails": null,
+ "displayName": null,
+ "machineFqdn": null,
+ "vmUuid": null,
+ "osSku": null,
+ "domainName": null,
+ "adFqdn": null,
+ "dnsFqdn": null,
+ "osName": null,
+ "osVersion": null,
+ "osProfile": {
+ "computerName": null
+ },
+ "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f",
+ "locationData": {
+ "name": "Redmond"
+ },
+ "clientPublicKey": "string"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/PUTExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/PUTExtension.json
new file mode 100644
index 000000000000..b62c649e2bae
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/PUTExtension.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "extensionName": "CustomScriptExtension",
+ "api-version": "2020-08-02",
+ "extensionParameters": {
+ "location": "eastus2euap",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "typeHandlerVersion": "1.10",
+ "type": "CustomScriptExtension",
+ "settings": {
+ "commandToExecute": "powershell.exe -c \"Get-Process | Where-Object { $_.CPU -gt 10000 }\""
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/CustomScriptExtension",
+ "name": "CustomScriptExtension",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "location": "eastus2euap",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "type": "string",
+ "typeHandlerVersion": "1.10.3",
+ "autoUpgradeMinorVersion": false,
+ "settings": "@{commandToExecute=powershell.exe -c \"Get-Process | Where-Object { $_.CPU -gt 10000 }\"}",
+ "protectedSettings": {},
+ "provisioningState": "Succeeded",
+ "instanceView": {
+ "name": "CustomScriptExtension",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "status": {
+ "code": "success",
+ "level": "Information",
+ "message": "Finished executing command, StdOut: , StdErr:",
+ "time": "2020-08-08T20:42:10.999Z"
+ }
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/UpdateExtension.json b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/UpdateExtension.json
new file mode 100644
index 000000000000..8cf64191e1c7
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/stable/2020-08-02/examples/UpdateExtension.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "subscriptionId": "{subscriptionId}",
+ "resourceGroupName": "myResourceGroup",
+ "name": "myMachine",
+ "extensionName": "CustomScriptExtension",
+ "api-version": "2020-08-02",
+ "extensionParameters": {
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "typeHandlerVersion": "1.10",
+ "type": "CustomScriptExtension",
+ "settings": {
+ "commandToExecute": "powershell.exe -c \"Get-Process | Where-Object { $_.CPU -lt 100 }\""
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.HybridCompute/Machines/myMachine/Extensions/CustomScriptExtension",
+ "name": "CustomScriptExtension",
+ "type": "Microsoft.HybridCompute/machines/extensions",
+ "location": "eastus2euap",
+ "properties": {
+ "publisher": "Microsoft.Compute",
+ "type": "string",
+ "typeHandlerVersion": "1.10.3",
+ "autoUpgradeMinorVersion": false,
+ "settings": "@{commandToExecute=powershell.exe -c \"Get-Process | Where-Object { $_.CPU -lt 100 }\"}",
+ "protectedSettings": {},
+ "provisioningState": "Succeeded",
+ "instanceView": {
+ "name": "CustomScriptExtension",
+ "type": "CustomScriptExtension",
+ "typeHandlerVersion": "1.10.3",
+ "status": {
+ "code": "success",
+ "level": "Information",
+ "message": "Finished executing command, StdOut: , StdErr:",
+ "time": "2020-01-08T20:42:10.999Z"
+ }
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/hybridcompute/resource-manager/readme.az.md b/specification/hybridcompute/resource-manager/readme.az.md
new file mode 100644
index 000000000000..fe93ce29dfae
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/readme.az.md
@@ -0,0 +1,23 @@
+# AZ HybridCompute
+
+These settings apply only when `--az` is specified on the command line.
+
+``` yaml $(az)
+az:
+ extensions: connectedmachine
+ namespace: azure.mgmt.connectedmachine
+ package-name: azure-mgmt-connectedmachine
+az-output-folder: $(azure-cli-extension-folder)/src/connectedmachine
+python-sdk-output-folder: "$(az-output-folder)/azext_connectedmachine/vendored_sdks/connectedmachine"
+directive:
+ - where:
+ subject: MachineExtension
+ parameter-name: name
+ set:
+ parameter-name: machine-name
+ - where:
+ subject: MachineExtension
+ parameter-name: extension-name
+ set:
+ parameter-name: name
+```
diff --git a/specification/hybridcompute/resource-manager/readme.azureresourceschema.md b/specification/hybridcompute/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..ecf289d5125f
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,85 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-hybridcompute-2020-08-15-preview
+ - tag: schema-hybridcompute-2020-08-02
+ - tag: schema-hybridcompute-2020-07-30-preview
+ - tag: schema-hybridcompute-2019-12-12
+ - tag: schema-hybridcompute-2019-08-02
+ - tag: schema-hybridcompute-2019-03-18
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-hybridcompute-2020-08-15-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-hybridcompute-2020-08-15-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HybridCompute/preview/2020-08-15-preview/HybridCompute.json
+ - Microsoft.HybridCompute/preview/2020-08-15-preview/privateLinkScopes.json
+
+```
+
+### Tag: schema-hybridcompute-2020-08-02 and azureresourceschema
+
+``` yaml $(tag) == 'schema-hybridcompute-2020-08-02' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HybridCompute/stable/2020-08-02/HybridCompute.json
+
+```
+
+### Tag: schema-hybridcompute-2020-07-30-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-hybridcompute-2020-07-30-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HybridCompute/preview/2020-07-30-preview/HybridCompute.json
+
+```
+
+### Tag: schema-hybridcompute-2019-12-12 and azureresourceschema
+
+``` yaml $(tag) == 'schema-hybridcompute-2019-12-12' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HybridCompute/stable/2019-12-12/HybridCompute.json
+
+```
+
+### Tag: schema-hybridcompute-2019-08-02 and azureresourceschema
+
+``` yaml $(tag) == 'schema-hybridcompute-2019-08-02' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HybridCompute/preview/2019-08-02/HybridCompute.json
+
+```
+
+### Tag: schema-hybridcompute-2019-03-18 and azureresourceschema
+
+``` yaml $(tag) == 'schema-hybridcompute-2019-03-18' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HybridCompute/preview/2019-03-18/HybridCompute.json
+
+```
diff --git a/specification/hybridcompute/resource-manager/readme.cli.md b/specification/hybridcompute/resource-manager/readme.cli.md
index 98ef22df6da5..5a59b0080270 100644
--- a/specification/hybridcompute/resource-manager/readme.cli.md
+++ b/specification/hybridcompute/resource-manager/readme.cli.md
@@ -1,27 +1,31 @@
-
-# Dns
-This directory contains the Cli common model for the Dns service.
+# CLI HybridCompute
+
+This directory contains the Cli common model for the Hybrid Compute service.
> Metadata
``` yaml
-# Migrated from Powershell's readme
-
title: 'ConnectedMachine'
cli:
cli-directive:
- select: 'operationGroup'
where:
- operatoinGroup: 'operations'
+ operationGroup: 'operations'
hidden: true
- select: 'operation'
where:
operationGroup: 'machines'
operation: '(reconnect|createOrUpdate|update)'
removed: true
- - select: 'operation'
- where:
+ - where:
+ param: 'autoUpgradeMinorVersion'
+ alias:
+ - auto_upgrade_minor
+ - where:
operationGroup: 'machineExtensions'
- operation: '(createOrUpdate|update|delete|get|list)'
- removed: true
-```
\ No newline at end of file
+ param: 'extensionName'
+ alias:
+ - n
+ - extension_name
+ - name
+```
diff --git a/specification/hybridcompute/resource-manager/readme.csharp.md b/specification/hybridcompute/resource-manager/readme.csharp.md
new file mode 100644
index 000000000000..463af704cda6
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/readme.csharp.md
@@ -0,0 +1,22 @@
+# C# HybridCompute
+
+> see https://aka.ms/autorest
+
+This is the AutoRest configuration file for HybridCompute.
+
+These settings apply only when `--csharp` is specified on the command line.
+Please also specify `--csharp-sdks-folder=`.
+
+``` yaml $(csharp)
+csharp:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ namespace: Microsoft.Azure.Management.HybridCompute
+ output-folder: $(csharp-sdks-folder)/HybridCompute/Microsoft.Azure.Management.HybridCompute/src/Generated
+ clear-output-folder: true
+directive:
+ - remove-operation:
+ - Machines_Reconnect
+ - Machines_CreateOrUpdate
+ - Machines_Update
+```
diff --git a/specification/hybridcompute/resource-manager/readme.go.md b/specification/hybridcompute/resource-manager/readme.go.md
new file mode 100644
index 000000000000..85441e52dba6
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/readme.go.md
@@ -0,0 +1,42 @@
+# Go HybridCompute
+
+These settings apply only when `--go` is specified on the command line.
+
+``` yaml $(go)
+go:
+ license-header: MICROSOFT_APACHE_NO_VERSION
+ clear-output-folder: true
+ namespace: hybridcompute
+
+ directive:
+ - remove-operation:
+ - Machines_Reconnect
+ - Machines_CreateOrUpdate
+ - Machines_Update
+```
+
+## Go multi-api
+
+``` yaml $(go) && $(multiapi)
+batch:
+ - tag: package-2019-12
+ - tag: package-2020-08-02
+```
+
+### Tag: package-2020-08-02 and go
+
+These settings apply only when `--tag=package-2020-08-02 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag)=='package-2020-08-02' && $(go)
+output-folder: $(go-sdk-folder)/services/hybridcompute/mgmt/2020-08-02/hybridcompute
+```
+
+### Tag: package-2019-12 and go
+
+These settings apply only when `--tag=package-2019-12 --go` is specified on the command line.
+Please also specify `--go-sdk-folder=`.
+
+``` yaml $(tag)=='package-2019-12' && $(go)
+output-folder: $(go-sdk-folder)/services/hybridcompute/mgmt/2019-12-12/hybridcompute
+```
diff --git a/specification/hybridcompute/resource-manager/readme.java.md b/specification/hybridcompute/resource-manager/readme.java.md
new file mode 100644
index 000000000000..f33fbaa677cb
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/readme.java.md
@@ -0,0 +1,55 @@
+# Java HybridCompute
+
+These settings apply only when `--java` is specified on the command line.
+Please also specify `--azure-libraries-for-java-folder=`.
+
+``` yaml $(java)
+azure-arm: true
+fluent: true
+namespace: com.microsoft.azure.management.hybridcompute
+license-header: MICROSOFT_MIT_NO_CODEGEN
+payload-flattening-threshold: 1
+output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-hybridcompute
+
+directive:
+ - remove-operation:
+ - Machines_Reconnect
+ - Machines_CreateOrUpdate
+ - Machines_Update
+```
+
+## Java multi-api
+
+``` yaml $(java) && $(multiapi)
+batch:
+ - tag: package-2019-12
+ - tag: package-2020-08-02
+```
+
+## Tag: package-2019-12 and java
+
+These settings apply only when `--tag=package-2019-12 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2019-12' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.hybridcompute.v2019_12_12
+ output-folder: $(azure-libraries-for-java-folder)/sdk/hybridcompute/mgmt-v2019_12_12
+
+regenerate-manager: true
+generate-interface: true
+```
+
+## Tag: package-2020-08-02 and java
+
+These settings apply only when `--tag=package-2020-08-02 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2020-08-02' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.hybridcompute.v2020_08_02
+ output-folder: $(azure-libraries-for-java-folder)/sdk/hybridcompute/mgmt-v2020_08_02
+
+regenerate-manager: true
+generate-interface: true
+```
\ No newline at end of file
diff --git a/specification/hybridcompute/resource-manager/readme.md b/specification/hybridcompute/resource-manager/readme.md
index e5c4d2515794..894728ac0028 100644
--- a/specification/hybridcompute/resource-manager/readme.md
+++ b/specification/hybridcompute/resource-manager/readme.md
@@ -1,13 +1,13 @@
# HybridCompute
-
+
> see https://aka.ms/autorest
This is the AutoRest configuration file for HybridCompute RP.
+---
+## Getting Started
----
-## Getting Started
To build the SDK for HybridCompute, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run:
> `autorest`
@@ -15,18 +15,30 @@ To build the SDK for HybridCompute, simply [Install AutoRest](https://aka.ms/aut
To see additional help and options, run:
> `autorest --help`
+
---
## Configuration
-### Basic Information
+### Basic Information
+
These are the global settings for the HybridCompute API.
``` yaml
openapi-type: arm
-tag: package-2019-12
+tag: package-2020-08-02
```
+
+### Tag: package-preview-2020-08
+
+These settings apply only when `--tag=package-preview-2020-08` is specified on the command line.
+
+```yaml $(tag) == 'package-preview-2020-08'
+input-file:
+ - Microsoft.HybridCompute/preview/2020-08-15-preview/HybridCompute.json
+ - Microsoft.HybridCompute/preview/2020-08-15-preview/privateLinkScopes.json
+```
### Tag: package-2019-03
These settings apply only when `--tag=package-2019-03` is specified on the command line.
@@ -54,7 +66,26 @@ input-file:
- Microsoft.HybridCompute/stable/2019-12-12/HybridCompute.json
```
+### Tag: package-2020-07-30-preview
+
+These settings apply only when `--tag=package-2020-07-30-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-07-30-preview'
+input-file:
+- Microsoft.HybridCompute/preview/2020-07-30-preview/HybridCompute.json
+```
+
+### Tag: package-2020-08-02
+
+These settings apply only when `--tag=package-2020-08-02` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-08-02'
+input-file:
+- Microsoft.HybridCompute/stable/2020-08-02/HybridCompute.json
+```
+
---
+
# Code Generation
## Swagger to SDK
@@ -69,186 +100,47 @@ swagger-to-sdk:
- repo: azure-sdk-for-java
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
+ - repo: azure-cli-extensions
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js hybridcompute/resource-manager
```
---
-## C#
-
-These settings apply only when `--csharp` is specified on the command line.
-Please also specify `--csharp-sdks-folder=`.
-
-``` yaml $(csharp)
-csharp:
- azure-arm: true
- license-header: MICROSOFT_MIT_NO_VERSION
- namespace: Microsoft.Azure.Management.HybridCompute
- output-folder: $(csharp-sdks-folder)/HybridCompute/Microsoft.Azure.Management.HybridCompute/src/Generated
- clear-output-folder: true
-directive:
- - remove-operation:
- - Machines_Reconnect
- - Machines_CreateOrUpdate
- - Machines_Update
- - MachineExtensions_CreateOrUpdate
- - MachineExtensions_Update
- - MachineExtensions_Delete
- - MachineExtensions_Get
- - MachineExtensions_List
-```
-
-## PowerShell
-
-``` yaml $(powershell)
-powershell:
- namespace: Microsoft.Azure.Management.HybridCompute
- output-folder: generated
- clear-output-folder: true
-directive:
- - remove-operation:
- - Machines_Reconnect
- - Machines_CreateOrUpdate
- - Machines_Update
- - MachineExtensions_CreateOrUpdate
- - MachineExtensions_Update
- - MachineExtensions_Delete
- - MachineExtensions_Get
- - MachineExtensions_List
-```
-
-## Python
-
-These settings apply only when `--python` is specified on the command line.
-Please also specify `--python-sdks-folder=`.
-Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
-
-``` yaml $(python)
-python-mode: create
-python:
- azure-arm: true
- license-header: MICROSOFT_MIT_NO_VERSION
- payload-flattening-threshold: 2
- namespace: azure.mgmt.hybridcompute
- package-name: azure-mgmt-hybridcompute
- clear-output-folder: true
-```
-``` yaml $(python) && $(python-mode) == 'update'
-python:
- no-namespace-folders: true
- output-folder: $(python-sdks-folder)/hybridcompute/azure-mgmt-hybridcompute/azure/mgmt/hybridcompute
-directive:
- - remove-operation:
- - Machines_Reconnect
- - Machines_CreateOrUpdate
- - Machines_Update
- - MachineExtensions_CreateOrUpdate
- - MachineExtensions_Update
- - MachineExtensions_Delete
- - MachineExtensions_Get
- - MachineExtensions_List
-```
-``` yaml $(python) && $(python-mode) == 'create'
-python:
- basic-setup-py: true
- output-folder: $(python-sdks-folder)/azure-mgmt-hybridcompute
-directive:
- - remove-operation:
- - Machines_Reconnect
- - Machines_CreateOrUpdate
- - Machines_Update
- - MachineExtensions_CreateOrUpdate
- - MachineExtensions_Update
- - MachineExtensions_Delete
- - MachineExtensions_Get
- - MachineExtensions_List
-```
-
-## Go
+## AzureResourceSchema
-These settings apply only when `--go` is specified on the command line.
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-``` yaml $(go)
-go:
- license-header: MICROSOFT_APACHE_NO_VERSION
- clear-output-folder: true
- namespace: hybridcompute
-```
+## az CLI
+See configuration in [readme.az.md](./readme.az.md) and [readme.cli.md](./readme.cli.md)
-### Go multi-api
+## C#
-``` yaml $(go) && $(multiapi)
-batch:
- - tag: package-2019-12
-```
+See configuration in [readme.csharp.md](./readme.csharp.md)
-### Tag: package-2019-12 and go
+## Go
-These settings apply only when `--tag=package-2019-12 --go` is specified on the command line.
-Please also specify `--go-sdk-folder=`.
-
-``` yaml $(tag)=='package-2019-12' && $(go)
-output-folder: $(go-sdk-folder)/services/preview/hybridcompute/mgmt/2019-12-12/hybridcompute
-```
+See configuration in [readme.go.md](./readme.go.md)
## Java
-These settings apply only when `--java` is specified on the command line.
-Please also specify `--azure-libraries-for-java-folder=`.
-
-``` yaml $(java)
-azure-arm: true
-fluent: true
-namespace: com.microsoft.azure.management.hybridcompute
-license-header: MICROSOFT_MIT_NO_CODEGEN
-payload-flattening-threshold: 1
-output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-hybridcompute
-```
+See configuration in [readme.java.md](./readme.java.md)
-### Java multi-api
-
-``` yaml $(java) && $(multiapi)
-batch:
- - tag: package-2019-12
-```
-
-### Tag: package-2019-12 and java
-
-These settings apply only when `--tag=package-2019-12 --java` is specified on the command line.
-Please also specify `--azure-libraries-for-java=`.
-
-``` yaml $(tag) == 'package-2019-12' && $(java) && $(multiapi)
-java:
- namespace: com.microsoft.azure.management.hybridcompute.v2019_12_12
- output-folder: $(azure-libraries-for-java-folder)/sdk/hybridcompute/mgmt-v2019_12_12
-
-regenerate-manager: true
-generate-interface: true
-```
-
-## Multi-API/Profile support for AutoRest v3 generators
+## PowerShell
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
+See configuration in the [Azure PowerShell repo](https://github.com/Azure/azure-powershell/tree/generation/src/ConnectedMachine)
-This block is updated by an automatic script. Edits may be lost!
+## Python
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
+See configuration in [readme.python.md](./readme.python.md)
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.HybridCompute/preview/2019-03-18/HybridCompute.json
- - $(this-folder)/Microsoft.HybridCompute/preview/2019-08-02/HybridCompute.json
- - $(this-folder)/Microsoft.HybridCompute/stable/2019-12-12/HybridCompute.json
+## Ruby
-```
+See configuration in [readme.ruby.md](./readme.ruby.md)
-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.
+## TypeScript
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.typescript](./readme.typescript.md)
diff --git a/specification/hybridcompute/resource-manager/readme.python.md b/specification/hybridcompute/resource-manager/readme.python.md
new file mode 100644
index 000000000000..8a2abe1db917
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/readme.python.md
@@ -0,0 +1,36 @@
+# Python HybridCompute
+
+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:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 2
+ namespace: azure.mgmt.hybridcompute
+ package-name: azure-mgmt-hybridcompute
+ clear-output-folder: true
+```
+``` yaml $(python) && $(python-mode) == 'update'
+python:
+ no-namespace-folders: true
+ output-folder: $(python-sdks-folder)/hybridcompute/azure-mgmt-hybridcompute/azure/mgmt/hybridcompute
+directive:
+ - remove-operation:
+ - Machines_Reconnect
+ - Machines_CreateOrUpdate
+ - Machines_Update
+```
+``` yaml $(python) && $(python-mode) == 'create'
+python:
+ basic-setup-py: true
+ output-folder: $(python-sdks-folder)/azure-mgmt-hybridcompute
+directive:
+ - remove-operation:
+ - Machines_Reconnect
+ - Machines_CreateOrUpdate
+ - Machines_Update
+```
diff --git a/specification/hybridcompute/resource-manager/readme.ruby.md b/specification/hybridcompute/resource-manager/readme.ruby.md
new file mode 100644
index 000000000000..f92be0b96725
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/readme.ruby.md
@@ -0,0 +1,14 @@
+## Ruby HybridCompute
+
+These settings apply only when `--ruby` is specified on the command line.
+
+``` yaml
+package-name: azure_mgmt_hybridcompute
+azure-arm: true
+
+directive:
+ - remove-operation:
+ - Machines_Reconnect
+ - Machines_CreateOrUpdate
+ - Machines_Update
+```
diff --git a/specification/hybridcompute/resource-manager/readme.typescript.md b/specification/hybridcompute/resource-manager/readme.typescript.md
new file mode 100644
index 000000000000..f069d08bc706
--- /dev/null
+++ b/specification/hybridcompute/resource-manager/readme.typescript.md
@@ -0,0 +1,24 @@
+## TypeScript HybridCompute
+
+These settings apply only when `--typescript` is specified on the command line.
+Please also specify `--typescript-sdks-folder=`.
+
+## Common TypeScript settings
+
+``` yaml $(typescript)
+typescript:
+ azure-arm: true
+ generate-metadata: true
+
+directive:
+ - remove-operation:
+ - Machines_Reconnect
+ - Machines_CreateOrUpdate
+ - Machines_Update
+```
+
+``` yaml $(typescript) && !$(profile)
+ package-name: "@azure/arm-hybridcompute"
+ output-folder: "$(typescript-sdks-folder)/sdk/hybridcompute/arm-hybridcompute"
+ clear-output-folder: true
+```
diff --git a/specification/hybriddatamanager/resource-manager/readme.azureresourceschema.md b/specification/hybriddatamanager/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..3bbb7db8e693
--- /dev/null
+++ b/specification/hybriddatamanager/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,36 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-hybriddata-2019-06-01
+ - tag: schema-hybriddata-2016-06-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-hybriddata-2019-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-hybriddata-2019-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HybridData/stable/2019-06-01/hybriddata.json
+
+```
+
+### Tag: schema-hybriddata-2016-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-hybriddata-2016-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HybridData/stable/2016-06-01/hybriddata.json
+
+```
diff --git a/specification/hybriddatamanager/resource-manager/readme.md b/specification/hybriddatamanager/resource-manager/readme.md
index d05458e528e2..d692511784d7 100644
--- a/specification/hybriddatamanager/resource-manager/readme.md
+++ b/specification/hybriddatamanager/resource-manager/readme.md
@@ -82,6 +82,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_hybriddatamanager']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js hybriddatamanager/resource-manager
```
@@ -150,28 +153,7 @@ python:
output-folder: $(python-sdks-folder)/azure-mgmt-hybriddatamanager
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.HybridData/stable/2019-06-01/hybriddata.json
- - $(this-folder)/Microsoft.HybridData/stable/2016-06-01/hybriddata.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/hybridkubernetes/resource-manager/Microsoft.Kubernetes/preview/2020-01-01-preview/connectedClusters.json b/specification/hybridkubernetes/resource-manager/Microsoft.Kubernetes/preview/2020-01-01-preview/connectedClusters.json
index d5551cc9c0ae..ef6bfc6f5488 100644
--- a/specification/hybridkubernetes/resource-manager/Microsoft.Kubernetes/preview/2020-01-01-preview/connectedClusters.json
+++ b/specification/hybridkubernetes/resource-manager/Microsoft.Kubernetes/preview/2020-01-01-preview/connectedClusters.json
@@ -246,6 +246,9 @@
"x-ms-examples": {
"ListClusterUserCredentialsExample": {
"$ref": "./examples/ConnectedClustersListClusterCredentialsResult.json"
+ },
+ "ListClusterUserCredentialsNonAadExample": {
+ "$ref": "./examples/ConnectedClustersListClusterCredentialsResultNonAad.json"
}
},
"parameters": [
@@ -260,6 +263,15 @@
},
{
"$ref": "#/parameters/ClusterNamePathParam"
+ },
+ {
+ "in": "body",
+ "required": false,
+ "name": "ClientAuthenticationDetails",
+ "schema": {
+ "$ref": "#/definitions/AuthenticationDetails"
+ },
+ "description": "Authentication parameters supplied by the user to fetch credentials for accessing the cluster."
}
],
"responses": {
@@ -607,6 +619,35 @@
}
}
},
+ "AuthenticationDetails": {
+ "type": "object",
+ "required": [
+ "authenticationMethod",
+ "value"
+ ],
+ "properties": {
+ "authenticationMethod": {
+ "type": "string",
+ "description": "The mode of client authentication.",
+ "enum": [
+ "Token"
+ ],
+ "x-ms-enum": {
+ "name": "AuthenticationMethod",
+ "modelAsString": true
+ }
+ },
+ "value": {
+ "type": "object",
+ "properties": {
+ "token": {
+ "type": "string",
+ "description": "Authentication token."
+ }
+ }
+ }
+ }
+ },
"ConnectedClusterProvisioningState": {
"type": "string",
"description": "The current deployment state of connectedClusters.",
diff --git a/specification/hybridkubernetes/resource-manager/Microsoft.Kubernetes/preview/2020-01-01-preview/examples/ConnectedClustersListClusterCredentialsResultNonAad.json b/specification/hybridkubernetes/resource-manager/Microsoft.Kubernetes/preview/2020-01-01-preview/examples/ConnectedClustersListClusterCredentialsResultNonAad.json
new file mode 100644
index 000000000000..c453bcbf273c
--- /dev/null
+++ b/specification/hybridkubernetes/resource-manager/Microsoft.Kubernetes/preview/2020-01-01-preview/examples/ConnectedClustersListClusterCredentialsResultNonAad.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "subscriptionId": "1bfbb5d0-917e-4346-9026-1d3b344417f5",
+ "resourceGroupName": "k8sc-rg",
+ "clusterName": "testCluster",
+ "api-version": "2020-01-01-preview",
+ "ClientAuthenticationDetails": {
+ "authenticationMethod": "Token",
+ "value": {
+ "token": "2c64fr2d61daffd8684bda773f6a478e1e5879ae15fdd3d54584cd5350c6ae139a0b7998a76f1a97e8b7ca052bb20ef4f9ce037d9a323fc161fb40b895e9b0f3"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "kubeconfigs": [
+ {
+ "name": "credentialName1",
+ "value": "YXBpVmVyc2lvbjogdjEKY2x1c3RlcnM6CiAgLSBjbHVzdGVyOgogICAgICBjZXJ0aWZpY2F0ZS1hdXRob3JpdHktZGF0YTogTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaDJWRU5EUW1GWFowRjNTVUpCWjBsVVlYZEJRVUV5VkhWQlRYaEJhVWx5UldsQlFVRkJRVUZFV2tSQlRrSm5hM0ZvYTJsSE9YY3dRa0ZSYzBaQlJFSlFUVkZ6ZDBOUldVUldVVkZIUlhkS1ZsVjZSV1ZOUW5kSFFURlZSVU5vVFZaVVYyeHFZMjA1ZW1JeVdqQkpSVTUyWTI1Q2RtTnRSakJoVnpsMVRWTkJkMGhuV1VSV1VWRkVSWGhrVG1GWFRubGlNMDUyV201UloxVnNUa0pKUmxKTlZYbENSRkZUUVhkTlZFRmxSbmN3ZVUxRVFUUk5hbU40VFdwTmVFNVVXbUZHZHpCNVRWUkJORTFxWTNoTmFrMTRUbFJhWVUxRFdYaEtSRUZwUW1kT1ZrSkJUVTFIZVc5MVlYcG9lbGt5T1hWaWJWWnFaRU0xTUZwWVRqQk1iVVkyWkZoS2JFeHRUblppVkVORFFWTkpkMFJSV1VwTGIxcEphSFpqVGtGUlJVSkNVVUZFWjJkRlVFRkVRME5CVVc5RFoyZEZRa0ZOU0VwVU0wZEtXbWhMTm5KaVVHSm9XRWN6V21SU05HVlhNSGhSVmxVclIwTjVXSEFyY0VwRFNtUjBhbGgyTjNwMFEzTnJRV0ZaZDJobmQyMHpOMGhFVkVWamNFVlFjR1p6TDJSSFdsQktiek5vU0ZOemVGaENUMUJXYUVsVVRHZFBSa1E0YW5BMVlWZG1kVXA0WWsxUFNqZ3dObWxST0VkT1NVdEZURGM1ZDFkMVNWcG5MemhCWTBZeVNEWnJTMDlWVVhJdmVFMWFjVWx1WW5sQk1XVmhPVW8xTmpKbVNVODRUbEp2YWxORVRFUlBWRzFyWTFaYVdHcHlTaTlsYW1wclVVMUhiV0YyT1hreE9EQjJUVkZ5TTBjM2FXZ3Jkell2VFZocGVWWkpLMGxhY3pSaGVXVTJhREo0VDA5VlNYQnRWVTQ0UlhVNWIwY3ZTSGRHV2swemJHWnBkR0ZQZUhsblEydHBNV2R0VFRsd09FcHhNMVIyVVRSbU9YSnBRVWRUVFhaWWVsSlpTa2hOU2toVVRtZFZhV1pZVjFWb1VFWTJWMkZGTWxwbFdVWkdOV1ozU0U5MlVYRnFSa2tyUlZWS1JscE1kekJEUVhkRlFVRmhUME5CTjJ0M1oyZFBNVTFKU1VKQmQxbExTM2RaUWtKQlNGZGxVVWxGUVdkVFFqbEJVMEk0VVVSMlFVaFZRVGxzZVZWTU9VWXpUVU5KVlZaQ1owbE5TbEpYYW5WT1RrVjRhM3AyT1RoTlRIbEJUSHBGTjNoYVQwMUJRVUZHTUV3dlFuTjNRVUZCUWtGTlFWSnFRa1ZCYVVJMFpWSlVTMHhZY1hsM09HazFMeTlyVmtaNWNrTlhZMFZtY0VaV2NGUlZSVFIzYlVNME1rZHhSMkpCU1dkTkswVllkRWhtV0Rrd05WVklZall3Y1hKUlEzUTRibkZhTkUxamRVUjNOMlJaZVhwdGJFc3pja05SUVdSblFtTXpSVTlUTDNWaGNsSlZVM2hZY0hKVlZuVlpVVTR2ZGxZcmEyWmpiMWhQVlhOc04yMDVjMk5QZVdkQlFVRllVWFk0UjNwd1FVRkJSVUYzUWtoTlJWVkRTVVZZYTFwcWMyOUNVamhWZEc5blQwbFhWeXQyVTFOQ2NWcEViRGxIVEVRME1uWXdNR0ZXTkRVMVF6RkJhVVZCZDI1aE4zaDVWRUZJUTBJemNqVTBSSG93WnpKMVJHWktNa2ROUVdod2RuRnJiSGN5YXpka1VrMVdZM2RLZDFsS1MzZFpRa0pCUjBOT2VGVkxRa0p2ZDBkRVFVdENaMmR5UW1kRlJrSlJZMFJCVkVGTFFtZG5ja0puUlVaQ1VXTkVRV3BCSzBKbmEzSkNaMFZGUVZsSk0wWlJZMFZOVkVGMlFtbGpja0puUlVWQldVa3pSbEZwU0RKdldqRm5LemRhUVZsTVNtaFNkVUowV2pWb2FHWlVjbGxKUm1Sb1dXRlBVVmxtUTIxR1FVTkJWMUZEUVZOVmQyZFpZMGREUTNOSFFWRlZSa0ozUlVKQ1NITjNaVlJDVkVKblozSkNaMFZHUWxGamQwRnZXa2hoU0ZJd1kwUnZka3d6WkROa2VUVjBZVmRPZVdJelRuWmFibEYxV1RJNWRFd3pRbkpoVXpsMFl6Sk9kbU51UVhaVVYyeHFZMjA1ZW1JeVdqQktWRWwzVld4T1FrcFVTWGRXUlhoVVNsUkpkMUV3Uld4TmFrRjNUVk0xYW1OdVVYZEpaMWxKUzNkWlFrSlJWVWhOUVVkSFJtMW9NR1JJUVRaTWVUbDJXVE5PZDB4dE1YcGlNazU2WTBNMWFtSXlNSGRJVVZsRVZsSXdUMEpDV1VWR1N6ZFZhQ3M1WkdnNUwxRjFZM0ZKTlVFNVJHc3djMlpzTTFsVFRVRnpSMEV4VldSRWQxRkZRWGRKUlhORVFrSkNaMDVXU0ZKRlJVOXFRVFJuYUhOeFRHMXpOR015VG5aaWJUVnNXVE5SZFdSSFZucGtRelZvWlc1V2VWcFROV3BpTWpKRFIxZHpOR015VG5aaWJUVnNXVE5SZFdSSFZucGtRelZvWlc1V2VWcFROV3BpTWpCM1oySkJSMEV4VldSSWQxTkNjVVJEUW5CVVEwSnZjVU5DYmpaRFFtNUpXazVoU0ZJd1kwUnZka3d5TVhwWk0wcHpURzB4Y0ZrelNuWmpNamx0WkVNMWFtSXlNSFpqUjNSd1RESXhlbGt5T1hsalF6bHFZMjEzZGxSWGJHcGpiVGw2WWpKYU1FcFVTWGRWYkU1Q1NsUkpkMVpGZUZSS1ZFbDNVVEJGYkUxcVFYZE5VelZxWTIxNVIxTXlhREJrU0VFMlRIazVhbU50ZDNWaVYyeHFZMjA1ZW1JeVdqQk1iVTUyWWxNNWQyRXlhM1ppV0U1cVlqTktkMHd5VG5saVF6bE9ZVmRPZVdJelRuWmFibEZzVFdwQ1UxVXdSV3hOYWtKVlZFWk5iRTFxUWtSUlUxVjVUVVJCZUV4dFRubGlSRUpZUW1kT1ZraFRRVVZWUkVKUFRVVkpSME5UYzBkQlVWRkNaMnBqY1VGVVFURk5SRTFIUTBOelIwRlJWVVpDZDBsQ1JtbGtiMlJJVW5kUGFUaDJaRE5rTTB4dE1YQlpNMHAyWXpJNWJXUkROV3BpTWpCMlkwZDBjRXd5TVhwWk1qbDVZME01YW1OSVRYZERRVmxIV2pSRlRVRlJTVUpOUWpoSFFURlZaRWwzVVZsTlFtRkJSa3hXTWtSRVFWSjZjMlZUVVdzeFRYZ3hkM041UzJ0Tk5rRjBhMDFDTUVkQk1WVmtTbEZSVjAxQ1VVZERRM05IUVZGVlJrSjNUVUpDWjJkeVFtZEZSa0pSWTBSQmFrRk9RbWRyY1docmFVYzVkekJDUVZGelJrRkJUME5CWjBWQlJWZHRUVmRzWjJ3NGQzSlRUWHBQTW1Ob1pVbHZhbkZRVjBNd2FVVlVkSGRZYVVreWRqVmtWVkV5ZG01eWMydFVZM1ZzV1ZJNFExSllRemxXY0hWTU5YZDJUbEJaWlVzNWFtRjRhRXhGZW14YUt6aENTaTlhSzA5Q1NsRlBiV0k0VDIxRkwzcEVha1o1WVU5WWIzUXZNMEl3ZG5CcE9FWk1NalZNUkhGbGVuZExSeXN5VHpSVVJWQkhha1pGTmxONVRqWmlVR2d5ZG1Vck4wSTJLemQwVWpWeWVEZEtlU3RVY2pGcE9XdDBkV1p6UVhGWk5HSmtaMmd4Y2xWTGFsSkZVemRLVjNWek9HZDNVWG80YmtkSGMzaEhXbVJuU25oYVpISlJjVlZJUzNFMFlWcDJVVEZtWmtrM1RUbHVXWGhOVFM5VFNURkRlbTkxWkd0NmFHVnFSRXgzYW5vdk5UZHRaR04xYVdZck56TkpUbUZDVG5KRFprRXljemM1T1hwV1lVeDNkbXBMTlhRcmEwOVNSelI0TkZoWVpTdFphelZhV2pWQlkyMUZVa05NWnpSTGJHVkpiRFJJY3pSeGRYSkxhbGMxTjI1SFRYTnhLMHBXVGpBd2FFWXhXR1pETkZCVlpYbFJObFJPTUcxNlVGRXhia2RaZENzcmJVSTFWV053TURkWVRuVnpWR1JoTW05SGF6SlNOak5PVWsxWWIzcHRTbkYxVnlzNGRFVlVMMUJLUzNGUGFrVlNRalJXZHpOQ1IwUnZWRTVYVTNwb1dIbDRTVlp0TVhOT1dUSkJUVlpYYUdOYVkzRXpPVWRYVUc5UVp6RXpSbW80VDFsc2NFRm1SR1o2YURGaWRYWkdVbVpwVFZVME1sbHROa3c1YlROVVMwUjRlVXdyTWxKVmVESlNNbUo1VUZWTVQyVXdSMnd4T1hKelUyWlpjeTlvYjNkb1dWSnNXWEp1T0dKYVJFTkhiRFUzTDFGTWVHcEJXWFJVVWtZdlZFaHZLM1JOYTJSVmFTOWhUV2xVU0hoMlltcGtZeTlsYWxocVVISjRTbUp5UzFCVU1tUkVXRVk0ZG5aRGQzZGFRazAwUjFGWlNGaDViRFV6VTB4cU1VdHJRMjlvVlZKTkwzcDBlVEZpVTJOWWRIcE5aMDFJVmpWUFRYVkthVVZYVVhKV1NpOUhWRzlNVGxsUVNHMWxORXROY21jOUNpMHRMUzB0UlU1RUlFTkZVbFJKUmtsRFFWUkZMUzB0TFMwPQogICAgICBzZXJ2ZXI6IGh0dHBzOi8vYTljNDMzYzMtNjhlMS00NTY2LWI2MzMtODM0NzUyOWYzNjIwLms4c2Nvbm5lY3QudGVzdC5henVyZS5jb20KICAgIG5hbWU6IGNsdXN0ZXIKY29udGV4dHM6CiAgLSBjb250ZXh0OgogICAgICBjbHVzdGVyOiBjbHVzdGVyCiAgICAgIHVzZXI6IGNsdXN0ZXJVc2VyX3Rlc3RfY2x1c3RlcgogICAgbmFtZTogY2x1c3RlcgpjdXJyZW50LWNvbnRleHQ6IGNsdXN0ZXIKa2luZDogQ29uZmlnCnByZWZlcmVuY2VzOiBudWxsCnVzZXJzOgogIC0gbmFtZTogY2x1c3RlclVzZXJfdGVzdF9jbHVzdGVyCiAgICB1c2VyOgogICAgICB0b2tlbjogMmM2NGZyMmQ2MWRhZmZkODY4NGJkYTc3M2Y2YTQ3OGUxZTU4NzlhZTE1ZmRkM2Q1NDU4NGNkNTM1MGM2YWUxMzlhMGI3OTk4YTc2ZjFhOTdlOGI3Y2EwNTJiYjIwZWY0ZjljZTAzN2Q5YTMyM2ZjMTYxZmI0MGI4OTVlOWIwZjM="
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/hybridkubernetes/resource-manager/readme.azureresourceschema.md b/specification/hybridkubernetes/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..963de1cc8c8b
--- /dev/null
+++ b/specification/hybridkubernetes/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-kubernetes-2020-01-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-kubernetes-2020-01-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-kubernetes-2020-01-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Kubernetes/preview/2020-01-01-preview/connectedClusters.json
+
+```
diff --git a/specification/hybridkubernetes/resource-manager/readme.md b/specification/hybridkubernetes/resource-manager/readme.md
index e60faf4e7f2d..67c0b6f1e6a0 100644
--- a/specification/hybridkubernetes/resource-manager/readme.md
+++ b/specification/hybridkubernetes/resource-manager/readme.md
@@ -57,6 +57,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-net
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_hybridkubernetes']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js hybridkubernetes/resource-manager
```
## Go
@@ -79,26 +82,7 @@ See configuration in [readme.csharp.md](./readme.csharp.md)
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Kubernetes/preview/2020-01-01-preview/connectedClusters.json
-
-```
+## AzureResourceSchema
-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.
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/privatepreview/2019-09-01-privatepreview/somefile.json
-```
\ No newline at end of file
diff --git a/specification/hybridnetwork/resource-manager/readme.azureresourceschema.md b/specification/hybridnetwork/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..e01e8f7e4357
--- /dev/null
+++ b/specification/hybridnetwork/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,29 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-hybridnetwork-2020-01-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-hybridnetwork-2020-01-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-hybridnetwork-2020-01-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.HybridNetwork/preview/2020-01-01-preview/common.json
+ - Microsoft.HybridNetwork/preview/2020-01-01-preview/virtualNetworkFunction.json
+ - Microsoft.HybridNetwork/preview/2020-01-01-preview/device.json
+ - Microsoft.HybridNetwork/preview/2020-01-01-preview/operations.json
+ - Microsoft.HybridNetwork/preview/2020-01-01-preview/vendor.json
+ - Microsoft.HybridNetwork/preview/2020-01-01-preview/virtualNetworkFunctionVendors.json
+
+```
diff --git a/specification/hybridnetwork/resource-manager/readme.md b/specification/hybridnetwork/resource-manager/readme.md
index e409f06d6d4a..0db26ee67c23 100644
--- a/specification/hybridnetwork/resource-manager/readme.md
+++ b/specification/hybridnetwork/resource-manager/readme.md
@@ -59,6 +59,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_hybridnetwork']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js hybridnetwork/resource-manager
```
## Go
@@ -81,32 +84,7 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
See configuration in [readme.csharp.md](./readme.csharp.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.HybridNetwork/preview/2020-01-01-preview/common.json
- - $(this-folder)/Microsoft.HybridNetwork/preview/2020-01-01-preview/virtualNetworkFunction.json
- - $(this-folder)/Microsoft.HybridNetwork/preview/2020-01-01-preview/device.json
- - $(this-folder)/Microsoft.HybridNetwork/preview/2020-01-01-preview/operations.json
- - $(this-folder)/Microsoft.HybridNetwork/preview/2020-01-01-preview/vendor.json
- - $(this-folder)/Microsoft.HybridNetwork/preview/2020-01-01-preview/virtualNetworkFunctionVendors.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/imagebuilder/resource-manager/readme.azureresourceschema.md b/specification/imagebuilder/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..2f006d12de43
--- /dev/null
+++ b/specification/imagebuilder/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,60 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-virtualmachineimages-2020-02-14
+ - tag: schema-virtualmachineimages-2019-05-01-preview
+ - tag: schema-virtualmachineimages-2019-02-01-preview
+ - tag: schema-virtualmachineimages-2018-02-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-virtualmachineimages-2020-02-14 and azureresourceschema
+
+``` yaml $(tag) == 'schema-virtualmachineimages-2020-02-14' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.VirtualMachineImages/stable/2020-02-14/imagebuilder.json
+
+```
+
+### Tag: schema-virtualmachineimages-2019-05-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-virtualmachineimages-2019-05-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.VirtualMachineImages/preview/2019-05-01-preview/imagebuilder.json
+
+```
+
+### Tag: schema-virtualmachineimages-2019-02-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-virtualmachineimages-2019-02-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.VirtualMachineImages/preview/2019-02-01-preview/imagebuilder.json
+
+```
+
+### Tag: schema-virtualmachineimages-2018-02-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-virtualmachineimages-2018-02-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.VirtualMachineImages/preview/2018-02-01-preview/imagebuilder.json
+
+```
diff --git a/specification/imagebuilder/resource-manager/readme.md b/specification/imagebuilder/resource-manager/readme.md
index 9d1af6e035c1..1f98ca32f769 100644
--- a/specification/imagebuilder/resource-manager/readme.md
+++ b/specification/imagebuilder/resource-manager/readme.md
@@ -82,6 +82,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js imagebuilder/resource-manager
```
## Python
@@ -165,29 +168,7 @@ regenerate-manager: true
generate-interface: true
```
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.VirtualMachineImages/stable/2020-02-14/imagebuilder.json
- - $(this-folder)/Microsoft.VirtualMachineImages/preview/2019-05-01-preview/imagebuilder.json
- - $(this-folder)/Microsoft.VirtualMachineImages/preview/2018-02-01-preview/imagebuilder.json
- - $(this-folder)/Microsoft.VirtualMachineImages/preview/2019-02-01-preview/imagebuilder.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
diff --git a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/examples/GetAttestedData.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/examples/GetAttestedData.json
new file mode 100644
index 000000000000..43b01f911cff
--- /dev/null
+++ b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/examples/GetAttestedData.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "api-version": "2020-06-01",
+ "nonce": "abcde12345",
+ "Metadata": "true"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "encoding": "pkcs7",
+ "signature": "MIID2gYJKoZIhvcNAQcCoIIDyzCCA8cCAQExDzANBgkqhkiG9w0BAQsFADCBggYJKoZIhvcNAQcBoHUEc3sibm9uY2UiOiIxMTExMTExMTExIiwicGxhbiI6eyJuYW1lIjoiIiwicHJvZHVjdCI6IiIsInB1Ymxpc2hlciI6IiJ9LCJ2bUlkIjoiMDJhYWI4YTQtNzRlZi00NzZlLTgxODItZjZkMmJhNDE2NmE2In2gggI/MIICOzCCAaSgAwIBAgIQQWsFjXN35oBJKFXI3QrM3TANBgkqhkiG9w0BAQQFADArMSkwJwYDVQQDEyB0ZXN0c3ViZG9tYWluLm1ldGFkYXRhLmF6dXJlLmNvbTAeFw0xODExMDgxODUzMDRaFw0xODEyMDgxODUzMDNaMCsxKTAnBgNVBAMTIHRlc3RzdWJkb21haW4ubWV0YWRhdGEuYXp1cmUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEi0FVslYnUX+MneC7ERMU4ZM88z4J80r7RPgvzxCPNhXUQlWm3cmVRZMD8kKMv7brkvEsATP7Ak60/I/XEtOga4LGCvMaQa8I/MW8IhSyp2Vj015glAiV8TeUI5DuOIOS96lQvM+G7bt23swkIwVjm1u1ViTZiKKytwpY/EGqzQIDAQABo2AwXjBcBgNVHQEEVTBTgBAt3MRgJmEoUMiPy7k06cLfoS0wKzEpMCcGA1UEAxMgdGVzdHN1YmRvbWFpbi5tZXRhZGF0YS5henVyZS5jb22CEEFrBY1zd+aASShVyN0KzN0wDQYJKoZIhvcNAQEEBQADgYEAd87qiZnRlGIFQ5IEcL/A7ru23WSQAOBsNPt70Fg1GtaEHcYshKUJFhGwXOgZ11cY5wRfrSvEKuzvhAeIZwkvzkBjC04g8sRrjN5leLY5CsKzQhjN52TUMsHhqTM58tfAnICeTddQwn6LOgfqtYH5WO+F/VbFCwPstYUqjmQEYAoxgegwgeUCAQEwPzArMSkwJwYDVQQDEyB0ZXN0c3ViZG9tYWluLm1ldGFkYXRhLmF6dXJlLmNvbQIQQWsFjXN35oBJKFXI3QrM3TANBgkqhkiG9w0BAQsFADANBgkqhkiG9w0BAQEFAASBgCbkRKmQ1MdWZPVOrX7ZBKHQUWPFrQQNdjk3KB67GkY0W0Taxut4K7D2PmiflVEwxB92pTbaZZr/dldu1k1ab1YamHcVYdgZgxIkoOWohGR0ym8oL9JHjFMEqHUbEPtDwE8X+djtDd8TVdb6LYe77IXmz/VaX4whuejlSvQXjaL"
+ }
+ }
+ }
+}
diff --git a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/examples/GetIdentityInfo.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/examples/GetIdentityInfo.json
new file mode 100644
index 000000000000..38e36e9316f8
--- /dev/null
+++ b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/examples/GetIdentityInfo.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "api-version": "2020-06-01",
+ "Metadata": "true"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "tenantId": "abd8daee-d393-4239-9377-883adda3d40f"
+ }
+ }
+ }
+}
diff --git a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/examples/GetIdentityToken.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/examples/GetIdentityToken.json
new file mode 100644
index 000000000000..7b673d8d3492
--- /dev/null
+++ b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/examples/GetIdentityToken.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "api-version": "2020-06-01",
+ "Metadata": "true",
+ "resource": "https://vault.azure.net"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "access_token": "dummytoken",
+ "client_id": "be5947ed-3560-4afe-9504-59967a63f810",
+ "expires_in": "3599",
+ "expires_on": "1541705014",
+ "ext_expires_in": "262800",
+ "not_before": "1508961830",
+ "resource": "https://va"
+ }
+ }
+ }
+}
diff --git a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/examples/GetInstanceMetadata.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/examples/GetInstanceMetadata.json
new file mode 100644
index 000000000000..e0353464269c
--- /dev/null
+++ b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/examples/GetInstanceMetadata.json
@@ -0,0 +1,117 @@
+{
+ "parameters": {
+ "api-version": "2020-06-01",
+ "Metadata": "true"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "compute": {
+ "azEnvironment": "AZUREPUBLICCLOUD",
+ "isHostCompatibilityLayerVm": "true",
+ "location": "westus",
+ "name": "examplevmname",
+ "offer": "Windows",
+ "osType": "linux",
+ "placementGroupId": "f67c14ab-e92c-408c-ae2d-da15866ec79a",
+ "plan": {
+ "name": "planName",
+ "product": "planProduct",
+ "publisher": "planPublisher"
+ },
+ "platformFaultDomain": "36",
+ "platformUpdateDomain": "42",
+ "provider": "Microsoft.Compute",
+ "publicKeys": [
+ {
+ "keyData": "ssh-rsa 0",
+ "path": "/home/user/.ssh/authorized_keys0"
+ },
+ {
+ "keyData": "ssh-rsa 1",
+ "path": "/home/user/.ssh/authorized_keys1"
+ }
+ ],
+ "publisher": "RDFE-Test-Microsoft-Windows-Server-Group",
+ "resourceGroupName": "macikgo-test-may-23",
+ "resourceId": "/subscriptions/8d10da13-8125-4ba9-a717-bf7490507b3d/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/virtualMachines/examplevmname",
+ "securityProfile": {
+ "secureBootEnabled": "true",
+ "virtualTpmEnabled": "false"
+ },
+ "sku": "Windows-Server-2012-R2-Datacenter",
+ "storageProfile": {
+ "dataDisks": [
+ {
+ "caching": "None",
+ "createOption": "Empty",
+ "diskSizeGB": "1024",
+ "image": {
+ "uri": ""
+ },
+ "lun": "0",
+ "managedDisk": {
+ "id": "/subscriptions/8d10da13-8125-4ba9-a717-bf7490507b3d/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/disks/exampledatadiskname",
+ "storageAccountType": "Standard_LRS"
+ },
+ "name": "exampledatadiskname",
+ "vhd": {
+ "uri": ""
+ },
+ "writeAcceleratorEnabled": "false"
+ }
+ ],
+ "imageReference": {
+ "id": "",
+ "offer": "UbuntuServer",
+ "publisher": "Canonical",
+ "sku": "16.04.0-LTS",
+ "version": "latest"
+ },
+ "osDisk": {
+ "caching": "ReadWrite",
+ "createOption": "FromImage",
+ "diskSizeGB": "30",
+ "diffDiskSettings": {
+ "option": "Local"
+ },
+ "encryptionSettings": {
+ "enabled": "false"
+ },
+ "image": {
+ "uri": ""
+ },
+ "managedDisk": {
+ "id": "/subscriptions/8d10da13-8125-4ba9-a717-bf7490507b3d/resourceGroups/macikgo-test-may-23/providers/Microsoft.Compute/disks/exampleosdiskname",
+ "storageAccountType": "Standard_LRS"
+ },
+ "name": "exampleosdiskname",
+ "osType": "Linux",
+ "vhd": {
+ "uri": ""
+ },
+ "writeAcceleratorEnabled": "false"
+ }
+ },
+ "subscriptionId": "8d10da13-8125-4ba9-a717-bf7490507b3d",
+ "tags": "baz:bash;foo:bar",
+ "tagsList": [
+ {
+ "name": "baz",
+ "value": "bash"
+ },
+ {
+ "name": "foo",
+ "value": "bar"
+ }
+ ],
+ "version": "15.05.22",
+ "vmId": "02aab8a4-74ef-476e-8182-f6d2ba4166a6",
+ "vmScaleSetName": "crpteste9vflji9",
+ "vmSize": "Standard_A3",
+ "zone": ""
+ }
+ }
+ }
+ }
+}
diff --git a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/imds.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/imds.json
new file mode 100644
index 000000000000..3559c66fe3e7
--- /dev/null
+++ b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2020-06-01/imds.json
@@ -0,0 +1,883 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "InstanceMetadataClient",
+ "description": "The Azure Instance Metadata Client",
+ "version": "2020-06-01"
+ },
+ "host": "169.254.169.254",
+ "basePath": "/metadata",
+ "schemes": [
+ "http",
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "securityDefinitions": {
+ "basic_auth": {
+ "type": "basic",
+ "description": "A Basic authentication flow"
+ }
+ },
+ "paths": {
+ "/instance": {
+ "get": {
+ "operationId": "Instances_GetMetadata",
+ "description": "Get Instance Metadata for the Virtual Machine.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/MetadataParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/Instance"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Instance Metadata for the VM": {
+ "$ref": "./examples/GetInstanceMetadata.json"
+ }
+ }
+ }
+ },
+ "/attested/document": {
+ "get": {
+ "operationId": "Attested_GetDocument",
+ "description": "Get Attested Data for the Virtual Machine.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "nonce",
+ "in": "query",
+ "required": false,
+ "type": "string",
+ "description": "This is a string of up to 32 random alphanumeric characters."
+ },
+ {
+ "$ref": "#/parameters/MetadataParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/AttestedData"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Attested Data for the VM": {
+ "$ref": "./examples/GetAttestedData.json"
+ }
+ }
+ }
+ },
+ "/identity/oauth2/token": {
+ "get": {
+ "tags": [
+ "Get token"
+ ],
+ "description": "Get a Token from Azure AD",
+ "operationId": "Identity_GetToken",
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {},
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/MetadataParameter"
+ },
+ {
+ "name": "resource",
+ "in": "query",
+ "type": "string",
+ "description": "This is the urlencoded identifier URI of the sink resource for the requested Azure AD token. The resulting token contains the corresponding aud for this resource.",
+ "required": true
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "client_id",
+ "in": "query",
+ "type": "string",
+ "description": "This identifies, by Azure AD client id, a specific explicit identity to use when authenticating to Azure AD. Mutually exclusive with object_id and msi_res_id.",
+ "required": false
+ },
+ {
+ "name": "object_id",
+ "in": "query",
+ "type": "string",
+ "description": "This identifies, by Azure AD object id, a specific explicit identity to use when authenticating to Azure AD. Mutually exclusive with client_id and msi_res_id.",
+ "required": false
+ },
+ {
+ "name": "msi_res_id",
+ "in": "query",
+ "type": "string",
+ "description": "This identifies, by urlencoded ARM resource id, a specific explicit identity to use when authenticating to Azure AD. Mutually exclusive with client_id and object_id.",
+ "required": false
+ },
+ {
+ "name": "authority",
+ "in": "query",
+ "type": "string",
+ "description": "This indicates the authority to request AAD tokens from. Defaults to the known authority of the identity to be used.",
+ "required": false
+ },
+ {
+ "name": "bypass_cache",
+ "in": "query",
+ "type": "string",
+ "enum": [
+ "true"
+ ],
+ "description": "If provided, the value must be 'true'. This indicates to the server that the token must be retrieved from Azure AD and cannot be retrieved from an internal cache.",
+ "required": false,
+ "x-ms-enum": {
+ "name": "BypassCache",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "schema": {
+ "$ref": "#/definitions/IdentityTokenResponse"
+ }
+ },
+ "default": {
+ "headers": {
+ "Www-Authenticate": {
+ "type": "string",
+ "description": "This is the response header containing a challenge for the Basic scheme with a realm value"
+ }
+ },
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/IdentityErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Identity Token for the VM": {
+ "$ref": "./examples/GetIdentityToken.json"
+ }
+ }
+ }
+ },
+ "/identity/info": {
+ "get": {
+ "tags": [
+ "Get metadata information"
+ ],
+ "description": "Get information about AAD Metadata",
+ "operationId": "Identity_GetInfo",
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/MetadataParameter"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "schema": {
+ "$ref": "#/definitions/IdentityInfoResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/IdentityErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get Identity Info for the VM": {
+ "$ref": "./examples/GetIdentityInfo.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Compute": {
+ "type": "object",
+ "properties": {
+ "azEnvironment": {
+ "type": "string",
+ "description": "This is the name of the environment in which the VM is running."
+ },
+ "isHostCompatibilityLayerVm": {
+ "type": "string",
+ "description": "Identifies if the VM runs on the Host Compatibility Layer."
+ },
+ "location": {
+ "type": "string",
+ "description": "This is the Azure Region in which the VM is running."
+ },
+ "name": {
+ "type": "string",
+ "description": "This is the name of the VM."
+ },
+ "offer": {
+ "type": "string",
+ "description": "This is the offer information for the VM image. This value is only present for images deployed from the Azure Image Gallery."
+ },
+ "osType": {
+ "type": "string",
+ "description": "This value indicates the type of OS the VM is running, either Linux or Windows."
+ },
+ "placementGroupId": {
+ "type": "string",
+ "description": "This is the placement group of your Virtual Machine Scale Set."
+ },
+ "plan": {
+ "type": "object",
+ "description": "This contains the data about the plan.",
+ "$ref": "#/definitions/PlanProperties"
+ },
+ "publicKeys": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PublicKeysProperties"
+ },
+ "description": "This is information about the SSH certificate"
+ },
+ "platformFaultDomain": {
+ "type": "string",
+ "description": "This is the fault domain in which the VM."
+ },
+ "platformUpdateDomain": {
+ "type": "string",
+ "description": "This is the update domain in which the VM."
+ },
+ "provider": {
+ "type": "string",
+ "description": "This is the provider of the VM."
+ },
+ "publisher": {
+ "type": "string",
+ "description": "This is the publisher of the VM image."
+ },
+ "resourceGroupName": {
+ "type": "string",
+ "description": "This is the resource group for the VM."
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "This is the fully qualified ID for the VM."
+ },
+ "securityProfile": {
+ "description": "This contains the data about the security profile associated with the VM.",
+ "$ref": "#/definitions/SecurityProfile"
+ },
+ "sku": {
+ "type": "string",
+ "description": "This is the specific SKU for the VM image."
+ },
+ "storageProfile": {
+ "type": "object",
+ "description": "This contains the data about the storage disks associated with the VM.",
+ "$ref": "#/definitions/StorageProfile"
+ },
+ "subscriptionId": {
+ "type": "string",
+ "description": "This is the Azure subscription for the VM."
+ },
+ "tags": {
+ "type": "string",
+ "description": "This is the list of tags for your VM."
+ },
+ "tagsList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/TagsProperties"
+ },
+ "description": "This is the list of tags for your VM formatted as a JSON array for easier programmatic parsing."
+ },
+ "version": {
+ "type": "string",
+ "description": "This is the version of the VM image."
+ },
+ "vmId": {
+ "type": "string",
+ "description": "This is the unique identifier for the VM."
+ },
+ "vmScaleSetName": {
+ "type": "string",
+ "description": "This is the resource name of the VMSS."
+ },
+ "vmSize": {
+ "type": "string",
+ "description": "This is the size of the VM."
+ },
+ "zone": {
+ "type": "string",
+ "description": "This is the availability zone of the VM."
+ }
+ },
+ "description": "Compute Metadata"
+ },
+ "Network": {
+ "type": "object",
+ "properties": {
+ "interface": {
+ "type": "array",
+ "description": "This contains data about the network interface.",
+ "items": {
+ "type": "object",
+ "$ref": "#/definitions/NetworkInterface"
+ }
+ }
+ },
+ "description": "Network Metadata"
+ },
+ "NetworkInterface": {
+ "type": "object",
+ "description": "This contains data about the network interface.",
+ "properties": {
+ "ipv4": {
+ "type": "object",
+ "description": "This contains the IPv4 address.",
+ "properties": {
+ "ipAddress": {
+ "type": "array",
+ "description": "This is the IP address",
+ "items": {
+ "type": "object",
+ "description": "This contains the IPv4 properties.",
+ "$ref": "#/definitions/Ipv4Properties"
+ }
+ },
+ "subnet": {
+ "type": "array",
+ "description": "This is the subnet",
+ "items": {
+ "type": "object",
+ "description": "This contains the subnet properties.",
+ "$ref": "#/definitions/SubnetProperties"
+ }
+ }
+ }
+ },
+ "ipv6": {
+ "type": "object",
+ "description": "This contains the IPv6 address.",
+ "properties": {
+ "ipAddress": {
+ "type": "array",
+ "description": "This is the IP address",
+ "items": {
+ "type": "object",
+ "description": "This contains the IPv6 properties.",
+ "$ref": "#/definitions/Ipv6Properties"
+ }
+ }
+ }
+ },
+ "macAddress": {
+ "type": "string",
+ "description": "This is the MAC address of the interface."
+ }
+ }
+ },
+ "PlanProperties": {
+ "type": "object",
+ "description": "This contains the data about the plan.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "This is the Plan ID."
+ },
+ "publisher": {
+ "type": "string",
+ "description": "This is the publisher ID."
+ },
+ "product": {
+ "type": "string",
+ "description": "This is the product of the image from the Marketplace."
+ }
+ }
+ },
+ "PublicKeysProperties": {
+ "type": "object",
+ "description": "This contains the data about the public key.",
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "This specifies the full path on the VM where the SSH public key is stored."
+ },
+ "keyData": {
+ "type": "string",
+ "description": "This is the SSH public key certificate used to authenticate with the VM."
+ }
+ }
+ },
+ "TagsProperties": {
+ "type": "object",
+ "description": "This contains the properties of the tags in a tagsList.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "This is the name of the tag. It is equivalent to the key in the key-value pair format."
+ },
+ "value": {
+ "type": "string",
+ "description": "This is the value of the tag. It is, as expected, equivalent to the value in the key-value pair format."
+ }
+ }
+ },
+ "Ipv4Properties": {
+ "type": "object",
+ "description": "This contains the IPv4 properties.",
+ "properties": {
+ "privateIpAddress": {
+ "type": "string",
+ "description": "This is the private IP address assigned to the interface."
+ },
+ "publicIpAddress": {
+ "type": "string",
+ "description": "This is the public IP address assigned to the interface."
+ }
+ }
+ },
+ "Ipv6Properties": {
+ "type": "object",
+ "description": "This contains the IPv6 properties.",
+ "properties": {
+ "privateIpAddress": {
+ "type": "string",
+ "description": "This is the private IPv6 address assigned to the interface."
+ }
+ }
+ },
+ "SubnetProperties": {
+ "type": "object",
+ "description": "This contains the properties of the subnet.",
+ "properties": {
+ "address": {
+ "type": "string",
+ "description": "This is the address range of the subnet."
+ },
+ "prefix": {
+ "type": "string",
+ "description": "This is the prefix of the subnet."
+ }
+ }
+ },
+ "SecurityProfile": {
+ "type": "object",
+ "description": "This contains the data about the security profile associated with the VM.",
+ "properties": {
+ "secureBootEnabled": {
+ "type": "string",
+ "description": "Identifies if UEFI secure boot is enabled on the VM"
+ },
+ "virtualTpmEnabled": {
+ "type": "string",
+ "description": "Identifies if the virtual Trusted Platform Module (TPM) is enabled on the VM"
+ }
+ }
+ },
+ "StorageProfile": {
+ "type": "object",
+ "description": "This contains the data about the storage disks associated with the VM.",
+ "properties": {
+ "imageReference": {
+ "type": "object",
+ "$ref": "#/definitions/ImageReference",
+ "description": "Image information"
+ },
+ "osDisk": {
+ "type": "object",
+ "$ref": "#/definitions/OsDisk",
+ "description": "OS disk information"
+ },
+ "dataDisks": {
+ "type": "array",
+ "description": "Data disk information",
+ "items": {
+ "type": "object",
+ "description": "This contains information about the data disk.",
+ "$ref": "#/definitions/DataDisk"
+ }
+ }
+ }
+ },
+ "ImageReference": {
+ "type": "object",
+ "description": "This contains information about the OS image.",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "This is the resource ID."
+ },
+ "offer": {
+ "type": "string",
+ "description": "This is the offer of the platform or marketplace image."
+ },
+ "publisher": {
+ "type": "string",
+ "description": "This is the image publisher."
+ },
+ "sku": {
+ "type": "string",
+ "description": "This is the image SKU."
+ },
+ "version": {
+ "type": "string",
+ "description": "This is the version of the platform or marketplace image."
+ }
+ }
+ },
+ "OsDisk": {
+ "type": "object",
+ "description": "This contains information about the OS disk used by the VM.",
+ "properties": {
+ "caching": {
+ "type": "string",
+ "description": "This is the caching requirements."
+ },
+ "createOption": {
+ "type": "string",
+ "description": "This is information about how the VM was created."
+ },
+ "diffDiskSettings": {
+ "type": "object",
+ "description": "This is the ephemeral disk settings.",
+ "$ref": "#/definitions/DiffDiskSettings"
+ },
+ "diskSizeGB": {
+ "type": "string",
+ "description": "This is the size of the disk in GB."
+ },
+ "encryptionSettings": {
+ "type": "object",
+ "description": "This is the encryption settings for the disk.",
+ "$ref": "#/definitions/EncryptionSettings"
+ },
+ "image": {
+ "type": "object",
+ "description": "This is the source user image virtual hard disk.",
+ "$ref": "#/definitions/DiskImage"
+ },
+ "managedDisk": {
+ "type": "object",
+ "description": "This is managed disk parameters.",
+ "$ref": "#/definitions/ManagedDisk"
+ },
+ "name": {
+ "type": "string",
+ "description": "This is the disk name."
+ },
+ "osType": {
+ "type": "string",
+ "description": "This is the type of OS included in the disk."
+ },
+ "vhd": {
+ "type": "object",
+ "description": "This is the virtual hard disk.",
+ "$ref": "#/definitions/VirtualHardDisk"
+ },
+ "writeAcceleratorEnabled": {
+ "type": "string",
+ "description": "This specifies whether or not writeAccelerator is enabled on the disk."
+ }
+ }
+ },
+ "DataDisk": {
+ "type": "object",
+ "description": "This contains information about the data disk.",
+ "properties": {
+ "caching": {
+ "type": "string",
+ "description": "This is the caching requirements."
+ },
+ "createOption": {
+ "type": "string",
+ "description": "This is information about how the VM was created."
+ },
+ "diskSizeGB": {
+ "type": "string",
+ "description": "This is the size of the disk in GB."
+ },
+ "image": {
+ "type": "object",
+ "description": "This is the source user image virtual hard disk.",
+ "$ref": "#/definitions/DiskImage"
+ },
+ "lun": {
+ "type": "string",
+ "description": "This is the logical unit number of the disk."
+ },
+ "managedDisk": {
+ "type": "object",
+ "description": "This is managed disk parameters.",
+ "$ref": "#/definitions/ManagedDisk"
+ },
+ "name": {
+ "type": "string",
+ "description": "This is the disk name."
+ },
+ "vhd": {
+ "type": "object",
+ "description": "This is the virtual hard disk.",
+ "$ref": "#/definitions/VirtualHardDisk"
+ },
+ "writeAcceleratorEnabled": {
+ "type": "string",
+ "description": "This specifies whether or not writeAccelerator is enabled on the disk."
+ }
+ }
+ },
+ "EncryptionSettings": {
+ "type": "object",
+ "description": "This is the encryption settings for the disk.",
+ "properties": {
+ "enabled": {
+ "type": "string",
+ "description": "This specifies whether or not disk encryption is enabled on the VM."
+ }
+ }
+ },
+ "DiffDiskSettings": {
+ "type": "object",
+ "description": "This is the ephemeral disk settings.",
+ "properties": {
+ "option": {
+ "type": "string",
+ "description": "This specifies the ephemeral disk settings."
+ }
+ }
+ },
+ "DiskImage": {
+ "type": "object",
+ "description": "This is the source user image virtual hard disk.",
+ "properties": {
+ "uri": {
+ "type": "string",
+ "description": "This is the uri of the virtual hard disk."
+ }
+ }
+ },
+ "ManagedDisk": {
+ "type": "object",
+ "description": "This is managed disk parameters.",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "This is the resource ID."
+ },
+ "storageAccountType": {
+ "type": "string",
+ "description": "This is the storage account type for the managed disk."
+ }
+ }
+ },
+ "VirtualHardDisk": {
+ "type": "object",
+ "description": "This is the virtual hard disk.",
+ "properties": {
+ "uri": {
+ "type": "string",
+ "description": "This is the uri of the virtual hard disk."
+ }
+ }
+ },
+ "ApplicationResponse": {
+ "type": "string",
+ "description": "This is a binary string containing the application."
+ },
+ "Instance": {
+ "type": "object",
+ "description": "This is the response from the Instance_GetMetadata operation.",
+ "properties": {
+ "compute": {
+ "$ref": "#/definitions/Compute",
+ "description": "Compute Metadata"
+ },
+ "network": {
+ "$ref": "#/definitions/Network",
+ "description": "Network Metadata"
+ }
+ }
+ },
+ "AttestedData": {
+ "type": "object",
+ "description": "This is the response from the Attested_GetDocument operation.",
+ "properties": {
+ "signature": {
+ "type": "string",
+ "description": "This is the encoded string containing the VM ID, SKU, plan information, public key, timestamp, and nonce value."
+ },
+ "encoding": {
+ "type": "string",
+ "description": "This is the encoding scheme of the signature."
+ }
+ }
+ },
+ "ErrorResponse": {
+ "description": "This is the response from an operation in the case an error occurs.",
+ "type": "object",
+ "properties": {
+ "error": {
+ "description": "Error message indicating why the operation failed.",
+ "type": "string"
+ }
+ }
+ },
+ "IdentityErrorResponse": {
+ "type": "object",
+ "description": "This is the response from an Identity operation in the case an error occurs.",
+ "properties": {
+ "error": {
+ "type": "string",
+ "description": "Error code",
+ "enum": [
+ "invalid_request",
+ "unauthorized_client",
+ "access_denied",
+ "unsupported_response_type",
+ "invalid_scope",
+ "server_error",
+ "service_unavailable",
+ "bad_request",
+ "forbidden",
+ "not_found",
+ "method_not_allowed",
+ "too_many_requests"
+ ],
+ "x-ms-enum": {
+ "name": "Error",
+ "modelAsString": true
+ }
+ },
+ "error_description": {
+ "type": "string",
+ "description": "Error message indicating why the operation failed."
+ }
+ }
+ },
+ "IdentityTokenResponse": {
+ "type": "object",
+ "description": "This is the response from the Identity_GetToken operation.",
+ "properties": {
+ "access_token": {
+ "type": "string",
+ "description": "This is the requested access token. The app can use this token to authenticate to the sink resource."
+ },
+ "expires_in": {
+ "type": "string",
+ "description": "This is how long the access token is valid (in seconds)."
+ },
+ "expires_on": {
+ "type": "string",
+ "description": "This is 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. This value is used to determine the lifetime of cached tokens."
+ },
+ "ext_expires_in": {
+ "type": "string",
+ "description": "This indicates the extended lifetime of the token (in seconds)."
+ },
+ "not_before": {
+ "type": "string",
+ "description": "This is the time when the access token becomes effective. The date is represented as the number of seconds from 1970-01-01T0:0:0Z UTC until the expiration time."
+ },
+ "resource": {
+ "type": "string",
+ "description": "This is the app ID URI of the sink resource."
+ },
+ "token_type": {
+ "type": "string",
+ "description": "This indicates the token type value."
+ },
+ "client_id": {
+ "type": "string",
+ "description": "This is the client_id specified in the request, if any."
+ },
+ "object_id": {
+ "type": "string",
+ "description": "This is the object_id specified in the request, if any."
+ },
+ "msi_res_id": {
+ "type": "string",
+ "description": "This is the msi_res_id specified in the request, if any."
+ }
+ }
+ },
+ "IdentityInfoResponse": {
+ "type": "object",
+ "description": "This is the response from the Identity_GetInfo operation.",
+ "properties": {
+ "tenantId": {
+ "type": "string",
+ "description": "This is the AAD tenantId of the identity of the system assigned managed identity."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "type": "string",
+ "enum": [
+ "2018-10-01"
+ ],
+ "description": "This is the API version to use.",
+ "required": true,
+ "x-ms-enum": {
+ "name": "ApiVersion",
+ "modelAsString": true
+ }
+ },
+ "MetadataParameter": {
+ "name": "Metadata",
+ "in": "header",
+ "type": "string",
+ "enum": [
+ "true"
+ ],
+ "description": "This must be set to 'true'.",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/imds/data-plane/readme.md b/specification/imds/data-plane/readme.md
index 8202bc8b0956..50d959f25654 100644
--- a/specification/imds/data-plane/readme.md
+++ b/specification/imds/data-plane/readme.md
@@ -106,6 +106,14 @@ These settings apply only when `--tag=package-2019-11-01` is specified on the co
input-file:
- Microsoft.InstanceMetadataService/stable/2019-11-01/imds.json
```
+### Tag: package-2020-06-01
+
+These settings apply only when `--tag=package-2020-06-01` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-06-01'
+input-file:
+- Microsoft.InstanceMetadataService/stable/2020-06-01/imds.json
+```
## Suppression
``` yaml
@@ -259,6 +267,22 @@ input-file:
- $.definitions.IdentityTokenResponse.properties.object_id
- $.definitions.IdentityTokenResponse.properties.msi_res_id
- $.definitions.IdentityErrorResponse.properties.error_description
+
+ - suppress: DefinitionsPropertiesNamesCamelCase
+ reason: The following properties follow the Oath2 spec, which does not use camelCase.
+ from: Microsoft.InstanceMetadataService/stable/2020-06-01/imds.json
+ where:
+ - $.definitions.IdentityTokenResponse.properties.access_token
+ - $.definitions.IdentityTokenResponse.properties.expires_in
+ - $.definitions.IdentityTokenResponse.properties.expires_on
+ - $.definitions.IdentityTokenResponse.properties.ext_expires_in
+ - $.definitions.IdentityTokenResponse.properties.not_before
+ - $.definitions.IdentityTokenResponse.properties.resource
+ - $.definitions.IdentityTokenResponse.properties.token_type
+ - $.definitions.IdentityTokenResponse.properties.client_id
+ - $.definitions.IdentityTokenResponse.properties.object_id
+ - $.definitions.IdentityTokenResponse.properties.msi_res_id
+ - $.definitions.IdentityErrorResponse.properties.error_description
```
---
diff --git a/specification/intune/resource-manager/readme.azureresourceschema.md b/specification/intune/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..85e92609e955
--- /dev/null
+++ b/specification/intune/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-intune-2015-01-14-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-intune-2015-01-14-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-intune-2015-01-14-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Intune/preview/2015-01-14-preview/intune.json
+
+```
diff --git a/specification/intune/resource-manager/readme.md b/specification/intune/resource-manager/readme.md
index c15b27b1cb39..5c25fc391ffc 100644
--- a/specification/intune/resource-manager/readme.md
+++ b/specification/intune/resource-manager/readme.md
@@ -51,6 +51,17 @@ 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.
+
+``` yaml $(swagger-to-sdk)
+swagger-to-sdk:
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js intune/resource-manager
+```
## C#
These settings apply only when `--csharp` is specified on the command line.
@@ -79,28 +90,7 @@ payload-flattening-threshold: 1
output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-intune
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Intune/preview/2015-01-14-preview/intune.json
- - $(this-folder)/Microsoft.Intune/preview/2015-01-14-privatepreview/intune.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/iotcentral/resource-manager/readme.azureresourceschema.md b/specification/iotcentral/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..3db7de0ae97a
--- /dev/null
+++ b/specification/iotcentral/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-iotcentral-2018-09-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-iotcentral-2018-09-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-iotcentral-2018-09-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.IoTCentral/stable/2018-09-01/iotcentral.json
+
+```
diff --git a/specification/iotcentral/resource-manager/readme.md b/specification/iotcentral/resource-manager/readme.md
index 0e236fbb0bbc..7870e12dbded 100644
--- a/specification/iotcentral/resource-manager/readme.md
+++ b/specification/iotcentral/resource-manager/readme.md
@@ -62,6 +62,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_iot_central']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js iotcentral/resource-manager
```
## C#
@@ -131,28 +134,7 @@ regenerate-manager: true
generate-interface: true
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.IoTCentral/stable/2018-09-01/iotcentral.json
- - $(this-folder)/Microsoft.IoTCentral/preview/2017-07-01-privatepreview/iotcentral.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/IotHub_ManualFailover.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/IotHub_ManualFailover.json
new file mode 100644
index 000000000000..bc038c585283
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/IotHub_ManualFailover.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "iotHubName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "failoverInput": {
+ "failoverRegion": "testHub"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/checkNameAvailability.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/checkNameAvailability.json
new file mode 100644
index 000000000000..10fb2925ab05
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/checkNameAvailability.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "operationInputs": {
+ "name": "test-request"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": true,
+ "reason": "Invalid",
+ "message": ""
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_certificatescreateorupdate.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_certificatescreateorupdate.json
new file mode 100644
index 000000000000..07a6465001f4
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_certificatescreateorupdate.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "resourceName": "iothub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "certificateDescription": {
+ "properties": {
+ "certificate": "############################################"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "properties": {
+ "subject": "CN=testdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "certificate": "############################################"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServives/myFirstProvisioningService/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/IotHubs/Certificates",
+ "etag": "AAAAAAExpNs="
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "subject": "CN=testdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "certificate": "############################################"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServives/myFirstProvisioningService/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/IotHubs/Certificates",
+ "etag": "AAAAAAExpNs="
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_certificatesdelete.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_certificatesdelete.json
new file mode 100644
index 000000000000..ed6ea55c330d
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_certificatesdelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "resourceName": "myhub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "If-Match": "AAAAAAAADGk="
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_certverify.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_certverify.json
new file mode 100644
index 000000000000..944142d3355b
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_certverify.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "resourceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "If-Match": "AAAAAAAADGk=",
+ "certificateVerificationBody": {
+ "certificate": "#####################################"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "subject": "CN=andbucdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": true,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:26:56 GMT"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/IotHubs/Certificates",
+ "etag": "AAAAAAExpTQ="
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_createOrUpdate.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_createOrUpdate.json
new file mode 100644
index 000000000000..1848c9282cc7
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_createOrUpdate.json
@@ -0,0 +1,226 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "iotHubDescription": {
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "ipFilterRules": [],
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "name": "$fallback",
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None",
+ "minTlsVersion": "1.2"
+ },
+ "sku": {
+ "name": "S1",
+ "capacity": 1
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/ae24ff83-d2ca-4fc8-9717-05dae4bba489/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "name": "$fallback",
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None",
+ "minTlsVersion": "1.2"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/ae24ff83-d2ca-4fc8-9717-05dae4bba489/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "name": "$fallback",
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None",
+ "minTlsVersion": "1.2"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_createconsumergroup.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_createconsumergroup.json
new file mode 100644
index 000000000000..7679da12cba1
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_createconsumergroup.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "eventHubEndpointName": "events",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "name": "test",
+ "consumerGroupBody": {
+ "properties": {
+ "name": "test"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "created": "Thu, 15 Jun 2017 19:20:58 GMT"
+ },
+ "id": "/subscriptions/cmd-sub-1/resourceGroups/cmd-rg-1/providers/Microsoft.Devices/IotHubs/test-hub-2/eventHubEndpoints/events/ConsumerGroups/%24Default",
+ "name": "test",
+ "type": "Microsoft.Devices/IotHubs/EventHubEndpoints/ConsumerGroups",
+ "etag": "AAAAAAFD6M4="
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_delete.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_delete.json
new file mode 100644
index 000000000000..eaa2051a3a16
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_delete.json
@@ -0,0 +1,164 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ },
+ "204": {},
+ "202": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ },
+ "404": {
+ "body": {}
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_deleteconsumergroup.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_deleteconsumergroup.json
new file mode 100644
index 000000000000..02c23d8e40f8
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_deleteconsumergroup.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "eventHubEndpointName": "events",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "name": "test"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_deleteprivateendpointconnection.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_deleteprivateendpointconnection.json
new file mode 100644
index 000000000000..de7c80bad446
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_deleteprivateendpointconnection.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "privateEndpointConnectionName": "myPrivateEndpointConnection"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/IotHubs/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Disconnected",
+ "description": "Deleted",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/IotHubs/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Disconnected",
+ "description": "Deleted",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_exportdevices.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_exportdevices.json
new file mode 100644
index 000000000000..cbd29980bdf6
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_exportdevices.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "exportDevicesParameters": {
+ "exportBlobContainerUri": "testBlob",
+ "excludeKeys": true
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "jobId": "test",
+ "startTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "endTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "type": "unknown",
+ "status": "unknown"
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_generateverificationcode.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_generateverificationcode.json
new file mode 100644
index 000000000000..d4b11ae631c4
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_generateverificationcode.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "If-Match": "AAAAAAAADGk="
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "cert",
+ "properties": {
+ "verificationCode": "##################################",
+ "subject": "CN=andbucdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "##############################",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:26:56 GMT"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_get.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_get.json
new file mode 100644
index 000000000000..08cfa02618c5
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_get.json
@@ -0,0 +1,101 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None",
+ "deviceStreams": {
+ "streamingEndpoints": [
+ "https://streams.azure-devices-int.net:9443"
+ ]
+ },
+ "locations": [
+ {
+ "location": "West US",
+ "role": "primary"
+ },
+ {
+ "location": "East US",
+ "role": "secondary"
+ }
+ ],
+ "minTlsVersion": "1.2"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getcertificate.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getcertificate.json
new file mode 100644
index 000000000000..451c4913e6a1
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getcertificate.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "resourceName": "testhub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "subject": "CN=testdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "certificate": "############################################"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/andbuc-hub/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/IotHubs/Certificates",
+ "etag": "AAAAAAExpNs="
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getconsumergroup.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getconsumergroup.json
new file mode 100644
index 000000000000..6f1c4dece7cf
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getconsumergroup.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "eventHubEndpointName": "events",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "name": "test"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "created": "Thu, 15 Jun 2017 19:20:58 GMT"
+ },
+ "id": "/subscriptions/cmd-sub-1/resourceGroups/cmd-rg-1/providers/Microsoft.Devices/IotHubs/test-hub-2/eventHubEndpoints/events/ConsumerGroups/%24Default",
+ "name": "test",
+ "type": "Microsoft.Devices/IotHubs/EventHubEndpoints/ConsumerGroups",
+ "etag": "AAAAAAFD6M4="
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getjob.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getjob.json
new file mode 100644
index 000000000000..ef73a53819c0
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getjob.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "jobId": "test"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "jobId": "test",
+ "startTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "endTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "type": "unknown",
+ "status": "unknown"
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getkey.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getkey.json
new file mode 100644
index 000000000000..4388e2556d5f
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getkey.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "keyName": "iothubowner"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "keyName": "iothubowner",
+ "primaryKey": "2aWPrKloLLdcug12ZHNpA0e07yJmRRmYMXDLpEOTd/Y=",
+ "secondaryKey": "DLyFnDTGMDK0BU2QjT5TCkNBQ4h08mi20vOqWMC7TxU=",
+ "rights": "RegistryWrite, ServiceConnect, DeviceConnect"
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getprivateendpointconnection.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getprivateendpointconnection.json
new file mode 100644
index 000000000000..a6e8b0e8a8a6
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getprivateendpointconnection.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "privateEndpointConnectionName": "myPrivateEndpointConnection"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/IotHubs/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Pending",
+ "description": "Please approve my request!",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getprivatelinkresources.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getprivatelinkresources.json
new file mode 100644
index 000000000000..266a12e98c89
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getprivatelinkresources.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "groupId": "iotHub"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateLinkResources/iotHub",
+ "name": "iotHub",
+ "type": "Microsoft.Devices/IotHubs/PrivateLinkResources",
+ "properties": {
+ "groupId": "iotHub",
+ "requiredMembers": [
+ "iotHub"
+ ],
+ "requiredZoneNames": [
+ "privatelink.azure-devices.net"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getskus.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getskus.json
new file mode 100644
index 000000000000..e692da42d215
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_getskus.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "resourceType": "Microsoft.Devices/IotHubs",
+ "sku": {
+ "name": "S1",
+ "tier": "Standard"
+ },
+ "capacity": {
+ "default": 1,
+ "scaleType": "Manual"
+ }
+ },
+ {
+ "resourceType": "Microsoft.Devices/IotHubs",
+ "sku": {
+ "name": "S2",
+ "tier": "Standard"
+ },
+ "capacity": {
+ "minimum": 1,
+ "maximum": 200,
+ "default": 1,
+ "scaleType": "Manual"
+ }
+ },
+ {
+ "resourceType": "Microsoft.Devices/IotHubs",
+ "sku": {
+ "name": "S3",
+ "tier": "Standard"
+ },
+ "capacity": {
+ "minimum": 1,
+ "maximum": 10,
+ "default": 1,
+ "scaleType": "Manual"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_importdevices.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_importdevices.json
new file mode 100644
index 000000000000..e3813b4e176a
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_importdevices.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "importDevicesParameters": {
+ "inputBlobContainerUri": "testBlob",
+ "outputBlobContainerUri": "testBlob"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "jobId": "test",
+ "startTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "endTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "type": "unknown",
+ "status": "unknown"
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listbyrg.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listbyrg.json
new file mode 100644
index 000000000000..4306869ba6a9
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listbyrg.json
@@ -0,0 +1,90 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "name": "$fallback",
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listbysubscription.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listbysubscription.json
new file mode 100644
index 000000000000..acaea3bfcad0
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listbysubscription.json
@@ -0,0 +1,89 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "name": "$fallback",
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listcertificates.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listcertificates.json
new file mode 100644
index 000000000000..cc10ff706a25
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listcertificates.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "resourceName": "testhub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "subject": "CN=testdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "certificate": "############################################"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/andbuc-hub/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/IotHubs/Certificates",
+ "etag": "AAAAAAExpNs="
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listehgroups.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listehgroups.json
new file mode 100644
index 000000000000..a8c76f4d36ed
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listehgroups.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "eventHubEndpointName": "events",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "created": "Thu, 15 Jun 2017 19:20:58 GMT"
+ },
+ "id": "/subscriptions/cmd-sub-1/resourceGroups/cmd-rg-1/providers/Microsoft.Devices/IotHubs/test-hub-2/eventHubEndpoints/events/ConsumerGroups/%24Default",
+ "name": "$Default",
+ "type": "Microsoft.Devices/IotHubs/EventHubEndpoints/ConsumerGroups",
+ "etag": "AAAAAAFD6M4="
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listjobs.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listjobs.json
new file mode 100644
index 000000000000..27bbd0ccc4ea
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listjobs.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "jobId": "test",
+ "startTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "endTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "type": "unknown",
+ "status": "unknown"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listkeys.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listkeys.json
new file mode 100644
index 000000000000..66b61871eb3a
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listkeys.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "keyName": "iothubowner",
+ "primaryKey": "2aWPrKloLLdcug12ZHNpA0e07yJmRRmYMXDLpEOTd/Y=",
+ "secondaryKey": "DLyFnDTGMDK0BU2QjT5TCkNBQ4h08mi20vOqWMC7TxU=",
+ "rights": "RegistryWrite, ServiceConnect, DeviceConnect"
+ },
+ {
+ "keyName": "service",
+ "primaryKey": "DinqxWW+s814W2Pc3dLxleelksqSYGy8Jfymt8J7a4c=",
+ "secondaryKey": "5G8KgJ9Wx2T0f6HRIn25TgYcFmJnBSivawNaHssiP9Y=",
+ "rights": "ServiceConnect"
+ },
+ {
+ "keyName": "device",
+ "primaryKey": "o/9gPc0oD8LY/r2lRurgl9U/sKFcL2c/tmFLKAiz+e0=",
+ "secondaryKey": "YOeBMHnYP95vH+ykR8OeapnhS6W8raMsXOdNFwqg4lg=",
+ "rights": "DeviceConnect"
+ },
+ {
+ "keyName": "registryRead",
+ "primaryKey": "h2d4mPxy6jPCWX6mO+katV9QPNJivzt4aFq0iGVc1A8=",
+ "secondaryKey": "3TdcalZNTB7BZHl88LGsG1Z5T6+ElEODunrs1vylwGg=",
+ "rights": "RegistryRead"
+ },
+ {
+ "keyName": "registryReadWrite",
+ "primaryKey": "tyNRcaI38fXL+gQTjCmrVZGTP4YFF7uACk7pppWLWzY=",
+ "secondaryKey": "6P6DXOp0W3HO5/IotzcPS1kx7PHiOdesaND07Im5cYI=",
+ "rights": "RegistryWrite"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listprivateendpointconnections.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listprivateendpointconnections.json
new file mode 100644
index 000000000000..6d7526590e23
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listprivateendpointconnections.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/IotHubs/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Pending",
+ "description": "Please approve my request!",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listprivatelinkresources.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listprivatelinkresources.json
new file mode 100644
index 000000000000..1fd8553c9b7b
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_listprivatelinkresources.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateLinkResources/iotHub",
+ "name": "iotHub",
+ "type": "Microsoft.Devices/IotHubs/PrivateLinkResources",
+ "properties": {
+ "groupId": "iotHub",
+ "requiredMembers": [
+ "iotHub"
+ ],
+ "requiredZoneNames": [
+ "privatelink.azure-devices.net"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_operations.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_operations.json
new file mode 100644
index 000000000000..b17992a75f27
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_operations.json
@@ -0,0 +1,328 @@
+{
+ "parameters": {
+ "api-version": "2020-07-10-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.Devices/register/action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Register Resource Provider",
+ "description": "Register the subscription for the IotHub resource provider and enables the creation of IotHub resources"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/diagnosticSettings/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Diagnostic Setting",
+ "description": "Gets the diagnostic setting for the resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/diagnosticSettings/write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Set Diagnostic Setting",
+ "description": "Creates or updates the diagnostic setting for the resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/metricDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read IotHub service metric definitions",
+ "description": "Gets the available metrics for the IotHub service"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/logDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read IotHub service log definitions",
+ "description": "Gets the available log definitions for the IotHub Service"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/operations/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get All ResourceProvider Operations",
+ "description": "Get All ResourceProvider Operations"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/checkNameAvailability/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Check If IotHub name is available",
+ "description": "Check If IotHub name is available"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/usages/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Subscription Usages",
+ "description": "Get subscription usage details for this provider."
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get IotHub(s)",
+ "description": "Gets the IotHub resource(s)"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/Write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Create or update IotHub Resource",
+ "description": "Create or update IotHub Resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/Delete",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Delete IotHub Resource",
+ "description": "Delete IotHub Resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/iotHubStats/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get IotHub Statistics",
+ "description": "Get IotHub Statistics"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/skus/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get valid IotHub Skus",
+ "description": "Get valid IotHub Skus"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/listkeys/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get all IotHub Keys",
+ "description": "Get all IotHub Keys"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/iotHubKeys/listkeys/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get IotHub Key for the given name",
+ "description": "Get IotHub Key for the given name"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Create EventHub Consumer Group",
+ "description": "Create EventHub Consumer Group"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get EventHub Consumer Group(s)",
+ "description": "Get EventHub Consumer Group(s)"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Delete",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Delete EventHub Consumer Group",
+ "description": "Delete EventHub Consumer Group"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/exportDevices/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Export Devices",
+ "description": "Export Devices"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/importDevices/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Import Devices",
+ "description": "Import Devices"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/jobs/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get the Job(s) on IotHub",
+ "description": "Get Job(s) details submitted on given IotHub"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/quotaMetrics/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Quota Metrics",
+ "description": "Get Quota Metrics"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/routing/routes/$testall/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Routing Rule Test All",
+ "description": "Test a message against all existing Routes"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/routing/routes/$testnew/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Routing Rule Test Route",
+ "description": "Test a message against a provided test Route"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/routingEndpointsHealth/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Endpoint Health",
+ "description": "Gets the health of all routing Endpoints for an IotHub"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/diagnosticSettings/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Diagnostic Setting",
+ "description": "Gets the diagnostic setting for the resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/diagnosticSettings/write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Set Diagnostic Setting",
+ "description": "Creates or updates the diagnostic setting for the resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/metricDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read DPS service metric definitions",
+ "description": "Gets the available metrics for the DPS service"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/logDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read DPS service log definitions",
+ "description": "Gets the available log definitions for the DPS Service"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/checkProvisioningServiceNameAvailability/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServives",
+ "operation": "Check If Provisioning Service name is available",
+ "description": "Check If Provisioning Service name is available"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Get Provisioning Service resource",
+ "description": "Get Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/Write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Create Provisioning Service resource",
+ "description": "Create Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/Delete",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Delete Provisioning Service resource",
+ "description": "Delete Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/skus/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Delete Provisioning Service resource",
+ "description": "Delete Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/listkeys/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "get security related metadata",
+ "description": "get security related metadata"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_patch.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_patch.json
new file mode 100644
index 000000000000..cf1ff9b65ea6
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_patch.json
@@ -0,0 +1,95 @@
+{
+ "parameters": {
+ "resourceName": "myHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "location": "East US",
+ "type": "Microsoft.Devices/IotHubs",
+ "IotHubTags": {
+ "tags": {
+ "foo": "bar"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/ae24ff83-d2ca-4fc8-9717-05dae4bba489/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {
+ "foo": "bar"
+ },
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "name": "$fallback",
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_quotametrics.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_quotametrics.json
new file mode 100644
index 000000000000..8207476f25ad
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_quotametrics.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "TotalMessages",
+ "currentValue": 0,
+ "maxValue": 400000
+ },
+ {
+ "name": "TotalDeviceCount",
+ "currentValue": 0,
+ "maxValue": 500000
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_routingendpointhealth.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_routingendpointhealth.json
new file mode 100644
index 000000000000..180df1e492f9
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_routingendpointhealth.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "iotHubName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "endpointId": "id1",
+ "healthStatus": "healthy",
+ "lastSuccessfulSendAttemptTime": "2020-03-26T21:20:57Z",
+ "lastSendAttemptTime": "2020-03-26T21:24:57Z"
+ },
+ {
+ "endpointId": "id2",
+ "healthStatus": "unknown"
+ },
+ {
+ "endpointId": "id3",
+ "healthStatus": "unhealthy",
+ "lastKnownError": "NotFound",
+ "lastKnownErrorTime": "2020-03-26T21:24:57Z",
+ "lastSuccessfulSendAttemptTime": "2020-03-26T21:20:57Z",
+ "lastSendAttemptTime": "2020-03-26T21:24:57Z"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_stats.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_stats.json
new file mode 100644
index 000000000000..1a7bcb918e7e
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_stats.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2018-04-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "totalDeviceCount": 0,
+ "enabledDeviceCount": 0,
+ "disabledDeviceCount": 0
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_testallroutes.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_testallroutes.json
new file mode 100644
index 000000000000..fe8440d3a060
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_testallroutes.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "iotHubName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "input": {
+ "routingSource": "DeviceMessages",
+ "message": {
+ "body": "Body of message",
+ "appProperties": {
+ "key1": "value1"
+ },
+ "systemProperties": {
+ "key1": "value1"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "routes": [
+ {
+ "properties": {
+ "name": "Routeid",
+ "source": "DeviceMessages",
+ "endpointNames": [
+ "id1"
+ ],
+ "isEnabled": true
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_testnewroute.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_testnewroute.json
new file mode 100644
index 000000000000..01fac084bbf6
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_testnewroute.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "iotHubName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "input": {
+ "message": {
+ "body": "Body of message",
+ "appProperties": {
+ "key1": "value1"
+ },
+ "systemProperties": {
+ "key1": "value1"
+ }
+ },
+ "route": {
+ "name": "Routeid",
+ "source": "DeviceMessages",
+ "endpointNames": [
+ "id1"
+ ],
+ "isEnabled": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "result": "false",
+ "details": {
+ "compilationErrors": [
+ {
+ "message": "string response",
+ "severity": "error",
+ "location": {
+ "start": {
+ "line": 12,
+ "column": 12
+ },
+ "end": {
+ "line": 12,
+ "column": 24
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_updateprivateendpointconnection.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_updateprivateendpointconnection.json
new file mode 100644
index 000000000000..e7fb2f61c62a
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_updateprivateendpointconnection.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "privateEndpointConnectionName": "myPrivateEndpointConnection",
+ "privateEndpointConnection": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by johndoe@contoso.com"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/IotHubs/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by johndoe@contoso.com",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/IotHubs/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by johndoe@contoso.com",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_usages.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_usages.json
new file mode 100644
index 000000000000..31393b31ca30
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/examples/iothub_usages.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2020-07-10-preview",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscription/91d12660-3dec-467a-be2a-213b5544ddc0/providers/Microsoft.Devices/usages/freeHubCount",
+ "type": "/subscription/91d12660-3dec-467a-be2a-213b5544ddc0/providers/Microsoft.Devices/usages",
+ "unit": "count",
+ "currentValue": 1,
+ "limit": 1,
+ "name": {
+ "value": "FreeHubCount",
+ "localizedValue": "Free Hub Count"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/iothub.json b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/iothub.json
new file mode 100644
index 000000000000..eafa77369c6f
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/preview/2020-07-10-preview/iothub.json
@@ -0,0 +1,4242 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-07-10-preview",
+ "title": "iotHubClient",
+ "description": "Use this API to manage the IoT hubs in your Azure subscription.",
+ "x-ms-code-generation-settings": {
+ "header": "MICROSOFT_MIT_NO_VERSION"
+ }
+ },
+ "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.Devices/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "x-ms-examples": {
+ "Operations_List": {
+ "$ref": "./examples/iothub_operations.json"
+ }
+ },
+ "operationId": "Operations_List",
+ "description": "Lists all of the available IoT Hub REST API operations.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the non-security related metadata of an IoT hub",
+ "description": "Get the non-security related metadata of an IoT hub.",
+ "operationId": "IotHubResource_Get",
+ "x-ms-examples": {
+ "IotHubResource_Get": {
+ "$ref": "./examples/iothub_get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains all the non-security properties of the IoT hub. Security-related properties are set to null.",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "put": {
+ "tags": [
+ "PUT"
+ ],
+ "summary": "Create or update the metadata of an IoT hub.",
+ "description": "Create or update the metadata of an Iot hub. The usual pattern to modify a property is to retrieve the IoT hub metadata and security metadata, and then combine them with the modified values in a new body to update the IoT hub.",
+ "operationId": "IotHubResource_CreateOrUpdate",
+ "x-ms-examples": {
+ "IotHubResource_CreateOrUpdate": {
+ "$ref": "./examples/iothub_createOrUpdate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "iotHubDescription",
+ "in": "body",
+ "description": "The IoT hub metadata and security metadata.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "ETag of the IoT Hub. Do not specify for creating a brand new IoT Hub. Required to update an existing IoT Hub."
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "This is a long running operation. The operation returns a 201 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation. If successful, the operation returns HTTP status code of 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ },
+ "200": {
+ "description": "This is returned as a response to the status polling request for the create or update operation. The body contains the resource representation that indicates a transitional provisioning state.",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "patch": {
+ "tags": [
+ "PATCH"
+ ],
+ "summary": "Update an existing IoT Hubs tags.",
+ "description": "Update an existing IoT Hub tags. to update other fields use the CreateOrUpdate method",
+ "x-ms-long-running-operation": true,
+ "operationId": "IotHubResource_Update",
+ "x-ms-examples": {
+ "IotHubResource_Update": {
+ "$ref": "./examples/iothub_patch.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "name": "resourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of iot hub to update."
+ },
+ {
+ "name": "IotHubTags",
+ "in": "body",
+ "required": true,
+ "description": "Updated tag information to set into the iot hub instance.",
+ "schema": {
+ "$ref": "#/definitions/TagsResource"
+ }
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Iot Hub was successfully updated",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "delete": {
+ "tags": [
+ "DELETE"
+ ],
+ "summary": "Delete an IoT hub",
+ "description": "Delete an IoT hub.",
+ "operationId": "IotHubResource_Delete",
+ "x-ms-examples": {
+ "IotHubResource_Delete": {
+ "$ref": "./examples/iothub_delete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Iot Hub resource provider always returns a 202 Accepted status code with valid Location and Retry-After headers. The resource provider also sets the Azure-AsyncOperation header with a URL that points to the operation resource for this operation. Subsequent GET attempts on the resource after a DELETE operation return a resource representation that indicates a transitional provisioning state (such as Terminating). To retrieve the status of the operation, a client can either poll the URL returned in the Location header after the Retry-After interval, get the IoT Hub service status directly, or query the operation resource.",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ },
+ "200": {
+ "description": "This is returned as a response to the status polling request for the delete operation. The body contains the resource representation that indicates a transitional provisioning state.",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ },
+ "204": {
+ "description": "Once the long running delete operation completes successfully, a 204 No Content status code is returned when the status polling request finds the Iot hub metadata in the service and the status of the delete operation is set to a completed state."
+ },
+ "404": {
+ "description": "After the long running delete operation completes successfully, a 404 Not Found is returned when the status polling request no longer finds the Iot hub metadata in the service.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Devices/IotHubs": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get all the IoT hubs in a subscription",
+ "description": "Get all the IoT hubs in a subscription.",
+ "operationId": "IotHubResource_ListBySubscription",
+ "x-ms-examples": {
+ "IotHubResource_ListBySubscription": {
+ "$ref": "./examples/iothub_listbysubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the IoT hubs in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescriptionListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get all the IoT hubs in a resource group",
+ "description": "Get all the IoT hubs in a resource group.",
+ "operationId": "IotHubResource_ListByResourceGroup",
+ "x-ms-examples": {
+ "IotHubResource_ListByResourceGroup": {
+ "$ref": "./examples/iothub_listbyrg.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the IoT hubs in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescriptionListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/IotHubStats": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the statistics from an IoT hub",
+ "description": "Get the statistics from an IoT hub.",
+ "operationId": "IotHubResource_GetStats",
+ "x-ms-examples": {
+ "IotHubResource_GetStats": {
+ "$ref": "./examples/iothub_stats.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains JSON-serialized statistics from the identity registry in the IoT hub.",
+ "schema": {
+ "$ref": "#/definitions/RegistryStatistics"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/skus": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the list of valid SKUs for an IoT hub",
+ "description": "Get the list of valid SKUs for an IoT hub.",
+ "operationId": "IotHubResource_GetValidSkus",
+ "x-ms-examples": {
+ "IotHubResource_GetValidSkus": {
+ "$ref": "./examples/iothub_getskus.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the valid SKUs for this IoT hub.",
+ "schema": {
+ "$ref": "#/definitions/IotHubSkuDescriptionListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get a list of the consumer groups in the Event Hub-compatible device-to-cloud endpoint in an IoT hub",
+ "description": "Get a list of the consumer groups in the Event Hub-compatible device-to-cloud endpoint in an IoT hub.",
+ "operationId": "IotHubResource_ListEventHubConsumerGroups",
+ "x-ms-examples": {
+ "IotHubResource_ListEventHubConsumerGroups": {
+ "$ref": "./examples/iothub_listehgroups.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "eventHubEndpointName",
+ "in": "path",
+ "description": "The name of the Event Hub-compatible endpoint.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized list of the consumer groups in the Event Hub-compatible endpoint in this IoT hub",
+ "schema": {
+ "$ref": "#/definitions/EventHubConsumerGroupsListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups/{name}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get a consumer group from the Event Hub-compatible device-to-cloud endpoint for an IoT hub",
+ "description": "Get a consumer group from the Event Hub-compatible device-to-cloud endpoint for an IoT hub.",
+ "operationId": "IotHubResource_GetEventHubConsumerGroup",
+ "x-ms-examples": {
+ "IotHubResource_ListEventHubConsumerGroups": {
+ "$ref": "./examples/iothub_getconsumergroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "eventHubEndpointName",
+ "in": "path",
+ "description": "The name of the Event Hub-compatible endpoint in the IoT hub.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "description": "The name of the consumer group to retrieve.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized consumer group.",
+ "schema": {
+ "$ref": "#/definitions/EventHubConsumerGroupInfo"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "put": {
+ "tags": [
+ "PUT"
+ ],
+ "summary": "Add a consumer group to an Event Hub-compatible endpoint in an IoT hub",
+ "description": "Add a consumer group to an Event Hub-compatible endpoint in an IoT hub.",
+ "operationId": "IotHubResource_CreateEventHubConsumerGroup",
+ "x-ms-examples": {
+ "IotHubResource_CreateEventHubConsumerGroup": {
+ "$ref": "./examples/iothub_createconsumergroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "eventHubEndpointName",
+ "in": "path",
+ "description": "The name of the Event Hub-compatible endpoint in the IoT hub.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "description": "The name of the consumer group to add.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "consumerGroupBody",
+ "in": "body",
+ "description": "The consumer group to add.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/EventHubConsumerGroupBodyDescription"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation.",
+ "schema": {
+ "$ref": "#/definitions/EventHubConsumerGroupInfo"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "delete": {
+ "tags": [
+ "DELETE"
+ ],
+ "summary": "Delete a consumer group from an Event Hub-compatible endpoint in an IoT hub",
+ "description": "Delete a consumer group from an Event Hub-compatible endpoint in an IoT hub.",
+ "operationId": "IotHubResource_DeleteEventHubConsumerGroup",
+ "x-ms-examples": {
+ "IotHubResource_DeleteEventHubConsumerGroup": {
+ "$ref": "./examples/iothub_deleteconsumergroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "eventHubEndpointName",
+ "in": "path",
+ "description": "The name of the Event Hub-compatible endpoint in the IoT hub.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "description": "The name of the consumer group to delete.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation."
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/jobs": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get a list of all the jobs in an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry",
+ "description": "Get a list of all the jobs in an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry.",
+ "operationId": "IotHubResource_ListJobs",
+ "x-ms-examples": {
+ "IotHubResource_ListJobs": {
+ "$ref": "./examples/iothub_listjobs.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The response contains a JSON-serialized array of all the jobs in the IoT hub.",
+ "schema": {
+ "$ref": "#/definitions/JobResponseListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/jobs/{jobId}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the details of a job from an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry",
+ "description": "Get the details of a job from an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry.",
+ "operationId": "IotHubResource_GetJob",
+ "x-ms-examples": {
+ "IotHubResource_GetJob": {
+ "$ref": "./examples/iothub_getjob.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "jobId",
+ "in": "path",
+ "description": "The job identifier.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The response contains a JSON-serialized description of the job in the IoT hub.",
+ "schema": {
+ "$ref": "#/definitions/JobResponse"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/quotaMetrics": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the quota metrics for an IoT hub",
+ "description": "Get the quota metrics for an IoT hub.",
+ "operationId": "IotHubResource_GetQuotaMetrics",
+ "x-ms-examples": {
+ "IotHubResource_GetQuotaMetrics": {
+ "$ref": "./examples/iothub_quotametrics.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The response contains a JSON-serialized array of the quota metrics for the IoT hub.",
+ "schema": {
+ "$ref": "#/definitions/IotHubQuotaMetricInfoListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routingEndpointsHealth": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "operationId": "IotHubResource_GetEndpointHealth",
+ "summary": "Get the health for routing endpoints",
+ "description": "Get the health for routing endpoints.",
+ "x-ms-examples": {
+ "IotHubResource_GetEndpointHealth": {
+ "$ref": "./examples/iothub_routingendpointhealth.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "iotHubName",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/EndpointHealthDataListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Devices/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "summary": "Check if an IoT hub name is available",
+ "description": "Check if an IoT hub name is available.",
+ "operationId": "IotHubResource_CheckNameAvailability",
+ "x-ms-examples": {
+ "IotHubResource_CheckNameAvailability": {
+ "$ref": "./examples/checkNameAvailability.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "operationInputs",
+ "in": "body",
+ "description": "Set the name parameter in the OperationInputs structure to the name of the IoT hub to check.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/OperationInputs"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized response that specifies whether the IoT hub name is available. If the name is not available, the body contains the reason.",
+ "schema": {
+ "$ref": "#/definitions/IotHubNameAvailabilityInfo"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Devices/usages": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the number of iot hubs in the subscription",
+ "description": "Get the number of free and paid iot hubs in the subscription",
+ "operationId": "ResourceProviderCommon_GetSubscriptionQuota",
+ "x-ms-examples": {
+ "ResourceProviderCommon_GetSubscriptionQuota": {
+ "$ref": "./examples/iothub_usages.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/UserSubscriptionQuotaListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routing/routes/$testall": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "IotHubResource_TestAllRoutes",
+ "summary": "Test all routes",
+ "description": "Test all routes configured in this Iot Hub",
+ "x-ms-examples": {
+ "IotHubResource_TestAllRoutes": {
+ "$ref": "./examples/iothub_testallroutes.json"
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "input",
+ "description": "Input for testing all routes",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TestAllRoutesInput"
+ }
+ },
+ {
+ "name": "iotHubName",
+ "description": "IotHub to be tested",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "description": "resource group which Iot Hub belongs to",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/TestAllRoutesResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routing/routes/$testnew": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "IotHubResource_TestRoute",
+ "summary": "Test the new route",
+ "description": "Test the new route for this Iot Hub",
+ "x-ms-examples": {
+ "IotHubResource_TestRoute": {
+ "$ref": "./examples/iothub_testnewroute.json"
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "input",
+ "description": "Route that needs to be tested",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TestRouteInput"
+ }
+ },
+ {
+ "name": "iotHubName",
+ "description": "IotHub to be tested",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "description": "resource group which Iot Hub belongs to",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/TestRouteResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/listkeys": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "summary": "Get the security metadata for an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security",
+ "description": "Get the security metadata for an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security.",
+ "operationId": "IotHubResource_ListKeys",
+ "x-ms-examples": {
+ "IotHubResource_ListKeys": {
+ "$ref": "./examples/iothub_listkeys.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of shared access policies, including keys, that you can use to access the IoT hub endpoints.",
+ "schema": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRuleListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/IotHubKeys/{keyName}/listkeys": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "summary": "Get a shared access policy by name from an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security",
+ "description": "Get a shared access policy by name from an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security.",
+ "operationId": "IotHubResource_GetKeysForKeyName",
+ "x-ms-examples": {
+ "IotHubResource_GetKeysForKeyName": {
+ "$ref": "./examples/iothub_getkey.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "keyName",
+ "in": "path",
+ "description": "The name of the shared access policy.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized shared access policy, including keys, that you can use to access one or more IoT hub endpoints.",
+ "schema": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRule"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/exportDevices": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "summary": "Exports all the device identities in the IoT hub identity registry to an Azure Storage blob container. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#import-and-export-device-identities",
+ "description": "Exports all the device identities in the IoT hub identity registry to an Azure Storage blob container. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#import-and-export-device-identities.",
+ "operationId": "IotHubResource_ExportDevices",
+ "x-ms-examples": {
+ "IotHubResource_ExportDevices": {
+ "$ref": "./examples/iothub_exportdevices.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "exportDevicesParameters",
+ "in": "body",
+ "description": "The parameters that specify the export devices operation.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExportDevicesRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/JobResponse"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/importDevices": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "summary": "Import, update, or delete device identities in the IoT hub identity registry from a blob. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#import-and-export-device-identities",
+ "description": "Import, update, or delete device identities in the IoT hub identity registry from a blob. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#import-and-export-device-identities.",
+ "operationId": "IotHubResource_ImportDevices",
+ "x-ms-examples": {
+ "IotHubResource_ImportDevices": {
+ "$ref": "./examples/iothub_importdevices.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "importDevicesParameters",
+ "in": "body",
+ "description": "The parameters that specify the import devices operation.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ImportDevicesRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/JobResponse"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates": {
+ "get": {
+ "tags": [
+ "Certificates"
+ ],
+ "summary": "Get the certificate list.",
+ "description": "Returns the list of certificates.",
+ "operationId": "Certificates_ListByIotHub",
+ "x-ms-examples": {
+ "Certificates_ListByIotHub": {
+ "$ref": "./examples/iothub_listcertificates.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains all the certificate list.",
+ "schema": {
+ "$ref": "#/definitions/CertificateListDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}": {
+ "get": {
+ "tags": [
+ "Certificates"
+ ],
+ "summary": "Get the certificate.",
+ "description": "Returns the certificate.",
+ "operationId": "Certificates_Get",
+ "x-ms-examples": {
+ "Certificates_Get": {
+ "$ref": "./examples/iothub_getcertificate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/certificateName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the certificate.",
+ "schema": {
+ "$ref": "#/definitions/CertificateDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "put": {
+ "tags": [
+ "Certificates"
+ ],
+ "summary": "Upload the certificate to the IoT hub.",
+ "description": "Adds new or replaces existing certificate.",
+ "operationId": "Certificates_CreateOrUpdate",
+ "x-ms-examples": {
+ "Certificates_CreateOrUpdate": {
+ "$ref": "./examples/iothub_certificatescreateorupdate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/certificateName"
+ },
+ {
+ "name": "certificateDescription",
+ "in": "body",
+ "description": "The certificate body.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateDescription"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "ETag of the Certificate. Do not specify for creating a brand new certificate. Required to update an existing certificate."
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "If certificate didn't exist creation was successful, the operation returns HTTP status code of 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/CertificateDescription"
+ }
+ },
+ "200": {
+ "description": "If certificate already exist and update was successful, the operation returns HTTP status code of 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/CertificateDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "delete": {
+ "tags": [
+ "Certificates"
+ ],
+ "summary": "Delete an X509 certificate.",
+ "description": "Deletes an existing X509 certificate or does nothing if it does not exist.",
+ "operationId": "Certificates_Delete",
+ "x-ms-examples": {
+ "Certificates_Delete": {
+ "$ref": "./examples/iothub_certificatesdelete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/certificateName"
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": true,
+ "type": "string",
+ "description": "ETag of the Certificate."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Certificate has been deleted."
+ },
+ "204": {
+ "description": "Certificate does not exist."
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}/generateVerificationCode": {
+ "post": {
+ "tags": [
+ "Certificates"
+ ],
+ "summary": "Generate verification code for proof of possession flow.",
+ "description": "Generates verification code for proof of possession flow. The verification code will be used to generate a leaf certificate.",
+ "operationId": "Certificates_GenerateVerificationCode",
+ "x-ms-examples": {
+ "Certificates_GenerateVerificationCode": {
+ "$ref": "./examples/iothub_generateverificationcode.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/certificateName"
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": true,
+ "type": "string",
+ "description": "ETag of the Certificate."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the certificate.",
+ "schema": {
+ "$ref": "#/definitions/CertificateWithNonceDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}/verify": {
+ "post": {
+ "tags": [
+ "Certificates"
+ ],
+ "summary": "Verify certificate's private key possession.",
+ "description": "Verifies the certificate's private key possession by providing the leaf cert issued by the verifying pre uploaded certificate.",
+ "operationId": "Certificates_Verify",
+ "x-ms-examples": {
+ "Certificates_Verify": {
+ "$ref": "./examples/iothub_certverify.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/certificateName"
+ },
+ {
+ "name": "certificateVerificationBody",
+ "in": "body",
+ "description": "The name of the certificate",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateVerificationDescription"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": true,
+ "type": "string",
+ "description": "ETag of the Certificate."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the certificate.",
+ "schema": {
+ "$ref": "#/definitions/CertificateDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/failover": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "IotHub_ManualFailover",
+ "summary": "Manually initiate a failover for the IoT Hub to its secondary region",
+ "description": "Manually initiate a failover for the IoT Hub to its secondary region. To learn more, see https://aka.ms/manualfailover",
+ "x-ms-examples": {
+ "IotHub_ManualFailover": {
+ "$ref": "./examples/IotHub_ManualFailover.json"
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "name": "iotHubName",
+ "description": "Name of the IoT hub to failover",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "failoverInput",
+ "description": "Region to failover to. Must be the Azure paired region. Get the value from the secondary location in the locations property. To learn more, see https://aka.ms/manualfailover/region",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/FailoverInput"
+ }
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "description": "Name of the resource group containing the IoT hub resource",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Long running manual failover operation for the IoT hub completed"
+ },
+ "202": {
+ "description": "Manual failover initiated"
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/iotHubs/{resourceName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "List private link resources",
+ "description": "List private link resources for the given IotHub",
+ "operationId": "PrivateLinkResources_List",
+ "x-ms-examples": {
+ "PrivateLinkResources_List": {
+ "$ref": "./examples/iothub_listprivatelinkresources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the list of private link resources",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResources"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/iotHubs/{resourceName}/privateLinkResources/{groupId}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the specified private link resource",
+ "description": "Get the specified private link resource for the given IotHub",
+ "operationId": "PrivateLinkResources_Get",
+ "x-ms-examples": {
+ "PrivateLinkResources_List": {
+ "$ref": "./examples/iothub_getprivatelinkresources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/groupId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the specified of private link resource",
+ "schema": {
+ "$ref": "#/definitions/GroupIdInformation"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/iotHubs/{resourceName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "List private endpoint connections",
+ "description": "List private endpoint connection properties",
+ "operationId": "PrivateEndpointConnections_List",
+ "x-ms-examples": {
+ "PrivateEndpointConnections_List": {
+ "$ref": "./examples/iothub_listprivateendpointconnections.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the list of private endpoint connection properties",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnectionsList"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/iotHubs/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get private endpoint connection",
+ "description": "Get private endpoint connection properties",
+ "operationId": "PrivateEndpointConnections_Get",
+ "x-ms-examples": {
+ "PrivateEndpointConnection_Get": {
+ "$ref": "./examples/iothub_getprivateendpointconnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the private endpoint connection properties",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "put": {
+ "tags": [
+ "PUT"
+ ],
+ "summary": "Update private endpoint connection",
+ "description": "Update the status of a private endpoint connection with the specified name",
+ "operationId": "PrivateEndpointConnections_Update",
+ "x-ms-examples": {
+ "PrivateEndpointConnection_Update": {
+ "$ref": "./examples/iothub_updateprivateendpointconnection.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionName"
+ },
+ {
+ "name": "privateEndpointConnection",
+ "in": "body",
+ "description": "The private endpoint connection with updated properties",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "This is a long running operation. The operation returns a 201 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation. If successful, the operation returns HTTP status code of 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "200": {
+ "description": "This is returned as a response to the status polling request for the update operation.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "delete": {
+ "tags": [
+ "DELETE"
+ ],
+ "summary": "Delete private endpoint connection",
+ "description": "Delete private endpoint connection with the specified name",
+ "operationId": "PrivateEndpointConnections_Delete",
+ "x-ms-examples": {
+ "PrivateEndpointConnection_Delete": {
+ "$ref": "./examples/iothub_deleteprivateendpointconnection.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionName"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "This is a long running operation. The operation returns a 202 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "200": {
+ "description": "This is returned as a response to the status polling request for the delete operation.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "204": {
+ "description": "PrivateEndpoint does not exist."
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ }
+ },
+ "definitions": {
+ "CertificateVerificationDescription": {
+ "description": "The JSON-serialized leaf certificate",
+ "type": "object",
+ "properties": {
+ "certificate": {
+ "description": "base-64 representation of X509 certificate .cer file or just .pem file content.",
+ "type": "string"
+ }
+ }
+ },
+ "CertificateListDescription": {
+ "description": "The JSON-serialized array of Certificate objects.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The array of Certificate objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateDescription"
+ }
+ }
+ }
+ },
+ "CertificateBodyDescription": {
+ "description": "The JSON-serialized X509 Certificate.",
+ "type": "object",
+ "properties": {
+ "certificate": {
+ "description": "base-64 representation of the X509 leaf certificate .cer file or just .pem file content.",
+ "type": "string"
+ }
+ }
+ },
+ "CertificateDescription": {
+ "description": "The X509 Certificate.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/CertificateProperties"
+ },
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "description": "The name of the certificate.",
+ "type": "string",
+ "readOnly": true
+ },
+ "etag": {
+ "description": "The entity tag.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "CertificateWithNonceDescription": {
+ "description": "The X509 Certificate.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/CertificatePropertiesWithNonce"
+ },
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "description": "The name of the certificate.",
+ "type": "string",
+ "readOnly": true
+ },
+ "etag": {
+ "description": "The entity tag.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "SharedAccessSignatureAuthorizationRule": {
+ "description": "The properties of an IoT hub shared access policy.",
+ "type": "object",
+ "properties": {
+ "keyName": {
+ "description": "The name of the shared access policy.",
+ "type": "string"
+ },
+ "primaryKey": {
+ "description": "The primary key.",
+ "type": "string"
+ },
+ "secondaryKey": {
+ "description": "The secondary key.",
+ "type": "string"
+ },
+ "rights": {
+ "description": "The permissions assigned to the shared access policy.",
+ "enum": [
+ "RegistryRead",
+ "RegistryWrite",
+ "ServiceConnect",
+ "DeviceConnect",
+ "RegistryRead, RegistryWrite",
+ "RegistryRead, ServiceConnect",
+ "RegistryRead, DeviceConnect",
+ "RegistryWrite, ServiceConnect",
+ "RegistryWrite, DeviceConnect",
+ "ServiceConnect, DeviceConnect",
+ "RegistryRead, RegistryWrite, ServiceConnect",
+ "RegistryRead, RegistryWrite, DeviceConnect",
+ "RegistryRead, ServiceConnect, DeviceConnect",
+ "RegistryWrite, ServiceConnect, DeviceConnect",
+ "RegistryRead, RegistryWrite, ServiceConnect, DeviceConnect"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AccessRights",
+ "modelAsString": false
+ }
+ }
+ },
+ "required": [
+ "keyName",
+ "rights"
+ ]
+ },
+ "CertificateProperties": {
+ "description": "The description of an X509 CA Certificate.",
+ "type": "object",
+ "properties": {
+ "subject": {
+ "description": "The certificate's subject name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "expiry": {
+ "description": "The certificate's expiration date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "thumbprint": {
+ "description": "The certificate's thumbprint.",
+ "type": "string",
+ "readOnly": true
+ },
+ "isVerified": {
+ "description": "Determines whether certificate has been verified.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "created": {
+ "description": "The certificate's create date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "updated": {
+ "description": "The certificate's last update date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "certificate": {
+ "description": "The certificate content",
+ "type": "string"
+ }
+ }
+ },
+ "CertificatePropertiesWithNonce": {
+ "description": "The description of an X509 CA Certificate including the challenge nonce issued for the Proof-Of-Possession flow.",
+ "type": "object",
+ "properties": {
+ "subject": {
+ "description": "The certificate's subject name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "expiry": {
+ "description": "The certificate's expiration date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "thumbprint": {
+ "description": "The certificate's thumbprint.",
+ "type": "string",
+ "readOnly": true
+ },
+ "isVerified": {
+ "description": "Determines whether certificate has been verified.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "created": {
+ "description": "The certificate's create date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "updated": {
+ "description": "The certificate's last update date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "verificationCode": {
+ "description": "The certificate's verification code that will be used for proof of possession.",
+ "type": "string",
+ "readOnly": true
+ },
+ "certificate": {
+ "description": "The certificate content",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotHubProperties": {
+ "description": "The properties of an IoT hub.",
+ "type": "object",
+ "properties": {
+ "authorizationPolicies": {
+ "description": "The shared access policies you can use to secure a connection to the IoT hub.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRule"
+ }
+ },
+ "publicNetworkAccess": {
+ "type": "string",
+ "description": "Whether requests from Public Network are allowed",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "PublicNetworkAccess"
+ }
+ },
+ "ipFilterRules": {
+ "description": "The IP filter rules.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IpFilterRule"
+ }
+ },
+ "minTlsVersion": {
+ "type": "string",
+ "description": "Specifies the minimum TLS version to support for this hub. Can be set to \"1.2\" to have clients that use a TLS version below 1.2 to be rejected."
+ },
+ "privateEndpointConnections": {
+ "description": "Private endpoint connections created on this IotHub",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "provisioningState": {
+ "description": "The provisioning state.",
+ "type": "string",
+ "readOnly": true
+ },
+ "state": {
+ "description": "The hub state.",
+ "type": "string",
+ "readOnly": true
+ },
+ "hostName": {
+ "description": "The name of the host.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eventHubEndpoints": {
+ "description": "The Event Hub-compatible endpoint properties. The only possible keys to this dictionary is events. This key has to be present in the dictionary while making create or update calls for the IoT hub.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/EventHubProperties"
+ }
+ },
+ "routing": {
+ "$ref": "#/definitions/RoutingProperties"
+ },
+ "storageEndpoints": {
+ "description": "The list of Azure Storage endpoints where you can upload files. Currently you can configure only one Azure Storage account and that MUST have its key as $default. Specifying more than one storage account causes an error to be thrown. Not specifying a value for this property when the enableFileUploadNotifications property is set to True, causes an error to be thrown.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/StorageEndpointProperties"
+ }
+ },
+ "messagingEndpoints": {
+ "description": "The messaging endpoint properties for the file upload notification queue.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/MessagingEndpointProperties"
+ }
+ },
+ "enableFileUploadNotifications": {
+ "description": "If True, file upload notifications are enabled.",
+ "type": "boolean"
+ },
+ "cloudToDevice": {
+ "$ref": "#/definitions/CloudToDeviceProperties"
+ },
+ "comments": {
+ "description": "IoT hub comments.",
+ "type": "string"
+ },
+ "deviceStreams": {
+ "description": "The device streams properties of iothub.",
+ "type": "object",
+ "properties": {
+ "streamingEndpoints": {
+ "description": "List of Device Streams Endpoints.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "features": {
+ "description": "The capabilities and features enabled for the IoT hub.",
+ "enum": [
+ "None",
+ "DeviceManagement"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "Capabilities",
+ "modelAsString": true
+ }
+ },
+ "encryption": {
+ "description": "The encryption properties for the IoT hub.",
+ "$ref": "#/definitions/EncryptionPropertiesDescription"
+ },
+ "locations": {
+ "description": "Primary and secondary location for iot hub",
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IotHubLocationDescription"
+ }
+ }
+ }
+ },
+ "IotHubSkuInfo": {
+ "description": "Information about the SKU of the IoT hub.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the SKU.",
+ "enum": [
+ "F1",
+ "S1",
+ "S2",
+ "S3",
+ "B1",
+ "B2",
+ "B3"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IotHubSku",
+ "modelAsString": true
+ }
+ },
+ "tier": {
+ "description": "The billing tier for the IoT hub.",
+ "enum": [
+ "Free",
+ "Standard",
+ "Basic"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "IotHubSkuTier",
+ "modelAsString": false
+ }
+ },
+ "capacity": {
+ "format": "int64",
+ "description": "The number of provisioned IoT Hub units. See: https://docs.microsoft.com/azure/azure-subscription-service-limits#iot-hub-limits.",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "EventHubProperties": {
+ "description": "The properties of the provisioned Event Hub-compatible endpoint used by the IoT hub.",
+ "type": "object",
+ "properties": {
+ "retentionTimeInDays": {
+ "format": "int64",
+ "description": "The retention time for device-to-cloud messages in days. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#device-to-cloud-messages",
+ "type": "integer"
+ },
+ "partitionCount": {
+ "format": "int32",
+ "description": "The number of partitions for receiving device-to-cloud messages in the Event Hub-compatible endpoint. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#device-to-cloud-messages.",
+ "type": "integer"
+ },
+ "partitionIds": {
+ "description": "The partition ids in the Event Hub-compatible endpoint.",
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "path": {
+ "description": "The Event Hub-compatible name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "endpoint": {
+ "description": "The Event Hub-compatible endpoint.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "StorageEndpointProperties": {
+ "description": "The properties of the Azure Storage endpoint for file upload.",
+ "type": "object",
+ "properties": {
+ "sasTtlAsIso8601": {
+ "description": "The period of time for which the SAS URI generated by IoT Hub for file upload is valid. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-file-upload#file-upload-notification-configuration-options.",
+ "type": "string",
+ "format": "duration"
+ },
+ "connectionString": {
+ "description": "The connection string for the Azure Storage account to which files are uploaded.",
+ "type": "string"
+ },
+ "containerName": {
+ "description": "The name of the root container where you upload files. The container need not exist but should be creatable using the connectionString specified.",
+ "type": "string"
+ },
+ "authenticationType": {
+ "description": "Specifies authentication type being used for connecting to the storage account.",
+ "enum": [
+ "keyBased",
+ "identityBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AuthenticationType",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "connectionString",
+ "containerName"
+ ]
+ },
+ "MessagingEndpointProperties": {
+ "description": "The properties of the messaging endpoints used by this IoT hub.",
+ "type": "object",
+ "properties": {
+ "lockDurationAsIso8601": {
+ "description": "The lock duration. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-file-upload.",
+ "type": "string",
+ "format": "duration"
+ },
+ "ttlAsIso8601": {
+ "description": "The period of time for which a message is available to consume before it is expired by the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-file-upload.",
+ "type": "string",
+ "format": "duration"
+ },
+ "maxDeliveryCount": {
+ "description": "The number of times the IoT hub attempts to deliver a message. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-file-upload.",
+ "format": "int32",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100
+ }
+ }
+ },
+ "CloudToDeviceProperties": {
+ "description": "The IoT hub cloud-to-device messaging properties.",
+ "type": "object",
+ "properties": {
+ "maxDeliveryCount": {
+ "description": "The max delivery count for cloud-to-device messages in the device queue. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages.",
+ "format": "int32",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100
+ },
+ "defaultTtlAsIso8601": {
+ "description": "The default time to live for cloud-to-device messages in the device queue. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages.",
+ "type": "string",
+ "format": "duration"
+ },
+ "feedback": {
+ "$ref": "#/definitions/FeedbackProperties"
+ }
+ }
+ },
+ "IpFilterRule": {
+ "description": "The IP filter rules for the IoT hub.",
+ "type": "object",
+ "properties": {
+ "filterName": {
+ "description": "The name of the IP filter rule.",
+ "type": "string"
+ },
+ "action": {
+ "description": "The desired action for requests captured by this rule.",
+ "enum": [
+ "Accept",
+ "Reject"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IpFilterActionType",
+ "modelAsString": false
+ }
+ },
+ "ipMask": {
+ "description": "A string that contains the IP address range in CIDR notation for the rule.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "filterName",
+ "action",
+ "ipMask"
+ ]
+ },
+ "PrivateLinkResources": {
+ "description": "The available private link resources for an IotHub",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The list of available private link resources for an IotHub",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GroupIdInformation"
+ }
+ }
+ }
+ },
+ "GroupIdInformation": {
+ "description": "The group information for creating a private endpoint on an IotHub",
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name.",
+ "pattern": "^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{2,49}[a-zA-Z0-9]$"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "properties": {
+ "$ref": "#/definitions/GroupIdInformationProperties"
+ }
+ },
+ "required": [
+ "properties"
+ ]
+ },
+ "GroupIdInformationProperties": {
+ "description": "The properties for a group information object",
+ "type": "object",
+ "properties": {
+ "groupId": {
+ "type": "string",
+ "description": "The group id"
+ },
+ "requiredMembers": {
+ "description": "The required members for a specific group id",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "requiredZoneNames": {
+ "description": "The required DNS zones for a specific group id",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "PrivateEndpointConnectionsList": {
+ "description": "The list of private endpoint connections for an IotHub",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "PrivateEndpointConnection": {
+ "description": "The private endpoint connection of an IotHub",
+ "x-ms-azure-resource": true,
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name.",
+ "pattern": "^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{2,49}[a-zA-Z0-9]$"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties"
+ }
+ },
+ "required": [
+ "properties"
+ ]
+ },
+ "PrivateEndpointConnectionProperties": {
+ "description": "The properties of a private endpoint connection",
+ "type": "object",
+ "properties": {
+ "privateEndpoint": {
+ "$ref": "#/definitions/PrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "#/definitions/PrivateLinkServiceConnectionState"
+ }
+ },
+ "required": [
+ "privateLinkServiceConnectionState"
+ ]
+ },
+ "PrivateEndpoint": {
+ "description": "The private endpoint property of a private endpoint connection",
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ }
+ }
+ },
+ "PrivateLinkServiceConnectionState": {
+ "description": "The current state of a private endpoint connection",
+ "type": "object",
+ "properties": {
+ "status": {
+ "description": "The status of a private endpoint connection",
+ "enum": [
+ "Pending",
+ "Approved",
+ "Rejected",
+ "Disconnected"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "PrivateLinkServiceConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "description": {
+ "type": "string",
+ "description": "The description for the current state of a private endpoint connection"
+ },
+ "actionsRequired": {
+ "type": "string",
+ "description": "Actions required for a private endpoint connection"
+ }
+ },
+ "required": [
+ "status",
+ "description"
+ ]
+ },
+ "FeedbackProperties": {
+ "description": "The properties of the feedback queue for cloud-to-device messages.",
+ "type": "object",
+ "properties": {
+ "lockDurationAsIso8601": {
+ "description": "The lock duration for the feedback queue. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages.",
+ "type": "string",
+ "format": "duration"
+ },
+ "ttlAsIso8601": {
+ "description": "The period of time for which a message is available to consume before it is expired by the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages.",
+ "type": "string",
+ "format": "duration"
+ },
+ "maxDeliveryCount": {
+ "description": "The number of times the IoT hub attempts to deliver a message on the feedback queue. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages.",
+ "format": "int32",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100
+ }
+ }
+ },
+ "RoutingProperties": {
+ "description": "The routing related properties of the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging",
+ "type": "object",
+ "properties": {
+ "endpoints": {
+ "$ref": "#/definitions/RoutingEndpoints"
+ },
+ "routes": {
+ "description": "The list of user-provided routing rules that the IoT hub uses to route messages to built-in and custom endpoints. A maximum of 100 routing rules are allowed for paid hubs and a maximum of 5 routing rules are allowed for free hubs.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RouteProperties"
+ }
+ },
+ "fallbackRoute": {
+ "description": "The properties of the route that is used as a fall-back route when none of the conditions specified in the 'routes' section are met. This is an optional parameter. When this property is not set, the messages which do not meet any of the conditions specified in the 'routes' section get routed to the built-in eventhub endpoint.",
+ "$ref": "#/definitions/FallbackRouteProperties"
+ },
+ "enrichments": {
+ "description": "The list of user-provided enrichments that the IoT hub applies to messages to be delivered to built-in and custom endpoints. See: https://aka.ms/telemetryoneventgrid",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnrichmentProperties"
+ }
+ }
+ }
+ },
+ "RoutingEndpoints": {
+ "description": "The properties related to the custom endpoints to which your IoT hub routes messages based on the routing rules. A maximum of 10 custom endpoints are allowed across all endpoint types for paid hubs and only 1 custom endpoint is allowed across all endpoint types for free hubs.",
+ "type": "object",
+ "properties": {
+ "serviceBusQueues": {
+ "description": "The list of Service Bus queue endpoints that IoT hub routes the messages to, based on the routing rules.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RoutingServiceBusQueueEndpointProperties"
+ }
+ },
+ "serviceBusTopics": {
+ "description": "The list of Service Bus topic endpoints that the IoT hub routes the messages to, based on the routing rules.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RoutingServiceBusTopicEndpointProperties"
+ }
+ },
+ "eventHubs": {
+ "description": "The list of Event Hubs endpoints that IoT hub routes messages to, based on the routing rules. This list does not include the built-in Event Hubs endpoint.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RoutingEventHubProperties"
+ }
+ },
+ "storageContainers": {
+ "description": "The list of storage container endpoints that IoT hub routes messages to, based on the routing rules.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RoutingStorageContainerProperties"
+ }
+ }
+ }
+ },
+ "RoutingServiceBusQueueEndpointProperties": {
+ "description": "The properties related to service bus queue endpoint types.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Id of the service bus queue endpoint",
+ "type": "string"
+ },
+ "connectionString": {
+ "description": "The connection string of the service bus queue endpoint.",
+ "type": "string"
+ },
+ "endpointUri": {
+ "description": "The url of the service bus queue endpoint. It must include the protocol sb://",
+ "type": "string"
+ },
+ "entityPath": {
+ "description": "Queue name on the service bus namespace",
+ "type": "string"
+ },
+ "authenticationType": {
+ "description": "Method used to authenticate against the service bus queue endpoint",
+ "enum": [
+ "keyBased",
+ "identityBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "authenticationType",
+ "modelAsString": true
+ }
+ },
+ "name": {
+ "description": "The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved: events, fileNotifications, $default. Endpoint names must be unique across endpoint types. The name need not be the same as the actual queue name.",
+ "type": "string",
+ "pattern": "^[A-Za-z0-9-._]{1,64}$"
+ },
+ "subscriptionId": {
+ "description": "The subscription identifier of the service bus queue endpoint.",
+ "type": "string"
+ },
+ "resourceGroup": {
+ "description": "The name of the resource group of the service bus queue endpoint.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "RoutingServiceBusTopicEndpointProperties": {
+ "description": "The properties related to service bus topic endpoint types.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Id of the service bus topic endpoint",
+ "type": "string"
+ },
+ "connectionString": {
+ "description": "The connection string of the service bus topic endpoint.",
+ "type": "string"
+ },
+ "endpointUri": {
+ "description": "The url of the service bus topic endpoint. It must include the protocol sb://",
+ "type": "string"
+ },
+ "entityPath": {
+ "description": "Queue name on the service bus topic",
+ "type": "string"
+ },
+ "authenticationType": {
+ "description": "Method used to authenticate against the service bus topic endpoint",
+ "enum": [
+ "keyBased",
+ "identityBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "authenticationType",
+ "modelAsString": true
+ }
+ },
+ "name": {
+ "description": "The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved: events, fileNotifications, $default. Endpoint names must be unique across endpoint types. The name need not be the same as the actual topic name.",
+ "type": "string",
+ "pattern": "^[A-Za-z0-9-._]{1,64}$"
+ },
+ "subscriptionId": {
+ "description": "The subscription identifier of the service bus topic endpoint.",
+ "type": "string"
+ },
+ "resourceGroup": {
+ "description": "The name of the resource group of the service bus topic endpoint.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "RoutingEventHubProperties": {
+ "description": "The properties related to an event hub endpoint.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Id of the event hub endpoint",
+ "type": "string"
+ },
+ "connectionString": {
+ "description": "The connection string of the event hub endpoint. ",
+ "type": "string"
+ },
+ "endpointUri": {
+ "description": "The url of the event hub endpoint. It must include the protocol sb://",
+ "type": "string"
+ },
+ "entityPath": {
+ "description": "Event hub name on the event hub namespace",
+ "type": "string"
+ },
+ "authenticationType": {
+ "description": "Method used to authenticate against the event hub endpoint",
+ "enum": [
+ "keyBased",
+ "identityBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "authenticationType",
+ "modelAsString": true
+ }
+ },
+ "name": {
+ "description": "The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved: events, fileNotifications, $default. Endpoint names must be unique across endpoint types.",
+ "type": "string",
+ "pattern": "^[A-Za-z0-9-._]{1,64}$"
+ },
+ "subscriptionId": {
+ "description": "The subscription identifier of the event hub endpoint.",
+ "type": "string"
+ },
+ "resourceGroup": {
+ "description": "The name of the resource group of the event hub endpoint.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "RoutingStorageContainerProperties": {
+ "description": "The properties related to a storage container endpoint.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Id of the storage container endpoint",
+ "type": "string"
+ },
+ "connectionString": {
+ "description": "The connection string of the storage account.",
+ "type": "string"
+ },
+ "endpointUri": {
+ "description": "The url of the storage endpoint. It must include the protocol https://",
+ "type": "string"
+ },
+ "authenticationType": {
+ "description": "Method used to authenticate against the storage endpoint",
+ "enum": [
+ "keyBased",
+ "identityBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "authenticationType",
+ "modelAsString": true
+ }
+ },
+ "name": {
+ "description": "The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved: events, fileNotifications, $default. Endpoint names must be unique across endpoint types.",
+ "type": "string",
+ "pattern": "^[A-Za-z0-9-._]{1,64}$"
+ },
+ "subscriptionId": {
+ "description": "The subscription identifier of the storage account.",
+ "type": "string"
+ },
+ "resourceGroup": {
+ "description": "The name of the resource group of the storage account.",
+ "type": "string"
+ },
+ "containerName": {
+ "description": "The name of storage container in the storage account.",
+ "type": "string"
+ },
+ "fileNameFormat": {
+ "description": "File name format for the blob. Default format is {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}. All parameters are mandatory but can be reordered.",
+ "type": "string"
+ },
+ "batchFrequencyInSeconds": {
+ "description": "Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds.",
+ "format": "int32",
+ "type": "integer",
+ "maximum": 720,
+ "minimum": 60
+ },
+ "maxChunkSizeInBytes": {
+ "description": "Maximum number of bytes for each blob written to storage. Value should be between 10485760(10MB) and 524288000(500MB). Default value is 314572800(300MB).",
+ "format": "int32",
+ "type": "integer",
+ "maximum": 524288000,
+ "minimum": 10485760
+ },
+ "encoding": {
+ "description": "Encoding that is used to serialize messages to blobs. Supported values are 'avro', 'avrodeflate', and 'JSON'. Default value is 'avro'.",
+ "type": "string",
+ "enum": [
+ "Avro",
+ "AvroDeflate",
+ "JSON"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "containerName"
+ ]
+ },
+ "RouteProperties": {
+ "description": "The properties of a routing rule that your IoT hub uses to route messages to endpoints.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the route. The name can only include alphanumeric characters, periods, underscores, hyphens, has a maximum length of 64 characters, and must be unique.",
+ "type": "string",
+ "pattern": "^[A-Za-z0-9-._]{1,64}$"
+ },
+ "source": {
+ "description": "The source that the routing rule is to be applied to, such as DeviceMessages.",
+ "enum": [
+ "Invalid",
+ "DeviceMessages",
+ "TwinChangeEvents",
+ "DeviceLifecycleEvents",
+ "DeviceJobLifecycleEvents",
+ "DigitalTwinChangeEvents"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "RoutingSource",
+ "modelAsString": true
+ }
+ },
+ "condition": {
+ "description": "The condition that is evaluated to apply the routing rule. If no condition is provided, it evaluates to true by default. For grammar, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-query-language",
+ "type": "string"
+ },
+ "endpointNames": {
+ "description": "The list of endpoints to which messages that satisfy the condition are routed. Currently only one endpoint is allowed.",
+ "minItems": 1,
+ "maxItems": 1,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "isEnabled": {
+ "description": "Used to specify whether a route is enabled.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "name",
+ "endpointNames",
+ "source",
+ "isEnabled"
+ ]
+ },
+ "FallbackRouteProperties": {
+ "description": "The properties of the fallback route. IoT Hub uses these properties when it routes messages to the fallback endpoint.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the route. The name can only include alphanumeric characters, periods, underscores, hyphens, has a maximum length of 64 characters, and must be unique.",
+ "type": "string"
+ },
+ "source": {
+ "description": "The source to which the routing rule is to be applied to. For example, DeviceMessages",
+ "enum": [
+ "DeviceMessages"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "RoutingSource",
+ "modelAsString": true
+ }
+ },
+ "condition": {
+ "description": "The condition which is evaluated in order to apply the fallback route. If the condition is not provided it will evaluate to true by default. For grammar, See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-query-language",
+ "type": "string"
+ },
+ "endpointNames": {
+ "description": "The list of endpoints to which the messages that satisfy the condition are routed to. Currently only 1 endpoint is allowed.",
+ "minItems": 1,
+ "maxItems": 1,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "isEnabled": {
+ "description": "Used to specify whether the fallback route is enabled.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "endpointNames",
+ "source",
+ "isEnabled"
+ ]
+ },
+ "EnrichmentProperties": {
+ "description": "The properties of an enrichment that your IoT hub applies to messages delivered to endpoints.",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "The key or name for the enrichment property.",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value for the enrichment property.",
+ "type": "string"
+ },
+ "endpointNames": {
+ "description": "The list of endpoints for which the enrichment is applied to the message.",
+ "minItems": 1,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "key",
+ "value",
+ "endpointNames"
+ ]
+ },
+ "IotHubDescription": {
+ "description": "The description of the IoT hub.",
+ "type": "object",
+ "properties": {
+ "etag": {
+ "description": "The Etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal ETag convention.",
+ "type": "string"
+ },
+ "properties": {
+ "description": "IotHub properties",
+ "$ref": "#/definitions/IotHubProperties"
+ },
+ "sku": {
+ "description": "IotHub SKU info",
+ "$ref": "#/definitions/IotHubSkuInfo"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "sku"
+ ]
+ },
+ "Resource": {
+ "description": "The common properties of an Azure resource.",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name.",
+ "pattern": "^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{2,49}[a-zA-Z0-9]$"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "location": {
+ "type": "string",
+ "description": "The resource location."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The resource tags."
+ }
+ },
+ "x-ms-azure-resource": true,
+ "required": [
+ "location"
+ ]
+ },
+ "SharedAccessSignatureAuthorizationRuleListResult": {
+ "description": "The list of shared access policies with a next link.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The list of shared access policies.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRule"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "OperationListResult": {
+ "description": "Result of the request to list IoT Hub operations. It contains a list of operations and a URL link to get the next set of results.",
+ "properties": {
+ "value": {
+ "description": "List of IoT Hub operations supported by the Microsoft.Devices resource provider.",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/Operation"
+ }
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "Operation": {
+ "description": "IoT Hub REST API operation",
+ "type": "object",
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Operation name: {provider}/{resource}/{read | write | action | delete}"
+ },
+ "display": {
+ "description": "The object that represents the operation.",
+ "properties": {
+ "provider": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Service provider: Microsoft Devices"
+ },
+ "resource": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource Type: IotHubs"
+ },
+ "operation": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of the operation"
+ },
+ "description": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Description of the operation"
+ }
+ }
+ }
+ }
+ },
+ "ErrorDetails": {
+ "description": "Error details.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "httpStatusCode": {
+ "description": "The HTTP status code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "The error message.",
+ "type": "string",
+ "readOnly": true
+ },
+ "details": {
+ "description": "The error details.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotHubQuotaMetricInfoListResult": {
+ "description": "The JSON-serialized array of IotHubQuotaMetricInfo objects with a next link.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The array of quota metrics objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IotHubQuotaMetricInfo"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "EndpointHealthDataListResult": {
+ "description": "The JSON-serialized array of EndpointHealthData objects with a next link.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "JSON-serialized array of Endpoint health data",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EndpointHealthData"
+ }
+ },
+ "nextLink": {
+ "description": "Link to more results",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "EndpointHealthData": {
+ "description": "The health data for an endpoint",
+ "type": "object",
+ "properties": {
+ "endpointId": {
+ "description": "Id of the endpoint",
+ "type": "string"
+ },
+ "healthStatus": {
+ "description": "Health statuses have following meanings. The 'healthy' status shows that the endpoint is accepting messages as expected. The 'unhealthy' status shows that the endpoint is not accepting messages as expected and IoT Hub is retrying to send data to this endpoint. The status of an unhealthy endpoint will be updated to healthy when IoT Hub has established an eventually consistent state of health. The 'dead' status shows that the endpoint is not accepting messages, after IoT Hub retried sending messages for the retrial period. See IoT Hub metrics to identify errors and monitor issues with endpoints. The 'unknown' status shows that the IoT Hub has not established a connection with the endpoint. No messages have been delivered to or rejected from this endpoint",
+ "enum": [
+ "unknown",
+ "healthy",
+ "degraded",
+ "unhealthy",
+ "dead"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "EndpointHealthStatus",
+ "modelAsString": true
+ }
+ },
+ "lastKnownError": {
+ "description": "Last error obtained when a message failed to be delivered to iot hub",
+ "type": "string"
+ },
+ "lastKnownErrorTime": {
+ "description": "Time at which the last known error occurred",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "lastSuccessfulSendAttemptTime": {
+ "description": "Last time iot hub successfully sent a message to the endpoint",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "lastSendAttemptTime": {
+ "description": "Last time iot hub tried to send a message to the endpoint",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ }
+ },
+ "RegistryStatistics": {
+ "description": "Identity registry statistics.",
+ "type": "object",
+ "properties": {
+ "totalDeviceCount": {
+ "format": "int64",
+ "description": "The total count of devices in the identity registry.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "enabledDeviceCount": {
+ "format": "int64",
+ "description": "The count of enabled devices in the identity registry.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "disabledDeviceCount": {
+ "format": "int64",
+ "description": "The count of disabled devices in the identity registry.",
+ "type": "integer",
+ "readOnly": true
+ }
+ }
+ },
+ "JobResponseListResult": {
+ "description": "The JSON-serialized array of JobResponse objects with a next link.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The array of JobResponse objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/JobResponse"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotHubSkuDescription": {
+ "description": "SKU properties.",
+ "type": "object",
+ "properties": {
+ "resourceType": {
+ "description": "The type of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "sku": {
+ "description": "The type of the resource.",
+ "$ref": "#/definitions/IotHubSkuInfo"
+ },
+ "capacity": {
+ "description": "IotHub capacity",
+ "$ref": "#/definitions/IotHubCapacity"
+ }
+ },
+ "required": [
+ "sku",
+ "capacity"
+ ]
+ },
+ "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 an IoT Hub instance."
+ },
+ "IotHubCapacity": {
+ "description": "IoT Hub capacity information.",
+ "type": "object",
+ "properties": {
+ "minimum": {
+ "format": "int64",
+ "description": "The minimum number of units.",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 1,
+ "readOnly": true
+ },
+ "maximum": {
+ "format": "int64",
+ "description": "The maximum number of units.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "default": {
+ "format": "int64",
+ "description": "The default number of units.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "scaleType": {
+ "description": "The type of the scaling enabled.",
+ "enum": [
+ "Automatic",
+ "Manual",
+ "None"
+ ],
+ "readOnly": true,
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IotHubScaleType",
+ "modelAsString": false
+ }
+ }
+ }
+ },
+ "EventHubConsumerGroupsListResult": {
+ "description": "The JSON-serialized array of Event Hub-compatible consumer group names with a next link.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of consumer groups objects",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EventHubConsumerGroupInfo"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "EventHubConsumerGroupBodyDescription": {
+ "description": "The EventHub consumer group.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/EventHubConsumerGroupName"
+ }
+ }
+ },
+ "EventHubConsumerGroupName": {
+ "description": "The EventHub consumer group name.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "EventHub consumer group name",
+ "type": "string"
+ }
+ }
+ },
+ "EventHubConsumerGroupInfo": {
+ "description": "The properties of the EventHubConsumerGroupInfo object.",
+ "x-ms-azure-resource": true,
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "The tags.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "id": {
+ "description": "The Event Hub-compatible consumer group identifier.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "The Event Hub-compatible consumer group name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "the resource type.",
+ "type": "string",
+ "readOnly": true
+ },
+ "etag": {
+ "description": "The etag.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotHubSkuDescriptionListResult": {
+ "description": "The JSON-serialized array of IotHubSkuDescription objects with a next link.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The array of IotHubSkuDescription.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IotHubSkuDescription"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "JobResponse": {
+ "description": "The properties of the Job Response object.",
+ "type": "object",
+ "properties": {
+ "jobId": {
+ "description": "The job identifier.",
+ "type": "string",
+ "readOnly": true
+ },
+ "startTimeUtc": {
+ "format": "date-time-rfc1123",
+ "description": "The start time of the job.",
+ "type": "string",
+ "readOnly": true
+ },
+ "endTimeUtc": {
+ "format": "date-time-rfc1123",
+ "description": "The time the job stopped processing.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "The type of the job.",
+ "enum": [
+ "unknown",
+ "export",
+ "import",
+ "backup",
+ "readDeviceProperties",
+ "writeDeviceProperties",
+ "updateDeviceConfiguration",
+ "rebootDevice",
+ "factoryResetDevice",
+ "firmwareUpdate"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "JobType",
+ "modelAsString": true
+ }
+ },
+ "status": {
+ "description": "The status of the job.",
+ "enum": [
+ "unknown",
+ "enqueued",
+ "running",
+ "completed",
+ "failed",
+ "cancelled"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "JobStatus",
+ "modelAsString": false
+ }
+ },
+ "failureReason": {
+ "description": "If status == failed, this string containing the reason for the failure.",
+ "type": "string",
+ "readOnly": true
+ },
+ "statusMessage": {
+ "description": "The status message for the job.",
+ "type": "string",
+ "readOnly": true
+ },
+ "parentJobId": {
+ "description": "The job identifier of the parent job, if any.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotHubDescriptionListResult": {
+ "description": "The JSON-serialized array of IotHubDescription objects with a next link.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The array of IotHubDescription objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotHubQuotaMetricInfo": {
+ "description": "Quota metrics properties.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the quota metric.",
+ "type": "string",
+ "readOnly": true
+ },
+ "currentValue": {
+ "format": "int64",
+ "description": "The current value for the quota metric.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "maxValue": {
+ "format": "int64",
+ "description": "The maximum value of the quota metric.",
+ "type": "integer",
+ "readOnly": true
+ }
+ }
+ },
+ "OperationInputs": {
+ "description": "Input values.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the IoT hub to check.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "IotHubNameAvailabilityInfo": {
+ "description": "The properties indicating whether a given IoT hub name is available.",
+ "type": "object",
+ "properties": {
+ "nameAvailable": {
+ "description": "The value which indicates whether the provided name is available.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "reason": {
+ "description": "The reason for unavailability.",
+ "enum": [
+ "Invalid",
+ "AlreadyExists"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "IotHubNameUnavailabilityReason",
+ "modelAsString": false
+ }
+ },
+ "message": {
+ "description": "The detailed reason message.",
+ "type": "string"
+ }
+ }
+ },
+ "UserSubscriptionQuotaListResult": {
+ "type": "object",
+ "description": "Json-serialized array of User subscription quota response",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UserSubscriptionQuota"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UserSubscriptionQuota": {
+ "description": "User subscription quota response",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "IotHub type id",
+ "type": "string"
+ },
+ "type": {
+ "description": "Response type",
+ "type": "string"
+ },
+ "unit": {
+ "description": "Unit of IotHub type",
+ "type": "string"
+ },
+ "currentValue": {
+ "description": "Current number of IotHub type",
+ "format": "int32",
+ "type": "integer"
+ },
+ "limit": {
+ "description": "Numerical limit on IotHub type",
+ "format": "int32",
+ "type": "integer"
+ },
+ "name": {
+ "description": "IotHub type",
+ "$ref": "#/definitions/Name"
+ }
+ }
+ },
+ "Name": {
+ "description": "Name of Iot Hub type",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "IotHub type",
+ "type": "string"
+ },
+ "localizedValue": {
+ "description": "Localized value of name",
+ "type": "string"
+ }
+ }
+ },
+ "TestAllRoutesInput": {
+ "description": "Input for testing all routes",
+ "type": "object",
+ "properties": {
+ "routingSource": {
+ "description": "Routing source",
+ "enum": [
+ "Invalid",
+ "DeviceMessages",
+ "TwinChangeEvents",
+ "DeviceLifecycleEvents",
+ "DeviceJobLifecycleEvents",
+ "DigitalTwinChangeEvents"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "RoutingSource",
+ "modelAsString": true
+ }
+ },
+ "message": {
+ "description": "Routing message",
+ "$ref": "#/definitions/RoutingMessage"
+ },
+ "twin": {
+ "description": "Routing Twin Reference",
+ "$ref": "#/definitions/RoutingTwin"
+ }
+ }
+ },
+ "RoutingTwin": {
+ "description": "Twin reference input parameter. This is an optional parameter",
+ "type": "object",
+ "properties": {
+ "tags": {
+ "description": "Twin Tags",
+ "type": "object"
+ },
+ "properties": {
+ "properties": {
+ "desired": {
+ "description": "Twin desired properties",
+ "type": "object"
+ },
+ "reported": {
+ "description": "Twin desired properties",
+ "type": "object"
+ }
+ }
+ }
+ }
+ },
+ "RoutingMessage": {
+ "description": "Routing message",
+ "type": "object",
+ "properties": {
+ "body": {
+ "description": "Body of routing message",
+ "type": "string"
+ },
+ "appProperties": {
+ "description": "App properties",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "systemProperties": {
+ "description": "System properties",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "TestAllRoutesResult": {
+ "description": "Result of testing all routes",
+ "type": "object",
+ "properties": {
+ "routes": {
+ "description": "JSON-serialized array of matched routes",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MatchedRoute"
+ }
+ }
+ }
+ },
+ "MatchedRoute": {
+ "description": "Routes that matched",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "Properties of routes that matched",
+ "$ref": "#/definitions/RouteProperties"
+ }
+ }
+ },
+ "TestRouteInput": {
+ "required": [
+ "route"
+ ],
+ "description": "Input for testing route",
+ "type": "object",
+ "properties": {
+ "message": {
+ "description": "Routing message",
+ "$ref": "#/definitions/RoutingMessage"
+ },
+ "route": {
+ "description": "Route properties",
+ "$ref": "#/definitions/RouteProperties"
+ },
+ "twin": {
+ "description": "Routing Twin Reference",
+ "$ref": "#/definitions/RoutingTwin"
+ }
+ }
+ },
+ "TestRouteResult": {
+ "description": "Result of testing one route",
+ "type": "object",
+ "properties": {
+ "result": {
+ "description": "Result of testing route",
+ "enum": [
+ "undefined",
+ "false",
+ "true"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TestResultStatus",
+ "modelAsString": true
+ }
+ },
+ "details": {
+ "description": "Detailed result of testing route",
+ "$ref": "#/definitions/TestRouteResultDetails"
+ }
+ }
+ },
+ "TestRouteResultDetails": {
+ "description": "Detailed result of testing a route",
+ "type": "object",
+ "properties": {
+ "compilationErrors": {
+ "description": "JSON-serialized list of route compilation errors",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RouteCompilationError"
+ }
+ }
+ }
+ },
+ "RouteCompilationError": {
+ "description": "Compilation error when evaluating route",
+ "type": "object",
+ "properties": {
+ "message": {
+ "description": "Route error message",
+ "type": "string"
+ },
+ "severity": {
+ "description": "Severity of the route error",
+ "enum": [
+ "error",
+ "warning"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "RouteErrorSeverity",
+ "modelAsString": true
+ }
+ },
+ "location": {
+ "description": "Location where the route error happened",
+ "$ref": "#/definitions/RouteErrorRange"
+ }
+ }
+ },
+ "RouteErrorRange": {
+ "description": "Range of route errors",
+ "type": "object",
+ "properties": {
+ "start": {
+ "description": "Start where the route error happened",
+ "$ref": "#/definitions/RouteErrorPosition"
+ },
+ "end": {
+ "description": "End where the route error happened",
+ "$ref": "#/definitions/RouteErrorPosition"
+ }
+ }
+ },
+ "RouteErrorPosition": {
+ "description": "Position where the route error happened",
+ "type": "object",
+ "properties": {
+ "line": {
+ "description": "Line where the route error happened",
+ "format": "int32",
+ "type": "integer"
+ },
+ "column": {
+ "description": "Column where the route error happened",
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ },
+ "ExportDevicesRequest": {
+ "description": "Use to provide parameters when requesting an export of all devices in the IoT hub.",
+ "type": "object",
+ "properties": {
+ "exportBlobContainerUri": {
+ "description": "The export blob container URI.",
+ "type": "string"
+ },
+ "excludeKeys": {
+ "description": "The value indicating whether keys should be excluded during export.",
+ "type": "boolean"
+ },
+ "exportBlobName": {
+ "description": "The name of the blob that will be created in the provided output blob container. This blob will contain the exported device registry information for the IoT Hub.",
+ "type": "string"
+ },
+ "authenticationType": {
+ "description": "Specifies authentication type being used for connecting to the storage account.",
+ "enum": [
+ "keyBased",
+ "identityBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AuthenticationType",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "exportBlobContainerUri",
+ "excludeKeys"
+ ]
+ },
+ "ImportDevicesRequest": {
+ "description": "Use to provide parameters when requesting an import of all devices in the hub.",
+ "type": "object",
+ "properties": {
+ "inputBlobContainerUri": {
+ "description": "The input blob container URI.",
+ "type": "string"
+ },
+ "outputBlobContainerUri": {
+ "description": "The output blob container URI.",
+ "type": "string"
+ },
+ "inputBlobName": {
+ "description": "The blob name to be used when importing from the provided input blob container.",
+ "type": "string"
+ },
+ "outputBlobName": {
+ "description": "The blob name to use for storing the status of the import job.",
+ "type": "string"
+ },
+ "authenticationType": {
+ "description": "Specifies authentication type being used for connecting to the storage account.",
+ "enum": [
+ "keyBased",
+ "identityBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AuthenticationType",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "inputBlobContainerUri",
+ "outputBlobContainerUri"
+ ]
+ },
+ "FailoverInput": {
+ "description": "Use to provide failover region when requesting manual Failover for a hub.",
+ "type": "object",
+ "properties": {
+ "failoverRegion": {
+ "description": "Region the hub will be failed over to",
+ "type": "string"
+ }
+ },
+ "required": [
+ "failoverRegion"
+ ]
+ },
+ "IotHubLocationDescription": {
+ "description": "Public representation of one of the locations where a resource is provisioned.",
+ "type": "object",
+ "properties": {
+ "location": {
+ "description": "The name of the Azure region",
+ "type": "string"
+ },
+ "role": {
+ "description": "The role of the region, can be either primary or secondary. The primary region is where the IoT hub is currently provisioned. The secondary region is the Azure disaster recovery (DR) paired region and also the region where the IoT hub can failover to.",
+ "enum": [
+ "primary",
+ "secondary"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IotHubReplicaRoleType",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "EncryptionPropertiesDescription": {
+ "description": "The encryption properties for the IoT hub.",
+ "type": "object",
+ "properties": {
+ "keySource": {
+ "description": "The source of the key.",
+ "type": "string"
+ },
+ "keyVaultProperties": {
+ "description": "The properties of the KeyVault key.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/KeyVaultKeyProperties"
+ }
+ }
+ }
+ },
+ "KeyVaultKeyProperties": {
+ "description": "The properties of the KeyVault key.",
+ "type": "object",
+ "properties": {
+ "keyIdentifier": {
+ "type": "string",
+ "description": "The identifier of the key."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "subscriptionId": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "The subscription identifier.",
+ "required": true,
+ "type": "string"
+ },
+ "api-version": {
+ "name": "api-version",
+ "in": "query",
+ "description": "The version of the API.",
+ "required": true,
+ "type": "string"
+ },
+ "resourceGroupName": {
+ "name": "resourceGroupName",
+ "description": "The name of the resource group that contains the IoT hub.",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "resourceName": {
+ "name": "resourceName",
+ "in": "path",
+ "description": "The name of the IoT hub.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "certificateName": {
+ "name": "certificateName",
+ "in": "path",
+ "description": "The name of the certificate",
+ "required": true,
+ "type": "string",
+ "pattern": "^[A-Za-z0-9-._]{1,64}$",
+ "x-ms-parameter-location": "method"
+ },
+ "groupId": {
+ "name": "groupId",
+ "in": "path",
+ "description": "The name of the private link resource",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "privateEndpointConnectionName": {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "description": "The name of the private endpoint connection",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/IotHub_ManualFailover.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/IotHub_ManualFailover.json
new file mode 100644
index 000000000000..38ed67f15fe6
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/IotHub_ManualFailover.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "iotHubName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "failoverInput": {
+ "failoverRegion": "testHub"
+ }
+ },
+ "responses": {
+ "200": {},
+ "202": {}
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/checkNameAvailability.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/checkNameAvailability.json
new file mode 100644
index 000000000000..4e50438eb60e
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/checkNameAvailability.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "operationInputs": {
+ "name": "test-request"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": true,
+ "reason": "Invalid",
+ "message": ""
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_certificatescreateorupdate.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_certificatescreateorupdate.json
new file mode 100644
index 000000000000..0f3880d49dbd
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_certificatescreateorupdate.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "resourceName": "iothub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "certificateDescription": {
+ "properties": {
+ "certificate": "############################################"
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "body": {
+ "properties": {
+ "subject": "CN=testdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "certificate": "############################################"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServives/myFirstProvisioningService/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/IotHubs/Certificates",
+ "etag": "AAAAAAExpNs="
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "subject": "CN=testdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "certificate": "############################################"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServives/myFirstProvisioningService/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/IotHubs/Certificates",
+ "etag": "AAAAAAExpNs="
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_certificatesdelete.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_certificatesdelete.json
new file mode 100644
index 000000000000..f7a99bc73484
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_certificatesdelete.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "resourceName": "myhub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "If-Match": "AAAAAAAADGk="
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_certverify.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_certverify.json
new file mode 100644
index 000000000000..981193129a63
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_certverify.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "resourceName": "myFirstProvisioningService",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "If-Match": "AAAAAAAADGk=",
+ "certificateVerificationBody": {
+ "certificate": "#####################################"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "subject": "CN=andbucdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": true,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:26:56 GMT"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/IotHubs/Certificates",
+ "etag": "AAAAAAExpTQ="
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_createOrUpdate.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_createOrUpdate.json
new file mode 100644
index 000000000000..587c6d5912cb
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_createOrUpdate.json
@@ -0,0 +1,226 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "iotHubDescription": {
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "ipFilterRules": [],
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "name": "$fallback",
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None",
+ "minTlsVersion": "1.2"
+ },
+ "sku": {
+ "name": "S1",
+ "capacity": 1
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/ae24ff83-d2ca-4fc8-9717-05dae4bba489/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "name": "$fallback",
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None",
+ "minTlsVersion": "1.2"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/ae24ff83-d2ca-4fc8-9717-05dae4bba489/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "name": "$fallback",
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None",
+ "minTlsVersion": "1.2"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_createconsumergroup.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_createconsumergroup.json
new file mode 100644
index 000000000000..f5d1bb14db46
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_createconsumergroup.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "eventHubEndpointName": "events",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "name": "test",
+ "consumerGroupBody": {
+ "properties": {
+ "name": "test"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "created": "Thu, 15 Jun 2017 19:20:58 GMT"
+ },
+ "id": "/subscriptions/cmd-sub-1/resourceGroups/cmd-rg-1/providers/Microsoft.Devices/IotHubs/test-hub-2/eventHubEndpoints/events/ConsumerGroups/%24Default",
+ "name": "test",
+ "type": "Microsoft.Devices/IotHubs/EventHubEndpoints/ConsumerGroups",
+ "etag": "AAAAAAFD6M4="
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_delete.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_delete.json
new file mode 100644
index 000000000000..75dca824ab79
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_delete.json
@@ -0,0 +1,164 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ },
+ "204": {},
+ "202": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ },
+ "404": {
+ "body": {}
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_deleteconsumergroup.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_deleteconsumergroup.json
new file mode 100644
index 000000000000..5433c162b85b
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_deleteconsumergroup.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "eventHubEndpointName": "events",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "name": "test"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_deleteprivateendpointconnection.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_deleteprivateendpointconnection.json
new file mode 100644
index 000000000000..0f482f86522a
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_deleteprivateendpointconnection.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "privateEndpointConnectionName": "myPrivateEndpointConnection"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/IotHubs/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Disconnected",
+ "description": "Deleted",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/IotHubs/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Disconnected",
+ "description": "Deleted",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_exportdevices.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_exportdevices.json
new file mode 100644
index 000000000000..aa439d238045
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_exportdevices.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "exportDevicesParameters": {
+ "exportBlobContainerUri": "testBlob",
+ "excludeKeys": true
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "jobId": "test",
+ "startTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "endTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "type": "unknown",
+ "status": "unknown"
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_generateverificationcode.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_generateverificationcode.json
new file mode 100644
index 000000000000..ccd4a3866903
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_generateverificationcode.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert",
+ "If-Match": "AAAAAAAADGk="
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "name": "cert",
+ "properties": {
+ "verificationCode": "##################################",
+ "subject": "CN=andbucdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "##############################",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:26:56 GMT"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_get.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_get.json
new file mode 100644
index 000000000000..88777e621eeb
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_get.json
@@ -0,0 +1,96 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None",
+ "locations": [
+ {
+ "location": "West US",
+ "role": "primary"
+ },
+ {
+ "location": "East US",
+ "role": "secondary"
+ }
+ ],
+ "minTlsVersion": "1.2"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getcertificate.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getcertificate.json
new file mode 100644
index 000000000000..b4714ea5da31
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getcertificate.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "resourceName": "testhub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "certificateName": "cert"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "subject": "CN=testdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "certificate": "############################################"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/andbuc-hub/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/IotHubs/Certificates",
+ "etag": "AAAAAAExpNs="
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getconsumergroup.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getconsumergroup.json
new file mode 100644
index 000000000000..51370b4ee7c8
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getconsumergroup.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "eventHubEndpointName": "events",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "name": "test"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "created": "Thu, 15 Jun 2017 19:20:58 GMT"
+ },
+ "id": "/subscriptions/cmd-sub-1/resourceGroups/cmd-rg-1/providers/Microsoft.Devices/IotHubs/test-hub-2/eventHubEndpoints/events/ConsumerGroups/%24Default",
+ "name": "test",
+ "type": "Microsoft.Devices/IotHubs/EventHubEndpoints/ConsumerGroups",
+ "etag": "AAAAAAFD6M4="
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getjob.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getjob.json
new file mode 100644
index 000000000000..c36cbdcff46a
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getjob.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "jobId": "test"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "jobId": "test",
+ "startTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "endTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "type": "unknown",
+ "status": "unknown"
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getkey.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getkey.json
new file mode 100644
index 000000000000..30fd8e1f4601
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getkey.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "keyName": "iothubowner"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "keyName": "iothubowner",
+ "primaryKey": "2aWPrKloLLdcug12ZHNpA0e07yJmRRmYMXDLpEOTd/Y=",
+ "secondaryKey": "DLyFnDTGMDK0BU2QjT5TCkNBQ4h08mi20vOqWMC7TxU=",
+ "rights": "RegistryWrite, ServiceConnect, DeviceConnect"
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getprivateendpointconnection.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getprivateendpointconnection.json
new file mode 100644
index 000000000000..7ca147a39339
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getprivateendpointconnection.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "privateEndpointConnectionName": "myPrivateEndpointConnection"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/IotHubs/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Pending",
+ "description": "Please approve my request!",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getprivatelinkresources.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getprivatelinkresources.json
new file mode 100644
index 000000000000..f2a95e6350bf
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getprivatelinkresources.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "groupId": "iotHub"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateLinkResources/iotHub",
+ "name": "iotHub",
+ "type": "Microsoft.Devices/IotHubs/PrivateLinkResources",
+ "properties": {
+ "groupId": "iotHub",
+ "requiredMembers": [
+ "iotHub"
+ ],
+ "requiredZoneNames": [
+ "privatelink.azure-devices.net"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getskus.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getskus.json
new file mode 100644
index 000000000000..3773790f909f
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_getskus.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "resourceType": "Microsoft.Devices/IotHubs",
+ "sku": {
+ "name": "S1",
+ "tier": "Standard"
+ },
+ "capacity": {
+ "default": 1,
+ "scaleType": "Manual"
+ }
+ },
+ {
+ "resourceType": "Microsoft.Devices/IotHubs",
+ "sku": {
+ "name": "S2",
+ "tier": "Standard"
+ },
+ "capacity": {
+ "minimum": 1,
+ "maximum": 200,
+ "default": 1,
+ "scaleType": "Manual"
+ }
+ },
+ {
+ "resourceType": "Microsoft.Devices/IotHubs",
+ "sku": {
+ "name": "S3",
+ "tier": "Standard"
+ },
+ "capacity": {
+ "minimum": 1,
+ "maximum": 10,
+ "default": 1,
+ "scaleType": "Manual"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_importdevices.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_importdevices.json
new file mode 100644
index 000000000000..11ea4a0db031
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_importdevices.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "importDevicesParameters": {
+ "inputBlobContainerUri": "testBlob",
+ "outputBlobContainerUri": "testBlob"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "jobId": "test",
+ "startTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "endTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "type": "unknown",
+ "status": "unknown"
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listbyrg.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listbyrg.json
new file mode 100644
index 000000000000..72173cc6f9d1
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listbyrg.json
@@ -0,0 +1,90 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "name": "$fallback",
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listbysubscription.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listbysubscription.json
new file mode 100644
index 000000000000..fca5c74a1951
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listbysubscription.json
@@ -0,0 +1,89 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {},
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "name": "$fallback",
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listcertificates.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listcertificates.json
new file mode 100644
index 000000000000..43f0be9cf9d9
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listcertificates.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "resourceName": "testhub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "subject": "CN=testdevice1",
+ "expiry": "Sat, 31 Dec 2039 23:59:59 GMT",
+ "thumbprint": "97388663832D0393C9246CAB4FBA2C8677185A25",
+ "isVerified": false,
+ "created": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "updated": "Thu, 12 Oct 2017 19:23:50 GMT",
+ "certificate": "############################################"
+ },
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/andbuc-hub/certificates/cert",
+ "name": "cert",
+ "type": "Microsoft.Devices/IotHubs/Certificates",
+ "etag": "AAAAAAExpNs="
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listehgroups.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listehgroups.json
new file mode 100644
index 000000000000..47e0daf8fe4e
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listehgroups.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "eventHubEndpointName": "events",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "created": "Thu, 15 Jun 2017 19:20:58 GMT"
+ },
+ "id": "/subscriptions/cmd-sub-1/resourceGroups/cmd-rg-1/providers/Microsoft.Devices/IotHubs/test-hub-2/eventHubEndpoints/events/ConsumerGroups/%24Default",
+ "name": "$Default",
+ "type": "Microsoft.Devices/IotHubs/EventHubEndpoints/ConsumerGroups",
+ "etag": "AAAAAAFD6M4="
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listjobs.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listjobs.json
new file mode 100644
index 000000000000..e8b6d3464ff2
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listjobs.json
@@ -0,0 +1,23 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "jobId": "test",
+ "startTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "endTimeUtc": "Thu, 15 Jun 2017 19:20:58 GMT",
+ "type": "unknown",
+ "status": "unknown"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listkeys.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listkeys.json
new file mode 100644
index 000000000000..ccbb3f9f7a08
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listkeys.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "keyName": "iothubowner",
+ "primaryKey": "2aWPrKloLLdcug12ZHNpA0e07yJmRRmYMXDLpEOTd/Y=",
+ "secondaryKey": "DLyFnDTGMDK0BU2QjT5TCkNBQ4h08mi20vOqWMC7TxU=",
+ "rights": "RegistryWrite, ServiceConnect, DeviceConnect"
+ },
+ {
+ "keyName": "service",
+ "primaryKey": "DinqxWW+s814W2Pc3dLxleelksqSYGy8Jfymt8J7a4c=",
+ "secondaryKey": "5G8KgJ9Wx2T0f6HRIn25TgYcFmJnBSivawNaHssiP9Y=",
+ "rights": "ServiceConnect"
+ },
+ {
+ "keyName": "device",
+ "primaryKey": "o/9gPc0oD8LY/r2lRurgl9U/sKFcL2c/tmFLKAiz+e0=",
+ "secondaryKey": "YOeBMHnYP95vH+ykR8OeapnhS6W8raMsXOdNFwqg4lg=",
+ "rights": "DeviceConnect"
+ },
+ {
+ "keyName": "registryRead",
+ "primaryKey": "h2d4mPxy6jPCWX6mO+katV9QPNJivzt4aFq0iGVc1A8=",
+ "secondaryKey": "3TdcalZNTB7BZHl88LGsG1Z5T6+ElEODunrs1vylwGg=",
+ "rights": "RegistryRead"
+ },
+ {
+ "keyName": "registryReadWrite",
+ "primaryKey": "tyNRcaI38fXL+gQTjCmrVZGTP4YFF7uACk7pppWLWzY=",
+ "secondaryKey": "6P6DXOp0W3HO5/IotzcPS1kx7PHiOdesaND07Im5cYI=",
+ "rights": "RegistryWrite"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listprivateendpointconnections.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listprivateendpointconnections.json
new file mode 100644
index 000000000000..269b382a722b
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listprivateendpointconnections.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": [
+ {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/IotHubs/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Pending",
+ "description": "Please approve my request!",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ]
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listprivatelinkresources.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listprivatelinkresources.json
new file mode 100644
index 000000000000..8f64796d12ec
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_listprivatelinkresources.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateLinkResources/iotHub",
+ "name": "iotHub",
+ "type": "Microsoft.Devices/IotHubs/PrivateLinkResources",
+ "properties": {
+ "groupId": "iotHub",
+ "requiredMembers": [
+ "iotHub"
+ ],
+ "requiredZoneNames": [
+ "privatelink.azure-devices.net"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_operations.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_operations.json
new file mode 100644
index 000000000000..db24030bfc88
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_operations.json
@@ -0,0 +1,328 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.Devices/register/action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Register Resource Provider",
+ "description": "Register the subscription for the IotHub resource provider and enables the creation of IotHub resources"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/diagnosticSettings/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Diagnostic Setting",
+ "description": "Gets the diagnostic setting for the resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/diagnosticSettings/write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Set Diagnostic Setting",
+ "description": "Creates or updates the diagnostic setting for the resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/metricDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read IotHub service metric definitions",
+ "description": "Gets the available metrics for the IotHub service"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/IotHubs/logDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read IotHub service log definitions",
+ "description": "Gets the available log definitions for the IotHub Service"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/operations/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get All ResourceProvider Operations",
+ "description": "Get All ResourceProvider Operations"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/checkNameAvailability/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Check If IotHub name is available",
+ "description": "Check If IotHub name is available"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/usages/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Subscription Usages",
+ "description": "Get subscription usage details for this provider."
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get IotHub(s)",
+ "description": "Gets the IotHub resource(s)"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/Write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Create or update IotHub Resource",
+ "description": "Create or update IotHub Resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/Delete",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Delete IotHub Resource",
+ "description": "Delete IotHub Resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/iotHubStats/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get IotHub Statistics",
+ "description": "Get IotHub Statistics"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/skus/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get valid IotHub Skus",
+ "description": "Get valid IotHub Skus"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/listkeys/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get all IotHub Keys",
+ "description": "Get all IotHub Keys"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/iotHubKeys/listkeys/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get IotHub Key for the given name",
+ "description": "Get IotHub Key for the given name"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Create EventHub Consumer Group",
+ "description": "Create EventHub Consumer Group"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get EventHub Consumer Group(s)",
+ "description": "Get EventHub Consumer Group(s)"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Delete",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Delete EventHub Consumer Group",
+ "description": "Delete EventHub Consumer Group"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/exportDevices/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Export Devices",
+ "description": "Export Devices"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/importDevices/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Import Devices",
+ "description": "Import Devices"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/jobs/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get the Job(s) on IotHub",
+ "description": "Get Job(s) details submitted on given IotHub"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/quotaMetrics/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Quota Metrics",
+ "description": "Get Quota Metrics"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/routing/routes/$testall/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Routing Rule Test All",
+ "description": "Test a message against all existing Routes"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/routing/routes/$testnew/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Routing Rule Test Route",
+ "description": "Test a message against a provided test Route"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/iotHubs/routingEndpointsHealth/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Endpoint Health",
+ "description": "Gets the health of all routing Endpoints for an IotHub"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/diagnosticSettings/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Get Diagnostic Setting",
+ "description": "Gets the diagnostic setting for the resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/diagnosticSettings/write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Set Diagnostic Setting",
+ "description": "Creates or updates the diagnostic setting for the resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/metricDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read DPS service metric definitions",
+ "description": "Gets the available metrics for the DPS service"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/ProvisioningServices/logDefinitions/read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "IotHubs",
+ "operation": "Read DPS service log definitions",
+ "description": "Gets the available log definitions for the DPS Service"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/checkProvisioningServiceNameAvailability/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServives",
+ "operation": "Check If Provisioning Service name is available",
+ "description": "Check If Provisioning Service name is available"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Get Provisioning Service resource",
+ "description": "Get Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/Write",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Create Provisioning Service resource",
+ "description": "Create Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/Delete",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Delete Provisioning Service resource",
+ "description": "Delete Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/skus/Read",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "Delete Provisioning Service resource",
+ "description": "Delete Provisioning Service resource"
+ }
+ },
+ {
+ "name": "Microsoft.Devices/provisioningServices/listkeys/Action",
+ "display": {
+ "provider": "Microsoft Devices",
+ "resource": "ProvisioningServices",
+ "operation": "get security related metadata",
+ "description": "get security related metadata"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_patch.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_patch.json
new file mode 100644
index 000000000000..cfb7448b13ef
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_patch.json
@@ -0,0 +1,95 @@
+{
+ "parameters": {
+ "resourceName": "myHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "location": "East US",
+ "type": "Microsoft.Devices/IotHubs",
+ "IotHubTags": {
+ "tags": {
+ "foo": "bar"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/ae24ff83-d2ca-4fc8-9717-05dae4bba489/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub",
+ "name": "testHub",
+ "type": "Microsoft.Devices/IotHubs",
+ "location": "centraluseuap",
+ "tags": {
+ "foo": "bar"
+ },
+ "etag": "AAAAAAFD6M4=",
+ "properties": {
+ "state": "Active",
+ "provisioningState": "Succeeded",
+ "ipFilterRules": [],
+ "hostName": "iot-dps-cit-hub-1.azure-devices.net",
+ "eventHubEndpoints": {
+ "events": {
+ "retentionTimeInDays": 1,
+ "partitionCount": 2,
+ "partitionIds": [
+ "0",
+ "1"
+ ],
+ "path": "iot-dps-cit-hub-1",
+ "endpoint": "sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/"
+ }
+ },
+ "routing": {
+ "endpoints": {
+ "serviceBusQueues": [],
+ "serviceBusTopics": [],
+ "eventHubs": [],
+ "storageContainers": []
+ },
+ "routes": [],
+ "fallbackRoute": {
+ "name": "$fallback",
+ "source": "DeviceMessages",
+ "condition": "true",
+ "endpointNames": [
+ "events"
+ ],
+ "isEnabled": true
+ }
+ },
+ "storageEndpoints": {
+ "$default": {
+ "sasTtlAsIso8601": "PT1H",
+ "connectionString": "",
+ "containerName": ""
+ }
+ },
+ "messagingEndpoints": {
+ "fileNotifications": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "enableFileUploadNotifications": false,
+ "cloudToDevice": {
+ "maxDeliveryCount": 10,
+ "defaultTtlAsIso8601": "PT1H",
+ "feedback": {
+ "lockDurationAsIso8601": "PT1M",
+ "ttlAsIso8601": "PT1H",
+ "maxDeliveryCount": 10
+ }
+ },
+ "features": "None"
+ },
+ "sku": {
+ "name": "S1",
+ "tier": "Standard",
+ "capacity": 1
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_quotametrics.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_quotametrics.json
new file mode 100644
index 000000000000..92d6d8c274c4
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_quotametrics.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "TotalMessages",
+ "currentValue": 0,
+ "maxValue": 400000
+ },
+ {
+ "name": "TotalDeviceCount",
+ "currentValue": 0,
+ "maxValue": 500000
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_routingendpointhealth.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_routingendpointhealth.json
new file mode 100644
index 000000000000..cde665e3139f
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_routingendpointhealth.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "iotHubName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "endpointId": "id1",
+ "healthStatus": "healthy",
+ "lastSuccessfulSendAttemptTime": "2020-03-26T21:20:57Z",
+ "lastSendAttemptTime": "2020-03-26T21:24:57Z"
+ },
+ {
+ "endpointId": "id2",
+ "healthStatus": "unknown"
+ },
+ {
+ "endpointId": "id3",
+ "healthStatus": "unhealthy",
+ "lastKnownError": "NotFound",
+ "lastKnownErrorTime": "2020-03-26T21:24:57Z",
+ "lastSuccessfulSendAttemptTime": "2020-03-26T21:20:57Z",
+ "lastSendAttemptTime": "2020-03-26T21:24:57Z"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_stats.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_stats.json
new file mode 100644
index 000000000000..1a7bcb918e7e
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_stats.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2018-04-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "totalDeviceCount": 0,
+ "enabledDeviceCount": 0,
+ "disabledDeviceCount": 0
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_testallroutes.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_testallroutes.json
new file mode 100644
index 000000000000..88aba4217c40
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_testallroutes.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "iotHubName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "input": {
+ "routingSource": "DeviceMessages",
+ "message": {
+ "body": "Body of message",
+ "appProperties": {
+ "key1": "value1"
+ },
+ "systemProperties": {
+ "key1": "value1"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "routes": [
+ {
+ "properties": {
+ "name": "Routeid",
+ "source": "DeviceMessages",
+ "endpointNames": [
+ "id1"
+ ],
+ "isEnabled": true
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_testnewroute.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_testnewroute.json
new file mode 100644
index 000000000000..8879057f8636
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_testnewroute.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "iotHubName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "input": {
+ "message": {
+ "body": "Body of message",
+ "appProperties": {
+ "key1": "value1"
+ },
+ "systemProperties": {
+ "key1": "value1"
+ }
+ },
+ "route": {
+ "name": "Routeid",
+ "source": "DeviceMessages",
+ "endpointNames": [
+ "id1"
+ ],
+ "isEnabled": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "result": "false",
+ "details": {
+ "compilationErrors": [
+ {
+ "message": "string response",
+ "severity": "error",
+ "location": {
+ "start": {
+ "line": 12,
+ "column": 12
+ },
+ "end": {
+ "line": 12,
+ "column": 24
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_updateprivateendpointconnection.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_updateprivateendpointconnection.json
new file mode 100644
index 000000000000..900a463d5c99
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_updateprivateendpointconnection.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "resourceName": "testHub",
+ "resourceGroupName": "myResourceGroup",
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0",
+ "privateEndpointConnectionName": "myPrivateEndpointConnection",
+ "privateEndpointConnection": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by johndoe@contoso.com"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/IotHubs/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by johndoe@contoso.com",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub/PrivateEndpointConnections/myPrivateEndpointConnection",
+ "name": "myPrivateEndpointConnection",
+ "type": "Microsoft.Devices/IotHubs/PrivateEndpointConnections",
+ "properties": {
+ "privateEndpoint": {
+ "id": "/subscriptions/a9eba280-4734-4d49-878f-b5549d1d0453/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Approved by johndoe@contoso.com",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_usages.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_usages.json
new file mode 100644
index 000000000000..f767c7e6aba5
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/examples/iothub_usages.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01",
+ "subscriptionId": "91d12660-3dec-467a-be2a-213b5544ddc0"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscription/91d12660-3dec-467a-be2a-213b5544ddc0/providers/Microsoft.Devices/usages/freeHubCount",
+ "type": "/subscription/91d12660-3dec-467a-be2a-213b5544ddc0/providers/Microsoft.Devices/usages",
+ "unit": "count",
+ "currentValue": 1,
+ "limit": 1,
+ "name": {
+ "value": "FreeHubCount",
+ "localizedValue": "Free Hub Count"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/iothub.json b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/iothub.json
new file mode 100644
index 000000000000..1a69c060f0f6
--- /dev/null
+++ b/specification/iothub/resource-manager/Microsoft.Devices/stable/2020-08-01/iothub.json
@@ -0,0 +1,4212 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-08-01",
+ "title": "iotHubClient",
+ "description": "Use this API to manage the IoT hubs in your Azure subscription.",
+ "x-ms-code-generation-settings": {
+ "header": "MICROSOFT_MIT_NO_VERSION"
+ }
+ },
+ "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.Devices/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "x-ms-examples": {
+ "Operations_List": {
+ "$ref": "./examples/iothub_operations.json"
+ }
+ },
+ "operationId": "Operations_List",
+ "description": "Lists all of the available IoT Hub REST API operations.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the non-security related metadata of an IoT hub",
+ "description": "Get the non-security related metadata of an IoT hub.",
+ "operationId": "IotHubResource_Get",
+ "x-ms-examples": {
+ "IotHubResource_Get": {
+ "$ref": "./examples/iothub_get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains all the non-security properties of the IoT hub. Security-related properties are set to null.",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "put": {
+ "tags": [
+ "PUT"
+ ],
+ "summary": "Create or update the metadata of an IoT hub.",
+ "description": "Create or update the metadata of an Iot hub. The usual pattern to modify a property is to retrieve the IoT hub metadata and security metadata, and then combine them with the modified values in a new body to update the IoT hub.",
+ "operationId": "IotHubResource_CreateOrUpdate",
+ "x-ms-examples": {
+ "IotHubResource_CreateOrUpdate": {
+ "$ref": "./examples/iothub_createOrUpdate.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "iotHubDescription",
+ "in": "body",
+ "description": "The IoT hub metadata and security metadata.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "ETag of the IoT Hub. Do not specify for creating a brand new IoT Hub. Required to update an existing IoT Hub."
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "This is a long running operation. The operation returns a 201 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation. If successful, the operation returns HTTP status code of 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ },
+ "200": {
+ "description": "This is returned as a response to the status polling request for the create or update operation. The body contains the resource representation that indicates a transitional provisioning state.",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "patch": {
+ "tags": [
+ "PATCH"
+ ],
+ "summary": "Update an existing IoT Hubs tags.",
+ "description": "Update an existing IoT Hub tags. to update other fields use the CreateOrUpdate method",
+ "x-ms-long-running-operation": true,
+ "operationId": "IotHubResource_Update",
+ "x-ms-examples": {
+ "IotHubResource_Update": {
+ "$ref": "./examples/iothub_patch.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Resource group identifier."
+ },
+ {
+ "name": "resourceName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of iot hub to update."
+ },
+ {
+ "name": "IotHubTags",
+ "in": "body",
+ "required": true,
+ "description": "Updated tag information to set into the iot hub instance.",
+ "schema": {
+ "$ref": "#/definitions/TagsResource"
+ }
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Iot Hub was successfully updated",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "delete": {
+ "tags": [
+ "DELETE"
+ ],
+ "summary": "Delete an IoT hub",
+ "description": "Delete an IoT hub.",
+ "operationId": "IotHubResource_Delete",
+ "x-ms-examples": {
+ "IotHubResource_Delete": {
+ "$ref": "./examples/iothub_delete.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "The Iot Hub resource provider always returns a 202 Accepted status code with valid Location and Retry-After headers. The resource provider also sets the Azure-AsyncOperation header with a URL that points to the operation resource for this operation. Subsequent GET attempts on the resource after a DELETE operation return a resource representation that indicates a transitional provisioning state (such as Terminating). To retrieve the status of the operation, a client can either poll the URL returned in the Location header after the Retry-After interval, get the IoT Hub service status directly, or query the operation resource.",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ },
+ "200": {
+ "description": "This is returned as a response to the status polling request for the delete operation. The body contains the resource representation that indicates a transitional provisioning state.",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ },
+ "204": {
+ "description": "Once the long running delete operation completes successfully, a 204 No Content status code is returned when the status polling request finds the Iot hub metadata in the service and the status of the delete operation is set to a completed state."
+ },
+ "404": {
+ "description": "After the long running delete operation completes successfully, a 404 Not Found is returned when the status polling request no longer finds the Iot hub metadata in the service.",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Devices/IotHubs": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get all the IoT hubs in a subscription",
+ "description": "Get all the IoT hubs in a subscription.",
+ "operationId": "IotHubResource_ListBySubscription",
+ "x-ms-examples": {
+ "IotHubResource_ListBySubscription": {
+ "$ref": "./examples/iothub_listbysubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the IoT hubs in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescriptionListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get all the IoT hubs in a resource group",
+ "description": "Get all the IoT hubs in a resource group.",
+ "operationId": "IotHubResource_ListByResourceGroup",
+ "x-ms-examples": {
+ "IotHubResource_ListByResourceGroup": {
+ "$ref": "./examples/iothub_listbyrg.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the IoT hubs in the resource group.",
+ "schema": {
+ "$ref": "#/definitions/IotHubDescriptionListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/IotHubStats": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the statistics from an IoT hub",
+ "description": "Get the statistics from an IoT hub.",
+ "operationId": "IotHubResource_GetStats",
+ "x-ms-examples": {
+ "IotHubResource_GetStats": {
+ "$ref": "./examples/iothub_stats.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains JSON-serialized statistics from the identity registry in the IoT hub.",
+ "schema": {
+ "$ref": "#/definitions/RegistryStatistics"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/skus": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the list of valid SKUs for an IoT hub",
+ "description": "Get the list of valid SKUs for an IoT hub.",
+ "operationId": "IotHubResource_GetValidSkus",
+ "x-ms-examples": {
+ "IotHubResource_GetValidSkus": {
+ "$ref": "./examples/iothub_getskus.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of the valid SKUs for this IoT hub.",
+ "schema": {
+ "$ref": "#/definitions/IotHubSkuDescriptionListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get a list of the consumer groups in the Event Hub-compatible device-to-cloud endpoint in an IoT hub",
+ "description": "Get a list of the consumer groups in the Event Hub-compatible device-to-cloud endpoint in an IoT hub.",
+ "operationId": "IotHubResource_ListEventHubConsumerGroups",
+ "x-ms-examples": {
+ "IotHubResource_ListEventHubConsumerGroups": {
+ "$ref": "./examples/iothub_listehgroups.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "eventHubEndpointName",
+ "in": "path",
+ "description": "The name of the Event Hub-compatible endpoint.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized list of the consumer groups in the Event Hub-compatible endpoint in this IoT hub",
+ "schema": {
+ "$ref": "#/definitions/EventHubConsumerGroupsListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups/{name}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get a consumer group from the Event Hub-compatible device-to-cloud endpoint for an IoT hub",
+ "description": "Get a consumer group from the Event Hub-compatible device-to-cloud endpoint for an IoT hub.",
+ "operationId": "IotHubResource_GetEventHubConsumerGroup",
+ "x-ms-examples": {
+ "IotHubResource_ListEventHubConsumerGroups": {
+ "$ref": "./examples/iothub_getconsumergroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "eventHubEndpointName",
+ "in": "path",
+ "description": "The name of the Event Hub-compatible endpoint in the IoT hub.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "description": "The name of the consumer group to retrieve.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized consumer group.",
+ "schema": {
+ "$ref": "#/definitions/EventHubConsumerGroupInfo"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "put": {
+ "tags": [
+ "PUT"
+ ],
+ "summary": "Add a consumer group to an Event Hub-compatible endpoint in an IoT hub",
+ "description": "Add a consumer group to an Event Hub-compatible endpoint in an IoT hub.",
+ "operationId": "IotHubResource_CreateEventHubConsumerGroup",
+ "x-ms-examples": {
+ "IotHubResource_CreateEventHubConsumerGroup": {
+ "$ref": "./examples/iothub_createconsumergroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "eventHubEndpointName",
+ "in": "path",
+ "description": "The name of the Event Hub-compatible endpoint in the IoT hub.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "description": "The name of the consumer group to add.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "consumerGroupBody",
+ "in": "body",
+ "description": "The consumer group to add.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/EventHubConsumerGroupBodyDescription"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation.",
+ "schema": {
+ "$ref": "#/definitions/EventHubConsumerGroupInfo"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "delete": {
+ "tags": [
+ "DELETE"
+ ],
+ "summary": "Delete a consumer group from an Event Hub-compatible endpoint in an IoT hub",
+ "description": "Delete a consumer group from an Event Hub-compatible endpoint in an IoT hub.",
+ "operationId": "IotHubResource_DeleteEventHubConsumerGroup",
+ "x-ms-examples": {
+ "IotHubResource_DeleteEventHubConsumerGroup": {
+ "$ref": "./examples/iothub_deleteconsumergroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "eventHubEndpointName",
+ "in": "path",
+ "description": "The name of the Event Hub-compatible endpoint in the IoT hub.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "description": "The name of the consumer group to delete.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation."
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/jobs": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get a list of all the jobs in an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry",
+ "description": "Get a list of all the jobs in an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry.",
+ "operationId": "IotHubResource_ListJobs",
+ "x-ms-examples": {
+ "IotHubResource_ListJobs": {
+ "$ref": "./examples/iothub_listjobs.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The response contains a JSON-serialized array of all the jobs in the IoT hub.",
+ "schema": {
+ "$ref": "#/definitions/JobResponseListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/jobs/{jobId}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the details of a job from an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry",
+ "description": "Get the details of a job from an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry.",
+ "operationId": "IotHubResource_GetJob",
+ "x-ms-examples": {
+ "IotHubResource_GetJob": {
+ "$ref": "./examples/iothub_getjob.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "jobId",
+ "in": "path",
+ "description": "The job identifier.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The response contains a JSON-serialized description of the job in the IoT hub.",
+ "schema": {
+ "$ref": "#/definitions/JobResponse"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/quotaMetrics": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the quota metrics for an IoT hub",
+ "description": "Get the quota metrics for an IoT hub.",
+ "operationId": "IotHubResource_GetQuotaMetrics",
+ "x-ms-examples": {
+ "IotHubResource_GetQuotaMetrics": {
+ "$ref": "./examples/iothub_quotametrics.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The response contains a JSON-serialized array of the quota metrics for the IoT hub.",
+ "schema": {
+ "$ref": "#/definitions/IotHubQuotaMetricInfoListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routingEndpointsHealth": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "operationId": "IotHubResource_GetEndpointHealth",
+ "summary": "Get the health for routing endpoints",
+ "description": "Get the health for routing endpoints.",
+ "x-ms-examples": {
+ "IotHubResource_GetEndpointHealth": {
+ "$ref": "./examples/iothub_routingendpointhealth.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "iotHubName",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/EndpointHealthDataListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Devices/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "summary": "Check if an IoT hub name is available",
+ "description": "Check if an IoT hub name is available.",
+ "operationId": "IotHubResource_CheckNameAvailability",
+ "x-ms-examples": {
+ "IotHubResource_CheckNameAvailability": {
+ "$ref": "./examples/checkNameAvailability.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "operationInputs",
+ "in": "body",
+ "description": "Set the name parameter in the OperationInputs structure to the name of the IoT hub to check.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/OperationInputs"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized response that specifies whether the IoT hub name is available. If the name is not available, the body contains the reason.",
+ "schema": {
+ "$ref": "#/definitions/IotHubNameAvailabilityInfo"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Devices/usages": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the number of iot hubs in the subscription",
+ "description": "Get the number of free and paid iot hubs in the subscription",
+ "operationId": "ResourceProviderCommon_GetSubscriptionQuota",
+ "x-ms-examples": {
+ "ResourceProviderCommon_GetSubscriptionQuota": {
+ "$ref": "./examples/iothub_usages.json"
+ }
+ },
+ "consumes": [],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/UserSubscriptionQuotaListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routing/routes/$testall": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "IotHubResource_TestAllRoutes",
+ "summary": "Test all routes",
+ "description": "Test all routes configured in this Iot Hub",
+ "x-ms-examples": {
+ "IotHubResource_TestAllRoutes": {
+ "$ref": "./examples/iothub_testallroutes.json"
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "input",
+ "description": "Input for testing all routes",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TestAllRoutesInput"
+ }
+ },
+ {
+ "name": "iotHubName",
+ "description": "IotHub to be tested",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "description": "resource group which Iot Hub belongs to",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/TestAllRoutesResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routing/routes/$testnew": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "IotHubResource_TestRoute",
+ "summary": "Test the new route",
+ "description": "Test the new route for this Iot Hub",
+ "x-ms-examples": {
+ "IotHubResource_TestRoute": {
+ "$ref": "./examples/iothub_testnewroute.json"
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "input",
+ "description": "Route that needs to be tested",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TestRouteInput"
+ }
+ },
+ {
+ "name": "iotHubName",
+ "description": "IotHub to be tested",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "description": "resource group which Iot Hub belongs to",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/TestRouteResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/listkeys": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "summary": "Get the security metadata for an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security",
+ "description": "Get the security metadata for an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security.",
+ "operationId": "IotHubResource_ListKeys",
+ "x-ms-examples": {
+ "IotHubResource_ListKeys": {
+ "$ref": "./examples/iothub_listkeys.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized array of shared access policies, including keys, that you can use to access the IoT hub endpoints.",
+ "schema": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRuleListResult"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/IotHubKeys/{keyName}/listkeys": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "summary": "Get a shared access policy by name from an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security",
+ "description": "Get a shared access policy by name from an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security.",
+ "operationId": "IotHubResource_GetKeysForKeyName",
+ "x-ms-examples": {
+ "IotHubResource_GetKeysForKeyName": {
+ "$ref": "./examples/iothub_getkey.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "keyName",
+ "in": "path",
+ "description": "The name of the shared access policy.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "This is a synchronous operation. The body contains a JSON-serialized shared access policy, including keys, that you can use to access one or more IoT hub endpoints.",
+ "schema": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRule"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/exportDevices": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "summary": "Exports all the device identities in the IoT hub identity registry to an Azure Storage blob container. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#import-and-export-device-identities",
+ "description": "Exports all the device identities in the IoT hub identity registry to an Azure Storage blob container. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#import-and-export-device-identities.",
+ "operationId": "IotHubResource_ExportDevices",
+ "x-ms-examples": {
+ "IotHubResource_ExportDevices": {
+ "$ref": "./examples/iothub_exportdevices.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "exportDevicesParameters",
+ "in": "body",
+ "description": "The parameters that specify the export devices operation.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ExportDevicesRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/JobResponse"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/importDevices": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "summary": "Import, update, or delete device identities in the IoT hub identity registry from a blob. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#import-and-export-device-identities",
+ "description": "Import, update, or delete device identities in the IoT hub identity registry from a blob. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#import-and-export-device-identities.",
+ "operationId": "IotHubResource_ImportDevices",
+ "x-ms-examples": {
+ "IotHubResource_ImportDevices": {
+ "$ref": "./examples/iothub_importdevices.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "name": "importDevicesParameters",
+ "in": "body",
+ "description": "The parameters that specify the import devices operation.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ImportDevicesRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/JobResponse"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates": {
+ "get": {
+ "tags": [
+ "Certificates"
+ ],
+ "summary": "Get the certificate list.",
+ "description": "Returns the list of certificates.",
+ "operationId": "Certificates_ListByIotHub",
+ "x-ms-examples": {
+ "Certificates_ListByIotHub": {
+ "$ref": "./examples/iothub_listcertificates.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains all the certificate list.",
+ "schema": {
+ "$ref": "#/definitions/CertificateListDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}": {
+ "get": {
+ "tags": [
+ "Certificates"
+ ],
+ "summary": "Get the certificate.",
+ "description": "Returns the certificate.",
+ "operationId": "Certificates_Get",
+ "x-ms-examples": {
+ "Certificates_Get": {
+ "$ref": "./examples/iothub_getcertificate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/certificateName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the certificate.",
+ "schema": {
+ "$ref": "#/definitions/CertificateDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "put": {
+ "tags": [
+ "Certificates"
+ ],
+ "summary": "Upload the certificate to the IoT hub.",
+ "description": "Adds new or replaces existing certificate.",
+ "operationId": "Certificates_CreateOrUpdate",
+ "x-ms-examples": {
+ "Certificates_CreateOrUpdate": {
+ "$ref": "./examples/iothub_certificatescreateorupdate.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/certificateName"
+ },
+ {
+ "name": "certificateDescription",
+ "in": "body",
+ "description": "The certificate body.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateDescription"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": false,
+ "type": "string",
+ "description": "ETag of the Certificate. Do not specify for creating a brand new certificate. Required to update an existing certificate."
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "If certificate didn't exist creation was successful, the operation returns HTTP status code of 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/CertificateDescription"
+ }
+ },
+ "200": {
+ "description": "If certificate already exist and update was successful, the operation returns HTTP status code of 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/CertificateDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "delete": {
+ "tags": [
+ "Certificates"
+ ],
+ "summary": "Delete an X509 certificate.",
+ "description": "Deletes an existing X509 certificate or does nothing if it does not exist.",
+ "operationId": "Certificates_Delete",
+ "x-ms-examples": {
+ "Certificates_Delete": {
+ "$ref": "./examples/iothub_certificatesdelete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/certificateName"
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": true,
+ "type": "string",
+ "description": "ETag of the Certificate."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Certificate has been deleted."
+ },
+ "204": {
+ "description": "Certificate does not exist."
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}/generateVerificationCode": {
+ "post": {
+ "tags": [
+ "Certificates"
+ ],
+ "summary": "Generate verification code for proof of possession flow.",
+ "description": "Generates verification code for proof of possession flow. The verification code will be used to generate a leaf certificate.",
+ "operationId": "Certificates_GenerateVerificationCode",
+ "x-ms-examples": {
+ "Certificates_GenerateVerificationCode": {
+ "$ref": "./examples/iothub_generateverificationcode.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/certificateName"
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": true,
+ "type": "string",
+ "description": "ETag of the Certificate."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the certificate.",
+ "schema": {
+ "$ref": "#/definitions/CertificateWithNonceDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}/verify": {
+ "post": {
+ "tags": [
+ "Certificates"
+ ],
+ "summary": "Verify certificate's private key possession.",
+ "description": "Verifies the certificate's private key possession by providing the leaf cert issued by the verifying pre uploaded certificate.",
+ "operationId": "Certificates_Verify",
+ "x-ms-examples": {
+ "Certificates_Verify": {
+ "$ref": "./examples/iothub_certverify.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/certificateName"
+ },
+ {
+ "name": "certificateVerificationBody",
+ "in": "body",
+ "description": "The name of the certificate",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CertificateVerificationDescription"
+ }
+ },
+ {
+ "name": "If-Match",
+ "in": "header",
+ "required": true,
+ "type": "string",
+ "description": "ETag of the Certificate."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the certificate.",
+ "schema": {
+ "$ref": "#/definitions/CertificateDescription"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/failover": {
+ "post": {
+ "tags": [
+ "POST"
+ ],
+ "operationId": "IotHub_ManualFailover",
+ "summary": "Manually initiate a failover for the IoT Hub to its secondary region",
+ "description": "Manually initiate a failover for the IoT Hub to its secondary region. To learn more, see https://aka.ms/manualfailover",
+ "x-ms-examples": {
+ "IotHub_ManualFailover": {
+ "$ref": "./examples/IotHub_ManualFailover.json"
+ }
+ },
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "name": "iotHubName",
+ "description": "Name of the IoT hub to failover",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "failoverInput",
+ "description": "Region to failover to. Must be the Azure paired region. Get the value from the secondary location in the locations property. To learn more, see https://aka.ms/manualfailover/region",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/FailoverInput"
+ }
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "name": "resourceGroupName",
+ "description": "Name of the resource group containing the IoT hub resource",
+ "in": "path",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/api-version"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Long running manual failover operation for the IoT hub completed"
+ },
+ "202": {
+ "description": "Manual failover initiated"
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/iotHubs/{resourceName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "List private link resources",
+ "description": "List private link resources for the given IotHub",
+ "operationId": "PrivateLinkResources_List",
+ "x-ms-examples": {
+ "PrivateLinkResources_List": {
+ "$ref": "./examples/iothub_listprivatelinkresources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the list of private link resources",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResources"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/iotHubs/{resourceName}/privateLinkResources/{groupId}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get the specified private link resource",
+ "description": "Get the specified private link resource for the given IotHub",
+ "operationId": "PrivateLinkResources_Get",
+ "x-ms-examples": {
+ "PrivateLinkResources_List": {
+ "$ref": "./examples/iothub_getprivatelinkresources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/groupId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the specified of private link resource",
+ "schema": {
+ "$ref": "#/definitions/GroupIdInformation"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/iotHubs/{resourceName}/privateEndpointConnections": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "List private endpoint connections",
+ "description": "List private endpoint connection properties",
+ "operationId": "PrivateEndpointConnections_List",
+ "x-ms-examples": {
+ "PrivateEndpointConnections_List": {
+ "$ref": "./examples/iothub_listprivateendpointconnections.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the list of private endpoint connection properties",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnectionsList"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/iotHubs/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "GET"
+ ],
+ "summary": "Get private endpoint connection",
+ "description": "Get private endpoint connection properties",
+ "operationId": "PrivateEndpointConnections_Get",
+ "x-ms-examples": {
+ "PrivateEndpointConnection_Get": {
+ "$ref": "./examples/iothub_getprivateendpointconnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionName"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The body contains the private endpoint connection properties",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "put": {
+ "tags": [
+ "PUT"
+ ],
+ "summary": "Update private endpoint connection",
+ "description": "Update the status of a private endpoint connection with the specified name",
+ "operationId": "PrivateEndpointConnections_Update",
+ "x-ms-examples": {
+ "PrivateEndpointConnection_Update": {
+ "$ref": "./examples/iothub_updateprivateendpointconnection.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionName"
+ },
+ {
+ "name": "privateEndpointConnection",
+ "in": "body",
+ "description": "The private endpoint connection with updated properties",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "This is a long running operation. The operation returns a 201 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation. If successful, the operation returns HTTP status code of 201 (OK).",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "200": {
+ "description": "This is returned as a response to the status polling request for the update operation.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ },
+ "delete": {
+ "tags": [
+ "DELETE"
+ ],
+ "summary": "Delete private endpoint connection",
+ "description": "Delete private endpoint connection with the specified name",
+ "operationId": "PrivateEndpointConnections_Delete",
+ "x-ms-examples": {
+ "PrivateEndpointConnection_Delete": {
+ "$ref": "./examples/iothub_deleteprivateendpointconnection.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/api-version"
+ },
+ {
+ "$ref": "#/parameters/subscriptionId"
+ },
+ {
+ "$ref": "#/parameters/resourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/resourceName"
+ },
+ {
+ "$ref": "#/parameters/privateEndpointConnectionName"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "This is a long running operation. The operation returns a 202 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "200": {
+ "description": "This is returned as a response to the status polling request for the delete operation.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "204": {
+ "description": "PrivateEndpoint does not exist."
+ },
+ "default": {
+ "description": "DefaultErrorResponse",
+ "schema": {
+ "$ref": "#/definitions/ErrorDetails"
+ }
+ }
+ },
+ "deprecated": false
+ }
+ }
+ },
+ "definitions": {
+ "CertificateVerificationDescription": {
+ "description": "The JSON-serialized leaf certificate",
+ "type": "object",
+ "properties": {
+ "certificate": {
+ "description": "base-64 representation of X509 certificate .cer file or just .pem file content.",
+ "type": "string"
+ }
+ }
+ },
+ "CertificateListDescription": {
+ "description": "The JSON-serialized array of Certificate objects.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The array of Certificate objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CertificateDescription"
+ }
+ }
+ }
+ },
+ "CertificateBodyDescription": {
+ "description": "The JSON-serialized X509 Certificate.",
+ "type": "object",
+ "properties": {
+ "certificate": {
+ "description": "base-64 representation of the X509 leaf certificate .cer file or just .pem file content.",
+ "type": "string"
+ }
+ }
+ },
+ "CertificateDescription": {
+ "description": "The X509 Certificate.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/CertificateProperties"
+ },
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "description": "The name of the certificate.",
+ "type": "string",
+ "readOnly": true
+ },
+ "etag": {
+ "description": "The entity tag.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "CertificateWithNonceDescription": {
+ "description": "The X509 Certificate.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/CertificatePropertiesWithNonce"
+ },
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "description": "The name of the certificate.",
+ "type": "string",
+ "readOnly": true
+ },
+ "etag": {
+ "description": "The entity tag.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "SharedAccessSignatureAuthorizationRule": {
+ "description": "The properties of an IoT hub shared access policy.",
+ "type": "object",
+ "properties": {
+ "keyName": {
+ "description": "The name of the shared access policy.",
+ "type": "string"
+ },
+ "primaryKey": {
+ "description": "The primary key.",
+ "type": "string"
+ },
+ "secondaryKey": {
+ "description": "The secondary key.",
+ "type": "string"
+ },
+ "rights": {
+ "description": "The permissions assigned to the shared access policy.",
+ "enum": [
+ "RegistryRead",
+ "RegistryWrite",
+ "ServiceConnect",
+ "DeviceConnect",
+ "RegistryRead, RegistryWrite",
+ "RegistryRead, ServiceConnect",
+ "RegistryRead, DeviceConnect",
+ "RegistryWrite, ServiceConnect",
+ "RegistryWrite, DeviceConnect",
+ "ServiceConnect, DeviceConnect",
+ "RegistryRead, RegistryWrite, ServiceConnect",
+ "RegistryRead, RegistryWrite, DeviceConnect",
+ "RegistryRead, ServiceConnect, DeviceConnect",
+ "RegistryWrite, ServiceConnect, DeviceConnect",
+ "RegistryRead, RegistryWrite, ServiceConnect, DeviceConnect"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AccessRights",
+ "modelAsString": false
+ }
+ }
+ },
+ "required": [
+ "keyName",
+ "rights"
+ ]
+ },
+ "CertificateProperties": {
+ "description": "The description of an X509 CA Certificate.",
+ "type": "object",
+ "properties": {
+ "subject": {
+ "description": "The certificate's subject name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "expiry": {
+ "description": "The certificate's expiration date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "thumbprint": {
+ "description": "The certificate's thumbprint.",
+ "type": "string",
+ "readOnly": true
+ },
+ "isVerified": {
+ "description": "Determines whether certificate has been verified.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "created": {
+ "description": "The certificate's create date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "updated": {
+ "description": "The certificate's last update date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "certificate": {
+ "description": "The certificate content",
+ "type": "string"
+ }
+ }
+ },
+ "CertificatePropertiesWithNonce": {
+ "description": "The description of an X509 CA Certificate including the challenge nonce issued for the Proof-Of-Possession flow.",
+ "type": "object",
+ "properties": {
+ "subject": {
+ "description": "The certificate's subject name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "expiry": {
+ "description": "The certificate's expiration date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "thumbprint": {
+ "description": "The certificate's thumbprint.",
+ "type": "string",
+ "readOnly": true
+ },
+ "isVerified": {
+ "description": "Determines whether certificate has been verified.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "created": {
+ "description": "The certificate's create date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "updated": {
+ "description": "The certificate's last update date and time.",
+ "type": "string",
+ "format": "date-time-rfc1123",
+ "readOnly": true
+ },
+ "verificationCode": {
+ "description": "The certificate's verification code that will be used for proof of possession.",
+ "type": "string",
+ "readOnly": true
+ },
+ "certificate": {
+ "description": "The certificate content",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotHubProperties": {
+ "description": "The properties of an IoT hub.",
+ "type": "object",
+ "properties": {
+ "authorizationPolicies": {
+ "description": "The shared access policies you can use to secure a connection to the IoT hub.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRule"
+ }
+ },
+ "publicNetworkAccess": {
+ "type": "string",
+ "description": "Whether requests from Public Network are allowed",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "modelAsString": true,
+ "name": "PublicNetworkAccess"
+ }
+ },
+ "ipFilterRules": {
+ "description": "The IP filter rules.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IpFilterRule"
+ }
+ },
+ "minTlsVersion": {
+ "type": "string",
+ "description": "Specifies the minimum TLS version to support for this hub. Can be set to \"1.2\" to have clients that use a TLS version below 1.2 to be rejected."
+ },
+ "privateEndpointConnections": {
+ "description": "Private endpoint connections created on this IotHub",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "provisioningState": {
+ "description": "The provisioning state.",
+ "type": "string",
+ "readOnly": true
+ },
+ "state": {
+ "description": "The hub state.",
+ "type": "string",
+ "readOnly": true
+ },
+ "hostName": {
+ "description": "The name of the host.",
+ "type": "string",
+ "readOnly": true
+ },
+ "eventHubEndpoints": {
+ "description": "The Event Hub-compatible endpoint properties. The only possible keys to this dictionary is events. This key has to be present in the dictionary while making create or update calls for the IoT hub.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/EventHubProperties"
+ }
+ },
+ "routing": {
+ "$ref": "#/definitions/RoutingProperties"
+ },
+ "storageEndpoints": {
+ "description": "The list of Azure Storage endpoints where you can upload files. Currently you can configure only one Azure Storage account and that MUST have its key as $default. Specifying more than one storage account causes an error to be thrown. Not specifying a value for this property when the enableFileUploadNotifications property is set to True, causes an error to be thrown.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/StorageEndpointProperties"
+ }
+ },
+ "messagingEndpoints": {
+ "description": "The messaging endpoint properties for the file upload notification queue.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/MessagingEndpointProperties"
+ }
+ },
+ "enableFileUploadNotifications": {
+ "description": "If True, file upload notifications are enabled.",
+ "type": "boolean"
+ },
+ "cloudToDevice": {
+ "$ref": "#/definitions/CloudToDeviceProperties"
+ },
+ "comments": {
+ "description": "IoT hub comments.",
+ "type": "string"
+ },
+ "features": {
+ "description": "The capabilities and features enabled for the IoT hub.",
+ "enum": [
+ "None",
+ "DeviceManagement"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "Capabilities",
+ "modelAsString": true
+ }
+ },
+ "locations": {
+ "description": "Primary and secondary location for iot hub",
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IotHubLocationDescription"
+ }
+ }
+ }
+ },
+ "IotHubSkuInfo": {
+ "description": "Information about the SKU of the IoT hub.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the SKU.",
+ "enum": [
+ "F1",
+ "S1",
+ "S2",
+ "S3",
+ "B1",
+ "B2",
+ "B3"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IotHubSku",
+ "modelAsString": true
+ }
+ },
+ "tier": {
+ "description": "The billing tier for the IoT hub.",
+ "enum": [
+ "Free",
+ "Standard",
+ "Basic"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "IotHubSkuTier",
+ "modelAsString": false
+ }
+ },
+ "capacity": {
+ "format": "int64",
+ "description": "The number of provisioned IoT Hub units. See: https://docs.microsoft.com/azure/azure-subscription-service-limits#iot-hub-limits.",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "EventHubProperties": {
+ "description": "The properties of the provisioned Event Hub-compatible endpoint used by the IoT hub.",
+ "type": "object",
+ "properties": {
+ "retentionTimeInDays": {
+ "format": "int64",
+ "description": "The retention time for device-to-cloud messages in days. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#device-to-cloud-messages",
+ "type": "integer"
+ },
+ "partitionCount": {
+ "format": "int32",
+ "description": "The number of partitions for receiving device-to-cloud messages in the Event Hub-compatible endpoint. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#device-to-cloud-messages.",
+ "type": "integer"
+ },
+ "partitionIds": {
+ "description": "The partition ids in the Event Hub-compatible endpoint.",
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "path": {
+ "description": "The Event Hub-compatible name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "endpoint": {
+ "description": "The Event Hub-compatible endpoint.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "StorageEndpointProperties": {
+ "description": "The properties of the Azure Storage endpoint for file upload.",
+ "type": "object",
+ "properties": {
+ "sasTtlAsIso8601": {
+ "description": "The period of time for which the SAS URI generated by IoT Hub for file upload is valid. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-file-upload#file-upload-notification-configuration-options.",
+ "type": "string",
+ "format": "duration"
+ },
+ "connectionString": {
+ "description": "The connection string for the Azure Storage account to which files are uploaded.",
+ "type": "string"
+ },
+ "containerName": {
+ "description": "The name of the root container where you upload files. The container need not exist but should be creatable using the connectionString specified.",
+ "type": "string"
+ },
+ "authenticationType": {
+ "description": "Specifies authentication type being used for connecting to the storage account.",
+ "enum": [
+ "keyBased",
+ "identityBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AuthenticationType",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "connectionString",
+ "containerName"
+ ]
+ },
+ "MessagingEndpointProperties": {
+ "description": "The properties of the messaging endpoints used by this IoT hub.",
+ "type": "object",
+ "properties": {
+ "lockDurationAsIso8601": {
+ "description": "The lock duration. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-file-upload.",
+ "type": "string",
+ "format": "duration"
+ },
+ "ttlAsIso8601": {
+ "description": "The period of time for which a message is available to consume before it is expired by the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-file-upload.",
+ "type": "string",
+ "format": "duration"
+ },
+ "maxDeliveryCount": {
+ "description": "The number of times the IoT hub attempts to deliver a message. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-file-upload.",
+ "format": "int32",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100
+ }
+ }
+ },
+ "CloudToDeviceProperties": {
+ "description": "The IoT hub cloud-to-device messaging properties.",
+ "type": "object",
+ "properties": {
+ "maxDeliveryCount": {
+ "description": "The max delivery count for cloud-to-device messages in the device queue. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages.",
+ "format": "int32",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100
+ },
+ "defaultTtlAsIso8601": {
+ "description": "The default time to live for cloud-to-device messages in the device queue. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages.",
+ "type": "string",
+ "format": "duration"
+ },
+ "feedback": {
+ "$ref": "#/definitions/FeedbackProperties"
+ }
+ }
+ },
+ "IpFilterRule": {
+ "description": "The IP filter rules for the IoT hub.",
+ "type": "object",
+ "properties": {
+ "filterName": {
+ "description": "The name of the IP filter rule.",
+ "type": "string"
+ },
+ "action": {
+ "description": "The desired action for requests captured by this rule.",
+ "enum": [
+ "Accept",
+ "Reject"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IpFilterActionType",
+ "modelAsString": false
+ }
+ },
+ "ipMask": {
+ "description": "A string that contains the IP address range in CIDR notation for the rule.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "filterName",
+ "action",
+ "ipMask"
+ ]
+ },
+ "PrivateLinkResources": {
+ "description": "The available private link resources for an IotHub",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The list of available private link resources for an IotHub",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GroupIdInformation"
+ }
+ }
+ }
+ },
+ "GroupIdInformation": {
+ "description": "The group information for creating a private endpoint on an IotHub",
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name.",
+ "pattern": "^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{2,49}[a-zA-Z0-9]$"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "properties": {
+ "$ref": "#/definitions/GroupIdInformationProperties"
+ }
+ },
+ "required": [
+ "properties"
+ ]
+ },
+ "GroupIdInformationProperties": {
+ "description": "The properties for a group information object",
+ "type": "object",
+ "properties": {
+ "groupId": {
+ "type": "string",
+ "description": "The group id"
+ },
+ "requiredMembers": {
+ "description": "The required members for a specific group id",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "requiredZoneNames": {
+ "description": "The required DNS zones for a specific group id",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "PrivateEndpointConnectionsList": {
+ "description": "The list of private endpoint connections for an IotHub",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "PrivateEndpointConnection": {
+ "description": "The private endpoint connection of an IotHub",
+ "x-ms-azure-resource": true,
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name.",
+ "pattern": "^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{2,49}[a-zA-Z0-9]$"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties"
+ }
+ },
+ "required": [
+ "properties"
+ ]
+ },
+ "PrivateEndpointConnectionProperties": {
+ "description": "The properties of a private endpoint connection",
+ "type": "object",
+ "properties": {
+ "privateEndpoint": {
+ "$ref": "#/definitions/PrivateEndpoint"
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "#/definitions/PrivateLinkServiceConnectionState"
+ }
+ },
+ "required": [
+ "privateLinkServiceConnectionState"
+ ]
+ },
+ "PrivateEndpoint": {
+ "description": "The private endpoint property of a private endpoint connection",
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ }
+ }
+ },
+ "PrivateLinkServiceConnectionState": {
+ "description": "The current state of a private endpoint connection",
+ "type": "object",
+ "properties": {
+ "status": {
+ "description": "The status of a private endpoint connection",
+ "enum": [
+ "Pending",
+ "Approved",
+ "Rejected",
+ "Disconnected"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "PrivateLinkServiceConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "description": {
+ "type": "string",
+ "description": "The description for the current state of a private endpoint connection"
+ },
+ "actionsRequired": {
+ "type": "string",
+ "description": "Actions required for a private endpoint connection"
+ }
+ },
+ "required": [
+ "status",
+ "description"
+ ]
+ },
+ "FeedbackProperties": {
+ "description": "The properties of the feedback queue for cloud-to-device messages.",
+ "type": "object",
+ "properties": {
+ "lockDurationAsIso8601": {
+ "description": "The lock duration for the feedback queue. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages.",
+ "type": "string",
+ "format": "duration"
+ },
+ "ttlAsIso8601": {
+ "description": "The period of time for which a message is available to consume before it is expired by the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages.",
+ "type": "string",
+ "format": "duration"
+ },
+ "maxDeliveryCount": {
+ "description": "The number of times the IoT hub attempts to deliver a message on the feedback queue. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages.",
+ "format": "int32",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100
+ }
+ }
+ },
+ "RoutingProperties": {
+ "description": "The routing related properties of the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging",
+ "type": "object",
+ "properties": {
+ "endpoints": {
+ "$ref": "#/definitions/RoutingEndpoints"
+ },
+ "routes": {
+ "description": "The list of user-provided routing rules that the IoT hub uses to route messages to built-in and custom endpoints. A maximum of 100 routing rules are allowed for paid hubs and a maximum of 5 routing rules are allowed for free hubs.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RouteProperties"
+ }
+ },
+ "fallbackRoute": {
+ "description": "The properties of the route that is used as a fall-back route when none of the conditions specified in the 'routes' section are met. This is an optional parameter. When this property is not set, the messages which do not meet any of the conditions specified in the 'routes' section get routed to the built-in eventhub endpoint.",
+ "$ref": "#/definitions/FallbackRouteProperties"
+ },
+ "enrichments": {
+ "description": "The list of user-provided enrichments that the IoT hub applies to messages to be delivered to built-in and custom endpoints. See: https://aka.ms/telemetryoneventgrid",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EnrichmentProperties"
+ }
+ }
+ }
+ },
+ "RoutingEndpoints": {
+ "description": "The properties related to the custom endpoints to which your IoT hub routes messages based on the routing rules. A maximum of 10 custom endpoints are allowed across all endpoint types for paid hubs and only 1 custom endpoint is allowed across all endpoint types for free hubs.",
+ "type": "object",
+ "properties": {
+ "serviceBusQueues": {
+ "description": "The list of Service Bus queue endpoints that IoT hub routes the messages to, based on the routing rules.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RoutingServiceBusQueueEndpointProperties"
+ }
+ },
+ "serviceBusTopics": {
+ "description": "The list of Service Bus topic endpoints that the IoT hub routes the messages to, based on the routing rules.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RoutingServiceBusTopicEndpointProperties"
+ }
+ },
+ "eventHubs": {
+ "description": "The list of Event Hubs endpoints that IoT hub routes messages to, based on the routing rules. This list does not include the built-in Event Hubs endpoint.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RoutingEventHubProperties"
+ }
+ },
+ "storageContainers": {
+ "description": "The list of storage container endpoints that IoT hub routes messages to, based on the routing rules.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RoutingStorageContainerProperties"
+ }
+ }
+ }
+ },
+ "RoutingServiceBusQueueEndpointProperties": {
+ "description": "The properties related to service bus queue endpoint types.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Id of the service bus queue endpoint",
+ "type": "string"
+ },
+ "connectionString": {
+ "description": "The connection string of the service bus queue endpoint.",
+ "type": "string"
+ },
+ "endpointUri": {
+ "description": "The url of the service bus queue endpoint. It must include the protocol sb://",
+ "type": "string"
+ },
+ "entityPath": {
+ "description": "Queue name on the service bus namespace",
+ "type": "string"
+ },
+ "authenticationType": {
+ "description": "Method used to authenticate against the service bus queue endpoint",
+ "enum": [
+ "keyBased",
+ "identityBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "authenticationType",
+ "modelAsString": true
+ }
+ },
+ "name": {
+ "description": "The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved: events, fileNotifications, $default. Endpoint names must be unique across endpoint types. The name need not be the same as the actual queue name.",
+ "type": "string",
+ "pattern": "^[A-Za-z0-9-._]{1,64}$"
+ },
+ "subscriptionId": {
+ "description": "The subscription identifier of the service bus queue endpoint.",
+ "type": "string"
+ },
+ "resourceGroup": {
+ "description": "The name of the resource group of the service bus queue endpoint.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "RoutingServiceBusTopicEndpointProperties": {
+ "description": "The properties related to service bus topic endpoint types.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Id of the service bus topic endpoint",
+ "type": "string"
+ },
+ "connectionString": {
+ "description": "The connection string of the service bus topic endpoint.",
+ "type": "string"
+ },
+ "endpointUri": {
+ "description": "The url of the service bus topic endpoint. It must include the protocol sb://",
+ "type": "string"
+ },
+ "entityPath": {
+ "description": "Queue name on the service bus topic",
+ "type": "string"
+ },
+ "authenticationType": {
+ "description": "Method used to authenticate against the service bus topic endpoint",
+ "enum": [
+ "keyBased",
+ "identityBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "authenticationType",
+ "modelAsString": true
+ }
+ },
+ "name": {
+ "description": "The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved: events, fileNotifications, $default. Endpoint names must be unique across endpoint types. The name need not be the same as the actual topic name.",
+ "type": "string",
+ "pattern": "^[A-Za-z0-9-._]{1,64}$"
+ },
+ "subscriptionId": {
+ "description": "The subscription identifier of the service bus topic endpoint.",
+ "type": "string"
+ },
+ "resourceGroup": {
+ "description": "The name of the resource group of the service bus topic endpoint.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "RoutingEventHubProperties": {
+ "description": "The properties related to an event hub endpoint.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Id of the event hub endpoint",
+ "type": "string"
+ },
+ "connectionString": {
+ "description": "The connection string of the event hub endpoint. ",
+ "type": "string"
+ },
+ "endpointUri": {
+ "description": "The url of the event hub endpoint. It must include the protocol sb://",
+ "type": "string"
+ },
+ "entityPath": {
+ "description": "Event hub name on the event hub namespace",
+ "type": "string"
+ },
+ "authenticationType": {
+ "description": "Method used to authenticate against the event hub endpoint",
+ "enum": [
+ "keyBased",
+ "identityBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "authenticationType",
+ "modelAsString": true
+ }
+ },
+ "name": {
+ "description": "The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved: events, fileNotifications, $default. Endpoint names must be unique across endpoint types.",
+ "type": "string",
+ "pattern": "^[A-Za-z0-9-._]{1,64}$"
+ },
+ "subscriptionId": {
+ "description": "The subscription identifier of the event hub endpoint.",
+ "type": "string"
+ },
+ "resourceGroup": {
+ "description": "The name of the resource group of the event hub endpoint.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "RoutingStorageContainerProperties": {
+ "description": "The properties related to a storage container endpoint.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Id of the storage container endpoint",
+ "type": "string"
+ },
+ "connectionString": {
+ "description": "The connection string of the storage account.",
+ "type": "string"
+ },
+ "endpointUri": {
+ "description": "The url of the storage endpoint. It must include the protocol https://",
+ "type": "string"
+ },
+ "authenticationType": {
+ "description": "Method used to authenticate against the storage endpoint",
+ "enum": [
+ "keyBased",
+ "identityBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "authenticationType",
+ "modelAsString": true
+ }
+ },
+ "name": {
+ "description": "The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved: events, fileNotifications, $default. Endpoint names must be unique across endpoint types.",
+ "type": "string",
+ "pattern": "^[A-Za-z0-9-._]{1,64}$"
+ },
+ "subscriptionId": {
+ "description": "The subscription identifier of the storage account.",
+ "type": "string"
+ },
+ "resourceGroup": {
+ "description": "The name of the resource group of the storage account.",
+ "type": "string"
+ },
+ "containerName": {
+ "description": "The name of storage container in the storage account.",
+ "type": "string"
+ },
+ "fileNameFormat": {
+ "description": "File name format for the blob. Default format is {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}. All parameters are mandatory but can be reordered.",
+ "type": "string"
+ },
+ "batchFrequencyInSeconds": {
+ "description": "Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds.",
+ "format": "int32",
+ "type": "integer",
+ "maximum": 720,
+ "minimum": 60
+ },
+ "maxChunkSizeInBytes": {
+ "description": "Maximum number of bytes for each blob written to storage. Value should be between 10485760(10MB) and 524288000(500MB). Default value is 314572800(300MB).",
+ "format": "int32",
+ "type": "integer",
+ "maximum": 524288000,
+ "minimum": 10485760
+ },
+ "encoding": {
+ "description": "Encoding that is used to serialize messages to blobs. Supported values are 'avro', 'avrodeflate', and 'JSON'. Default value is 'avro'.",
+ "type": "string",
+ "enum": [
+ "Avro",
+ "AvroDeflate",
+ "JSON"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "containerName"
+ ]
+ },
+ "RouteProperties": {
+ "description": "The properties of a routing rule that your IoT hub uses to route messages to endpoints.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the route. The name can only include alphanumeric characters, periods, underscores, hyphens, has a maximum length of 64 characters, and must be unique.",
+ "type": "string",
+ "pattern": "^[A-Za-z0-9-._]{1,64}$"
+ },
+ "source": {
+ "description": "The source that the routing rule is to be applied to, such as DeviceMessages.",
+ "enum": [
+ "Invalid",
+ "DeviceMessages",
+ "TwinChangeEvents",
+ "DeviceLifecycleEvents",
+ "DeviceJobLifecycleEvents"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "RoutingSource",
+ "modelAsString": true
+ }
+ },
+ "condition": {
+ "description": "The condition that is evaluated to apply the routing rule. If no condition is provided, it evaluates to true by default. For grammar, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-query-language",
+ "type": "string"
+ },
+ "endpointNames": {
+ "description": "The list of endpoints to which messages that satisfy the condition are routed. Currently only one endpoint is allowed.",
+ "minItems": 1,
+ "maxItems": 1,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "isEnabled": {
+ "description": "Used to specify whether a route is enabled.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "name",
+ "endpointNames",
+ "source",
+ "isEnabled"
+ ]
+ },
+ "FallbackRouteProperties": {
+ "description": "The properties of the fallback route. IoT Hub uses these properties when it routes messages to the fallback endpoint.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the route. The name can only include alphanumeric characters, periods, underscores, hyphens, has a maximum length of 64 characters, and must be unique.",
+ "type": "string"
+ },
+ "source": {
+ "description": "The source to which the routing rule is to be applied to. For example, DeviceMessages",
+ "enum": [
+ "DeviceMessages"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "RoutingSource",
+ "modelAsString": true
+ }
+ },
+ "condition": {
+ "description": "The condition which is evaluated in order to apply the fallback route. If the condition is not provided it will evaluate to true by default. For grammar, See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-query-language",
+ "type": "string"
+ },
+ "endpointNames": {
+ "description": "The list of endpoints to which the messages that satisfy the condition are routed to. Currently only 1 endpoint is allowed.",
+ "minItems": 1,
+ "maxItems": 1,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "isEnabled": {
+ "description": "Used to specify whether the fallback route is enabled.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "endpointNames",
+ "source",
+ "isEnabled"
+ ]
+ },
+ "EnrichmentProperties": {
+ "description": "The properties of an enrichment that your IoT hub applies to messages delivered to endpoints.",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "The key or name for the enrichment property.",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value for the enrichment property.",
+ "type": "string"
+ },
+ "endpointNames": {
+ "description": "The list of endpoints for which the enrichment is applied to the message.",
+ "minItems": 1,
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "key",
+ "value",
+ "endpointNames"
+ ]
+ },
+ "IotHubDescription": {
+ "description": "The description of the IoT hub.",
+ "type": "object",
+ "properties": {
+ "etag": {
+ "description": "The Etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal ETag convention.",
+ "type": "string"
+ },
+ "properties": {
+ "description": "IotHub properties",
+ "$ref": "#/definitions/IotHubProperties"
+ },
+ "sku": {
+ "description": "IotHub SKU info",
+ "$ref": "#/definitions/IotHubSkuInfo"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "required": [
+ "sku"
+ ]
+ },
+ "Resource": {
+ "description": "The common properties of an Azure resource.",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource identifier."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name.",
+ "pattern": "^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{2,49}[a-zA-Z0-9]$"
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type."
+ },
+ "location": {
+ "type": "string",
+ "description": "The resource location."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The resource tags."
+ }
+ },
+ "x-ms-azure-resource": true,
+ "required": [
+ "location"
+ ]
+ },
+ "SharedAccessSignatureAuthorizationRuleListResult": {
+ "description": "The list of shared access policies with a next link.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The list of shared access policies.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharedAccessSignatureAuthorizationRule"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "OperationListResult": {
+ "description": "Result of the request to list IoT Hub operations. It contains a list of operations and a URL link to get the next set of results.",
+ "properties": {
+ "value": {
+ "description": "List of IoT Hub operations supported by the Microsoft.Devices resource provider.",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/Operation"
+ }
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "URL to get the next set of operation list results if there are any."
+ }
+ }
+ },
+ "Operation": {
+ "description": "IoT Hub REST API operation",
+ "type": "object",
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Operation name: {provider}/{resource}/{read | write | action | delete}"
+ },
+ "display": {
+ "description": "The object that represents the operation.",
+ "properties": {
+ "provider": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Service provider: Microsoft Devices"
+ },
+ "resource": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource Type: IotHubs"
+ },
+ "operation": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of the operation"
+ },
+ "description": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Description of the operation"
+ }
+ }
+ }
+ }
+ },
+ "ErrorDetails": {
+ "description": "Error details.",
+ "type": "object",
+ "properties": {
+ "code": {
+ "description": "The error code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "httpStatusCode": {
+ "description": "The HTTP status code.",
+ "type": "string",
+ "readOnly": true
+ },
+ "message": {
+ "description": "The error message.",
+ "type": "string",
+ "readOnly": true
+ },
+ "details": {
+ "description": "The error details.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotHubQuotaMetricInfoListResult": {
+ "description": "The JSON-serialized array of IotHubQuotaMetricInfo objects with a next link.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The array of quota metrics objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IotHubQuotaMetricInfo"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "EndpointHealthDataListResult": {
+ "description": "The JSON-serialized array of EndpointHealthData objects with a next link.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "JSON-serialized array of Endpoint health data",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EndpointHealthData"
+ }
+ },
+ "nextLink": {
+ "description": "Link to more results",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "EndpointHealthData": {
+ "description": "The health data for an endpoint",
+ "type": "object",
+ "properties": {
+ "endpointId": {
+ "description": "Id of the endpoint",
+ "type": "string"
+ },
+ "healthStatus": {
+ "description": "Health statuses have following meanings. The 'healthy' status shows that the endpoint is accepting messages as expected. The 'unhealthy' status shows that the endpoint is not accepting messages as expected and IoT Hub is retrying to send data to this endpoint. The status of an unhealthy endpoint will be updated to healthy when IoT Hub has established an eventually consistent state of health. The 'dead' status shows that the endpoint is not accepting messages, after IoT Hub retried sending messages for the retrial period. See IoT Hub metrics to identify errors and monitor issues with endpoints. The 'unknown' status shows that the IoT Hub has not established a connection with the endpoint. No messages have been delivered to or rejected from this endpoint",
+ "enum": [
+ "unknown",
+ "healthy",
+ "degraded",
+ "unhealthy",
+ "dead"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "EndpointHealthStatus",
+ "modelAsString": true
+ }
+ },
+ "lastKnownError": {
+ "description": "Last error obtained when a message failed to be delivered to iot hub",
+ "type": "string"
+ },
+ "lastKnownErrorTime": {
+ "description": "Time at which the last known error occurred",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "lastSuccessfulSendAttemptTime": {
+ "description": "Last time iot hub successfully sent a message to the endpoint",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ },
+ "lastSendAttemptTime": {
+ "description": "Last time iot hub tried to send a message to the endpoint",
+ "type": "string",
+ "format": "date-time-rfc1123"
+ }
+ }
+ },
+ "RegistryStatistics": {
+ "description": "Identity registry statistics.",
+ "type": "object",
+ "properties": {
+ "totalDeviceCount": {
+ "format": "int64",
+ "description": "The total count of devices in the identity registry.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "enabledDeviceCount": {
+ "format": "int64",
+ "description": "The count of enabled devices in the identity registry.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "disabledDeviceCount": {
+ "format": "int64",
+ "description": "The count of disabled devices in the identity registry.",
+ "type": "integer",
+ "readOnly": true
+ }
+ }
+ },
+ "JobResponseListResult": {
+ "description": "The JSON-serialized array of JobResponse objects with a next link.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The array of JobResponse objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/JobResponse"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotHubSkuDescription": {
+ "description": "SKU properties.",
+ "type": "object",
+ "properties": {
+ "resourceType": {
+ "description": "The type of the resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "sku": {
+ "description": "The type of the resource.",
+ "$ref": "#/definitions/IotHubSkuInfo"
+ },
+ "capacity": {
+ "description": "IotHub capacity",
+ "$ref": "#/definitions/IotHubCapacity"
+ }
+ },
+ "required": [
+ "sku",
+ "capacity"
+ ]
+ },
+ "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 an IoT Hub instance."
+ },
+ "IotHubCapacity": {
+ "description": "IoT Hub capacity information.",
+ "type": "object",
+ "properties": {
+ "minimum": {
+ "format": "int64",
+ "description": "The minimum number of units.",
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 1,
+ "readOnly": true
+ },
+ "maximum": {
+ "format": "int64",
+ "description": "The maximum number of units.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "default": {
+ "format": "int64",
+ "description": "The default number of units.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "scaleType": {
+ "description": "The type of the scaling enabled.",
+ "enum": [
+ "Automatic",
+ "Manual",
+ "None"
+ ],
+ "readOnly": true,
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IotHubScaleType",
+ "modelAsString": false
+ }
+ }
+ }
+ },
+ "EventHubConsumerGroupsListResult": {
+ "description": "The JSON-serialized array of Event Hub-compatible consumer group names with a next link.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of consumer groups objects",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EventHubConsumerGroupInfo"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "EventHubConsumerGroupBodyDescription": {
+ "description": "The EventHub consumer group.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/EventHubConsumerGroupName"
+ }
+ }
+ },
+ "EventHubConsumerGroupName": {
+ "description": "The EventHub consumer group name.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "EventHub consumer group name",
+ "type": "string"
+ }
+ }
+ },
+ "EventHubConsumerGroupInfo": {
+ "description": "The properties of the EventHubConsumerGroupInfo object.",
+ "x-ms-azure-resource": true,
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "The tags.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "id": {
+ "description": "The Event Hub-compatible consumer group identifier.",
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "description": "The Event Hub-compatible consumer group name.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "the resource type.",
+ "type": "string",
+ "readOnly": true
+ },
+ "etag": {
+ "description": "The etag.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotHubSkuDescriptionListResult": {
+ "description": "The JSON-serialized array of IotHubSkuDescription objects with a next link.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The array of IotHubSkuDescription.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IotHubSkuDescription"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "JobResponse": {
+ "description": "The properties of the Job Response object.",
+ "type": "object",
+ "properties": {
+ "jobId": {
+ "description": "The job identifier.",
+ "type": "string",
+ "readOnly": true
+ },
+ "startTimeUtc": {
+ "format": "date-time-rfc1123",
+ "description": "The start time of the job.",
+ "type": "string",
+ "readOnly": true
+ },
+ "endTimeUtc": {
+ "format": "date-time-rfc1123",
+ "description": "The time the job stopped processing.",
+ "type": "string",
+ "readOnly": true
+ },
+ "type": {
+ "description": "The type of the job.",
+ "enum": [
+ "unknown",
+ "export",
+ "import",
+ "backup",
+ "readDeviceProperties",
+ "writeDeviceProperties",
+ "updateDeviceConfiguration",
+ "rebootDevice",
+ "factoryResetDevice",
+ "firmwareUpdate"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "JobType",
+ "modelAsString": true
+ }
+ },
+ "status": {
+ "description": "The status of the job.",
+ "enum": [
+ "unknown",
+ "enqueued",
+ "running",
+ "completed",
+ "failed",
+ "cancelled"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "JobStatus",
+ "modelAsString": false
+ }
+ },
+ "failureReason": {
+ "description": "If status == failed, this string containing the reason for the failure.",
+ "type": "string",
+ "readOnly": true
+ },
+ "statusMessage": {
+ "description": "The status message for the job.",
+ "type": "string",
+ "readOnly": true
+ },
+ "parentJobId": {
+ "description": "The job identifier of the parent job, if any.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotHubDescriptionListResult": {
+ "description": "The JSON-serialized array of IotHubDescription objects with a next link.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The array of IotHubDescription objects.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IotHubDescription"
+ }
+ },
+ "nextLink": {
+ "description": "The next link.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "IotHubQuotaMetricInfo": {
+ "description": "Quota metrics properties.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the quota metric.",
+ "type": "string",
+ "readOnly": true
+ },
+ "currentValue": {
+ "format": "int64",
+ "description": "The current value for the quota metric.",
+ "type": "integer",
+ "readOnly": true
+ },
+ "maxValue": {
+ "format": "int64",
+ "description": "The maximum value of the quota metric.",
+ "type": "integer",
+ "readOnly": true
+ }
+ }
+ },
+ "OperationInputs": {
+ "description": "Input values.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the IoT hub to check.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "IotHubNameAvailabilityInfo": {
+ "description": "The properties indicating whether a given IoT hub name is available.",
+ "type": "object",
+ "properties": {
+ "nameAvailable": {
+ "description": "The value which indicates whether the provided name is available.",
+ "type": "boolean",
+ "readOnly": true
+ },
+ "reason": {
+ "description": "The reason for unavailability.",
+ "enum": [
+ "Invalid",
+ "AlreadyExists"
+ ],
+ "type": "string",
+ "readOnly": true,
+ "x-ms-enum": {
+ "name": "IotHubNameUnavailabilityReason",
+ "modelAsString": false
+ }
+ },
+ "message": {
+ "description": "The detailed reason message.",
+ "type": "string"
+ }
+ }
+ },
+ "UserSubscriptionQuotaListResult": {
+ "type": "object",
+ "description": "Json-serialized array of User subscription quota response",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UserSubscriptionQuota"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "UserSubscriptionQuota": {
+ "description": "User subscription quota response",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "IotHub type id",
+ "type": "string"
+ },
+ "type": {
+ "description": "Response type",
+ "type": "string"
+ },
+ "unit": {
+ "description": "Unit of IotHub type",
+ "type": "string"
+ },
+ "currentValue": {
+ "description": "Current number of IotHub type",
+ "format": "int32",
+ "type": "integer"
+ },
+ "limit": {
+ "description": "Numerical limit on IotHub type",
+ "format": "int32",
+ "type": "integer"
+ },
+ "name": {
+ "description": "IotHub type",
+ "$ref": "#/definitions/Name"
+ }
+ }
+ },
+ "Name": {
+ "description": "Name of Iot Hub type",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "IotHub type",
+ "type": "string"
+ },
+ "localizedValue": {
+ "description": "Localized value of name",
+ "type": "string"
+ }
+ }
+ },
+ "TestAllRoutesInput": {
+ "description": "Input for testing all routes",
+ "type": "object",
+ "properties": {
+ "routingSource": {
+ "description": "Routing source",
+ "enum": [
+ "Invalid",
+ "DeviceMessages",
+ "TwinChangeEvents",
+ "DeviceLifecycleEvents",
+ "DeviceJobLifecycleEvents"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "RoutingSource",
+ "modelAsString": true
+ }
+ },
+ "message": {
+ "description": "Routing message",
+ "$ref": "#/definitions/RoutingMessage"
+ },
+ "twin": {
+ "description": "Routing Twin Reference",
+ "$ref": "#/definitions/RoutingTwin"
+ }
+ }
+ },
+ "RoutingTwin": {
+ "description": "Twin reference input parameter. This is an optional parameter",
+ "type": "object",
+ "properties": {
+ "tags": {
+ "description": "Twin Tags",
+ "type": "object"
+ },
+ "properties": {
+ "properties": {
+ "desired": {
+ "description": "Twin desired properties",
+ "type": "object"
+ },
+ "reported": {
+ "description": "Twin desired properties",
+ "type": "object"
+ }
+ }
+ }
+ }
+ },
+ "RoutingMessage": {
+ "description": "Routing message",
+ "type": "object",
+ "properties": {
+ "body": {
+ "description": "Body of routing message",
+ "type": "string"
+ },
+ "appProperties": {
+ "description": "App properties",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "systemProperties": {
+ "description": "System properties",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "TestAllRoutesResult": {
+ "description": "Result of testing all routes",
+ "type": "object",
+ "properties": {
+ "routes": {
+ "description": "JSON-serialized array of matched routes",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MatchedRoute"
+ }
+ }
+ }
+ },
+ "MatchedRoute": {
+ "description": "Routes that matched",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "Properties of routes that matched",
+ "$ref": "#/definitions/RouteProperties"
+ }
+ }
+ },
+ "TestRouteInput": {
+ "required": [
+ "route"
+ ],
+ "description": "Input for testing route",
+ "type": "object",
+ "properties": {
+ "message": {
+ "description": "Routing message",
+ "$ref": "#/definitions/RoutingMessage"
+ },
+ "route": {
+ "description": "Route properties",
+ "$ref": "#/definitions/RouteProperties"
+ },
+ "twin": {
+ "description": "Routing Twin Reference",
+ "$ref": "#/definitions/RoutingTwin"
+ }
+ }
+ },
+ "TestRouteResult": {
+ "description": "Result of testing one route",
+ "type": "object",
+ "properties": {
+ "result": {
+ "description": "Result of testing route",
+ "enum": [
+ "undefined",
+ "false",
+ "true"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "TestResultStatus",
+ "modelAsString": true
+ }
+ },
+ "details": {
+ "description": "Detailed result of testing route",
+ "$ref": "#/definitions/TestRouteResultDetails"
+ }
+ }
+ },
+ "TestRouteResultDetails": {
+ "description": "Detailed result of testing a route",
+ "type": "object",
+ "properties": {
+ "compilationErrors": {
+ "description": "JSON-serialized list of route compilation errors",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RouteCompilationError"
+ }
+ }
+ }
+ },
+ "RouteCompilationError": {
+ "description": "Compilation error when evaluating route",
+ "type": "object",
+ "properties": {
+ "message": {
+ "description": "Route error message",
+ "type": "string"
+ },
+ "severity": {
+ "description": "Severity of the route error",
+ "enum": [
+ "error",
+ "warning"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "RouteErrorSeverity",
+ "modelAsString": true
+ }
+ },
+ "location": {
+ "description": "Location where the route error happened",
+ "$ref": "#/definitions/RouteErrorRange"
+ }
+ }
+ },
+ "RouteErrorRange": {
+ "description": "Range of route errors",
+ "type": "object",
+ "properties": {
+ "start": {
+ "description": "Start where the route error happened",
+ "$ref": "#/definitions/RouteErrorPosition"
+ },
+ "end": {
+ "description": "End where the route error happened",
+ "$ref": "#/definitions/RouteErrorPosition"
+ }
+ }
+ },
+ "RouteErrorPosition": {
+ "description": "Position where the route error happened",
+ "type": "object",
+ "properties": {
+ "line": {
+ "description": "Line where the route error happened",
+ "format": "int32",
+ "type": "integer"
+ },
+ "column": {
+ "description": "Column where the route error happened",
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ },
+ "ExportDevicesRequest": {
+ "description": "Use to provide parameters when requesting an export of all devices in the IoT hub.",
+ "type": "object",
+ "properties": {
+ "exportBlobContainerUri": {
+ "description": "The export blob container URI.",
+ "type": "string"
+ },
+ "excludeKeys": {
+ "description": "The value indicating whether keys should be excluded during export.",
+ "type": "boolean"
+ },
+ "exportBlobName": {
+ "description": "The name of the blob that will be created in the provided output blob container. This blob will contain the exported device registry information for the IoT Hub.",
+ "type": "string"
+ },
+ "authenticationType": {
+ "description": "Specifies authentication type being used for connecting to the storage account.",
+ "enum": [
+ "keyBased",
+ "identityBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AuthenticationType",
+ "modelAsString": true
+ }
+ },
+ "includeConfigurations": {
+ "description": "The value indicating whether configurations should be exported.",
+ "type": "boolean"
+ },
+ "configurationsBlobName": {
+ "description": "The name of the blob that will be created in the provided output blob container. This blob will contain the exported configurations for the Iot Hub.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "exportBlobContainerUri",
+ "excludeKeys"
+ ]
+ },
+ "ImportDevicesRequest": {
+ "description": "Use to provide parameters when requesting an import of all devices in the hub.",
+ "type": "object",
+ "properties": {
+ "inputBlobContainerUri": {
+ "description": "The input blob container URI.",
+ "type": "string"
+ },
+ "outputBlobContainerUri": {
+ "description": "The output blob container URI.",
+ "type": "string"
+ },
+ "inputBlobName": {
+ "description": "The blob name to be used when importing from the provided input blob container.",
+ "type": "string"
+ },
+ "outputBlobName": {
+ "description": "The blob name to use for storing the status of the import job.",
+ "type": "string"
+ },
+ "authenticationType": {
+ "description": "Specifies authentication type being used for connecting to the storage account.",
+ "enum": [
+ "keyBased",
+ "identityBased"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AuthenticationType",
+ "modelAsString": true
+ }
+ },
+ "includeConfigurations": {
+ "description": "The value indicating whether configurations should be imported.",
+ "type": "boolean"
+ },
+ "configurationsBlobName": {
+ "description": "The blob name to be used when importing configurations from the provided input blob container.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "inputBlobContainerUri",
+ "outputBlobContainerUri"
+ ]
+ },
+ "FailoverInput": {
+ "description": "Use to provide failover region when requesting manual Failover for a hub.",
+ "type": "object",
+ "properties": {
+ "failoverRegion": {
+ "description": "Region the hub will be failed over to",
+ "type": "string"
+ }
+ },
+ "required": [
+ "failoverRegion"
+ ]
+ },
+ "IotHubLocationDescription": {
+ "description": "Public representation of one of the locations where a resource is provisioned.",
+ "type": "object",
+ "properties": {
+ "location": {
+ "description": "The name of the Azure region",
+ "type": "string"
+ },
+ "role": {
+ "description": "The role of the region, can be either primary or secondary. The primary region is where the IoT hub is currently provisioned. The secondary region is the Azure disaster recovery (DR) paired region and also the region where the IoT hub can failover to.",
+ "enum": [
+ "primary",
+ "secondary"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "IotHubReplicaRoleType",
+ "modelAsString": true
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "subscriptionId": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "The subscription identifier.",
+ "required": true,
+ "type": "string"
+ },
+ "api-version": {
+ "name": "api-version",
+ "in": "query",
+ "description": "The version of the API.",
+ "required": true,
+ "type": "string"
+ },
+ "resourceGroupName": {
+ "name": "resourceGroupName",
+ "description": "The name of the resource group that contains the IoT hub.",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "resourceName": {
+ "name": "resourceName",
+ "in": "path",
+ "description": "The name of the IoT hub.",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "certificateName": {
+ "name": "certificateName",
+ "in": "path",
+ "description": "The name of the certificate",
+ "required": true,
+ "type": "string",
+ "pattern": "^[A-Za-z0-9-._]{1,64}$",
+ "x-ms-parameter-location": "method"
+ },
+ "groupId": {
+ "name": "groupId",
+ "in": "path",
+ "description": "The name of the private link resource",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "privateEndpointConnectionName": {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "description": "The name of the private endpoint connection",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/iothub/resource-manager/readme.azureresourceschema.md b/specification/iothub/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..384ec99b61f0
--- /dev/null
+++ b/specification/iothub/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,192 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-devices-2020-08-01
+ - tag: schema-devices-2020-07-10-preview
+ - tag: schema-devices-2020-06-15
+ - tag: schema-devices-2020-04-01
+ - tag: schema-devices-2020-03-01
+ - tag: schema-devices-2019-11-04
+ - tag: schema-devices-2019-07-01-preview
+ - tag: schema-devices-2019-03-22-preview
+ - tag: schema-devices-2019-03-22
+ - tag: schema-devices-2018-12-01-preview
+ - tag: schema-devices-2018-04-01
+ - tag: schema-devices-2018-01-22
+ - tag: schema-devices-2017-07-01
+ - tag: schema-devices-2017-01-19
+ - tag: schema-devices-2016-02-03
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-devices-2020-08-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2020-08-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2020-08-01/iothub.json
+
+```
+
+### Tag: schema-devices-2020-07-10-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2020-07-10-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/preview/2020-07-10-preview/iothub.json
+
+```
+
+### Tag: schema-devices-2020-06-15 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2020-06-15' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2020-06-15/iothub.json
+
+```
+
+### Tag: schema-devices-2020-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2020-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2020-04-01/iothub.json
+
+```
+
+### Tag: schema-devices-2020-03-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2020-03-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2020-03-01/iothub.json
+
+```
+
+### Tag: schema-devices-2019-11-04 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2019-11-04' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2019-11-04/iothub.json
+
+```
+
+### Tag: schema-devices-2019-07-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2019-07-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/preview/2019-07-01-preview/iothub.json
+
+```
+
+### Tag: schema-devices-2019-03-22-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2019-03-22-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/preview/2019-03-22-preview/iothub.json
+
+```
+
+### Tag: schema-devices-2019-03-22 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2019-03-22' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2019-03-22/iothub.json
+
+```
+
+### Tag: schema-devices-2018-12-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2018-12-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/preview/2018-12-01-preview/iothub.json
+
+```
+
+### Tag: schema-devices-2018-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2018-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2018-04-01/iothub.json
+
+```
+
+### Tag: schema-devices-2018-01-22 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2018-01-22' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2018-01-22/iothub.json
+
+```
+
+### Tag: schema-devices-2017-07-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2017-07-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2017-07-01/iothub.json
+
+```
+
+### Tag: schema-devices-2017-01-19 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2017-01-19' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2017-01-19/iothub.json
+
+```
+
+### Tag: schema-devices-2016-02-03 and azureresourceschema
+
+``` yaml $(tag) == 'schema-devices-2016-02-03' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Devices/stable/2016-02-03/iothub.json
+
+```
diff --git a/specification/iothub/resource-manager/readme.md b/specification/iothub/resource-manager/readme.md
index d359d6a349ce..229f06971727 100644
--- a/specification/iothub/resource-manager/readme.md
+++ b/specification/iothub/resource-manager/readme.md
@@ -26,18 +26,36 @@ These are the global settings for the IotHub API.
``` yaml
openapi-type: arm
-tag: package-2020-06
+tag: package-2020-08
```
+### Tag: package-2020-08
+
+These settings apply only when `--tag=package-2020-08` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-08'
+input-file:
+ - Microsoft.Devices/stable/2020-08-01/iothub.json
+```
+### Tag: package-preview-2020-07
+
+These settings apply only when `--tag=package-preview-2020-07` is specified on the command line.
+
+``` yaml $(tag) == 'package-preview-2020-07'
+input-file:
+ - Microsoft.Devices/preview/2020-07-10-preview/iothub.json
+```
+
### Tag: package-2020-06
These settings apply only when `--tag=package-2020-06` is specified on the command line.
-```yaml $(tag) == 'package-2020-06'
+``` yaml $(tag) == 'package-2020-06'
input-file:
- Microsoft.Devices/stable/2020-06-15/iothub.json
```
+
### Tag: package-2020-04
These settings apply only when `--tag=package-2020-04` is specified on the command line.
@@ -168,6 +186,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_iot_hub']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js iothub/resource-manager
```
## C#
@@ -192,37 +213,7 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.go.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Devices/stable/2020-04-01/iothub.json
- - $(this-folder)/Microsoft.Devices/stable/2020-03-01/iothub.json
- - $(this-folder)/Microsoft.Devices/stable/2019-11-04/iothub.json
- - $(this-folder)/Microsoft.Devices/preview/2019-07-01-preview/iothub.json
- - $(this-folder)/Microsoft.Devices/stable/2019-03-22/iothub.json
- - $(this-folder)/Microsoft.Devices/preview/2019-03-22-preview/iothub.json
- - $(this-folder)/Microsoft.Devices/preview/2018-12-01-preview/iothub.json
- - $(this-folder)/Microsoft.Devices/stable/2018-04-01/iothub.json
- - $(this-folder)/Microsoft.Devices/stable/2018-01-22/iothub.json
- - $(this-folder)/Microsoft.Devices/stable/2017-07-01/iothub.json
- - $(this-folder)/Microsoft.Devices/stable/2017-01-19/iothub.json
- - $(this-folder)/Microsoft.Devices/stable/2016-02-03/iothub.json
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-```
-
-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/iotspaces/resource-manager/readme.azureresourceschema.md b/specification/iotspaces/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..280d1ea3abba
--- /dev/null
+++ b/specification/iotspaces/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-iotspaces-2017-10-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-iotspaces-2017-10-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-iotspaces-2017-10-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.IoTSpaces/preview/2017-10-01-preview/iotspaces.json
+
+```
diff --git a/specification/iotspaces/resource-manager/readme.md b/specification/iotspaces/resource-manager/readme.md
index ffd5f3dc4dfe..49a0a68b3682 100644
--- a/specification/iotspaces/resource-manager/readme.md
+++ b/specification/iotspaces/resource-manager/readme.md
@@ -73,6 +73,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js iotspaces/resource-manager
```
## CSharp Settings
@@ -94,27 +97,7 @@ csharp:
See configuration in [readme.go.md](./readme.go.md)
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.IoTSpaces/preview/2017-10-01-preview/iotspaces.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/backuprestore.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/backuprestore.json
index bcfd1860d89c..b7b9e122df92 100644
--- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/backuprestore.json
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/backuprestore.json
@@ -337,7 +337,8 @@
"endTime": {
"type": "integer",
"format": "unixtime",
- "description": "The end time of the restore operation"
+ "description": "The end time of the restore operation",
+ "x-nullable": true
}
},
"description": "Selective Key Restore operation"
@@ -380,7 +381,8 @@
"endTime": {
"type": "integer",
"format": "unixtime",
- "description": "The end time of the backup operation in UTC"
+ "description": "The end time of the backup operation in UTC",
+ "x-nullable": true
},
"jobId": {
"type": "string",
@@ -419,7 +421,8 @@
"endTime": {
"type": "integer",
"format": "unixtime",
- "description": "The end time of the restore operation"
+ "description": "The end time of the restore operation",
+ "x-nullable": true
}
},
"description": "Restore operation"
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/common.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/common.json
index 6b913677029b..9e1f28b3430e 100644
--- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/common.json
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/common.json
@@ -67,7 +67,8 @@
"$ref": "#/definitions/Error"
}
},
- "description": "The key vault server error."
+ "description": "The key vault server error.",
+ "x-nullable": true
}
}
}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/securitydomaindownloadpost-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/securitydomaindownloadpost-example.json
index 1c733f9c7967..ddcabd6f7668 100644
--- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/securitydomaindownloadpost-example.json
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/securitydomaindownloadpost-example.json
@@ -1,7 +1,7 @@
{
"parameters": {
"vaultBaseUrl": "https://myvault.vault.azure.net/",
- "Certificates": {
+ "CertificateInfoObject": {
"certificates": [
{
"value": {
@@ -60,14 +60,48 @@
"e": "AQAB"
}
}
- ]
+ ],
+ "required": 2
},
"api-version": "7.2-preview"
},
"responses": {
"200": {
"body": {
- "value": "{\"EncData\":{\"data\":[{\"compact_jwe\":\"ey$Jhb%232GciOiJkaXIiLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwia2lkIjoiZW5jbGF2ZS$J9..5eVwZFlsZQeYXQ11HPC_JJg.4d32grvkQBMxyGmncd82VHOggiFbtuaKX2wXvjU-vKukMAtS7oLl9QsSZZJ5s94xAz7Atye93e6gA_2tbHW0QEzLOXiuV-vZ342zP46dxV56bEEjENIOgzBWAfxUkuUdnYE2UDahGSJSbhNxo8URa44CaSAX682q_otmwqh0jgxk5ZcbHRdwpbSFZnfQ6SgHBqrvQUUpKlWJMJQNuWeEjmWaPkCOUnwkJ1ZLOnVj1AB8rlfj0qnEtBotc4V5066vztRDaTLEOV99lp08WRcRPAY2QVBSfhZdzslQ2baRukk6WOTI5KxIl0cf7o0db_zgoT6vluewXgzTSe6NTcrparwVJ-r6kxw12gkYJtrr3ytvOT_lgip5-7H3PLAgDDRDjHd_PEdNyPqsg56QjtVXBUwutQrfh46s_ATm0dFrhAF6Icf9H2rLDGCiFmKUn-CrtM3vErNzu9BMC8ekuSOe0t0XTnsKOjdiabE95MoRIqQYWQGfi02Rp2XO_lSEUnQJTNomd1IATKPiqqktE5YUu0OzDrVCdSGBGg5IDedmGSp0QIf8m7kSc8xYUsU1PTdJoSzgiOAue0ur_P1i2xr_BSSI6I4BJekw9e58qqBbWN-kc3swgLddsCfXqyW9RnNBvjQmnwdffv1O_4zF0wGVnohs6PYu-9RqIzLxgfHvnlBQbsauWlqpNfw5h_JpnoKW287vPc2iXRONHlGdd-4Mp3323JFbISM6NgGg8y6nUAdKASjyXuqR7bTnr3pNTpjF4523buuzKG3Q4nzr-jnWGPIpxeyBV6unEK0Aw3-QQpY7CG_s3-76P484gJm4vPum03I_V3tmnNt}]}}"
+ "data": {
+ "EncData": {
+ "data": [
+ {
+ "compact_jwe": "",
+ "tag": "hsm_backup"
+ },
+ {
+ "compact_jwe": "",
+ "tag": "base_enclave_backup"
+ },
+ {
+ "compact_jwe": "",
+ "tag": "partition_enclave_backup"
+ }
+ ],
+ "kdf": "sp108_kdf"
+ },
+ "SharedKeys": {
+ "key_algorithm": "shamir_share",
+ "required": 2,
+ "enc_shares": [
+ {
+ "enc_key": "compact JWE wrapped share1",
+ "x5t_256": "bWFuZ2VkaHNtDQo"
+ },
+ {
+ "enc_key": "compact JWE wrapped share2",
+ "x5t_256": "bWFuZ2VkaHNta2V5dmF1bHQNCg"
+ }
+ ]
+ },
+ "version": 2
+ }
}
}
}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/securitydomaintransferkey-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/securitydomaintransferkey-example.json
index 9c9edb0d91fa..17ba565151ca 100644
--- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/securitydomaintransferkey-example.json
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/securitydomaintransferkey-example.json
@@ -6,6 +6,7 @@
"responses": {
"200": {
"body": {
+ "key_format": "jwk",
"transfer_key": {
"kid": "https://myvault.vault.azure.net/transfer_key",
"kty": "RSA",
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/securitydomainuploadoperation-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/securitydomainuploadoperation-example.json
index e59cc01e4939..5e7318a81035 100644
--- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/securitydomainuploadoperation-example.json
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/examples/securitydomainuploadoperation-example.json
@@ -2,7 +2,29 @@
"parameters": {
"vaultBaseUrl": "https://myvault.vault.azure.net/",
"security_domain": {
- "value": ""
+ "value": {
+ "EncData": {
+ "data": [
+ {
+ "compact_jwe": "",
+ "tag": "hsm_backup"
+ },
+ {
+ "compact_jwe": "",
+ "tag": "base_enclave_backup"
+ },
+ {
+ "compact_jwe": "",
+ "tag": "partition_enclave_backup"
+ }
+ ],
+ "kdf": "sp108_kdf"
+ },
+ "WrappedKey": {
+ "enc_key": "eyJhbGciOiJ",
+ "x5t_256": "h8ObF2NU85MhzEEE2JrSSGcF7aK2CiNrffef1r8mY"
+ }
+ }
},
"api-version": "7.2-preview"
},
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/securitydomain.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/securitydomain.json
index 6f2bb9644780..6ff6f9e7856e 100644
--- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/securitydomain.json
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.2-preview/securitydomain.json
@@ -37,12 +37,12 @@
"parameters": [
{
"in": "body",
- "name": "Certificates",
+ "name": "CertificateInfoObject",
"required": true,
"schema": {
- "$ref": "#/definitions/CertificateSet"
+ "$ref": "#/definitions/CertificateInfoObject"
},
- "description": "Security domain download operation requires customer to provide three certificates containing public key in JWK format."
+ "description": "Security domain download operation requires customer to provide N certificates (minimum 3 and maximum 10) containing public key in JWK format."
},
{
"$ref": "#/parameters/ApiVersionParameter"
@@ -50,7 +50,7 @@
],
"responses": {
"200": {
- "description": "Security domain download response",
+ "description": "This is the specification of the security domain as downloaded from the new pool",
"schema": {
"$ref": "#/definitions/SecurityDomainObject"
}
@@ -120,7 +120,7 @@
"description": "security domain",
"required": true,
"schema": {
- "$ref": "#/definitions/SecurityDomainObject"
+ "$ref": "#/definitions/SecurityDomainUploadObject"
}
}
],
@@ -185,7 +185,7 @@
}
},
"definitions": {
- "CertificateSet": {
+ "CertificateInfoObject": {
"properties": {
"certificates": {
"type": "array",
@@ -193,9 +193,16 @@
"$ref": "#/definitions/SecurityDomainCertificateItem"
},
"minItems": 3,
- "maxItems": 3,
+ "maxItems": 10,
"uniqueItems": true,
- "description": "Three certificates needed from customer"
+ "description": "Certificates needed from customer"
+ },
+ "required": {
+ "description": "Customer to specify the number of certificates (minimum 2 and maximum 10) to restore security domain",
+ "type": "integer",
+ "default": 2,
+ "minimum": 2,
+ "maximum": 10
}
},
"required": [
@@ -215,8 +222,14 @@
},
"TransferKey": {
"properties": {
+ "key_format": {
+ "type": "string",
+ "default": "jwk",
+ "description": "Specifies the format of the transfer key"
+ },
"transfer_key": {
- "$ref": "#/definitions/SecurityDomainJsonWebKey"
+ "$ref": "#/definitions/SecurityDomainJsonWebKey",
+ "description": "Specifies the transfer key in JWK format"
}
},
"required": [
@@ -225,10 +238,113 @@
},
"SecurityDomainObject": {
"properties": {
- "value": {
- "type": "string"
+ "data": {
+ "type": "object",
+ "properties": {
+ "EncData": {
+ "$ref": "#/definitions/EncDataSet",
+ "description": "Array of encrypted data set"
+ },
+ "SharedKeys": {
+ "properties": {
+ "key_algorithm": {
+ "type": "string",
+ "default": "shamir_share",
+ "description": "The Algorithm used for shared keys"
+ },
+ "required": {
+ "type": "integer",
+ "minimum": 2,
+ "maximum": 10,
+ "description": "The number of keys (minimum 2 and maximum 10) required for security domain. "
+ },
+ "enc_shares": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Key",
+ "minItems": 3,
+ "maxItems": 10
+ },
+ "uniqueItems": true,
+ "description": "Compact JWE wrapped shares array"
+ }
+ },
+ "required": [
+ "key_algorithm",
+ "required",
+ "enc_shares"
+ ],
+ "description": "Array of shared keys"
+ },
+ "version": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "EncData",
+ "SharedKeys",
+ "version"
+ ]
}
- }
+ },
+ "description": "Security domain",
+ "required": [
+ "data"
+ ]
+ },
+ "EncDataSet": {
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EncDataSetItem",
+ "minItems": 2
+ },
+ "description": "Array of encrypted security domain",
+ "uniqueItems": true
+ },
+ "kdf": {
+ "type": "string",
+ "default": "sp108_kdf",
+ "description": "The key derivation function used"
+ }
+ },
+ "required": [
+ "data",
+ "kdf"
+ ]
+ },
+ "EncDataSetItem": {
+ "properties": {
+ "compact_jwe": {
+ "type": "string",
+ "description": "Encrypted data"
+ },
+ "tag": {
+ "type": "string",
+ "description": "hsm backup tag"
+ }
+ },
+ "required": [
+ "compact_jwe",
+ "tag"
+ ]
+ },
+ "Key": {
+ "properties": {
+ "enc_key": {
+ "type": "string",
+ "description": "Compact JWE wrapped share"
+ },
+ "x5t_256": {
+ "type": "string",
+ "description": "SHA 256 hash of certificate"
+ }
+ },
+ "required": [
+ "enc_key",
+ "x5t_256"
+ ]
},
"SecurityDomainOperationStatus": {
"properties": {
@@ -258,15 +374,7 @@
},
"kty": {
"type": "string",
- "description": "JsonWebKey Key Type (kty), as defined in https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40. For security domain this value must be RSA",
- "enum": [
- "RSA",
- "RSA-HSM"
- ],
- "x-ms-enum": {
- "name": "JsonWebKeyType",
- "modelAsString": true
- }
+ "description": "JsonWebKey Key Type (kty), as defined in https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40. For security domain this value must be RSA"
},
"key_ops": {
"type": "array",
@@ -310,12 +418,51 @@
"required": [
"kty",
"key_ops",
+ "alg",
"kid",
"x5c",
"x5t#S256",
"n",
"e"
]
+ },
+ "SecurityDomainUploadObject": {
+ "properties": {
+ "value": {
+ "type": "object",
+ "properties": {
+ "EncData": {
+ "$ref": "#/definitions/EncDataSet",
+ "description": "Array of encrypted data set"
+ },
+ "WrappedKey": {
+ "properties": {
+ "enc_key": {
+ "type": "string",
+ "description": "Encryption key used to encrypt the EncData"
+ },
+ "x5t_256": {
+ "type": "string",
+ "description": "Thumbprint used to determine which certificate was used to encrypt the enc_key field"
+ }
+ },
+ "required": [
+ "enc_key",
+ "x5t_256"
+ ],
+ "description": "Key object containing the encryption key used to encrypt EncData object"
+ }
+ },
+ "required": [
+ "EncData",
+ "WrappedKey"
+ ]
+ }
+ },
+ "description": "Security domain object uploaded to a new pool",
+ "required": [
+ "value"
+ ]
}
},
"parameters": {
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.0/keyvault.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.0/keyvault.json
index e7394ee8cb47..489c6be6402f 100644
--- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.0/keyvault.json
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.0/keyvault.json
@@ -3754,7 +3754,7 @@
},
{
"value": "oct",
- "description": "Octet sequence (used to represent symmetric keys)"
+ "description": "Not supported in this version. Octet sequence (used to represent symmetric keys)"
}
]
}
@@ -5236,7 +5236,7 @@
"value": {
"x-ms-client-name": "base64EncodedCertificate",
"type": "string",
- "description": "Base64 encoded representation of the certificate object to import. This certificate needs to contain the private key."
+ "description": "A PEM file or a base64-encoded PFX file. PEM files need to contain the private key."
},
"pwd": {
"x-ms-client-name": "password",
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/certificates.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/certificates.json
index 6760c1d5970b..b2df715edcae 100644
--- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/certificates.json
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/certificates.json
@@ -1842,7 +1842,7 @@
"value": {
"x-ms-client-name": "base64EncodedCertificate",
"type": "string",
- "description": "Base64 encoded representation of the certificate object to import. This certificate needs to contain the private key."
+ "description": "A PEM file or a base64-encoded PFX file. PEM files need to contain the private key."
},
"pwd": {
"x-ms-client-name": "password",
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/keys.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/keys.json
index 6d4a85db9488..f0a3aa63cc26 100644
--- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/keys.json
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/keys.json
@@ -1013,7 +1013,7 @@
},
{
"value": "oct",
- "description": "Octet sequence (used to represent symmetric keys)"
+ "description": "Not supported in this version. Octet sequence (used to represent symmetric keys)"
}
]
}
diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/secrets.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/secrets.json
index a6b3ce99de60..bbc96838e049 100644
--- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/secrets.json
+++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.1/secrets.json
@@ -469,7 +469,7 @@
],
"responses": {
"200": {
- "description": "A Secret bundle of the original secret and its attributes.",
+ "description": "A Secret id and its attributes only.",
"schema": {
"$ref": "#/definitions/SecretBundle"
}
diff --git a/specification/keyvault/data-plane/readme.go.md b/specification/keyvault/data-plane/readme.go.md
index 4da1caa5e2cb..051165621376 100644
--- a/specification/keyvault/data-plane/readme.go.md
+++ b/specification/keyvault/data-plane/readme.go.md
@@ -35,7 +35,7 @@ These settings apply only when `--tag=package-7.1 --go` is specified on the comm
Please also specify `--go-sdk-folder=`.
``` yaml $(tag) == 'package-7.1' && $(go)
-output-folder: $(go-sdk-folder)/services/preview/$(namespace)/v7.1/$(namespace)
+output-folder: $(go-sdk-folder)/services/$(namespace)/v7.1/$(namespace)
```
### Tag: package-7.0 and go
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_CreateOrUpdate.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_CreateOrUpdate.json
new file mode 100644
index 000000000000..16c3ad45709d
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_CreateOrUpdate.json
@@ -0,0 +1,86 @@
+{
+ "parameters": {
+ "resourceGroupName": "hsm-group",
+ "name": "hsm1",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview",
+ "parameters": {
+ "properties": {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "initialAdminObjectIds": [
+ "00000000-0000-0000-0000-000000000000"
+ ],
+ "enableSoftDelete": true,
+ "softDeleteRetentionInDays": 90,
+ "enablePurgeProtection": true
+ },
+ "location": "westus",
+ "sku": {
+ "family": "B",
+ "name": "Standard_B1"
+ },
+ "tags": {
+ "Dept": "hsm",
+ "Environment": "dogfood"
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "body": {
+ "properties": {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "initialAdminObjectIds": [
+ "00000000-0000-0000-0000-000000000000"
+ ],
+ "enableSoftDelete": true,
+ "softDeleteRetentionInDays": 90,
+ "enablePurgeProtection": true,
+ "hsmUri": null,
+ "provisioningState": "Provisioning",
+ "statusMessage": "Allocating hardware"
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1",
+ "name": "hsm1",
+ "type": "Microsoft.KeyVault/managedHSMs",
+ "location": "westus",
+ "sku": {
+ "family": "B",
+ "name": "Standard_B1"
+ },
+ "tags": {
+ "Dept": "hsm",
+ "Environment": "dogfood"
+ }
+ }
+ },
+ "200": {
+ "body": {
+ "properties": {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "initialAdminObjectIds": [
+ "00000000-0000-0000-0000-000000000000"
+ ],
+ "enableSoftDelete": true,
+ "softDeleteRetentionInDays": 90,
+ "enablePurgeProtection": true,
+ "hsmUri": "https://westus.hsm1.managedhsm.azure.net",
+ "provisioningState": "Succeeded",
+ "statusMessage": "ManagedHsm is functional."
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1",
+ "name": "hsm1",
+ "type": "Microsoft.KeyVault/managedHSMs",
+ "location": "westus",
+ "sku": {
+ "family": "B",
+ "name": "Standard_B1"
+ },
+ "tags": {
+ "Dept": "hsm",
+ "Environment": "dogfood"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_Delete.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_Delete.json
new file mode 100644
index 000000000000..a8cca6244440
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_Delete.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "resourceGroupName": "hsm-group",
+ "name": "hsm1",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_Get.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_Get.json
new file mode 100644
index 000000000000..9dd9972f3fac
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_Get.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "resourceGroupName": "hsm-group",
+ "name": "hsm1",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "initialAdminObjectIds": [
+ "00000000-0000-0000-0000-000000000000"
+ ],
+ "enableSoftDelete": true,
+ "softDeleteRetentionInDays": 90,
+ "enablePurgeProtection": true,
+ "hsmUri": "https://westus.hsm1.managedhsm.azure.net",
+ "provisioningState": "Succeeded",
+ "statusMessage": "ManagedHsm is functional."
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1",
+ "name": "hsm1",
+ "type": "Microsoft.KeyVault/managedHSMs",
+ "location": "westus",
+ "sku": {
+ "family": "B",
+ "name": "Standard_B1"
+ },
+ "tags": {
+ "Dept": "hsm",
+ "Environment": "dogfood"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_ListByResourceGroup.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_ListByResourceGroup.json
new file mode 100644
index 000000000000..7a3fe9cb1ee9
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_ListByResourceGroup.json
@@ -0,0 +1,68 @@
+{
+ "parameters": {
+ "resourceGroupName": "hsm-group",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "initialAdminObjectIds": [
+ "00000000-0000-0000-0000-000000000000"
+ ],
+ "enableSoftDelete": true,
+ "softDeleteRetentionInDays": 90,
+ "enablePurgeProtection": true,
+ "hsmUri": "https://westus.hsm1.managedhsm.azure.net",
+ "provisioningState": "Succeeded",
+ "statusMessage": "ManagedHsm is functional."
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1",
+ "name": "hsm1",
+ "type": "Microsoft.KeyVault/managedHSMs",
+ "location": "westus",
+ "sku": {
+ "family": "B",
+ "name": "Standard_B1"
+ },
+ "tags": {
+ "Dept": "hsm",
+ "Environment": "dogfood"
+ }
+ },
+ {
+ "properties": {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "initialAdminObjectIds": [
+ "00000000-0000-0000-0000-000000000000"
+ ],
+ "enableSoftDelete": true,
+ "softDeleteRetentionInDays": 90,
+ "enablePurgeProtection": true,
+ "hsmUri": "https://westus.hsm2.managedhsm.azure.net",
+ "provisioningState": "Succeeded",
+ "statusMessage": "ManagedHsm is functional."
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm2",
+ "name": "hsm2",
+ "type": "Microsoft.KeyVault/managedHSMs",
+ "location": "westus",
+ "sku": {
+ "family": "B",
+ "name": "Standard_B1"
+ },
+ "tags": {
+ "Dept": "hsm",
+ "Environment": "production"
+ }
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs?api-version=2020-04-01-preview&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng=="
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_ListBySubscription.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_ListBySubscription.json
new file mode 100644
index 000000000000..63ae1da82161
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_ListBySubscription.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "properties": {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "initialAdminObjectIds": [
+ "00000000-0000-0000-0000-000000000000"
+ ],
+ "enableSoftDelete": true,
+ "softDeleteRetentionInDays": 90,
+ "enablePurgeProtection": true,
+ "hsmUri": "https://westus.hsm1.managedhsm.azure.net",
+ "provisioningState": "Succeeded",
+ "statusMessage": "ManagedHsm is functional."
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1",
+ "name": "hsm1",
+ "type": "Microsoft.KeyVault/managedHSMs",
+ "location": "westus",
+ "sku": {
+ "family": "B",
+ "name": "Standard_B1"
+ },
+ "tags": {
+ "Dept": "hsm",
+ "Environment": "dogfood"
+ }
+ },
+ {
+ "properties": {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "initialAdminObjectIds": [
+ "00000000-0000-0000-0000-000000000000"
+ ],
+ "enableSoftDelete": true,
+ "softDeleteRetentionInDays": 90,
+ "enablePurgeProtection": true,
+ "hsmUri": "https://westus.hsm2.managedhsm.azure.net",
+ "provisioningState": "Succeeded",
+ "statusMessage": "ManagedHsm is functional."
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm2",
+ "name": "hsm2",
+ "type": "Microsoft.KeyVault/managedHSMs",
+ "location": "westus",
+ "sku": {
+ "family": "B",
+ "name": "Standard_B1"
+ },
+ "tags": {
+ "Dept": "hsm",
+ "Environment": "production"
+ }
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/managedHSMs?api-version=2020-04-01-preview&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng=="
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_Update.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_Update.json
new file mode 100644
index 000000000000..ebedabe4e003
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/ManagedHsm_Update.json
@@ -0,0 +1,75 @@
+{
+ "parameters": {
+ "resourceGroupName": "hsm-group",
+ "name": "hsm1",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview",
+ "parameters": {
+ "tags": {
+ "Dept": "hsm",
+ "Environment": "dogfood",
+ "Slice": "A"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "initialAdminObjectIds": [
+ "00000000-0000-0000-0000-000000000000"
+ ],
+ "enableSoftDelete": true,
+ "softDeleteRetentionInDays": 90,
+ "enablePurgeProtection": true,
+ "hsmUri": "https://westus.hsm1.managedhsm.azure.net",
+ "provisioningState": "Succeeded",
+ "statusMessage": "ManagedHsm is functional."
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1",
+ "name": "hsm1",
+ "type": "Microsoft.KeyVault/managedHSMs",
+ "location": "westus",
+ "sku": {
+ "family": "B",
+ "name": "Standard_B1"
+ },
+ "tags": {
+ "Dept": "hsm",
+ "Environment": "dogfood",
+ "Slice": "A"
+ }
+ }
+ },
+ "202": {
+ "body": {
+ "properties": {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "initialAdminObjectIds": [
+ "00000000-0000-0000-0000-000000000000"
+ ],
+ "enableSoftDelete": true,
+ "softDeleteRetentionInDays": 90,
+ "enablePurgeProtection": true,
+ "hsmUri": "https://westus.hsm1.managedhsm.azure.net",
+ "provisioningState": "Updating",
+ "statusMessage": "ManagedHsm is updating."
+ },
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1",
+ "name": "hsm1",
+ "type": "Microsoft.KeyVault/managedHSMs",
+ "location": "westus",
+ "sku": {
+ "family": "B",
+ "name": "Standard_B1"
+ },
+ "tags": {
+ "Dept": "hsm",
+ "Environment": "dogfood",
+ "Slice": "A"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/checkVaultNameAvailability.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/checkVaultNameAvailability.json
new file mode 100644
index 000000000000..6d3bb051dd0f
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/checkVaultNameAvailability.json
@@ -0,0 +1,17 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview",
+ "vaultName": {
+ "name": "sample-vault",
+ "type": "Microsoft.KeyVault/vaults"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nameAvailable": true
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/createSecret.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/createSecret.json
new file mode 100644
index 000000000000..0ed281968ba0
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/createSecret.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "resourceGroupName": "sample-group",
+ "vaultName": "sample-vault",
+ "secretName": "secret-name",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview",
+ "parameters": {
+ "properties": {
+ "value": "secret-value"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name",
+ "name": "secret-name",
+ "type": "Microsoft.KeyVault/vaults/secrets",
+ "location": "westus",
+ "properties": {
+ "attributes": {
+ "enabled": true,
+ "created": 1514938738,
+ "updated": 1514938738
+ },
+ "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name",
+ "secretUriWithVersion": "https:/sample-vault.vault.azure.net/secrets/secret-name/baf6de32c4774c7c81345f6476cf90a4"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name",
+ "name": "secret-name",
+ "type": "Microsoft.KeyVault/vaults/secrets",
+ "location": "westus",
+ "properties": {
+ "attributes": {
+ "enabled": true,
+ "created": 1514938738,
+ "updated": 1514938738
+ },
+ "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name",
+ "secretUriWithVersion": "https:/sample-vault.vault.azure.net/secrets/secret-name/baf6de32c4774c7c81345f6476cf90a4"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/createVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/createVault.json
new file mode 100644
index 000000000000..bfcef174e0e1
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/createVault.json
@@ -0,0 +1,219 @@
+{
+ "parameters": {
+ "resourceGroupName": "sample-resource-group",
+ "vaultName": "sample-vault",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview",
+ "parameters": {
+ "location": "westus",
+ "properties": {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "sku": {
+ "family": "A",
+ "name": "standard"
+ },
+ "accessPolicies": [
+ {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "permissions": {
+ "keys": [
+ "encrypt",
+ "decrypt",
+ "wrapKey",
+ "unwrapKey",
+ "sign",
+ "verify",
+ "get",
+ "list",
+ "create",
+ "update",
+ "import",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "secrets": [
+ "get",
+ "list",
+ "set",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "certificates": [
+ "get",
+ "list",
+ "delete",
+ "create",
+ "import",
+ "update",
+ "managecontacts",
+ "getissuers",
+ "listissuers",
+ "setissuers",
+ "deleteissuers",
+ "manageissuers",
+ "recover",
+ "purge"
+ ]
+ }
+ }
+ ],
+ "enabledForDeployment": true,
+ "enabledForDiskEncryption": true,
+ "enabledForTemplateDeployment": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault",
+ "name": "sample-vault",
+ "type": "Microsoft.KeyVault/vaults",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "sku": {
+ "family": "A",
+ "name": "standard"
+ },
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "accessPolicies": [
+ {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "permissions": {
+ "keys": [
+ "encrypt",
+ "decrypt",
+ "wrapKey",
+ "unwrapKey",
+ "sign",
+ "verify",
+ "get",
+ "list",
+ "create",
+ "update",
+ "import",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "secrets": [
+ "get",
+ "list",
+ "set",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "certificates": [
+ "get",
+ "list",
+ "delete",
+ "create",
+ "import",
+ "update",
+ "managecontacts",
+ "getissuers",
+ "listissuers",
+ "setissuers",
+ "deleteissuers",
+ "manageissuers",
+ "recover",
+ "purge"
+ ]
+ }
+ }
+ ],
+ "enabledForDeployment": true,
+ "enabledForDiskEncryption": true,
+ "enabledForTemplateDeployment": true,
+ "vaultUri": "https://sample-vault.vault.azure.net"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault",
+ "name": "sample-vault",
+ "type": "Microsoft.KeyVault/vaults",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "sku": {
+ "family": "A",
+ "name": "standard"
+ },
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "accessPolicies": [
+ {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "permissions": {
+ "keys": [
+ "encrypt",
+ "decrypt",
+ "wrapKey",
+ "unwrapKey",
+ "sign",
+ "verify",
+ "get",
+ "list",
+ "create",
+ "update",
+ "import",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "secrets": [
+ "get",
+ "list",
+ "set",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "certificates": [
+ "get",
+ "list",
+ "delete",
+ "create",
+ "import",
+ "update",
+ "managecontacts",
+ "getissuers",
+ "listissuers",
+ "setissuers",
+ "deleteissuers",
+ "manageissuers",
+ "recover",
+ "purge"
+ ]
+ }
+ }
+ ],
+ "enabledForDeployment": true,
+ "enabledForDiskEncryption": true,
+ "enabledForTemplateDeployment": true,
+ "vaultUri": "https://sample-vault.vault.azure.net"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/createVaultWithNetworkAcls.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/createVaultWithNetworkAcls.json
new file mode 100644
index 000000000000..15e15f63d586
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/createVaultWithNetworkAcls.json
@@ -0,0 +1,114 @@
+{
+ "parameters": {
+ "resourceGroupName": "sample-resource-group",
+ "vaultName": "sample-vault",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview",
+ "parameters": {
+ "location": "westus",
+ "properties": {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "sku": {
+ "family": "A",
+ "name": "standard"
+ },
+ "networkAcls": {
+ "defaultAction": "Deny",
+ "bypass": "AzureServices",
+ "ipRules": [
+ {
+ "value": "124.56.78.91"
+ },
+ {
+ "value": "'10.91.4.0/24'"
+ }
+ ],
+ "virtualNetworkRules": [
+ {
+ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1"
+ }
+ ]
+ },
+ "enabledForDeployment": true,
+ "enabledForDiskEncryption": true,
+ "enabledForTemplateDeployment": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault",
+ "name": "sample-vault",
+ "type": "Microsoft.KeyVault/vaults",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "sku": {
+ "family": "A",
+ "name": "standard"
+ },
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "networkAcls": {
+ "defaultAction": "Deny",
+ "bypass": "AzureServices",
+ "ipRules": [
+ {
+ "value": "124.56.78.91/32"
+ },
+ {
+ "value": "'10.91.4.0/24'"
+ }
+ ],
+ "virtualNetworkRules": [
+ {
+ "id": "/subscriptions/subid/resourcegroups/rg1/providers/microsoft.network/virtualnetworks/test-vnet/subnets/subnet1"
+ }
+ ]
+ },
+ "enabledForDeployment": true,
+ "enabledForDiskEncryption": true,
+ "enabledForTemplateDeployment": true,
+ "vaultUri": "https://sample-vault.vault.azure.net"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault",
+ "name": "sample-vault",
+ "type": "Microsoft.KeyVault/vaults",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "sku": {
+ "family": "A",
+ "name": "standard"
+ },
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "networkAcls": {
+ "defaultAction": "Deny",
+ "bypass": "AzureServices",
+ "ipRules": [
+ {
+ "value": "124.56.78.91/32"
+ },
+ {
+ "value": "'10.91.4.0/24'"
+ }
+ ],
+ "virtualNetworkRules": [
+ {
+ "id": "/subscriptions/subid/resourcegroups/rg1/providers/microsoft.network/virtualnetworks/test-vnet/subnets/subnet1"
+ }
+ ]
+ },
+ "enabledForDeployment": true,
+ "enabledForDiskEncryption": true,
+ "enabledForTemplateDeployment": true,
+ "vaultUri": "https://sample-vault.vault.azure.net"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/deletePrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/deletePrivateEndpointConnection.json
new file mode 100644
index 000000000000..2e927897cf70
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/deletePrivateEndpointConnection.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "sample-group",
+ "vaultName": "sample-vault",
+ "privateEndpointConnectionName": "sample-pec",
+ "api-version": "2018-02-14"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec",
+ "name": "sample-pec",
+ "type": "Microsoft.KeyVault/vaults/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Disconnected"
+ }
+ }
+ },
+ "202": {
+ "headers": {
+ "Retry-After": "60",
+ "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec?operationid=25334578"
+ }
+ },
+ "204": {}
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/deleteVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/deleteVault.json
new file mode 100644
index 000000000000..ca3613bc6326
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/deleteVault.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "resourceGroupName": "sample-resource-group",
+ "vaultName": "sample-vault",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {}
+ },
+ "204": {
+ "headers": {}
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/getDeletedVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/getDeletedVault.json
new file mode 100644
index 000000000000..04f83b94645a
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/getDeletedVault.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "vaultName": "sample-vault",
+ "location": "westus",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/deletedVaults/sample-vault",
+ "name": "sample-vault",
+ "type": "Microsoft.KeyVault/deletedVaults",
+ "properties": {
+ "vaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault",
+ "location": "westus",
+ "tags": {},
+ "deletionDate": "2017-01-01T00:00:59Z",
+ "scheduledPurgeDate": "2017-04-01T00:00:59Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/getPrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/getPrivateEndpointConnection.json
new file mode 100644
index 000000000000..2fb84a554652
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/getPrivateEndpointConnection.json
@@ -0,0 +1,29 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "sample-group",
+ "vaultName": "sample-vault",
+ "privateEndpointConnectionName": "sample-pec",
+ "api-version": "2018-02-14"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec",
+ "name": "sample-pec",
+ "type": "Microsoft.KeyVault/vaults/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "This was automatically approved by user1234@contoso.com",
+ "actionRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/getSecret.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/getSecret.json
new file mode 100644
index 000000000000..28e50e6568f8
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/getSecret.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "resourceGroupName": "sample-group",
+ "vaultName": "sample-vault",
+ "secretName": "secret-name",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name",
+ "name": "secret-name",
+ "type": "Microsoft.KeyVault/vaults/secrets",
+ "location": "westus",
+ "properties": {
+ "attributes": {
+ "enabled": true,
+ "created": 1514940950,
+ "updated": 1514940950
+ },
+ "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name",
+ "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name/77445834f7de41bab81d0723bf996860"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/getVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/getVault.json
new file mode 100644
index 000000000000..9ad3bc5a4220
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/getVault.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "resourceGroupName": "sample-resource-group",
+ "vaultName": "sample-vault",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault",
+ "name": "sample-vault",
+ "type": "Microsoft.KeyVault/vaults",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "sku": {
+ "family": "A",
+ "name": "standard"
+ },
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "accessPolicies": [
+ {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "permissions": {
+ "keys": [
+ "encrypt",
+ "decrypt",
+ "wrapKey",
+ "unwrapKey",
+ "sign",
+ "verify",
+ "get",
+ "list",
+ "create",
+ "update",
+ "import",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "secrets": [
+ "get",
+ "list",
+ "set",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "certificates": [
+ "get",
+ "list",
+ "delete",
+ "create",
+ "import",
+ "update",
+ "managecontacts",
+ "getissuers",
+ "listissuers",
+ "setissuers",
+ "deleteissuers",
+ "manageissuers",
+ "recover",
+ "purge"
+ ]
+ }
+ }
+ ],
+ "enabledForDeployment": true,
+ "enabledForDiskEncryption": true,
+ "enabledForTemplateDeployment": true,
+ "vaultUri": "https://sample-vault.vault.azure.net"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listDeletedVaults.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listDeletedVaults.json
new file mode 100644
index 000000000000..61cf7abfa431
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listDeletedVaults.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "$top": 1,
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/deletedVaults/sample-vault",
+ "name": "vault-agile-drawer-6404",
+ "type": "Microsoft.KeyVault/deletedVaults",
+ "properties": {
+ "vaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault",
+ "location": "westus",
+ "tags": {},
+ "deletionDate": "2017-01-01T00:00:59Z",
+ "scheduledPurgeDate": "2017-04-01T00:00:59Z"
+ }
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/deletedVaults?api-version=2020-04-01-preview&%24skiptoken=HY3RaoMwAEX%2fRcbeYhJrnRXKYNWOuqpME0sfNcYui0Yxade19N8ne7hcDlzOvVuKX81eKKmt4G4dooLQwgqsL2NGHUDYV6o68Z4rY1e388RtNvRQn2vNJjEaMSgNvcbneMUcsKg8BFwft8DndQ0w9hu2QOiFLRs4TsNFNHzSMBFsGvTQGvuD%2f5bVuTOw4R03vPkH%2fVqNAlzm5SxfOwh7ACOA8POTlvPjILlaU1ke8jImOc23JCppQVfZnna0DXc4ISc3vSVuRo5zJE6%2bj25C3vwk2v2kEV2mMn7PyOc1DbtNGkonnzuLym1G400uI5QRZj0efw%3d%3d"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listOperations.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listOperations.json
new file mode 100644
index 000000000000..4b2ccaa8fe0b
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listOperations.json
@@ -0,0 +1,275 @@
+{
+ "parameters": {
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.KeyVault/vaults/read",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Key Vault",
+ "operation": "View Key Vault",
+ "description": "View the properties of a key vault"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/vaults/write",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Key Vault",
+ "operation": "Update Key Vault",
+ "description": "Create a new key vault or update the properties of an existing key vault"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/vaults/delete",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Key Vault",
+ "operation": "Delete Key Vault",
+ "description": "Delete a key vault"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/vaults/deploy/action",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Key Vault",
+ "operation": "Use Vault for Azure Deployments",
+ "description": "Enables access to secrets in a key vault when deploying Azure resources"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/vaults/secrets/read",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Secret",
+ "operation": "View Secret Properties",
+ "description": "View the properties of a secret, but not its value"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/vaults/secrets/write",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Secret",
+ "operation": "Update Secret",
+ "description": "Create a new secret or update the value of an existing secret"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/vaults/accessPolicies/write",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Access Policy",
+ "operation": "Update Access Policy",
+ "description": "Update an existing access policy by merging or replacing, or add a new access policy to a vault."
+ }
+ },
+ {
+ "origin": "system",
+ "name": "Microsoft.KeyVault/vaults/providers/Microsoft.Insights/logDefinitions/read",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Key Vault Log Definition",
+ "operation": "Read log definition",
+ "description": "Gets the available logs for a key vault"
+ },
+ "properties": {
+ "serviceSpecification": {
+ "logSpecifications": [
+ {
+ "name": "AuditEvent",
+ "displayName": "Audit Logs",
+ "blobDuration": "PT1H"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "origin": "system",
+ "name": "Microsoft.KeyVault/vaults/providers/Microsoft.Insights/diagnosticSettings/Read",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Key Vault Diagnostic Settings",
+ "operation": "Read diagnostic setting",
+ "description": "Gets the diagnostic setting for the resource"
+ }
+ },
+ {
+ "origin": "system",
+ "name": "Microsoft.KeyVault/vaults/providers/Microsoft.Insights/diagnosticSettings/Write",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Key Vault Diagnostic Settings",
+ "operation": "Write diagnostic setting",
+ "description": "Creates or updates the diagnostic setting for the resource"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/register/action",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Subscription",
+ "operation": "Register Subscription",
+ "description": "Registers a subscription"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/unregister/action",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Subscription",
+ "operation": "Unregister Subscription",
+ "description": "Unregisters a subscription"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/operations/read",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Operations",
+ "operation": "Available Key Vault Operations",
+ "description": "Lists operations available on Microsoft.KeyVault resource provider"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/checkNameAvailability/read",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Name Availability",
+ "operation": "Check Name Availability",
+ "description": "Checks that a key vault name is valid and is not in use"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/deletedVaults/read",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Soft Deleted Key Vault",
+ "operation": "View Soft Deleted Vaults",
+ "description": "View the properties of soft deleted key vaults"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/locations/deletedVaults/read",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Soft Deleted Key Vault",
+ "operation": "View Soft Deleted Key Vault",
+ "description": "View the properties of a soft deleted key vault"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/locations/deletedVaults/purge/action",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Soft Deleted Key Vault",
+ "operation": "Purge Soft Deleted Key Vault",
+ "description": "Purge a soft deleted key vault"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/locations/operationResults/read",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Long Run Operation Result",
+ "operation": "Check Operation Result",
+ "description": "Check the result of a long run operation"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/hsmPools/read",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "HSM pool",
+ "operation": "View HSM pool",
+ "description": "View the properties of an HSM pool"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/hsmPools/write",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "HSM pool",
+ "operation": "Create or Update HSM pool",
+ "description": "Create a new HSM pool of update the properties of an existing HSM pool"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/hsmPools/delete",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "HSM pool",
+ "operation": "Delete HSM pool",
+ "description": "Delete an HSM pool"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/hsmPools/joinVault/action",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "HSM pool",
+ "operation": "Join KeyVault to HSM pool",
+ "description": "Join a key vault to an HSM pool"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/managedHSMs/read",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Managed HSM",
+ "operation": "View Managed HSM",
+ "description": "View the properties of a Managed HSM"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/managedHSMs/write",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Managed HSM",
+ "operation": "Create or Update Managed HSM",
+ "description": "Create a new Managed HSM of update the properties of an existing Managed HSM"
+ }
+ },
+ {
+ "name": "Microsoft.KeyVault/managedHSMs/delete",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Managed HSM",
+ "operation": "Delete Managed HSM",
+ "description": "Delete a Managed HSM"
+ }
+ },
+ {
+ "origin": "system",
+ "name": "Microsoft.KeyVault/vaults/providers/Microsoft.Insights/metricDefinitions/read",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Key Vault Metric Definition",
+ "operation": "Read metric definition",
+ "description": "Gets the available metrics for a key vault"
+ },
+ "properties": {
+ "serviceSpecification": {}
+ }
+ },
+ {
+ "origin": "system",
+ "name": "Microsoft.KeyVault/locations/deleteVirtualNetworkOrSubnets/action",
+ "display": {
+ "provider": "Microsoft Key Vault",
+ "resource": "Location",
+ "operation": "Modify Network ACLs containing the deleted Vitual Network or Subnet ",
+ "description": "Notifies Microsoft.KeyVault that a virtual network or subnet is being deleted"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listPrivateLinkResources.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listPrivateLinkResources.json
new file mode 100644
index 000000000000..f76786fad20e
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listPrivateLinkResources.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "sample-group",
+ "vaultName": "sample-vault",
+ "api-version": "2018-02-14"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateLinkResources/vault",
+ "name": "vault",
+ "type": "Microsoft.KeyVault/vaults/privateLinkResources",
+ "properties": {
+ "groupId": "vault",
+ "requiredMembers": [
+ "default"
+ ],
+ "requiredZoneNames": [
+ "privatelink.vaultcore.azure.net"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listSecrets.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listSecrets.json
new file mode 100644
index 000000000000..a16811133673
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listSecrets.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "resourceGroupName": "sample-group",
+ "vaultName": "sample-vault",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name",
+ "name": "secret-name",
+ "type": "Microsoft.KeyVault/vaults/secrets",
+ "location": "westus",
+ "properties": {
+ "attributes": {
+ "enabled": true,
+ "created": 1514941476,
+ "updated": 1514941476
+ },
+ "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name",
+ "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name/40af42fbc10047f8a756a73211492f56"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name2",
+ "name": "secret-name2",
+ "type": "Microsoft.KeyVault/vaults/secrets",
+ "location": "westus",
+ "properties": {
+ "attributes": {
+ "enabled": true,
+ "created": 1514941476,
+ "updated": 1514941476
+ },
+ "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name2",
+ "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name2/cd7264a6f56c44d1b594423c80609aae"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listVault.json
new file mode 100644
index 000000000000..3397baaa9f83
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listVault.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "$filter": "resourceType eq 'Microsoft.KeyVault/vaults'",
+ "$top": 1,
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2015-11-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault",
+ "name": "sample-vault",
+ "type": "Microsoft.KeyVault/vaults",
+ "location": "westus",
+ "tags": {}
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resources?%24filter=resourceType+eq+%27Microsoft.KeyVault%2fvaults%27&%24top=4&api-version=2015-11-01&%24skiptoken=eyJuZXh0UGFydGl0aW9uS2V5IjoiMSE4IVEwTTJNVGMtIiwibmV4dFJvd0tleSI6IjEhMTMyIU5rUTRSVEU1UXpJelFUWXdORGd4UmpoRlFrSXhNVGhFUXpNd01EZEROVVJmVkVkT1RDMU5TVU5TVDFOUFJsUTZNa1ZMUlZsV1FWVk1WRG95UmxaQlZVeFVVeTFUVTFKSExVcEpUVG95UkZSRlUxUTZNa1JXUVZWTVZDMVhSVk5VVlZNLSJ9"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listVaultByResourceGroup.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listVaultByResourceGroup.json
new file mode 100644
index 000000000000..2c8180503662
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listVaultByResourceGroup.json
@@ -0,0 +1,88 @@
+{
+ "parameters": {
+ "$top": 1,
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "sample-group",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault",
+ "name": "sample-vault",
+ "type": "Microsoft.KeyVault/vaults",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "sku": {
+ "family": "A",
+ "name": "premium"
+ },
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "accessPolicies": [
+ {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "permissions": {
+ "keys": [
+ "encrypt",
+ "decrypt",
+ "wrapKey",
+ "unwrapKey",
+ "sign",
+ "verify",
+ "get",
+ "list",
+ "create",
+ "update",
+ "import",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "secrets": [
+ "get",
+ "list",
+ "set",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "certificates": [
+ "get",
+ "list",
+ "delete",
+ "create",
+ "import",
+ "update",
+ "managecontacts",
+ "getissuers",
+ "listissuers",
+ "setissuers",
+ "deleteissuers",
+ "manageissuers",
+ "recover",
+ "purge"
+ ]
+ }
+ }
+ ],
+ "enabledForDeployment": true,
+ "enabledForDiskEncryption": true,
+ "enabledForTemplateDeployment": true,
+ "enableSoftDelete": true,
+ "vaultUri": "https://sample-vault.vault.azure.net/"
+ }
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults?api-version=2020-04-01-preview&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng=="
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listVaultBySubscription.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listVaultBySubscription.json
new file mode 100644
index 000000000000..b0d0dd555f98
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/listVaultBySubscription.json
@@ -0,0 +1,87 @@
+{
+ "parameters": {
+ "$top": 1,
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault",
+ "name": "sample-vault",
+ "type": "Microsoft.KeyVault/vaults",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "sku": {
+ "family": "A",
+ "name": "premium"
+ },
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "accessPolicies": [
+ {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "permissions": {
+ "keys": [
+ "encrypt",
+ "decrypt",
+ "wrapKey",
+ "unwrapKey",
+ "sign",
+ "verify",
+ "get",
+ "list",
+ "create",
+ "update",
+ "import",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "secrets": [
+ "get",
+ "list",
+ "set",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "certificates": [
+ "get",
+ "list",
+ "delete",
+ "create",
+ "import",
+ "update",
+ "managecontacts",
+ "getissuers",
+ "listissuers",
+ "setissuers",
+ "deleteissuers",
+ "manageissuers",
+ "recover",
+ "purge"
+ ]
+ }
+ }
+ ],
+ "enabledForDeployment": true,
+ "enabledForDiskEncryption": true,
+ "enabledForTemplateDeployment": true,
+ "enableSoftDelete": true,
+ "vaultUri": "https://sample-vault.vault.azure.net/"
+ }
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resources?api-version=22020-04-01-preview&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng=="
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/purgeDeletedVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/purgeDeletedVault.json
new file mode 100644
index 000000000000..2b48cf219ca8
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/purgeDeletedVault.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "vaultName": "sample-vault",
+ "location": "westus",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {}
+ },
+ "202": {
+ "headers": {}
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/putPrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/putPrivateEndpointConnection.json
new file mode 100644
index 000000000000..2e37409c6098
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/putPrivateEndpointConnection.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "sample-group",
+ "vaultName": "sample-vault",
+ "privateEndpointConnectionName": "sample-pec",
+ "api-version": "2018-02-14",
+ "properties": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "My name is Joe and I'm approving this."
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec",
+ "name": "sample-pec",
+ "type": "Microsoft.KeyVault/vaults/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "My name is Joe and I'm approving this.",
+ "actionRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/updateAccessPoliciesAdd.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/updateAccessPoliciesAdd.json
new file mode 100644
index 000000000000..fb43acb94d79
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/updateAccessPoliciesAdd.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "resourceGroupName": "sample-group",
+ "vaultName": "sample-vault",
+ "operationKind": "add",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview",
+ "parameters": {
+ "properties": {
+ "accessPolicies": [
+ {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "permissions": {
+ "keys": [
+ "encrypt"
+ ],
+ "secrets": [
+ "get"
+ ],
+ "certificates": [
+ "get"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/accessPolicies/",
+ "type": "Microsoft.KeyVault/vaults/accessPolicies",
+ "properties": {
+ "accessPolicies": [
+ {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "permissions": {
+ "keys": [
+ "encrypt"
+ ],
+ "secrets": [
+ "get"
+ ],
+ "certificates": [
+ "get"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/accessPolicies/",
+ "type": "Microsoft.KeyVault/vaults/accessPolicies",
+ "properties": {
+ "accessPolicies": [
+ {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "permissions": {
+ "keys": [
+ "encrypt"
+ ],
+ "secrets": [
+ "get"
+ ],
+ "certificates": [
+ "get"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/updateSecret.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/updateSecret.json
new file mode 100644
index 000000000000..5e5f395f305b
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/updateSecret.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "resourceGroupName": "sample-group",
+ "vaultName": "sample-vault",
+ "secretName": "secret-name",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview",
+ "parameters": {
+ "properties": {
+ "value": "secret-value2"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name",
+ "name": "secret-name",
+ "type": "Microsoft.KeyVault/vaults/secrets",
+ "location": "westus",
+ "properties": {
+ "attributes": {
+ "enabled": true,
+ "created": 1514940684,
+ "updated": 1514940698
+ },
+ "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name",
+ "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name/b8c802f549764f2d97885d152f92ee9d"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name",
+ "name": "secret-name",
+ "type": "Microsoft.KeyVault/vaults/secrets",
+ "location": "westus",
+ "properties": {
+ "attributes": {
+ "enabled": true,
+ "created": 1514940684,
+ "updated": 1514940698
+ },
+ "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name",
+ "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name/b8c802f549764f2d97885d152f92ee9d"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/updateVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/updateVault.json
new file mode 100644
index 000000000000..b179dc327999
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/examples/updateVault.json
@@ -0,0 +1,218 @@
+{
+ "parameters": {
+ "resourceGroupName": "sample-resource-group",
+ "vaultName": "sample-vault",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "api-version": "2020-04-01-preview",
+ "parameters": {
+ "properties": {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "sku": {
+ "family": "A",
+ "name": "standard"
+ },
+ "accessPolicies": [
+ {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "permissions": {
+ "keys": [
+ "encrypt",
+ "decrypt",
+ "wrapKey",
+ "unwrapKey",
+ "sign",
+ "verify",
+ "get",
+ "list",
+ "create",
+ "update",
+ "import",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "secrets": [
+ "get",
+ "list",
+ "set",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "certificates": [
+ "get",
+ "list",
+ "delete",
+ "create",
+ "import",
+ "update",
+ "managecontacts",
+ "getissuers",
+ "listissuers",
+ "setissuers",
+ "deleteissuers",
+ "manageissuers",
+ "recover",
+ "purge"
+ ]
+ }
+ }
+ ],
+ "enabledForDeployment": true,
+ "enabledForDiskEncryption": true,
+ "enabledForTemplateDeployment": true
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault",
+ "name": "sample-vault",
+ "type": "Microsoft.KeyVault/vaults",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "sku": {
+ "family": "A",
+ "name": "standard"
+ },
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "accessPolicies": [
+ {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "permissions": {
+ "keys": [
+ "encrypt",
+ "decrypt",
+ "wrapKey",
+ "unwrapKey",
+ "sign",
+ "verify",
+ "get",
+ "list",
+ "create",
+ "update",
+ "import",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "secrets": [
+ "get",
+ "list",
+ "set",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "certificates": [
+ "get",
+ "list",
+ "delete",
+ "create",
+ "import",
+ "update",
+ "managecontacts",
+ "getissuers",
+ "listissuers",
+ "setissuers",
+ "deleteissuers",
+ "manageissuers",
+ "recover",
+ "purge"
+ ]
+ }
+ }
+ ],
+ "enabledForDeployment": true,
+ "enabledForDiskEncryption": true,
+ "enabledForTemplateDeployment": true,
+ "vaultUri": "https://sample-vault.vault.azure.net"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault",
+ "name": "sample-vault",
+ "type": "Microsoft.KeyVault/vaults",
+ "location": "westus",
+ "tags": {},
+ "properties": {
+ "sku": {
+ "family": "A",
+ "name": "standard"
+ },
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "accessPolicies": [
+ {
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "permissions": {
+ "keys": [
+ "encrypt",
+ "decrypt",
+ "wrapKey",
+ "unwrapKey",
+ "sign",
+ "verify",
+ "get",
+ "list",
+ "create",
+ "update",
+ "import",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "secrets": [
+ "get",
+ "list",
+ "set",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "certificates": [
+ "get",
+ "list",
+ "delete",
+ "create",
+ "import",
+ "update",
+ "managecontacts",
+ "getissuers",
+ "listissuers",
+ "setissuers",
+ "deleteissuers",
+ "manageissuers",
+ "recover",
+ "purge"
+ ]
+ }
+ }
+ ],
+ "enabledForDeployment": true,
+ "enabledForDiskEncryption": true,
+ "enabledForTemplateDeployment": true,
+ "vaultUri": "https://sample-vault.vault.azure.net"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/keyvault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/keyvault.json
new file mode 100644
index 000000000000..1f3e463ea937
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/keyvault.json
@@ -0,0 +1,1835 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-04-01-preview",
+ "title": "KeyVaultManagementClient",
+ "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}": {
+ "put": {
+ "tags": [
+ "Vaults"
+ ],
+ "operationId": "Vaults_CreateOrUpdate",
+ "x-ms-long-running-operation": true,
+ "description": "Create or update a key vault in the specified subscription.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Resource Group to which the server belongs."
+ },
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{3,24}$",
+ "description": "Name of the vault"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VaultCreateOrUpdateParameters"
+ },
+ "description": "Parameters to create or update the vault"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Created or updated vault",
+ "schema": {
+ "$ref": "#/definitions/Vault"
+ }
+ },
+ "200": {
+ "description": "Created or updated vault",
+ "schema": {
+ "$ref": "#/definitions/Vault"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create a new vault or update an existing vault": {
+ "$ref": "./examples/createVault.json"
+ },
+ "Create or update a vault with network acls": {
+ "$ref": "./examples/createVaultWithNetworkAcls.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "patch": {
+ "tags": [
+ "Vaults"
+ ],
+ "operationId": "Vaults_Update",
+ "description": "Update a key vault in the specified subscription.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Resource Group to which the server belongs."
+ },
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{3,24}$",
+ "description": "Name of the vault"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VaultPatchParameters"
+ },
+ "description": "Parameters to patch the vault"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Patched vault",
+ "schema": {
+ "$ref": "#/definitions/Vault"
+ }
+ },
+ "200": {
+ "description": "Patched vault",
+ "schema": {
+ "$ref": "#/definitions/Vault"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update an existing vault": {
+ "$ref": "./examples/updateVault.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "delete": {
+ "tags": [
+ "Vaults"
+ ],
+ "operationId": "Vaults_Delete",
+ "description": "Deletes the specified Azure key vault.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Resource Group to which the vault belongs."
+ },
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vault to delete"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK Response."
+ },
+ "204": {
+ "description": "No Content."
+ }
+ },
+ "x-ms-examples": {
+ "Delete a vault": {
+ "$ref": "./examples/deleteVault.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "get": {
+ "tags": [
+ "Vaults"
+ ],
+ "operationId": "Vaults_Get",
+ "description": "Gets the specified Azure key vault.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Resource Group to which the vault belongs."
+ },
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vault."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Retrieved vault",
+ "schema": {
+ "$ref": "#/definitions/Vault"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Retrieve a vault": {
+ "$ref": "./examples/getVault.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/accessPolicies/{operationKind}": {
+ "put": {
+ "tags": [
+ "Vaults"
+ ],
+ "operationId": "Vaults_UpdateAccessPolicy",
+ "description": "Update access policies in a key vault in the specified subscription.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Resource Group to which the vault belongs."
+ },
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{3,24}$",
+ "description": "Name of the vault"
+ },
+ {
+ "name": "operationKind",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "add",
+ "replace",
+ "remove"
+ ],
+ "x-ms-enum": {
+ "name": "AccessPolicyUpdateKind",
+ "modelAsString": false
+ },
+ "description": "Name of the operation"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VaultAccessPolicyParameters"
+ },
+ "description": "Access policy to merge into the vault"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "The updated access policies",
+ "schema": {
+ "$ref": "#/definitions/VaultAccessPolicyParameters"
+ }
+ },
+ "200": {
+ "description": "The updated access policies",
+ "schema": {
+ "$ref": "#/definitions/VaultAccessPolicyParameters"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Add an access policy, or update an access policy with new permissions": {
+ "$ref": "./examples/updateAccessPoliciesAdd.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults": {
+ "get": {
+ "tags": [
+ "Vaults"
+ ],
+ "operationId": "Vaults_ListByResourceGroup",
+ "description": "The List operation gets information about the vaults associated with the subscription and within the specified resource group.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Resource Group to which the vault belongs."
+ },
+ {
+ "name": "$top",
+ "in": "query",
+ "type": "integer",
+ "format": "int32",
+ "description": "Maximum number of results to return."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Get information about all key vaults in the specified resource group.",
+ "schema": {
+ "$ref": "#/definitions/VaultListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List vaults in the specified resource group": {
+ "$ref": "./examples/listVaultByResourceGroup.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/vaults": {
+ "get": {
+ "tags": [
+ "Vaults"
+ ],
+ "operationId": "Vaults_ListBySubscription",
+ "description": "The List operation gets information about the vaults associated with the subscription.",
+ "parameters": [
+ {
+ "name": "$top",
+ "in": "query",
+ "type": "integer",
+ "format": "int32",
+ "description": "Maximum number of results to return."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Get information about all key vaults in the specified subscription.",
+ "schema": {
+ "$ref": "#/definitions/VaultListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List vaults in the specified subscription": {
+ "$ref": "./examples/listVaultBySubscription.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/deletedVaults": {
+ "get": {
+ "tags": [
+ "Vaults"
+ ],
+ "operationId": "Vaults_ListDeleted",
+ "description": "Gets information about the deleted vaults in a subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Retrieved information about all deleted key vaults in a subscription.",
+ "schema": {
+ "$ref": "#/definitions/DeletedVaultListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List deleted vaults in the specified subscription": {
+ "$ref": "./examples/listDeletedVaults.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedVaults/{vaultName}": {
+ "get": {
+ "tags": [
+ "Vaults"
+ ],
+ "operationId": "Vaults_GetDeleted",
+ "description": "Gets the deleted Azure key vault.",
+ "parameters": [
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vault."
+ },
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location of the deleted vault."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Retrieved information about the deleted vault.",
+ "schema": {
+ "$ref": "#/definitions/DeletedVault"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Retrieve a deleted vault": {
+ "$ref": "./examples/getDeletedVault.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedVaults/{vaultName}/purge": {
+ "post": {
+ "tags": [
+ "Vaults"
+ ],
+ "operationId": "Vaults_PurgeDeleted",
+ "x-ms-long-running-operation": true,
+ "description": "Permanently deletes the specified vault. aka Purges the deleted Azure key vault.",
+ "parameters": [
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the soft-deleted vault."
+ },
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location of the soft-deleted vault."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The vault is purged."
+ },
+ "202": {
+ "description": "Vault is being purged."
+ }
+ },
+ "x-ms-examples": {
+ "Purge a deleted vault": {
+ "$ref": "./examples/purgeDeletedVault.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/resources": {
+ "get": {
+ "tags": [
+ "Vaults"
+ ],
+ "operationId": "Vaults_List",
+ "description": "The List operation gets information about the vaults associated with the subscription.",
+ "parameters": [
+ {
+ "name": "$filter",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "resourceType eq 'Microsoft.KeyVault/vaults'"
+ ],
+ "description": "The filter to apply on the operation."
+ },
+ {
+ "name": "$top",
+ "in": "query",
+ "type": "integer",
+ "format": "int32",
+ "description": "Maximum number of results to return."
+ },
+ {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "2015-11-01"
+ ],
+ "description": "Azure Resource Manager Api Version."
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Get information about all key vaults in the subscription.",
+ "schema": {
+ "$ref": "#/definitions/ResourceListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List vaults in the specified subscription": {
+ "$ref": "./examples/listVault.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/checkNameAvailability": {
+ "post": {
+ "tags": [
+ "Vaults"
+ ],
+ "operationId": "Vaults_CheckNameAvailability",
+ "description": "Checks that the vault name is valid and is not already in use.",
+ "parameters": [
+ {
+ "name": "vaultName",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VaultCheckNameAvailabilityParameters"
+ },
+ "description": "The name of the vault."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Operation to check the vault name availability was successful.",
+ "schema": {
+ "$ref": "#/definitions/CheckNameAvailabilityResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Validate a vault name": {
+ "$ref": "./examples/checkVaultNameAvailability.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Get",
+ "description": "Gets the specified private endpoint connection associated with the key vault.",
+ "x-ms-examples": {
+ "KeyVaultGetPrivateEndpointConnection": {
+ "$ref": "./examples/getPrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/VaultName"
+ },
+ {
+ "$ref": "#/parameters/PrivateEndpointConnectionName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Private endpoint connection successfully returned.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Put",
+ "description": "Updates the specified private endpoint connection associated with the key vault.",
+ "x-ms-examples": {
+ "KeyVaultPutPrivateEndpointConnection": {
+ "$ref": "./examples/putPrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/VaultName"
+ },
+ {
+ "$ref": "#/parameters/PrivateEndpointConnectionName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "properties",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "The intended state of private endpoint connection."
+ }
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "The state of private endpoint connection was updated successfully.",
+ "headers": {
+ "Retry-After": {
+ "description": "(specified only if operation does not finish synchronously) The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.",
+ "type": "integer"
+ },
+ "Azure-AsyncOperation": {
+ "description": "(specified only if operation does not finish synchronously) The URI to poll for completion status. The response of this URI may be synchronous or asynchronous.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "PrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Delete",
+ "description": "Deletes the specified private endpoint connection associated with the key vault.",
+ "x-ms-examples": {
+ "KeyVaultDeletePrivateEndpointConnection": {
+ "$ref": "./examples/deletePrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/VaultName"
+ },
+ {
+ "$ref": "#/parameters/PrivateEndpointConnectionName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "The private endpoint connection was successfully deleted.",
+ "schema": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ }
+ },
+ "202": {
+ "description": "The private endpoint connection is being deleted.",
+ "headers": {
+ "Retry-After": {
+ "description": "The recommended number of seconds to wait before calling the URI specified in the location header.",
+ "type": "integer"
+ },
+ "Location": {
+ "description": "The URI to poll for completion status.",
+ "type": "string"
+ }
+ }
+ },
+ "204": {
+ "description": "The private endpoint connection 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.KeyVault/vaults/{vaultName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "PrivateLinkResources"
+ ],
+ "operationId": "PrivateLinkResources_ListByVault",
+ "description": "Gets the private link resources supported for the key vault.",
+ "x-ms-examples": {
+ "KeyVaultListPrivateLinkResources": {
+ "$ref": "./examples/listPrivateLinkResources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupName"
+ },
+ {
+ "$ref": "#/parameters/VaultName"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved private link resources.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResourceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/CloudError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CloudError": {
+ "description": "An error response from Key Vault resource provider",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/CloudErrorBody"
+ }
+ },
+ "x-ms-external": true
+ },
+ "CloudErrorBody": {
+ "description": "An error response from Key Vault resource provider",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Error code. This is a mnemonic that can be consumed programmatically."
+ },
+ "message": {
+ "type": "string",
+ "description": "User friendly error message. The message is typically localized and may vary with service version."
+ }
+ },
+ "x-ms-external": true
+ },
+ "Sku": {
+ "properties": {
+ "family": {
+ "type": "string",
+ "description": "SKU family name",
+ "enum": [
+ "A"
+ ],
+ "x-ms-enum": {
+ "name": "SkuFamily",
+ "modelAsString": true
+ }
+ },
+ "name": {
+ "type": "string",
+ "description": "SKU name to specify whether the key vault is a standard vault or a premium vault.",
+ "enum": [
+ "standard",
+ "premium"
+ ],
+ "x-ms-enum": {
+ "name": "SkuName",
+ "modelAsString": false
+ }
+ }
+ },
+ "description": "SKU details",
+ "required": [
+ "name",
+ "family"
+ ]
+ },
+ "AccessPolicyEntry": {
+ "properties": {
+ "tenantId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault."
+ },
+ "objectId": {
+ "type": "string",
+ "description": "The object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies."
+ },
+ "applicationId": {
+ "type": "string",
+ "format": "uuid",
+ "description": " Application ID of the client making request on behalf of a principal"
+ },
+ "permissions": {
+ "$ref": "#/definitions/Permissions",
+ "description": "Permissions the identity has for keys, secrets and certificates."
+ }
+ },
+ "description": "An identity that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID.",
+ "required": [
+ "tenantId",
+ "objectId",
+ "permissions"
+ ]
+ },
+ "Permissions": {
+ "properties": {
+ "keys": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "encrypt",
+ "decrypt",
+ "wrapKey",
+ "unwrapKey",
+ "sign",
+ "verify",
+ "get",
+ "list",
+ "create",
+ "update",
+ "import",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "x-ms-enum": {
+ "name": "KeyPermissions",
+ "modelAsString": true
+ }
+ },
+ "description": "Permissions to keys"
+ },
+ "secrets": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "get",
+ "list",
+ "set",
+ "delete",
+ "backup",
+ "restore",
+ "recover",
+ "purge"
+ ],
+ "x-ms-enum": {
+ "name": "SecretPermissions",
+ "modelAsString": true
+ }
+ },
+ "description": "Permissions to secrets"
+ },
+ "certificates": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "get",
+ "list",
+ "delete",
+ "create",
+ "import",
+ "update",
+ "managecontacts",
+ "getissuers",
+ "listissuers",
+ "setissuers",
+ "deleteissuers",
+ "manageissuers",
+ "recover",
+ "purge",
+ "backup",
+ "restore"
+ ],
+ "x-ms-enum": {
+ "name": "CertificatePermissions",
+ "modelAsString": true
+ }
+ },
+ "description": "Permissions to certificates"
+ },
+ "storage": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "get",
+ "list",
+ "delete",
+ "set",
+ "update",
+ "regeneratekey",
+ "recover",
+ "purge",
+ "backup",
+ "restore",
+ "setsas",
+ "listsas",
+ "getsas",
+ "deletesas"
+ ],
+ "x-ms-enum": {
+ "name": "StoragePermissions",
+ "modelAsString": true
+ }
+ },
+ "description": "Permissions to storage accounts"
+ }
+ },
+ "description": "Permissions the identity has for keys, secrets, certificates and storage."
+ },
+ "VaultProperties": {
+ "properties": {
+ "tenantId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault."
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "SKU details"
+ },
+ "accessPolicies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AccessPolicyEntry"
+ },
+ "description": "An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required."
+ },
+ "vaultUri": {
+ "type": "string",
+ "description": "The URI of the vault for performing operations on keys and secrets."
+ },
+ "enabledForDeployment": {
+ "type": "boolean",
+ "description": "Property to specify whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault."
+ },
+ "enabledForDiskEncryption": {
+ "type": "boolean",
+ "description": "Property to specify whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys."
+ },
+ "enabledForTemplateDeployment": {
+ "type": "boolean",
+ "description": "Property to specify whether Azure Resource Manager is permitted to retrieve secrets from the key vault."
+ },
+ "enableSoftDelete": {
+ "type": "boolean",
+ "default": true,
+ "description": "Property to specify whether the 'soft delete' functionality is enabled for this key vault. If it's not set to any value(true or false) when creating new key vault, it will be set to true by default. Once set to true, it cannot be reverted to false."
+ },
+ "softDeleteRetentionInDays": {
+ "type": "integer",
+ "format": "int32",
+ "default": 90,
+ "description": "softDelete data retention days. It accepts >=7 and <=90."
+ },
+ "enableRbacAuthorization": {
+ "type": "boolean",
+ "default": false,
+ "description": "Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored (warning: this is a preview feature). When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the vault is created with the default value of false. Note that management actions are always authorized with RBAC."
+ },
+ "createMode": {
+ "type": "string",
+ "description": "The vault's create mode to indicate whether the vault need to be recovered or not.",
+ "enum": [
+ "recover",
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "CreateMode",
+ "modelAsString": false
+ }
+ },
+ "enablePurgeProtection": {
+ "type": "boolean",
+ "description": "Property specifying whether protection against purge is enabled for this vault. Setting this property to true activates protection against purge for this vault and its content - only the Key Vault service may initiate a hard, irrecoverable deletion. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible - that is, the property does not accept false as its value."
+ },
+ "networkAcls": {
+ "$ref": "#/definitions/NetworkRuleSet",
+ "description": "Rules governing the accessibility of the key vault from specific network locations."
+ },
+ "privateEndpointConnections": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnectionItem"
+ },
+ "description": "List of private endpoint connections associated with the key vault."
+ }
+ },
+ "required": [
+ "tenantId",
+ "sku"
+ ],
+ "description": "Properties of the vault"
+ },
+ "VaultPatchProperties": {
+ "properties": {
+ "tenantId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault."
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "SKU details"
+ },
+ "accessPolicies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AccessPolicyEntry"
+ },
+ "description": "An array of 0 to 16 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID."
+ },
+ "enabledForDeployment": {
+ "type": "boolean",
+ "description": "Property to specify whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault."
+ },
+ "enabledForDiskEncryption": {
+ "type": "boolean",
+ "description": "Property to specify whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys."
+ },
+ "enabledForTemplateDeployment": {
+ "type": "boolean",
+ "description": "Property to specify whether Azure Resource Manager is permitted to retrieve secrets from the key vault."
+ },
+ "enableSoftDelete": {
+ "type": "boolean",
+ "description": "Property to specify whether the 'soft delete' functionality is enabled for this key vault. Once set to true, it cannot be reverted to false."
+ },
+ "enableRbacAuthorization": {
+ "type": "boolean",
+ "description": "Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored (warning: this is a preview feature). When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the value of this property will not change."
+ },
+ "softDeleteRetentionInDays": {
+ "type": "integer",
+ "format": "int32",
+ "description": "softDelete data retention days. It accepts >=7 and <=90."
+ },
+ "createMode": {
+ "type": "string",
+ "description": "The vault's create mode to indicate whether the vault need to be recovered or not.",
+ "enum": [
+ "recover",
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "CreateMode",
+ "modelAsString": false
+ }
+ },
+ "enablePurgeProtection": {
+ "type": "boolean",
+ "description": "Property specifying whether protection against purge is enabled for this vault. Setting this property to true activates protection against purge for this vault and its content - only the Key Vault service may initiate a hard, irrecoverable deletion. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible - that is, the property does not accept false as its value."
+ },
+ "networkAcls": {
+ "$ref": "#/definitions/NetworkRuleSet",
+ "description": "A collection of rules governing the accessibility of the vault from specific network locations."
+ }
+ },
+ "description": "Properties of the vault"
+ },
+ "VaultAccessPolicyProperties": {
+ "properties": {
+ "accessPolicies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AccessPolicyEntry"
+ },
+ "description": "An array of 0 to 16 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID."
+ }
+ },
+ "required": [
+ "accessPolicies"
+ ],
+ "description": "Properties of the vault access policy"
+ },
+ "DeletedVaultProperties": {
+ "properties": {
+ "vaultId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource id of the original vault."
+ },
+ "location": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The location of the original vault."
+ },
+ "deletionDate": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The deleted date."
+ },
+ "scheduledPurgeDate": {
+ "readOnly": true,
+ "type": "string",
+ "format": "date-time",
+ "description": "The scheduled purged date."
+ },
+ "tags": {
+ "readOnly": true,
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Tags of the original vault."
+ }
+ },
+ "description": "Properties of the deleted vault."
+ },
+ "VaultCreateOrUpdateParameters": {
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "The supported Azure location where the key vault should be created."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The tags that will be assigned to the key vault."
+ },
+ "properties": {
+ "$ref": "#/definitions/VaultProperties",
+ "description": "Properties of the vault"
+ }
+ },
+ "description": "Parameters for creating or updating a vault",
+ "required": [
+ "location",
+ "properties"
+ ],
+ "x-ms-azure-resource": true
+ },
+ "VaultPatchParameters": {
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The tags that will be assigned to the key vault. "
+ },
+ "properties": {
+ "$ref": "#/definitions/VaultPatchProperties",
+ "description": "Properties of the vault"
+ }
+ },
+ "description": "Parameters for creating or updating a vault",
+ "x-ms-azure-resource": true
+ },
+ "VaultAccessPolicyParameters": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource id of the access policy."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name of the access policy."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource name of the access policy."
+ },
+ "location": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type of the access policy."
+ },
+ "properties": {
+ "$ref": "#/definitions/VaultAccessPolicyProperties",
+ "description": "Properties of the access policy"
+ }
+ },
+ "description": "Parameters for updating the access policy in a vault",
+ "required": [
+ "properties"
+ ],
+ "x-ms-azure-resource": true
+ },
+ "Vault": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Fully qualified identifier of the key vault resource."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of the key vault resource."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type of the key vault resource."
+ },
+ "location": {
+ "type": "string",
+ "description": "Azure location of the key vault resource."
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Tags assigned to the key vault resource."
+ },
+ "properties": {
+ "$ref": "#/definitions/VaultProperties",
+ "description": "Properties of the vault"
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "description": "Resource information with extended details.",
+ "x-ms-azure-resource": true
+ },
+ "DeletedVault": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource ID for the deleted key vault."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the key vault."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type of the key vault."
+ },
+ "properties": {
+ "$ref": "#/definitions/DeletedVaultProperties",
+ "description": "Properties of the vault"
+ }
+ },
+ "description": "Deleted vault information with extended details."
+ },
+ "VaultListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Vault"
+ },
+ "description": "The list of vaults."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of vaults."
+ }
+ },
+ "description": "List of vaults"
+ },
+ "DeletedVaultListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DeletedVault"
+ },
+ "description": "The list of deleted vaults."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of deleted vaults."
+ }
+ },
+ "description": "List of vaults"
+ },
+ "ResourceListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Resource"
+ },
+ "description": "The list of vault resources."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of vault resources."
+ }
+ },
+ "description": "List of vault resources."
+ },
+ "Resource": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Fully qualified identifier of the key vault resource."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Name of the key vault resource."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource type of the key vault resource."
+ },
+ "location": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Azure location of the key vault resource."
+ },
+ "tags": {
+ "readOnly": true,
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Tags assigned to the key vault resource."
+ }
+ },
+ "description": "Key Vault resource",
+ "x-ms-azure-resource": true
+ },
+ "VaultCheckNameAvailabilityParameters": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The vault name."
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "Microsoft.KeyVault/vaults"
+ ],
+ "x-ms-enum": {
+ "name": "Type",
+ "modelAsString": false
+ },
+ "description": "The type of resource, Microsoft.KeyVault/vaults"
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "description": "The parameters used to check the availability of the vault name."
+ },
+ "CheckNameAvailabilityResult": {
+ "properties": {
+ "nameAvailable": {
+ "readOnly": true,
+ "type": "boolean",
+ "description": "A boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or is invalid and cannot be used."
+ },
+ "reason": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The reason that a vault name could not be used. The Reason element is only returned if NameAvailable is false.",
+ "enum": [
+ "AccountNameInvalid",
+ "AlreadyExists"
+ ],
+ "x-ms-enum": {
+ "name": "Reason",
+ "modelAsString": false
+ }
+ },
+ "message": {
+ "readOnly": true,
+ "type": "string",
+ "description": "An error message explaining the Reason value in more detail."
+ }
+ },
+ "description": "The CheckNameAvailability operation response."
+ },
+ "NetworkRuleSet": {
+ "properties": {
+ "bypass": {
+ "type": "string",
+ "description": "Tells what traffic can bypass network rules. This can be 'AzureServices' or 'None'. If not specified the default is 'AzureServices'.",
+ "enum": [
+ "AzureServices",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "NetworkRuleBypassOptions",
+ "modelAsString": true
+ }
+ },
+ "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 of a vault."
+ },
+ "IPRule": {
+ "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 of a vault from a specific ip address or ip range."
+ },
+ "VirtualNetworkRule": {
+ "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'."
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "description": "A rule governing the accessibility of a vault from a specific virtual network."
+ },
+ "PrivateEndpointConnectionItem": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "x-ms-client-flatten": true,
+ "description": "Private endpoint connection properties."
+ }
+ },
+ "description": "Private endpoint connection item."
+ },
+ "PrivateEndpointConnection": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "x-ms-client-flatten": true,
+ "description": "Resource properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "Private endpoint connection resource.",
+ "x-ms-azure-resource": true
+ },
+ "PrivateEndpointConnectionProperties": {
+ "properties": {
+ "privateEndpoint": {
+ "$ref": "#/definitions/PrivateEndpoint",
+ "description": "Properties of the private endpoint object."
+ },
+ "privateLinkServiceConnectionState": {
+ "$ref": "#/definitions/PrivateLinkServiceConnectionState",
+ "description": "Approval state of the private link connection."
+ },
+ "provisioningState": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState",
+ "description": "Provisioning state of the private endpoint connection."
+ }
+ },
+ "description": "Properties of the private endpoint connection resource."
+ },
+ "PrivateEndpoint": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Full identifier of the private endpoint resource."
+ }
+ },
+ "description": "Private endpoint object properties."
+ },
+ "PrivateLinkServiceConnectionState": {
+ "properties": {
+ "status": {
+ "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus",
+ "description": "Indicates whether the connection has been approved, rejected or removed by the key vault owner."
+ },
+ "description": {
+ "type": "string",
+ "description": "The reason for approval or rejection."
+ },
+ "actionRequired": {
+ "type": "string",
+ "description": "A message indicating if changes on the service provider require any updates on the consumer."
+ }
+ },
+ "description": "An object that represents the approval state of the private link connection."
+ },
+ "PrivateEndpointServiceConnectionStatus": {
+ "type": "string",
+ "description": "The private endpoint connection status.",
+ "enum": [
+ "Pending",
+ "Approved",
+ "Rejected",
+ "Disconnected"
+ ],
+ "x-ms-enum": {
+ "name": "PrivateEndpointServiceConnectionStatus",
+ "modelAsString": true
+ }
+ },
+ "PrivateEndpointConnectionProvisioningState": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The current provisioning state.",
+ "enum": [
+ "Succeeded",
+ "Creating",
+ "Updating",
+ "Deleting",
+ "Failed",
+ "Disconnected"
+ ],
+ "x-ms-enum": {
+ "name": "PrivateEndpointConnectionProvisioningState",
+ "modelAsString": true
+ }
+ },
+ "PrivateLinkResourceListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "Array of private link resources",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ }
+ }
+ },
+ "description": "A list of private link resources"
+ },
+ "PrivateLinkResource": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateLinkResourceProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "description": "A private link resource"
+ },
+ "PrivateLinkResourceProperties": {
+ "properties": {
+ "groupId": {
+ "description": "Group identifier of private link resource.",
+ "type": "string",
+ "readOnly": true
+ },
+ "requiredMembers": {
+ "description": "Required member names of private link resource.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "requiredZoneNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Required DNS zone names of the the private link resource."
+ }
+ },
+ "description": "Properties of a private link resource."
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "ResourceGroupName": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the resource group that contains the key vault.",
+ "x-ms-parameter-location": "method"
+ },
+ "VaultName": {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{3,24}$",
+ "description": "The name of the key vault.",
+ "x-ms-parameter-location": "method"
+ },
+ "PrivateEndpointConnectionName": {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the private endpoint connection associated with the key vault.",
+ "x-ms-parameter-location": "method"
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/managedHsm.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/managedHsm.json
new file mode 100644
index 000000000000..34462f6b4514
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/managedHsm.json
@@ -0,0 +1,622 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "KeyVaultManagementClient",
+ "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault.",
+ "version": "2020-04-01-preview"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}": {
+ "put": {
+ "tags": [
+ "ManagedHsms"
+ ],
+ "operationId": "ManagedHsms_CreateOrUpdate",
+ "x-ms-long-running-operation": true,
+ "description": "Create or update a managed HSM Pool in the specified subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ManagedHsmResourceGroupName"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the managed HSM Pool"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ManagedHsm"
+ },
+ "description": "Parameters to create or update the managed HSM Pool"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/ManagedHsm"
+ }
+ },
+ "200": {
+ "description": "Created or updated managed HSM Pool",
+ "schema": {
+ "$ref": "#/definitions/ManagedHsm"
+ }
+ },
+ "default": {
+ "description": "The error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ManagedHsmError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create a new managed HSM Pool or update an existing managed HSM Pool": {
+ "$ref": "./examples/ManagedHsm_CreateOrUpdate.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "ManagedHsms"
+ ],
+ "operationId": "ManagedHsms_Update",
+ "x-ms-long-running-operation": true,
+ "description": "Update a managed HSM Pool in the specified subscription.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ManagedHsmResourceGroupName"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the managed HSM Pool"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ManagedHsm"
+ },
+ "description": "Parameters to patch the managed HSM Pool"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously.",
+ "schema": {
+ "$ref": "#/definitions/ManagedHsm"
+ }
+ },
+ "200": {
+ "description": "Patched managed HSM Pool",
+ "schema": {
+ "$ref": "#/definitions/ManagedHsm"
+ }
+ },
+ "default": {
+ "description": "The error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ManagedHsmError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update an existing managed HSM Pool": {
+ "$ref": "./examples/ManagedHsm_Update.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ManagedHsms"
+ ],
+ "operationId": "ManagedHsms_Delete",
+ "description": "Deletes the specified managed HSM Pool.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ManagedHsmResourceGroupName"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the managed HSM Pool to delete"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Request successful. Resource does not exist."
+ },
+ "202": {
+ "description": "Accepted and the operation will complete asynchronously."
+ },
+ "200": {
+ "description": "Delete successful."
+ },
+ "default": {
+ "description": "The error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ManagedHsmError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Delete a managed HSM Pool": {
+ "$ref": "./examples/ManagedHsm_Delete.json"
+ }
+ },
+ "x-ms-long-running-operation": true
+ },
+ "get": {
+ "tags": [
+ "ManagedHsms"
+ ],
+ "operationId": "ManagedHsms_Get",
+ "description": "Gets the specified managed HSM Pool.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ManagedHsmResourceGroupName"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the managed HSM Pool."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Retrieved managed HSM Pool",
+ "schema": {
+ "$ref": "#/definitions/ManagedHsm"
+ }
+ },
+ "default": {
+ "description": "The error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ManagedHsmError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Retrieve a managed HSM Pool": {
+ "$ref": "./examples/ManagedHsm_Get.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs": {
+ "get": {
+ "tags": [
+ "ManagedHsms"
+ ],
+ "operationId": "ManagedHsms_ListByResourceGroup",
+ "description": "The List operation gets information about the managed HSM Pools associated with the subscription and within the specified resource group.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ManagedHsmResourceGroupName"
+ },
+ {
+ "name": "$top",
+ "in": "query",
+ "type": "integer",
+ "format": "int32",
+ "description": "Maximum number of results to return."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Get information about all managed HSM Pools in the specified resource group.",
+ "schema": {
+ "$ref": "#/definitions/ManagedHsmListResult"
+ }
+ },
+ "default": {
+ "description": "The error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ManagedHsmError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List managed HSM Pools in a resource group": {
+ "$ref": "./examples/ManagedHsm_ListByResourceGroup.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/managedHSMs": {
+ "get": {
+ "tags": [
+ "ManagedHsms"
+ ],
+ "operationId": "ManagedHsms_ListBySubscription",
+ "description": "The List operation gets information about the managed HSM Pools associated with the subscription.",
+ "parameters": [
+ {
+ "name": "$top",
+ "in": "query",
+ "type": "integer",
+ "format": "int32",
+ "description": "Maximum number of results to return."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Get information about all managed HSM Pools in the specified subscription.",
+ "schema": {
+ "$ref": "#/definitions/ManagedHsmListResult"
+ }
+ },
+ "default": {
+ "description": "The error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ManagedHsmError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List managed HSM Pools in a subscription": {
+ "$ref": "./examples/ManagedHsm_ListBySubscription.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ManagedHsmSku": {
+ "properties": {
+ "family": {
+ "type": "string",
+ "description": "SKU Family of the managed HSM Pool",
+ "enum": [
+ "B"
+ ],
+ "x-ms-enum": {
+ "name": "ManagedHsmSkuFamily",
+ "modelAsString": true
+ }
+ },
+ "name": {
+ "type": "string",
+ "description": "SKU of the managed HSM Pool",
+ "enum": [
+ "Standard_B1",
+ "Custom_B32"
+ ],
+ "x-ms-enum": {
+ "name": "ManagedHsmSkuName",
+ "modelAsString": false
+ }
+ }
+ },
+ "description": "SKU details",
+ "required": [
+ "name",
+ "family"
+ ]
+ },
+ "ManagedHsmProperties": {
+ "properties": {
+ "tenantId": {
+ "type": "string",
+ "format": "uuid",
+ "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the managed HSM pool."
+ },
+ "initialAdminObjectIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Array of initial administrators object ids for this managed hsm pool."
+ },
+ "hsmUri": {
+ "type": "string",
+ "description": "The URI of the managed hsm pool for performing operations on keys."
+ },
+ "enableSoftDelete": {
+ "type": "boolean",
+ "default": true,
+ "description": "Property to specify whether the 'soft delete' functionality is enabled for this managed HSM pool. If it's not set to any value(true or false) when creating new managed HSM pool, it will be set to true by default. Once set to true, it cannot be reverted to false."
+ },
+ "softDeleteRetentionInDays": {
+ "type": "integer",
+ "format": "int32",
+ "default": 90,
+ "description": "softDelete data retention days. It accepts >=7 and <=90."
+ },
+ "enablePurgeProtection": {
+ "type": "boolean",
+ "description": "Property specifying whether protection against purge is enabled for this managed HSM pool. Setting this property to true activates protection against purge for this managed HSM pool and its content - only the Managed HSM service may initiate a hard, irrecoverable deletion. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible."
+ },
+ "createMode": {
+ "type": "string",
+ "description": "The create mode to indicate whether the resource is being created or is being recovered from a deleted resource.",
+ "enum": [
+ "recover",
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "CreateMode",
+ "modelAsString": false,
+ "values": [
+ {
+ "value": "recover",
+ "description": "Recover the managed HSM pool from a soft-deleted resource."
+ },
+ {
+ "value": "default",
+ "description": "Create a new managed HSM pool. This is the default option."
+ }
+ ]
+ }
+ },
+ "statusMessage": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Resource Status Message."
+ },
+ "provisioningState": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Provisioning state.",
+ "enum": [
+ "Succeeded",
+ "Provisioning",
+ "Failed",
+ "Updating",
+ "Deleting",
+ "Activated",
+ "SecurityDomainRestore",
+ "Restoring"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Succeeded",
+ "description": "The managed HSM Pool has been full provisioned."
+ },
+ {
+ "value": "Provisioning",
+ "description": "The managed HSM Pool is currently being provisioned."
+ },
+ {
+ "value": "Failed",
+ "description": "Provisioning of the managed HSM Pool has failed."
+ },
+ {
+ "value": "Updating",
+ "description": "The managed HSM Pool is currently being updated."
+ },
+ {
+ "value": "Deleting",
+ "description": "The managed HSM Pool is currently being deleted."
+ },
+ {
+ "value": "Activated",
+ "description": "The managed HSM pool is ready for normal use."
+ },
+ {
+ "value": "SecurityDomainRestore",
+ "description": "The managed HSM pool is waiting for a security domain restore action."
+ },
+ {
+ "value": "Restoring",
+ "description": "The managed HSM pool is being restored from full HSM backup."
+ }
+ ]
+ }
+ }
+ },
+ "description": "Properties of the managed HSM Pool"
+ },
+ "ManagedHsm": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ManagedHsmProperties",
+ "description": "Properties of the managed HSM"
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/definitions/ManagedHsmResource"
+ }
+ ],
+ "description": "Resource information with extended details."
+ },
+ "ManagedHsmResource": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The Azure Resource Manager resource ID for the managed HSM Pool."
+ },
+ "name": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the managed HSM Pool."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The resource type of the managed HSM Pool."
+ },
+ "location": {
+ "type": "string",
+ "description": "The supported Azure location where the managed HSM Pool should be created.",
+ "x-ms-mutability": [
+ "create",
+ "read"
+ ]
+ },
+ "sku": {
+ "$ref": "#/definitions/ManagedHsmSku",
+ "description": "SKU details"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Resource tags"
+ }
+ },
+ "description": "Managed HSM resource",
+ "x-ms-azure-resource": true
+ },
+ "ManagedHsmListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ManagedHsm"
+ },
+ "description": "The list of managed HSM Pools."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of managed HSM Pools."
+ }
+ },
+ "description": "List of managed HSM Pools"
+ },
+ "ManagedHsmError": {
+ "properties": {
+ "error": {
+ "readOnly": true,
+ "description": "The server error.",
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "description": "The error exception."
+ },
+ "Error": {
+ "properties": {
+ "code": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The error code."
+ },
+ "message": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The error message."
+ },
+ "innererror": {
+ "x-ms-client-name": "innerError",
+ "readOnly": true,
+ "description": "The inner error, contains a more specific error code.",
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "description": "The server error."
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ },
+ "ManagedHsmResourceGroupName": {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Name of the resource group that contains the managed HSM pool.",
+ "x-ms-parameter-location": "method"
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/providers.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/providers.json
new file mode 100644
index 000000000000..f2e42a6d1f7b
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/providers.json
@@ -0,0 +1,180 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-04-01-preview",
+ "title": "KeyVaultManagementClient",
+ "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "paths": {
+ "/providers/Microsoft.KeyVault/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Lists all of the available Key Vault Rest API operations.",
+ "operationId": "Operations_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. The request has succeeded.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "Lists available Rest API operations.": {
+ "$ref": "./examples/listOperations.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ }
+ },
+ "definitions": {
+ "OperationListResult": {
+ "description": "Result of the request to list Storage operations. It contains a list of operations and a URL link to get the next set of results.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of Storage operations supported by the Storage resource provider."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of operations."
+ }
+ }
+ },
+ "Operation": {
+ "description": "Key Vault REST API operation definition.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}",
+ "type": "string"
+ },
+ "display": {
+ "description": "Display metadata associated with the operation.",
+ "properties": {
+ "provider": {
+ "description": "Service provider: Microsoft Key Vault.",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource on which the operation is performed etc.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "Type of operation: get, read, delete, etc.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of operation.",
+ "type": "string"
+ }
+ }
+ },
+ "origin": {
+ "type": "string",
+ "description": "The origin of operations."
+ },
+ "properties": {
+ "description": "Properties of operation, include metric specifications.",
+ "x-ms-client-flatten": true,
+ "x-ms-client-name": "OperationProperties",
+ "$ref": "#/definitions/OperationProperties"
+ }
+ }
+ },
+ "OperationProperties": {
+ "description": "Properties of operation, include metric specifications.",
+ "properties": {
+ "serviceSpecification": {
+ "$ref": "#/definitions/ServiceSpecification",
+ "description": "One property of operation, include metric specifications."
+ }
+ }
+ },
+ "ServiceSpecification": {
+ "description": "One property of operation, include log specifications.",
+ "properties": {
+ "logSpecifications": {
+ "description": "Log specifications of operation.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LogSpecification"
+ }
+ }
+ }
+ },
+ "LogSpecification": {
+ "description": "Log specification of operation.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of log specification."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Display name of log specification."
+ },
+ "blobDuration": {
+ "type": "string",
+ "description": "Blob duration of specification."
+ }
+ }
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/secrets.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/secrets.json
new file mode 100644
index 000000000000..608fd5183158
--- /dev/null
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2020-04-01-preview/secrets.json
@@ -0,0 +1,459 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2020-04-01-preview",
+ "title": "KeyVaultManagementClient",
+ "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/secrets/{secretName}": {
+ "put": {
+ "tags": [
+ "Secrets"
+ ],
+ "operationId": "Secrets_CreateOrUpdate",
+ "description": "Create or update a secret in a key vault in the specified subscription. NOTE: This API is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Resource Group to which the vault belongs."
+ },
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{3,24}$",
+ "description": "Name of the vault"
+ },
+ {
+ "name": "secretName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{1,127}$",
+ "description": "Name of the secret"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SecretCreateOrUpdateParameters"
+ },
+ "description": "Parameters to create or update the secret"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Created or updated vault",
+ "schema": {
+ "$ref": "#/definitions/Secret"
+ }
+ },
+ "200": {
+ "description": "Created or updated secret",
+ "schema": {
+ "$ref": "#/definitions/Secret"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Create a secret": {
+ "$ref": "./examples/createSecret.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "patch": {
+ "tags": [
+ "Secrets"
+ ],
+ "operationId": "Secrets_Update",
+ "description": "Update a secret in the specified subscription. NOTE: This API is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Resource Group to which the vault belongs."
+ },
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{3,24}$",
+ "description": "Name of the vault"
+ },
+ {
+ "name": "secretName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9-]{1,127}$",
+ "description": "Name of the secret"
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SecretPatchParameters"
+ },
+ "description": "Parameters to patch the secret"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Patched secret",
+ "schema": {
+ "$ref": "#/definitions/Secret"
+ }
+ },
+ "200": {
+ "description": "Patched secret",
+ "schema": {
+ "$ref": "#/definitions/Secret"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Update a secret": {
+ "$ref": "./examples/updateSecret.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ },
+ "get": {
+ "tags": [
+ "Secrets"
+ ],
+ "operationId": "Secrets_Get",
+ "description": "Gets the specified secret. NOTE: This API is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Resource Group to which the vault belongs."
+ },
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vault."
+ },
+ {
+ "name": "secretName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the secret."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Retrieved secret",
+ "schema": {
+ "$ref": "#/definitions/Secret"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get a secret": {
+ "$ref": "./examples/getSecret.json"
+ }
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/secrets": {
+ "get": {
+ "tags": [
+ "Secrets"
+ ],
+ "operationId": "Secrets_List",
+ "description": "The List operation gets information about the secrets in a vault. NOTE: This API is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets.",
+ "parameters": [
+ {
+ "name": "resourceGroupName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the Resource Group to which the vault belongs."
+ },
+ {
+ "name": "vaultName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the vault."
+ },
+ {
+ "name": "$top",
+ "in": "query",
+ "type": "integer",
+ "format": "int32",
+ "description": "Maximum number of results to return."
+ },
+ {
+ "$ref": "#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Get information about secrets in the specified vault.",
+ "schema": {
+ "$ref": "#/definitions/SecretListResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List secrets in the vault": {
+ "$ref": "./examples/listSecrets.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "produces": [
+ "application/json"
+ ],
+ "consumes": [
+ "application/json"
+ ]
+ }
+ }
+ },
+ "definitions": {
+ "Attributes": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Determines whether the object is enabled."
+ },
+ "nbf": {
+ "x-ms-client-name": "NotBefore",
+ "type": "integer",
+ "format": "unixtime",
+ "description": "Not before date in seconds since 1970-01-01T00:00:00Z."
+ },
+ "exp": {
+ "x-ms-client-name": "Expires",
+ "type": "integer",
+ "format": "unixtime",
+ "description": "Expiry date in seconds since 1970-01-01T00:00:00Z."
+ },
+ "created": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "Creation time in seconds since 1970-01-01T00:00:00Z."
+ },
+ "updated": {
+ "type": "integer",
+ "format": "unixtime",
+ "readOnly": true,
+ "description": "Last updated time in seconds since 1970-01-01T00:00:00Z."
+ }
+ },
+ "description": "The object attributes managed by the KeyVault service."
+ },
+ "SecretProperties": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "The value of the secret. NOTE: 'value' will never be returned from the service, as APIs using this model are is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets."
+ },
+ "contentType": {
+ "type": "string",
+ "description": "The content type of the secret."
+ },
+ "attributes": {
+ "$ref": "#/definitions/SecretAttributes",
+ "description": "The attributes of the secret."
+ },
+ "secretUri": {
+ "type": "string",
+ "description": "The URI to retrieve the current version of the secret.",
+ "readOnly": true
+ },
+ "secretUriWithVersion": {
+ "type": "string",
+ "description": "The URI to retrieve the specific version of the secret.",
+ "readOnly": true
+ }
+ },
+ "description": "Properties of the secret"
+ },
+ "SecretPatchProperties": {
+ "properties": {
+ "value": {
+ "type": "string",
+ "description": "The value of the secret."
+ },
+ "contentType": {
+ "type": "string",
+ "description": "The content type of the secret."
+ },
+ "attributes": {
+ "$ref": "#/definitions/SecretAttributes",
+ "description": "The attributes of the secret."
+ }
+ },
+ "description": "Properties of the secret"
+ },
+ "SecretAttributes": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Attributes"
+ }
+ ],
+ "description": "The secret management attributes."
+ },
+ "SecretCreateOrUpdateParameters": {
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The tags that will be assigned to the secret. "
+ },
+ "properties": {
+ "$ref": "#/definitions/SecretProperties",
+ "description": "Properties of the secret"
+ }
+ },
+ "description": "Parameters for creating or updating a secret",
+ "required": [
+ "properties"
+ ],
+ "x-ms-azure-resource": true
+ },
+ "SecretPatchParameters": {
+ "properties": {
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The tags that will be assigned to the secret. "
+ },
+ "properties": {
+ "$ref": "#/definitions/SecretPatchProperties",
+ "description": "Properties of the secret"
+ }
+ },
+ "description": "Parameters for patching a secret",
+ "x-ms-azure-resource": true
+ },
+ "Secret": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/SecretProperties",
+ "description": "Properties of the secret"
+ }
+ },
+ "required": [
+ "properties"
+ ],
+ "allOf": [
+ {
+ "$ref": "./keyvault.json#/definitions/Resource"
+ }
+ ],
+ "description": "Resource information with extended details."
+ },
+ "SecretListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Secret"
+ },
+ "description": "The list of secrets."
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of secrets."
+ }
+ },
+ "description": "List of secrets"
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
+ },
+ "ApiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "required": true,
+ "type": "string",
+ "description": "Client Api Version."
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ }
+}
diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2018-02-14/keyvault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2018-02-14/keyvault.json
index a72e398fcffc..0cb1851ec949 100644
--- a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2018-02-14/keyvault.json
+++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2018-02-14/keyvault.json
@@ -1176,7 +1176,7 @@
"items": {
"$ref": "#/definitions/AccessPolicyEntry"
},
- "description": "An array of 0 to 16 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID."
+ "description": "An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID."
},
"enabledForDeployment": {
"type": "boolean",
diff --git a/specification/keyvault/resource-manager/readme.azureresourceschema.md b/specification/keyvault/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..c0807b7e70d0
--- /dev/null
+++ b/specification/keyvault/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,91 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-keyvault-2020-04-01-preview
+ - tag: schema-keyvault-2019-09-01
+ - tag: schema-keyvault-2018-02-14-preview
+ - tag: schema-keyvault-2018-02-14
+ - tag: schema-keyvault-2016-10-01
+ - tag: schema-keyvault-2015-06-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-keyvault-2020-04-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-keyvault-2020-04-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.KeyVault/preview/2020-04-01-preview/managedHsm.json
+ - Microsoft.KeyVault/preview/2020-04-01-preview/keyvault.json
+ - Microsoft.KeyVault/preview/2020-04-01-preview/providers.json
+ - Microsoft.KeyVault/preview/2020-04-01-preview/secrets.json
+
+```
+
+### Tag: schema-keyvault-2019-09-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-keyvault-2019-09-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.KeyVault/stable/2019-09-01/keyvault.json
+ - Microsoft.KeyVault/stable/2019-09-01/providers.json
+
+```
+
+### Tag: schema-keyvault-2018-02-14-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-keyvault-2018-02-14-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.KeyVault/preview/2018-02-14-preview/keyvault.json
+ - Microsoft.KeyVault/preview/2018-02-14-preview/providers.json
+
+```
+
+### Tag: schema-keyvault-2018-02-14 and azureresourceschema
+
+``` yaml $(tag) == 'schema-keyvault-2018-02-14' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.KeyVault/stable/2018-02-14/keyvault.json
+ - Microsoft.KeyVault/stable/2018-02-14/providers.json
+
+```
+
+### Tag: schema-keyvault-2016-10-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-keyvault-2016-10-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.KeyVault/stable/2016-10-01/keyvault.json
+ - Microsoft.KeyVault/stable/2016-10-01/providers.json
+
+```
+
+### Tag: schema-keyvault-2015-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-keyvault-2015-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.KeyVault/stable/2015-06-01/keyvault.json
+
+```
diff --git a/specification/keyvault/resource-manager/readme.md b/specification/keyvault/resource-manager/readme.md
index 72863b21ce95..ae51d5470d93 100644
--- a/specification/keyvault/resource-manager/readme.md
+++ b/specification/keyvault/resource-manager/readme.md
@@ -4,10 +4,10 @@
This is the AutoRest configuration file for KeyVault.
-
-
---
+
## Getting Started
+
To build the SDK for KeyVault, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run:
> `autorest`
@@ -15,13 +15,13 @@ To build the SDK for KeyVault, simply [Install AutoRest](https://aka.ms/autorest
To see additional help and options, run:
> `autorest --help`
+
---
## Configuration
-
-
### Basic Information
+
These are the global settings for the KeyVault API.
``` yaml
@@ -29,6 +29,29 @@ openapi-type: arm
tag: package-2019-09
```
+### Tag: package-preview-2020-04
+
+These settings apply only when `--tag=package-preview-2020-04` is specified on the command line.
+This tag is for the development of preview features related to managed HSM of Azure CLI and PowerShell.
+
+```yaml $(tag) == 'package-preview-2020-04'
+input-file:
+ - Microsoft.KeyVault/stable/2019-09-01/keyvault.json
+ - Microsoft.KeyVault/stable/2019-09-01/providers.json
+ - Microsoft.KeyVault/preview/2020-04-01-preview/managedHsm.json
+```
+
+### Tag: package-preview-2020-04-full
+
+These settings apply only when `--tag=package-preview-2020-04-full` is specified on the command line.
+
+```yaml $(tag) == 'package-preview-2020-04-full'
+input-file:
+ - Microsoft.KeyVault/preview/2020-04-01-preview/keyvault.json
+ - Microsoft.KeyVault/preview/2020-04-01-preview/providers.json
+ - Microsoft.KeyVault/preview/2020-04-01-preview/secrets.json
+ - Microsoft.KeyVault/preview/2020-04-01-preview/managedHsm.json
+```
### Tag: package-2019-09
@@ -60,8 +83,6 @@ input-file:
- Microsoft.KeyVault/stable/2018-02-14/providers.json
```
-
-
### Tag: package-2016-10
These settings apply only when `--tag=package-2016-10` is specified on the command line.
@@ -91,8 +112,8 @@ directive:
```
---
-# Code Generation
+# Code Generation
## Swagger to SDK
@@ -113,6 +134,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_key_vault']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js keyvault/resource-manager
```
## Go
@@ -123,35 +147,7 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.KeyVault/stable/2019-09-01/keyvault.json
- - $(this-folder)/Microsoft.KeyVault/stable/2019-09-01/providers.json
- - $(this-folder)/Microsoft.KeyVault/preview/2018-02-14-preview/keyvault.json
- - $(this-folder)/Microsoft.KeyVault/preview/2018-02-14-preview/providers.json
- - $(this-folder)/Microsoft.KeyVault/stable/2018-02-14/keyvault.json
- - $(this-folder)/Microsoft.KeyVault/stable/2018-02-14/providers.json
- - $(this-folder)/Microsoft.KeyVault/stable/2016-10-01/keyvault.json
- - $(this-folder)/Microsoft.KeyVault/stable/2016-10-01/providers.json
- - $(this-folder)/Microsoft.KeyVault/stable/2015-06-01/keyvault.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/keyvault/resource-manager/readme.python.md b/specification/keyvault/resource-manager/readme.python.md
index 883a0a256ffa..b7f95e0c23ce 100644
--- a/specification/keyvault/resource-manager/readme.python.md
+++ b/specification/keyvault/resource-manager/readme.python.md
@@ -33,6 +33,7 @@ batch:
- tag: package-2019-09
- tag: package-2018-02
- tag: package-2016-10
+ - tag: package-preview-2020-04
```
```yaml $(multiapi) && $(track2)
@@ -41,6 +42,7 @@ batch:
- tag: package-2019-09
- tag: package-2018-02
- tag: package-2016-10
+ - tag: package-preview-2020-04
- multiapiscript: true
```
@@ -50,6 +52,18 @@ clear-output-folder: false
perform-load: false
```
+### Tag: package-preview-2020-04 and python
+
+These settings apply only when `--tag=package-preview-2020-04 --python` is specified on the command line.
+
+``` yaml $(tag) == 'package-preview-2020-04'
+namespace: azure.mgmt.keyvault.v2020_04_01_preview
+output-folder: $(python-sdks-folder)/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2020_04_01_preview
+python:
+ namespace: azure.mgmt.keyvault.v2020_04_01_preview
+ output-folder: $(python-sdks-folder)/keyvault/azure-mgmt-keyvault/azure/mgmt/keyvault/v2020_04_01_preview
+```
+
### Tag: package-2019-09 and python
These settings apply only when `--tag=package-2019-09 --python` is specified on the command line.
diff --git a/specification/kubernetesconfiguration/resource-manager/readme.azureresourceschema.md b/specification/kubernetesconfiguration/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..4d961e78a7d3
--- /dev/null
+++ b/specification/kubernetesconfiguration/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-kubernetesconfiguration-2019-11-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-kubernetesconfiguration-2019-11-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-kubernetesconfiguration-2019-11-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.KubernetesConfiguration/preview/2019-11-01-preview/kubernetesconfiguration.json
+
+```
diff --git a/specification/kubernetesconfiguration/resource-manager/readme.md b/specification/kubernetesconfiguration/resource-manager/readme.md
index 67f97d8b6dcf..b4f77c2a7a2f 100644
--- a/specification/kubernetesconfiguration/resource-manager/readme.md
+++ b/specification/kubernetesconfiguration/resource-manager/readme.md
@@ -56,6 +56,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_kubernetesconfiguration']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js kubernetesconfiguration/resource-manager
```
## Go
@@ -78,26 +81,7 @@ See configuration in [readme.typescript.md](./readme.typescript.md)
See configuration in [readme.csharp.md](./readme.csharp.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.KubernetesConfiguration/preview/2019-11-01-preview/kubernetesconfiguration.json
-
-```
+## AzureResourceSchema
-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.
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
\ No newline at end of file
diff --git a/specification/labservices/resource-manager/readme.azureresourceschema.md b/specification/labservices/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..50ff2afcfdf7
--- /dev/null
+++ b/specification/labservices/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-labservices-2018-10-15
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-labservices-2018-10-15 and azureresourceschema
+
+``` yaml $(tag) == 'schema-labservices-2018-10-15' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.LabServices/stable/2018-10-15/ML.json
+
+```
diff --git a/specification/labservices/resource-manager/readme.md b/specification/labservices/resource-manager/readme.md
index c0d8c1459ffc..5e3ead954e9b 100644
--- a/specification/labservices/resource-manager/readme.md
+++ b/specification/labservices/resource-manager/readme.md
@@ -59,6 +59,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_labservices']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js labservices/resource-manager
```
@@ -144,27 +147,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.LabServices/stable/2018-10-15/ML.json
-
-```
+## AzureResourceSchema
-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
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/logic/resource-manager/readme.azureresourceschema.md b/specification/logic/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..409ee65ae052
--- /dev/null
+++ b/specification/logic/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,72 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-logic-2019-05-01
+ - tag: schema-logic-2018-07-01-preview
+ - tag: schema-logic-2016-06-01
+ - tag: schema-logic-2015-08-01-preview
+ - tag: schema-logic-2015-02-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-logic-2019-05-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-logic-2019-05-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Logic/stable/2019-05-01/logic.json
+
+```
+
+### Tag: schema-logic-2018-07-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-logic-2018-07-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Logic/preview/2018-07-01-preview/logic.json
+
+```
+
+### Tag: schema-logic-2016-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-logic-2016-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Logic/stable/2016-06-01/logic.json
+
+```
+
+### Tag: schema-logic-2015-08-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-logic-2015-08-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Logic/preview/2015-08-01-preview/logic.json
+
+```
+
+### Tag: schema-logic-2015-02-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-logic-2015-02-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Logic/preview/2015-02-01-preview/logic.json
+
+```
diff --git a/specification/logic/resource-manager/readme.md b/specification/logic/resource-manager/readme.md
index 8fc4874a384f..b6a7b4699e33 100644
--- a/specification/logic/resource-manager/readme.md
+++ b/specification/logic/resource-manager/readme.md
@@ -136,6 +136,9 @@ swagger-to-sdk:
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_logic']
- repo: azure-cli-extensions
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js logic/resource-manager
```
## C#
@@ -245,33 +248,9 @@ regenerate-manager: true
generate-interface: true
```
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Logic/stable/2019-05-01/logic.json
- - $(this-folder)/Microsoft.Logic/preview/2018-07-01-preview/logic.json
- - $(this-folder)/Microsoft.Logic/stable/2016-06-01/logic.json
- - $(this-folder)/Microsoft.Logic/preview/2015-08-01-preview/logic.json
- - $(this-folder)/Microsoft.Logic/preview/2015-02-01-preview/logic.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
## trenton
diff --git a/specification/machinelearning/resource-manager/readme.azureresourceschema.md b/specification/machinelearning/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..6f38975b63c5
--- /dev/null
+++ b/specification/machinelearning/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,61 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-machinelearning-2019-10-01
+ - tag: schema-machinelearning-2017-01-01
+ - tag: schema-machinelearning-2016-05-01-preview
+ - tag: schema-machinelearning-2016-04-01
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-machinelearning-2019-10-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearning-2019-10-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearning/stable/2019-10-01/workspaces.json
+
+```
+
+### Tag: schema-machinelearning-2017-01-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearning-2017-01-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearning/stable/2017-01-01/webservices.json
+
+```
+
+### Tag: schema-machinelearning-2016-05-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearning-2016-05-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearning/preview/2016-05-01-preview/commitmentPlans.json
+ - Microsoft.MachineLearning/preview/2016-05-01-preview/webservices.json
+
+```
+
+### Tag: schema-machinelearning-2016-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearning-2016-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearning/stable/2016-04-01/workspaces.json
+
+```
diff --git a/specification/machinelearning/resource-manager/readme.md b/specification/machinelearning/resource-manager/readme.md
index c192d89dc257..bf21f829d033 100644
--- a/specification/machinelearning/resource-manager/readme.md
+++ b/specification/machinelearning/resource-manager/readme.md
@@ -118,6 +118,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_machine_learning']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js machinelearning/resource-manager
```
@@ -251,30 +254,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.MachineLearning/stable/2017-01-01/webservices.json
- - $(this-folder)/Microsoft.MachineLearning/preview/2016-05-01-preview/commitmentPlans.json
- - $(this-folder)/Microsoft.MachineLearning/stable/2016-04-01/workspaces.json
- - $(this-folder)/Microsoft.MachineLearning/stable/2019-10-01/workspaces.json
- - $(this-folder)/Microsoft.MachineLearning/preview/2016-05-01-preview/webservices.json
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-```
-
-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/machinelearningcompute/resource-manager/readme.azureresourceschema.md b/specification/machinelearningcompute/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..7e519071558f
--- /dev/null
+++ b/specification/machinelearningcompute/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,36 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-machinelearningcompute-2017-08-01-preview
+ - tag: schema-machinelearningcompute-2017-06-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-machinelearningcompute-2017-08-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningcompute-2017-08-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningCompute/preview/2017-08-01-preview/machineLearningCompute.json
+
+```
+
+### Tag: schema-machinelearningcompute-2017-06-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningcompute-2017-06-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningCompute/preview/2017-06-01-preview/machineLearningCompute.json
+
+```
diff --git a/specification/machinelearningcompute/resource-manager/readme.md b/specification/machinelearningcompute/resource-manager/readme.md
index be65538e35af..1a5e302eeb77 100644
--- a/specification/machinelearningcompute/resource-manager/readme.md
+++ b/specification/machinelearningcompute/resource-manager/readme.md
@@ -67,6 +67,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js machinelearningcompute/resource-manager
```
@@ -124,28 +127,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.MachineLearningCompute/preview/2017-08-01-preview/machineLearningCompute.json
- - $(this-folder)/Microsoft.MachineLearningCompute/preview/2017-06-01-preview/machineLearningCompute.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/machinelearningexperimentation/resource-manager/readme.azureresourceschema.md b/specification/machinelearningexperimentation/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..7bed65196c80
--- /dev/null
+++ b/specification/machinelearningexperimentation/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-machinelearningexperimentation-2017-05-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-machinelearningexperimentation-2017-05-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningexperimentation-2017-05-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningExperimentation/preview/2017-05-01-preview/machineLearningExperimentation.json
+
+```
diff --git a/specification/machinelearningexperimentation/resource-manager/readme.md b/specification/machinelearningexperimentation/resource-manager/readme.md
index 67f9b55a17f2..49d88e3711b6 100644
--- a/specification/machinelearningexperimentation/resource-manager/readme.md
+++ b/specification/machinelearningexperimentation/resource-manager/readme.md
@@ -54,6 +54,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-go
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js machinelearningexperimentation/resource-manager
```
@@ -111,27 +114,7 @@ generate-interface: true
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.MachineLearningExperimentation/preview/2017-05-01-preview/machineLearningExperimentation.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-02-18-preview/examples/createComputeInstance.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-02-18-preview/examples/createComputeInstance.json
index ff84d4308695..270cf1203436 100644
--- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-02-18-preview/examples/createComputeInstance.json
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-02-18-preview/examples/createComputeInstance.json
@@ -15,6 +15,13 @@
"applicationSharingPolicy": "Personal",
"sshSettings": {
"sshPublicAccess": "Disabled"
+ },
+ "computeInstanceAuthorizationType": "personal",
+ "personalComputeInstanceSettings": {
+ "assignedUser": {
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "tenantId": "00000000-0000-0000-0000-000000000000"
+ }
}
}
}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-02-18-preview/examples/getComputeInstance.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-02-18-preview/examples/getComputeInstance.json
index c368311a4b38..fb9af3d62efe 100644
--- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-02-18-preview/examples/getComputeInstance.json
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-02-18-preview/examples/getComputeInstance.json
@@ -27,6 +27,13 @@
"adminUserName": "azureuser",
"sshPort": 22
},
+ "computeInstanceAuthorizationType": "personal",
+ "personalComputeInstanceSettings": {
+ "assignedUser": {
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "tenantId": "00000000-0000-0000-0000-000000000000"
+ }
+ },
"createdBy": {
"userName": "foobar@microsoft.com",
"userOrgId": "00000000-0000-0000-0000-000000000000",
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-02-18-preview/machineLearningServices.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-02-18-preview/machineLearningServices.json
index a13a680b6c17..e14f9754f9bc 100644
--- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-02-18-preview/machineLearningServices.json
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-02-18-preview/machineLearningServices.json
@@ -2532,6 +2532,24 @@
"description": "The current state of this ComputeInstance.",
"$ref": "#/definitions/ComputeInstanceState",
"readOnly": true
+ },
+ "computeInstanceAuthorizationType": {
+ "type": "string",
+ "title": "Compute Instance Authorization type.",
+ "description": "The Compute Instance Authorization type. Available values are personal (default).",
+ "default": "personal",
+ "enum": [
+ "personal"
+ ],
+ "x-ms-enum": {
+ "name": "ComputeInstanceAuthorizationType",
+ "modelAsString": true
+ }
+ },
+ "personalComputeInstanceSettings": {
+ "title": "Personal Compute Instance settings.",
+ "description": "Settings for a personal compute instance.",
+ "$ref": "#/definitions/PersonalComputeInstanceSettings"
}
}
}
@@ -3602,6 +3620,35 @@
"description": "Uniquely identifies the user within his/her organization."
}
}
+ },
+ "PersonalComputeInstanceSettings": {
+ "type": "object",
+ "properties": {
+ "assignedUser": {
+ "$ref": "#/definitions/AssignedUser",
+ "title": "Assigned User.",
+ "description": "A user explicitly assigned to a personal compute instance."
+ }
+ },
+ "description": "Settings for a personal compute instance."
+ },
+ "AssignedUser": {
+ "type": "object",
+ "description": "A user that can be assigned to a compute instance.",
+ "properties": {
+ "objectId": {
+ "type": "string",
+ "description": "User’s AAD Object Id."
+ },
+ "tenantId": {
+ "type": "string",
+ "description": "User’s AAD Tenant Id."
+ }
+ },
+ "required": [
+ "objectId",
+ "tenantId"
+ ]
}
}
}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateAdlsDatastore.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateAdlsDatastore.json
new file mode 100644
index 000000000000..132cb2d8be78
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateAdlsDatastore.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview",
+ "datastoreName": "adlsDatastore",
+ "properties": {
+ "dataStoreType": "adls",
+ "clientId": "233d7008-b157-4354-88d1-ba191f06a900",
+ "clientSecret": "vdvgdvdvdv",
+ "storeName": "stanley",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/adlsDatastore",
+ "name": "adlsDatastore",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "adlsdatastore",
+ "dataStoreType": "AzureDataLake",
+ "hasBeenValidated": false,
+ "tags": null,
+ "azureStorageSection": null,
+ "azureDataLakeSection": {
+ "storeName": "stanley",
+ "credentialType": "ServicePrincipal",
+ "clientId": "233d7008-b157-4354-88d1-ba191f06a900",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "isCertAuth": false,
+ "certificate": null,
+ "thumbprint": null,
+ "clientSecret": "maM1h1A7xu/4TPiBR-ZBFmhiceqwRE_@",
+ "authorityUrl": "https://login.microsoftonline.com",
+ "resourceUri": "https://datalake.azure.net/",
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "createdTime": "2020-09-08T05:49:40.9221987Z",
+ "modifiedTime": "2020-09-08T05:49:41.5438281Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ }
+ },
+ "201": {
+ "description": "The request was accepted.",
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateAdlsGen2Datastore.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateAdlsGen2Datastore.json
new file mode 100644
index 000000000000..d7721bab1184
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateAdlsGen2Datastore.json
@@ -0,0 +1,97 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview",
+ "datastoreName": "adlsgen2Datastore",
+ "properties": {
+ "dataStoreType": "adls-gen2",
+ "fileSystem": "testfs1",
+ "accountName": "nicksadlsgen2storage",
+ "clientId": "233d7008-b157-4354-88d1-ba191f06a900",
+ "clientSecret": "vdegbvedgeg",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/adlsgen2Datastore",
+ "name": "adlsgen2Datastore",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "adlsgen2datastore",
+ "dataStoreType": "AzureDataLakeGen2",
+ "hasBeenValidated": false,
+ "tags": null,
+ "azureStorageSection": {
+ "accountName": "nicksadlsgen2storage",
+ "containerName": "testfs1",
+ "endpoint": "core.windows.net",
+ "protocol": "https",
+ "credentialType": "ClientCredentials",
+ "credential": null,
+ "clientCredentials": {
+ "clientId": "233d7008-b157-4354-88d1-ba191f06a900",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "isCertAuth": false,
+ "certificate": null,
+ "thumbprint": null,
+ "clientSecret": "maM1h1A7xu/4TPiBR-ZBFmhiceqwRE_@",
+ "authorityUrl": "https://login.microsoftonline.com",
+ "resourceUri": "https://storage.azure.com/",
+ "subscriptionId": null,
+ "resourceGroup": null,
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "blobCacheTimeout": null,
+ "isSas": false,
+ "accountKey": null,
+ "sasToken": null,
+ "areWorkspaceManagedIdentitiesAllowed": false,
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "createdTime": "2020-09-08T05:57:31.7019233Z",
+ "modifiedTime": "2020-09-08T05:57:32.3251822Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ }
+ },
+ "201": {
+ "description": "The request was accepted.",
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateBlobDatastore.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateBlobDatastore.json
new file mode 100644
index 000000000000..5773748f92ee
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateBlobDatastore.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview",
+ "datastoreName": "blobDatastore",
+ "properties": {
+ "dataStoreType": "blob",
+ "accountName": "acjainmleastus9484093746",
+ "containerName": "azureml-blobstore-5da947c5-53aa-41a5-bb2b-074074e73b7",
+ "accountKey": "wddrfewfewsgewgrrwegwreg"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/blobDatastore",
+ "name": "blobDatastore",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "blobDatastore",
+ "dataStoreType": "AzureBlob",
+ "hasBeenValidated": false,
+ "tags": null,
+ "azureStorageSection": {
+ "accountName": "acjainmleastus9484093746",
+ "containerName": "azureml-blobstore-5da947c5-53aa-41a5-bb2b-074074e73b7",
+ "endpoint": "core.windows.net",
+ "protocol": "https",
+ "credentialType": "AccountKey",
+ "credential": "wddrfewfewsgewgrrwegwreg",
+ "clientCredentials": null,
+ "blobCacheTimeout": null,
+ "isSas": false,
+ "accountKey": "wddrfewfewsgewgrrwegwreg",
+ "sasToken": null,
+ "areWorkspaceManagedIdentitiesAllowed": false,
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "createdTime": "2020-09-08T05:23:21.1954812Z",
+ "modifiedTime": "2020-09-08T05:24:00.5673353Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ }
+ },
+ "201": {
+ "description": "The request was accepted.",
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateDataset.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateDataset.json
new file mode 100644
index 000000000000..6b9a44d64fd3
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateDataset.json
@@ -0,0 +1,103 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview",
+ "datasetName": "datasetName123",
+ "properties": {
+ "skipValidation": false,
+ "datasetType": "file",
+ "parameters": {
+ "path": {
+ "dataPath": {
+ "datastoreName": "testblobfromarm",
+ "relativePath": "UI/03-26-2020_083359_UTC/latin1encoding.csv"
+ }
+ }
+ },
+ "registration": {
+ "description": "test description",
+ "name": "datasetName123"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datasets/datasetName123",
+ "name": "datasetName123",
+ "type": "Microsoft.MachineLearningServices/workspaces/datasets",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "datasetId": "db9c8fbe-a404-4019-9b9e-722a544f83ff",
+ "datasetState": {
+ "state": "active",
+ "deprecatedBy": null,
+ "etag": "\"6e121555-0000-0200-0000-5f4ea2230000\""
+ },
+ "latest": {
+ "datasetId": "db9c8fbe-a404-4019-9b9e-722a544f83ff",
+ "versionId": "1",
+ "datasetDefinitionState": {
+ "state": "active",
+ "deprecatedBy": null,
+ "etag": "\"6e121455-0000-0200-0000-5f4ea2230000\""
+ },
+ "dataflow": "{\n \"blocks\": [\n {\n \"id\": \"11c52b64-7e70-4dae-9091-c57372827491\",\n \"type\": \"Microsoft.DPrep.GetDatastoreFilesBlock\",\n \"arguments\": {\n \"datastores\": [\n {\n \"datastoreName\": \"testblobfromarm\",\n \"path\": \"UI/03-26-2020_083359_UTC/latin1encoding.csv\",\n \"resourceGroup\": \"acjain-mleastUS2\",\n \"subscription\": \"35f16a99-532a-4a47-9e93-00305f6c40f2\",\n \"workspaceName\": \"acjain-mleastUS2\"\n }\n ]\n },\n \"localData\": {},\n \"isEnabled\": true,\n \"name\": null,\n \"annotation\": null\n }\n ],\n \"inspectors\": [],\n \"meta\": {\n \"savedDatasetId\": \"47198920-b0d5-4274-85c0-fba9ec6662a6\",\n \"datasetType\": \"file\",\n \"subscriptionId\": \"35f16a99-532a-4a47-9e93-00305f6c40f2\",\n \"workspaceId\": \"5da947c5-53aa-41a5-bb2b-074074e73b76\",\n \"workspaceLocation\": \"eastus2\"\n }\n}",
+ "dataPath": {
+ "datastoreName": "testblobfromarm",
+ "relativePath": "UI/03-26-2020_083359_UTC/latin1encoding.csv",
+ "azureFilePath": "https://acjainmleastus9484093746.blob.core.windows.net/azureml-blobstore-5da947c5-53aa-41a5-bb2b-074074e73b76/UI/03-26-2020_083359_UTC/latin1encoding.csv",
+ "paths": null,
+ "sqlDataPath": null,
+ "httpUrl": null,
+ "additionalProperties": {},
+ "partitionFormat": null,
+ "partitionFormatIgnoreError": false
+ },
+ "partitionFormatInPath": null,
+ "notes": "Auto generated from UI/03-26-2020_083359_UTC/latin1encoding.csv.",
+ "etag": "\"6e121455-0000-0200-0000-5f4ea2230000\"",
+ "createdTime": "2020-09-01T19:33:55.014954Z",
+ "modifiedTime": "2020-09-01T19:33:55.014954Z",
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "fileType": "Unknown",
+ "properties": {},
+ "savedDatasetId": "47198920-b0d5-4274-85c0-fba9ec6662a6",
+ "telemetryInfo": {},
+ "useDescriptionTagsFromDefinition": true,
+ "description": "geggegegegeg",
+ "tags": {}
+ },
+ "createdTime": "2020-09-01T19:33:55.0914964Z",
+ "modifiedTime": "2020-09-01T19:33:55.0914964Z",
+ "etag": "\"6e121555-0000-0200-0000-5f4ea2230000\"",
+ "name": "datasetNdddamdddeefe",
+ "description": "geggegegegeg",
+ "tags": {},
+ "isVisible": true,
+ "defaultCompute": null,
+ "datasetType": "file"
+ },
+ "identity": null,
+ "sku": null
+ }
+ },
+ "201": {
+ "description": "The request was accepted.",
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateDbfsDatastore.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateDbfsDatastore.json
new file mode 100644
index 000000000000..02370d1f6cb6
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateDbfsDatastore.json
@@ -0,0 +1,64 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview",
+ "datastoreName": "blobDatastore",
+ "properties": {
+ "dataStoreType": "dbfs"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/dbfsDatastore",
+ "name": "dbfsDatastore",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "dbfsdatastore",
+ "dataStoreType": "DBFS",
+ "hasBeenValidated": false,
+ "tags": null,
+ "azureStorageSection": null,
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "createdTime": "2020-09-08T06:00:08.4621095Z",
+ "modifiedTime": "2020-09-08T06:00:08.4719758Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ }
+ },
+ "201": {
+ "description": "The request was accepted.",
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateFileDatastore.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateFileDatastore.json
new file mode 100644
index 000000000000..b8b0857cd785
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateFileDatastore.json
@@ -0,0 +1,83 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview",
+ "datastoreName": "fileDatastore",
+ "properties": {
+ "dataStoreType": "file",
+ "accountName": "acjainmleastus9484093746",
+ "shareName": "azureml-filestore-5da947c5-53aa-41a5-bb2b-074074e73b76",
+ "accountKey": "wddrfewfewsgewgrrwegwreg"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/fileDatastore",
+ "name": "fileDatastore",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "filedatastore",
+ "dataStoreType": "AzureFile",
+ "hasBeenValidated": false,
+ "tags": null,
+ "azureStorageSection": {
+ "accountName": "acjainmleastus9484093746",
+ "containerName": "azureml-filestore-5da947c5-53aa-41a5-bb2b-074074e73b76",
+ "endpoint": "core.windows.net",
+ "protocol": "https",
+ "credentialType": "AccountKey",
+ "credential": "JCI+yadbNeeNRpBN2mMvDF56zyKINDqWTaYzsGPO/5F7wKtc65DGUya5q0sUfQyFXzwGES7eYNhQ9De79MGIAg==",
+ "clientCredentials": null,
+ "blobCacheTimeout": null,
+ "isSas": false,
+ "accountKey": "JCI+yadbNeeNRpBN2mMvDF56zyKINDqWTaYzsGPO/5F7wKtc65DGUya5q0sUfQyFXzwGES7eYNhQ9De79MGIAg==",
+ "sasToken": null,
+ "areWorkspaceManagedIdentitiesAllowed": false,
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "createdTime": "2020-09-08T05:30:45.929961Z",
+ "modifiedTime": "2020-09-08T05:30:47.2122056Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ }
+ },
+ "201": {
+ "description": "The request was accepted.",
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateMySqlDatastore.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateMySqlDatastore.json
new file mode 100644
index 000000000000..05addd0307f4
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateMySqlDatastore.json
@@ -0,0 +1,87 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview",
+ "datastoreName": "mySqlDatastore",
+ "properties": {
+ "dataStoreType": "mysqldb",
+ "databaseName": "dataset",
+ "serverName": "dataset-mysql-srv",
+ "userId": "demo_user@dataset-mysql-srv",
+ "password": "fefefefe#1234"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/mySqlDatastore",
+ "name": "mySqlDatastore",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "mysqldatastore",
+ "dataStoreType": "AzureMySql",
+ "hasBeenValidated": false,
+ "tags": null,
+ "azureStorageSection": null,
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": {
+ "serverName": "dataset-mysql-srv",
+ "databaseName": "dataset",
+ "endpoint": "mysql.database.azure.com",
+ "userId": "demo_user@dataset-mysql-srv",
+ "userPassword": "dataset#1234",
+ "portNumber": "3306",
+ "credentialType": "SqlAuthentication",
+ "clientId": "00000000-0000-0000-0000-000000000000",
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "isCertAuth": false,
+ "certificate": null,
+ "thumbprint": null,
+ "clientSecret": null,
+ "authorityUrl": "https://login.microsoftonline.com",
+ "resourceUri": null,
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "createdTime": "2020-09-08T05:43:00.3090624Z",
+ "modifiedTime": "2020-09-08T05:43:02.2118144Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ }
+ },
+ "201": {
+ "description": "The request was accepted.",
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdatePostgreSqlDatastore.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdatePostgreSqlDatastore.json
new file mode 100644
index 000000000000..d5db92d62e38
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdatePostgreSqlDatastore.json
@@ -0,0 +1,88 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview",
+ "datastoreName": "postgreSqlDatastore",
+ "properties": {
+ "dataStoreType": "psqldb",
+ "databaseName": "dataset",
+ "serverName": "dataset-pgsql-srv",
+ "userId": "demo_user@dataset-pgsql-srv",
+ "password": "swfwwfwf#1234"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/postgreSqlDatastore",
+ "name": "postgreSqlDatastore",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "postgresqldatastore",
+ "dataStoreType": "AzurePostgreSql",
+ "hasBeenValidated": false,
+ "tags": null,
+ "azureStorageSection": null,
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": {
+ "enableSsl": true,
+ "serverName": "dataset-pgsql-srv",
+ "databaseName": "dataset",
+ "endpoint": "postgres.database.azure.com",
+ "userId": "demo_user@dataset-pgsql-srv",
+ "userPassword": "dataset#1234",
+ "portNumber": "5432",
+ "credentialType": "SqlAuthentication",
+ "clientId": "00000000-0000-0000-0000-000000000000",
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "isCertAuth": false,
+ "certificate": null,
+ "thumbprint": null,
+ "clientSecret": null,
+ "authorityUrl": "https://login.microsoftonline.com",
+ "resourceUri": null,
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "createdTime": "2020-09-08T05:45:46.8987749Z",
+ "modifiedTime": "2020-09-08T05:45:49.6476211Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ }
+ },
+ "201": {
+ "description": "The request was accepted.",
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateSqlDatastore.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateSqlDatastore.json
new file mode 100644
index 000000000000..d63b9e62d7e9
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/createOrUpdateSqlDatastore.json
@@ -0,0 +1,87 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview",
+ "datastoreName": "sqlDatastore",
+ "properties": {
+ "dataStoreType": "sqldb",
+ "databaseName": "dataset",
+ "serverName": "dataset-azsql-srv",
+ "userName": "demo_user",
+ "password": "fwesfwfwf"
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/sqlDatastore",
+ "name": "sqlDatastore",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "sqldatastore",
+ "dataStoreType": "AzureSqlDatabase",
+ "hasBeenValidated": false,
+ "tags": null,
+ "azureStorageSection": null,
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": {
+ "serverName": "dataset-azsql-srv",
+ "databaseName": "dataset",
+ "endpoint": "database.windows.net",
+ "userId": "demo_user",
+ "userPassword": "dataset#1234",
+ "portNumber": null,
+ "credentialType": "SqlAuthentication",
+ "clientId": "00000000-0000-0000-0000-000000000000",
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "isCertAuth": false,
+ "certificate": null,
+ "thumbprint": null,
+ "clientSecret": null,
+ "authorityUrl": "https://login.microsoftonline.com",
+ "resourceUri": "https://database.windows.net/",
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "createdTime": "2020-09-08T05:35:54.770302Z",
+ "modifiedTime": "2020-09-08T05:35:55.7948043Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ }
+ },
+ "201": {
+ "description": "The request was accepted.",
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/deleteDataset.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/deleteDataset.json
new file mode 100644
index 000000000000..2422b90bf58b
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/deleteDataset.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview",
+ "datasetName": "filedatasetfromURL"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/deleteDatastore.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/deleteDatastore.json
new file mode 100644
index 000000000000..35cece01460a
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/deleteDatastore.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview",
+ "datastoreName": "testdagrtgtoresddddd"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/getDataset.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/getDataset.json
new file mode 100644
index 000000000000..dde44e3cfe6d
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/getDataset.json
@@ -0,0 +1,81 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview",
+ "datasetName": "filedatasetfromURL"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datasets/filedatasetfromURL",
+ "name": "filedatasetfromURL",
+ "type": "Microsoft.MachineLearningServices/workspaces/datasets",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "datasetId": "3ebe138f-0933-4718-9178-f05a733d1bb3",
+ "datasetState": {
+ "state": "active",
+ "deprecatedBy": null,
+ "etag": null
+ },
+ "latest": {
+ "datasetId": "3ebe138f-0933-4718-9178-f05a733d1bb3",
+ "versionId": "1",
+ "datasetDefinitionState": {
+ "state": "active",
+ "deprecatedBy": null,
+ "etag": null
+ },
+ "dataflow": null,
+ "dataPath": {
+ "datastoreName": null,
+ "relativePath": "",
+ "azureFilePath": null,
+ "paths": null,
+ "sqlDataPath": null,
+ "httpUrl": "https://gist.githubusercontent.com/achalachal2003/da4886b7aec40bdd11a7613d664857c0/raw/7ca4ee355b5ee772a1fa73d5125d9cf018d868b9/banktest.csv",
+ "additionalProperties": {},
+ "partitionFormat": null,
+ "partitionFormatIgnoreError": false
+ },
+ "partitionFormatInPath": null,
+ "notes": "Auto generated from https://gist.githubusercontent.com/achalachal2003/da4886b7aec40bdd11a7613d664857c0/raw/7ca4ee355b5ee772a1fa73d5125d9cf018d868b9/banktest.csv",
+ "etag": "\"5c018cd9-0000-0200-0000-5f1630a40000\"",
+ "createdTime": "2020-07-21T00:02:44.9360911Z",
+ "modifiedTime": "2020-07-21T00:02:44.9360911Z",
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "fileType": "Unknown",
+ "properties": {},
+ "savedDatasetId": "22fdf6fa-61a4-4f74-8ce2-57e6374998a6",
+ "telemetryInfo": {},
+ "useDescriptionTagsFromDefinition": true,
+ "description": "",
+ "tags": {}
+ },
+ "createdTime": "2020-07-21T00:02:44.9523499Z",
+ "modifiedTime": "2020-07-21T00:02:44.9523499Z",
+ "etag": "\"5c0198d9-0000-0200-0000-5f1630a40000\"",
+ "name": "filedatasetfromURL",
+ "description": "",
+ "tags": {},
+ "isVisible": true,
+ "defaultCompute": null,
+ "datasetType": "file"
+ },
+ "identity": null,
+ "sku": null
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/getDatasets.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/getDatasets.json
new file mode 100644
index 000000000000..17631e8ed8d5
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/getDatasets.json
@@ -0,0 +1,156 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datasets/filedatasetfromURL",
+ "name": "filedatasetfromURL",
+ "type": "Microsoft.MachineLearningServices/workspaces/datasets",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "datasetId": "3ebe138f-0933-4718-9178-f05a733d1bb3",
+ "datasetState": {
+ "state": "active",
+ "deprecatedBy": null,
+ "etag": null
+ },
+ "latest": {
+ "datasetId": "3ebe138f-0933-4718-9178-f05a733d1bb3",
+ "versionId": "1",
+ "datasetDefinitionState": {
+ "state": "active",
+ "deprecatedBy": null,
+ "etag": null
+ },
+ "dataflow": null,
+ "dataPath": {
+ "datastoreName": null,
+ "relativePath": "",
+ "azureFilePath": null,
+ "paths": null,
+ "sqlDataPath": null,
+ "httpUrl": "https://gist.githubusercontent.com/achalachal2003/da4886b7aec40bdd11a7613d664857c0/raw/7ca4ee355b5ee772a1fa73d5125d9cf018d868b9/banktest.csv",
+ "additionalProperties": {},
+ "partitionFormat": null,
+ "partitionFormatIgnoreError": false
+ },
+ "partitionFormatInPath": null,
+ "notes": "Auto generated from https://gist.githubusercontent.com/achalachal2003/da4886b7aec40bdd11a7613d664857c0/raw/7ca4ee355b5ee772a1fa73d5125d9cf018d868b9/banktest.csv",
+ "etag": "\"5c018cd9-0000-0200-0000-5f1630a40000\"",
+ "createdTime": "2020-07-21T00:02:44.9360911Z",
+ "modifiedTime": "2020-07-21T00:02:44.9360911Z",
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "fileType": "Unknown",
+ "properties": {},
+ "savedDatasetId": "22fdf6fa-61a4-4f74-8ce2-57e6374998a6",
+ "telemetryInfo": {},
+ "useDescriptionTagsFromDefinition": true,
+ "description": "",
+ "tags": {}
+ },
+ "createdTime": "2020-07-21T00:02:44.9523499Z",
+ "modifiedTime": "2020-07-21T00:02:44.9523499Z",
+ "etag": "\"5c0198d9-0000-0200-0000-5f1630a40000\"",
+ "name": "filedatasetfromURL",
+ "description": "",
+ "tags": {},
+ "isVisible": true,
+ "defaultCompute": null,
+ "datasetType": "file"
+ },
+ "identity": null,
+ "sku": null
+ },
+ {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datasets/TABUALRFROMRELETIVEPATH",
+ "name": "TABUALRFROMRELETIVEPATH",
+ "type": "Microsoft.MachineLearningServices/workspaces/datasets",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "datasetId": "2b241d0b-2a57-4cbb-8961-6f6b413c4029",
+ "datasetState": {
+ "state": "active",
+ "deprecatedBy": null,
+ "etag": null
+ },
+ "latest": {
+ "datasetId": "2b241d0b-2a57-4cbb-8961-6f6b413c4029",
+ "versionId": "1",
+ "datasetDefinitionState": {
+ "state": "active",
+ "deprecatedBy": null,
+ "etag": null
+ },
+ "dataflow": null,
+ "dataPath": {
+ "datastoreName": "testblobfromarm",
+ "relativePath": "UI/03-26-2020_083359_UTC/latin1encoding.csv",
+ "azureFilePath": "https://acjainmleastus9484093746.blob.core.windows.net/azureml-blobstore-5da947c5-53aa-41a5-bb2b-074074e73b76/UI/03-26-2020_083359_UTC/latin1encoding.csv",
+ "paths": null,
+ "sqlDataPath": null,
+ "httpUrl": null,
+ "additionalProperties": {},
+ "partitionFormat": "",
+ "partitionFormatIgnoreError": false
+ },
+ "partitionFormatInPath": null,
+ "notes": "Auto generated from UI/03-26-2020_083359_UTC/latin1encoding.csv.",
+ "etag": "\"5c01c275-0000-0200-0000-5f162fab0000\"",
+ "createdTime": "2020-07-20T23:58:35.221224Z",
+ "modifiedTime": "2020-07-20T23:58:35.221224Z",
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "fileType": "GenericCSVNoHeader",
+ "properties": {
+ "_TimeSeries_Column:CoarseGrainTimestamp_": "stabbr",
+ "_TimeSeries_Column:FineGrainTimestamp_": "city"
+ },
+ "savedDatasetId": "d2845be6-786e-4419-b049-5887a2ef4ed8",
+ "telemetryInfo": {},
+ "useDescriptionTagsFromDefinition": true,
+ "description": "",
+ "tags": {}
+ },
+ "createdTime": "2020-07-20T23:58:35.2303194Z",
+ "modifiedTime": "2020-07-20T23:58:35.2303194Z",
+ "etag": "\"5c01c475-0000-0200-0000-5f162fab0000\"",
+ "name": "TABUALRFROMRELETIVEPATH",
+ "description": "",
+ "tags": {},
+ "isVisible": true,
+ "defaultCompute": null,
+ "datasetType": "tabular"
+ },
+ "identity": null,
+ "sku": null
+ }
+ ],
+ "nextLink": "nextLink"
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/getDatastore.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/getDatastore.json
new file mode 100644
index 000000000000..42168acb8b3d
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/getDatastore.json
@@ -0,0 +1,71 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview",
+ "datastoreName": "testdatastore"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/testdatastore",
+ "name": "testdatastore",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "testdatastore",
+ "dataStoreType": "AzureBlob",
+ "hasBeenValidated": true,
+ "tags": null,
+ "azureStorageSection": {
+ "accountName": "acjainmleastus9484093746",
+ "containerName": "azureml-blobstore-5da947c5-53aa-41a5-bb2b-074074e73b76",
+ "endpoint": "core.windows.net",
+ "protocol": "https",
+ "credentialType": "AccountKey",
+ "credential": "",
+ "clientCredentials": null,
+ "blobCacheTimeout": null,
+ "isSas": true,
+ "accountKey": null,
+ "sasToken": "",
+ "areWorkspaceManagedIdentitiesAllowed": false,
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "createdTime": "2020-08-29T01:50:59.2350285Z",
+ "modifiedTime": "2020-09-01T19:21:58.4173051Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/getDatastores.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/getDatastores.json
new file mode 100644
index 000000000000..5f3e3106c048
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/examples/getDatastores.json
@@ -0,0 +1,485 @@
+{
+ "parameters": {
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroupName": "acjain-mleastUS2",
+ "workspaceName": "acjain-mleastUS2",
+ "api-version": "2020-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/testdagrtgtoresddddd",
+ "name": "testdagrtgtoresddddd",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "testdagrtgtoresddddd",
+ "dataStoreType": "AzureBlob",
+ "hasBeenValidated": true,
+ "tags": null,
+ "azureStorageSection": {
+ "accountName": "acjainmleastus9484093746",
+ "containerName": "azureml-blobstore-5da947c5-53aa-41a5-bb2b-074074e73b76",
+ "endpoint": "core.windows.net",
+ "protocol": "https",
+ "credentialType": "AccountKey",
+ "credential": "",
+ "clientCredentials": null,
+ "blobCacheTimeout": null,
+ "isSas": true,
+ "accountKey": null,
+ "sasToken": "",
+ "areWorkspaceManagedIdentitiesAllowed": false,
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "Achal Jain"
+ },
+ "createdTime": "2020-08-29T01:50:59.2350285Z",
+ "modifiedTime": "2020-09-01T19:21:58.4173051Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ },
+ {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/adlsgen111",
+ "name": "adlsgen111",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "adlsgen111",
+ "dataStoreType": "AzureDataLake",
+ "hasBeenValidated": true,
+ "tags": null,
+ "azureStorageSection": null,
+ "azureDataLakeSection": {
+ "storeName": "stanley",
+ "credentialType": "ServicePrincipal",
+ "clientId": "233d7008-b157-4354-88d1-ba191f06a900",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "isCertAuth": false,
+ "certificate": null,
+ "thumbprint": null,
+ "clientSecret": "",
+ "authorityUrl": "https://login.microsoftonline.com",
+ "resourceUri": "https://datalake.azure.net/",
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "createdTime": "2020-07-21T00:06:39.2747836Z",
+ "modifiedTime": "2020-07-21T00:06:39.2747836Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ },
+ {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/swlfromarmdd",
+ "name": "swlfromarmdd",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "swlfromarmdd",
+ "dataStoreType": "AzureSqlDatabase",
+ "hasBeenValidated": true,
+ "tags": null,
+ "azureStorageSection": null,
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": {
+ "serverName": "dataset-azsql-srv",
+ "databaseName": "dataset",
+ "endpoint": "database.windows.net",
+ "userId": "demo_user",
+ "userPassword": "",
+ "portNumber": null,
+ "credentialType": "SqlAuthentication",
+ "clientId": "00000000-0000-0000-0000-000000000000",
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "isCertAuth": false,
+ "certificate": null,
+ "thumbprint": null,
+ "clientSecret": null,
+ "authorityUrl": "https://login.microsoftonline.com",
+ "resourceUri": "https://database.windows.net/",
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "createdTime": "2020-07-21T00:04:54.1317421Z",
+ "modifiedTime": "2020-07-21T00:04:54.1317421Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ },
+ {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/fileshareds",
+ "name": "fileshareds",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "fileshareds",
+ "dataStoreType": "AzureFile",
+ "hasBeenValidated": true,
+ "tags": null,
+ "azureStorageSection": {
+ "accountName": "acjainmleastus9484093746",
+ "containerName": "azureml-filestore-5da947c5-53aa-41a5-bb2b-074074e73b76",
+ "endpoint": "core.windows.net",
+ "protocol": "https",
+ "credentialType": "AccountKey",
+ "credential": "",
+ "clientCredentials": null,
+ "blobCacheTimeout": null,
+ "isSas": false,
+ "accountKey": "",
+ "sasToken": null,
+ "areWorkspaceManagedIdentitiesAllowed": false,
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "createdTime": "2020-07-21T00:01:42.4401133Z",
+ "modifiedTime": "2020-07-21T00:01:42.4401133Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ },
+ {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/dbfssssss",
+ "name": "dbfssssss",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "dbfssssss",
+ "dataStoreType": "DBFS",
+ "hasBeenValidated": false,
+ "tags": null,
+ "azureStorageSection": null,
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "createdTime": "2020-07-20T23:51:06.8380341Z",
+ "modifiedTime": "2020-07-20T23:51:06.8380341Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ },
+ {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/mysqldatastorearm",
+ "name": "mysqldatastorearm",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "mysqldatastorearm",
+ "dataStoreType": "AzureMySql",
+ "hasBeenValidated": true,
+ "tags": null,
+ "azureStorageSection": null,
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": {
+ "serverName": "dataset-mysql-srv",
+ "databaseName": "dataset",
+ "endpoint": "mysql.database.azure.com",
+ "userId": "demo_user@dataset-mysql-srv",
+ "userPassword": "",
+ "portNumber": "3306",
+ "credentialType": "SqlAuthentication",
+ "clientId": "00000000-0000-0000-0000-000000000000",
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "isCertAuth": false,
+ "certificate": null,
+ "thumbprint": null,
+ "clientSecret": null,
+ "authorityUrl": null,
+ "resourceUri": null,
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "createdTime": "2020-07-20T23:47:30.8639577Z",
+ "modifiedTime": "2020-07-20T23:47:30.8639577Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ },
+ {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/adlsgen2datastorearm",
+ "name": "adlsgen2datastorearm",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "adlsgen2datastorearm",
+ "dataStoreType": "AzureDataLakeGen2",
+ "hasBeenValidated": true,
+ "tags": null,
+ "azureStorageSection": {
+ "accountName": "nicksadlsgen2storage",
+ "containerName": "https://nicksadlsgen2storage.blob.core.windows.net/testfs1",
+ "endpoint": "core.windows.net",
+ "protocol": "https",
+ "credentialType": "ClientCredentials",
+ "credential": null,
+ "clientCredentials": {
+ "clientId": "233d7008-b157-4354-88d1-ba191f06a900",
+ "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "isCertAuth": false,
+ "certificate": null,
+ "thumbprint": null,
+ "clientSecret": "",
+ "authorityUrl": "https://login.microsoftonline.com",
+ "resourceUri": "https://storage.azure.com/",
+ "subscriptionId": null,
+ "resourceGroup": null,
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "blobCacheTimeout": null,
+ "isSas": false,
+ "accountKey": null,
+ "sasToken": null,
+ "areWorkspaceManagedIdentitiesAllowed": false,
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": null,
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "createdTime": "2020-07-20T23:45:09.0121271Z",
+ "modifiedTime": "2020-07-20T23:45:09.0121271Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ },
+ {
+ "id": "/subscriptions/35f16a99-532a-4a47-9e93-00305f6c40f2/resourceGroups/acjain-mleastUS2/providers/Microsoft.MachineLearningServices/workspaces/acjain-mleastUS2/datastores/postgrearm22",
+ "name": "postgrearm22",
+ "type": "Microsoft.MachineLearningServices/workspaces/datastores",
+ "location": "eastus2",
+ "tags": null,
+ "properties": {
+ "name": "postgrearm22",
+ "dataStoreType": "AzurePostgreSql",
+ "hasBeenValidated": true,
+ "tags": null,
+ "azureStorageSection": null,
+ "azureDataLakeSection": null,
+ "azureSqlDatabaseSection": null,
+ "azurePostgreSqlSection": {
+ "enableSsl": true,
+ "serverName": "dataset-pgsql-srv",
+ "databaseName": "dataset",
+ "endpoint": "postgres.database.azure.com",
+ "userId": "demo_user@dataset-pgsql-srv",
+ "userPassword": "",
+ "portNumber": "5432",
+ "credentialType": "SqlAuthentication",
+ "clientId": "00000000-0000-0000-0000-000000000000",
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "isCertAuth": false,
+ "certificate": null,
+ "thumbprint": null,
+ "clientSecret": null,
+ "authorityUrl": null,
+ "resourceUri": null,
+ "subscriptionId": "35f16a99-532a-4a47-9e93-00305f6c40f2",
+ "resourceGroup": "acjain-mleastUS2",
+ "serviceDataAccessAuthIdentity": "None"
+ },
+ "azureMySqlSection": null,
+ "glusterFsSection": null,
+ "createdBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "modifiedBy": {
+ "userObjectId": "fa3fb1ee-ab39-4c79-b5ea-9dcb0a0b1a5c",
+ "userPuId": "100320004068320D",
+ "userIdp": null,
+ "userAltSecId": null,
+ "userIss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
+ "userTenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
+ "userName": "c44b4083-3bb0-49c1-b47d-974e53cbdf3c"
+ },
+ "createdTime": "2020-07-20T23:41:33.0368305Z",
+ "modifiedTime": "2020-07-20T23:41:33.0368305Z",
+ "linkedInfo": null
+ },
+ "identity": null,
+ "sku": null
+ }
+ ],
+ "nextLink": "nextLink"
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/machineLearningServices.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/machineLearningServices.json
index 12dd8bd3a957..a6f3152dd155 100644
--- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/machineLearningServices.json
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/machineLearningServices.json
@@ -1643,6 +1643,423 @@
}
}
}
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/datasets": {
+ "get": {
+ "tags": [
+ "MachineLearningDatasets"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "operationId": "MachineLearningDatasets_ListByWorkspace",
+ "description": "Gets datasets in specified workspace.",
+ "x-ms-examples": {
+ "Get Datasets": {
+ "$ref": "./examples/getDatasets.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PaginationParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response includes a paginated array of Machine Learning datasets and a URI to the next set of results, if any. For the more information the limits of the number of items in a resource group, see https://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/.",
+ "schema": {
+ "$ref": "#/definitions/PaginatedDatasetResourcesList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/datasets/{datasetName}": {
+ "get": {
+ "tags": [
+ "MachineLearningDatasets"
+ ],
+ "operationId": "MachineLearningDatasets_Get",
+ "description": "Get a Dataset by name.",
+ "x-ms-examples": {
+ "Get Dataset": {
+ "$ref": "./examples/getDataset.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/DatasetNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/DatasetResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "MachineLearningDatasets"
+ ],
+ "operationId": "MachineLearningDatasets_CreateOrUpdate",
+ "description": "Creates or updates dataset. This call will overwrite a dataset if it exists. This is a nonrecoverable operation. If your intent is to create a new dataset, do a GET first to verify that it does not exist yet.",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create Dataset": {
+ "$ref": "./examples/createOrUpdateDataset.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatasetNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "properties",
+ "description": "The payload that is used to create or update the Dataset.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DatasetCreateRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Dataset creation or update initiated.",
+ "schema": {
+ "$ref": "#/definitions/DatasetResource"
+ }
+ },
+ "201": {
+ "description": "Dataset creation or update initiated.",
+ "headers": {
+ "Azure-AsyncOperation": {
+ "description": "URI to poll for asynchronous operation status.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "MachineLearningDatasets"
+ ],
+ "operationId": "MachineLearningDatasets_Delete",
+ "description": "Deletes specified Machine Learning Dataset.",
+ "x-ms-examples": {
+ "Delete Dataset": {
+ "$ref": "./examples/deleteDataset.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatasetNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "204": {
+ "description": "The resource does not exist and the request was well formed."
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/datastores": {
+ "get": {
+ "tags": [
+ "MachineLearningDatastores"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "operationId": "MachineLearningDatastores_ListByWorkspace",
+ "description": "Gets datastores in specified workspace.",
+ "x-ms-examples": {
+ "Get Datastores": {
+ "$ref": "./examples/getDatastores.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PaginationParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response includes a paginated array of Machine Learning datastores and a URI to the next set of results, if any. For the more information the limits of the number of items in a resource group, see https://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/.",
+ "schema": {
+ "$ref": "#/definitions/PaginatedDatastoreResourcesList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/datastores/{datastoreName}": {
+ "get": {
+ "tags": [
+ "MachineLearningDatastores"
+ ],
+ "operationId": "MachineLearningDatastores_Get",
+ "description": "Get a Datastore by name.",
+ "x-ms-examples": {
+ "Get Datastore": {
+ "$ref": "./examples/getDatastore.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/DatastoreNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/DatastoreResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "MachineLearningDatastores"
+ ],
+ "operationId": "MachineLearningDatastores_CreateOrUpdate",
+ "description": "Creates or updates datastore. This call will overwrite a dataset if it exists. This is a nonrecoverable operation. If your intent is to create a new dataset, do a GET first to verify that it does not exist yet.",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create Blob Datastore": {
+ "$ref": "./examples/createOrUpdateBlobDatastore.json"
+ },
+ "Create File Datastore": {
+ "$ref": "./examples/createOrUpdateFileDatastore.json"
+ },
+ "Create SQL Datastore": {
+ "$ref": "./examples/createOrUpdateSqlDatastore.json"
+ },
+ "Create PostgreSQL Datastore": {
+ "$ref": "./examples/createOrUpdatePostgreSqlDatastore.json"
+ },
+ "Create MySQL Datastore": {
+ "$ref": "./examples/createOrUpdateMySqlDatastore.json"
+ },
+ "Create ADLS Datastore": {
+ "$ref": "./examples/createOrUpdateAdlsDatastore.json"
+ },
+ "Create ADLS Gen2 Datastore": {
+ "$ref": "./examples/createOrUpdateAdlsGen2Datastore.json"
+ },
+ "Create Databricks File System Datastore": {
+ "$ref": "./examples/createOrUpdateDbfsDatastore.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatastoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "in": "body",
+ "name": "properties",
+ "description": "The payload that is used to create or update the Datastore.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/DatastoreCreateRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Datastore creation or update initiated.",
+ "schema": {
+ "$ref": "#/definitions/DatastoreResource"
+ }
+ },
+ "201": {
+ "description": "Datastore creation or update initiated.",
+ "headers": {
+ "Azure-AsyncOperation": {
+ "description": "URI to poll for asynchronous operation status.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "MachineLearningDatastores"
+ ],
+ "operationId": "MachineLearningDatastores_Delete",
+ "description": "Deletes specified Machine Learning Datastore.",
+ "x-ms-examples": {
+ "Delete Datastore": {
+ "$ref": "./examples/deleteDatastore.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/DatastoreNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "204": {
+ "description": "The resource does not exist and the request was well formed."
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
}
},
"parameters": {
@@ -1849,6 +2266,22 @@
"modelAsString": true
},
"x-ms-parameter-location": "method"
+ },
+ "DatasetNameParameter": {
+ "in": "path",
+ "name": "datasetName",
+ "type": "string",
+ "description": "The Dataset name.",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "DatastoreNameParameter": {
+ "in": "path",
+ "name": "datastoreName",
+ "type": "string",
+ "description": "The Datastore name.",
+ "required": true,
+ "x-ms-parameter-location": "method"
}
},
"definitions": {
@@ -1986,627 +2419,1417 @@
"description": "The name of the managed resource group created by workspace RP in customer subscription if the workspace is CMK workspace",
"readOnly": true
},
- "privateLinkCount": {
+ "privateLinkCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Count of private connections in the workspace",
+ "readOnly": true
+ },
+ "imageBuildCompute": {
+ "description": "The compute name for image build",
+ "type": "string"
+ },
+ "allowPublicAccessWhenBehindVnet": {
+ "type": "boolean",
+ "description": "The flag to indicate whether to allow public access when behind VNet.",
+ "default": false
+ },
+ "privateEndpointConnections": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "The list of private endpoint connections in the workspace."
+ },
+ "sharedPrivateLinkResources": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharedPrivateLinkResource"
+ },
+ "description": "The list of shared private link resources in this workspace."
+ }
+ }
+ },
+ "WorkspaceUpdateParameters": {
+ "description": "The parameters for updating a machine learning workspace.",
+ "properties": {
+ "tags": {
+ "description": "The resource tags for the machine learning workspace.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The sku of the workspace."
+ },
+ "properties": {
+ "$ref": "#/definitions/WorkspacePropertiesUpdateParameters",
+ "description": "The properties that the machine learning workspace will be updated with.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkspacePropertiesUpdateParameters": {
+ "description": "The parameters for updating the properties of a machine learning workspace.",
+ "properties": {
+ "description": {
+ "description": "The description of this workspace.",
+ "type": "string"
+ },
+ "friendlyName": {
+ "description": "The friendly name for this workspace.",
+ "type": "string"
+ }
+ }
+ },
+ "AmlUserFeature": {
+ "description": "Features enabled for a workspace",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Specifies the feature ID",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Specifies the feature name ",
+ "type": "string"
+ },
+ "description": {
+ "description": "Describes the feature for user experience",
+ "type": "string"
+ }
+ }
+ },
+ "ListAmlUserFeatureResult": {
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AmlUserFeature"
+ },
+ "description": "The list of AML user facing features."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URI to fetch the next page of AML user features information. Call ListNext() with this to fetch the next page of AML user features information."
+ }
+ },
+ "description": "The List Aml user feature operation response."
+ },
+ "UsageName": {
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the resource."
+ },
+ "localizedValue": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The localized name of the resource."
+ }
+ },
+ "description": "The Usage Names."
+ },
+ "Usage": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource ID."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource type."
+ },
+ "unit": {
+ "readOnly": true,
+ "type": "string",
+ "description": "An enum describing the unit of usage measurement.",
+ "enum": [
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "UsageUnit",
+ "modelAsString": true
+ }
+ },
+ "currentValue": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The current usage of the resource."
+ },
+ "limit": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The maximum permitted usage of the resource."
+ },
+ "name": {
+ "readOnly": true,
+ "$ref": "#/definitions/UsageName",
+ "description": "The name of the type of usage."
+ }
+ },
+ "description": "Describes AML Resource Usage."
+ },
+ "ListUsagesResult": {
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Usage"
+ },
+ "description": "The list of AML resource usages."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URI to fetch the next page of AML resource usage information. Call ListNext() with this to fetch the next page of AML resource usage information."
+ }
+ },
+ "description": "The List Usages operation response."
+ },
+ "VirtualMachineSize": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "Virtual Machine size name",
+ "description": "The name of the virtual machine size.",
+ "readOnly": true
+ },
+ "family": {
+ "type": "string",
+ "title": "Virtual Machine family name",
+ "description": "The family name of the virtual machine size.",
+ "readOnly": true
+ },
+ "vCPUs": {
+ "type": "integer",
+ "format": "int32",
+ "title": "Number of vPUs",
+ "description": "The number of vCPUs supported by the virtual machine size.",
+ "readOnly": true
+ },
+ "gpus": {
+ "type": "integer",
+ "format": "int32",
+ "title": "Number of gPUs",
+ "description": "The number of gPUs supported by the virtual machine size.",
+ "readOnly": true
+ },
+ "osVhdSizeMB": {
+ "type": "integer",
+ "format": "int32",
+ "title": "OS VHD Disk size",
+ "description": "The OS VHD disk size, in MB, allowed by the virtual machine size.",
+ "readOnly": true
+ },
+ "maxResourceVolumeMB": {
"type": "integer",
"format": "int32",
- "description": "Count of private connections in the workspace",
+ "title": "Resource volume size",
+ "description": "The resource volume size, in MB, allowed by the virtual machine size.",
"readOnly": true
},
- "imageBuildCompute": {
- "description": "The compute name for image build",
- "type": "string"
+ "memoryGB": {
+ "type": "number",
+ "format": "double",
+ "title": "Memory size",
+ "description": "The amount of memory, in GB, supported by the virtual machine size.",
+ "readOnly": true
},
- "allowPublicAccessWhenBehindVnet": {
+ "lowPriorityCapable": {
"type": "boolean",
- "description": "The flag to indicate whether to allow public access when behind VNet.",
- "default": false
+ "title": "Low priority capable",
+ "description": "Specifies if the virtual machine size supports low priority VMs.",
+ "readOnly": true
},
- "privateEndpointConnections": {
- "readOnly": true,
+ "premiumIO": {
+ "type": "boolean",
+ "title": "Premium IO supported",
+ "description": "Specifies if the virtual machine size supports premium IO.",
+ "readOnly": true
+ }
+ },
+ "description": "Describes the properties of a VM size."
+ },
+ "VirtualMachineSizeListResult": {
+ "properties": {
+ "amlCompute": {
"type": "array",
"items": {
- "$ref": "#/definitions/PrivateEndpointConnection"
+ "$ref": "#/definitions/VirtualMachineSize"
},
- "description": "The list of private endpoint connections in the workspace."
- },
- "sharedPrivateLinkResources": {
+ "description": "The list of virtual machine sizes supported by AmlCompute."
+ }
+ },
+ "description": "The List Virtual Machine size operation response."
+ },
+ "WorkspaceListResult": {
+ "description": "The result of a request to list machine learning workspaces.",
+ "properties": {
+ "value": {
+ "description": "The list of machine learning workspaces. Since this list may be incomplete, the nextLink field should be used to request the next list of machine learning workspaces.",
"type": "array",
"items": {
- "$ref": "#/definitions/SharedPrivateLinkResource"
- },
- "description": "The list of shared private link resources in this workspace."
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "nextLink": {
+ "description": "The URI that can be used to request the next list of machine learning workspaces.",
+ "type": "string"
}
}
},
- "WorkspaceUpdateParameters": {
- "description": "The parameters for updating a machine learning workspace.",
+ "QuotaBaseProperties": {
"properties": {
- "tags": {
- "description": "The resource tags for the machine learning workspace.",
- "type": "object",
- "additionalProperties": {
- "type": "string"
- }
+ "id": {
+ "type": "string",
+ "description": "Specifies the resource ID."
},
- "sku": {
- "$ref": "#/definitions/Sku",
- "description": "The sku of the workspace."
+ "type": {
+ "type": "string",
+ "description": "Specifies the resource type."
},
- "properties": {
- "$ref": "#/definitions/WorkspacePropertiesUpdateParameters",
- "description": "The properties that the machine learning workspace will be updated with.",
- "x-ms-client-flatten": true
+ "limit": {
+ "type": "integer",
+ "format": "int64",
+ "title": "Limit.",
+ "description": "The maximum permitted quota of the resource."
+ },
+ "unit": {
+ "type": "string",
+ "description": "An enum describing the unit of quota measurement.",
+ "enum": [
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "QuotaUnit",
+ "modelAsString": true
+ }
}
- }
+ },
+ "description": "The properties for Quota update or retrieval."
},
- "WorkspacePropertiesUpdateParameters": {
- "description": "The parameters for updating the properties of a machine learning workspace.",
+ "QuotaUpdateParameters": {
"properties": {
- "description": {
- "description": "The description of this workspace.",
- "type": "string"
+ "value": {
+ "description": "The list for update quota.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QuotaBaseProperties"
+ }
+ }
+ },
+ "description": "Quota update parameters."
+ },
+ "UpdateWorkspaceQuotasResult": {
+ "properties": {
+ "value": {
+ "description": "The list of workspace quota update result.",
+ "items": {
+ "$ref": "#/definitions/UpdateWorkspaceQuotas"
+ },
+ "readOnly": true,
+ "type": "array"
},
- "friendlyName": {
- "description": "The friendly name for this workspace.",
+ "nextLink": {
+ "description": "The URI to fetch the next page of workspace quota update result. Call ListNext() with this to fetch the next page of Workspace Quota update result.",
+ "readOnly": true,
"type": "string"
}
- }
+ },
+ "description": "The result of update workspace quota."
},
- "AmlUserFeature": {
- "description": "Features enabled for a workspace",
- "type": "object",
+ "UpdateWorkspaceQuotas": {
"properties": {
"id": {
- "description": "Specifies the feature ID",
- "type": "string"
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource ID."
},
- "displayName": {
- "description": "Specifies the feature name ",
- "type": "string"
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource type."
},
- "description": {
- "description": "Describes the feature for user experience",
- "type": "string"
+ "limit": {
+ "type": "integer",
+ "format": "int64",
+ "title": "Limit.",
+ "description": "The maximum permitted quota of the resource."
+ },
+ "unit": {
+ "readOnly": true,
+ "type": "string",
+ "description": "An enum describing the unit of quota measurement.",
+ "enum": [
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "QuotaUnit",
+ "modelAsString": true
+ }
+ },
+ "status": {
+ "type": "string",
+ "readOnly": false,
+ "title": "Update Workspace Quota Status.",
+ "description": "Status of update workspace quota.",
+ "enum": [
+ "Undefined",
+ "Success",
+ "Failure",
+ "InvalidQuotaBelowClusterMinimum",
+ "InvalidQuotaExceedsSubscriptionLimit",
+ "InvalidVMFamilyName",
+ "OperationNotSupportedForSku",
+ "OperationNotEnabledForRegion"
+ ],
+ "x-ms-enum": {
+ "name": "status",
+ "modelAsString": true
+ }
}
- }
+ },
+ "description": "The properties for update Quota response."
},
- "ListAmlUserFeatureResult": {
+ "ResourceName": {
"properties": {
"value": {
"readOnly": true,
- "type": "array",
- "items": {
- "$ref": "#/definitions/AmlUserFeature"
- },
- "description": "The list of AML user facing features."
+ "type": "string",
+ "description": "The name of the resource."
},
- "nextLink": {
+ "localizedValue": {
"readOnly": true,
"type": "string",
- "description": "The URI to fetch the next page of AML user features information. Call ListNext() with this to fetch the next page of AML user features information."
+ "description": "The localized name of the resource."
}
},
- "description": "The List Aml user feature operation response."
+ "description": "The Resource Name."
},
- "UsageName": {
+ "ResourceQuota": {
"properties": {
- "value": {
+ "id": {
"readOnly": true,
"type": "string",
- "description": "The name of the resource."
+ "description": "Specifies the resource ID."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource type."
+ },
+ "name": {
+ "$ref": "#/definitions/ResourceName",
+ "description": "Name of the resource.",
+ "readOnly": true
+ },
+ "limit": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "title": "Limit.",
+ "description": "The maximum permitted quota of the resource."
+ },
+ "unit": {
+ "readOnly": true,
+ "type": "string",
+ "description": "An enum describing the unit of quota measurement.",
+ "enum": [
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "QuotaUnit",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "The quota assigned to a resource."
+ },
+ "ListWorkspaceQuotas": {
+ "properties": {
+ "value": {
+ "description": "The list of Workspace Quotas by VM Family",
+ "items": {
+ "$ref": "#/definitions/ResourceQuota"
+ },
+ "readOnly": true,
+ "type": "array"
},
- "localizedValue": {
+ "nextLink": {
+ "description": "The URI to fetch the next page of workspace quota information by VM Family. Call ListNext() with this to fetch the next page of Workspace Quota information.",
"readOnly": true,
- "type": "string",
- "description": "The localized name of the resource."
+ "type": "string"
}
},
- "description": "The Usage Names."
+ "description": "The List WorkspaceQuotasByVMFamily operation response."
},
- "Usage": {
- "type": "object",
+ "Identity": {
"properties": {
- "id": {
+ "principalId": {
"readOnly": true,
"type": "string",
- "description": "Specifies the resource ID."
+ "description": "The principal ID of resource identity."
},
- "type": {
+ "tenantId": {
"readOnly": true,
"type": "string",
- "description": "Specifies the resource type."
+ "description": "The tenant ID of resource."
},
- "unit": {
- "readOnly": true,
+ "type": {
"type": "string",
- "description": "An enum describing the unit of usage measurement.",
+ "description": "The identity type.",
"enum": [
- "Count"
+ "SystemAssigned",
+ "SystemAssigned,UserAssigned",
+ "UserAssigned",
+ "None"
],
"x-ms-enum": {
- "name": "UsageUnit",
- "modelAsString": true
+ "name": "ResourceIdentityType",
+ "modelAsString": false
}
},
- "currentValue": {
- "readOnly": true,
- "type": "integer",
- "format": "int64",
- "description": "The current usage of the resource."
- },
- "limit": {
- "readOnly": true,
- "type": "integer",
- "format": "int64",
- "description": "The maximum permitted usage of the resource."
- },
- "name": {
- "readOnly": true,
- "$ref": "#/definitions/UsageName",
- "description": "The name of the type of usage."
+ "userAssignedIdentities": {
+ "$ref": "#/definitions/UserAssignedIdentities",
+ "description": "The user assigned identities associated with the resource."
}
},
- "description": "Describes AML Resource Usage."
+ "description": "Identity for the resource."
},
- "ListUsagesResult": {
+ "UserAssignedIdentities": {
+ "description": "dictionary containing all the user assigned identities, with resourceId of the UAI as key.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/UserAssignedIdentity"
+ }
+ },
+ "UserAssignedIdentity": {
+ "description": "User Assigned Identity",
"properties": {
- "value": {
+ "principalId": {
"readOnly": true,
- "type": "array",
- "items": {
- "$ref": "#/definitions/Usage"
- },
- "description": "The list of AML resource usages."
+ "type": "string",
+ "description": "The principal ID of the user assigned identity."
},
- "nextLink": {
+ "tenantId": {
"readOnly": true,
"type": "string",
- "description": "The URI to fetch the next page of AML resource usage information. Call ListNext() with this to fetch the next page of AML resource usage information."
+ "description": "The tenant ID of the user assigned identity."
+ },
+ "clientId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The clientId(aka appId) of the user assigned identity."
}
- },
- "description": "The List Usages operation response."
+ }
},
- "VirtualMachineSize": {
+ "Resource": {
+ "description": "Azure Resource Manager resource envelope.",
+ "x-ms-azure-resource": true,
"properties": {
- "name": {
+ "id": {
+ "description": "Specifies the resource ID.",
"type": "string",
- "title": "Virtual Machine size name",
- "description": "The name of the virtual machine size.",
"readOnly": true
},
- "family": {
+ "name": {
+ "description": "Specifies the name of the resource.",
"type": "string",
- "title": "Virtual Machine family name",
- "description": "The family name of the virtual machine size.",
- "readOnly": true
- },
- "vCPUs": {
- "type": "integer",
- "format": "int32",
- "title": "Number of vPUs",
- "description": "The number of vCPUs supported by the virtual machine size.",
- "readOnly": true
- },
- "gpus": {
- "type": "integer",
- "format": "int32",
- "title": "Number of gPUs",
- "description": "The number of gPUs supported by the virtual machine size.",
"readOnly": true
},
- "osVhdSizeMB": {
- "type": "integer",
- "format": "int32",
- "title": "OS VHD Disk size",
- "description": "The OS VHD disk size, in MB, allowed by the virtual machine size.",
- "readOnly": true
+ "identity": {
+ "$ref": "#/definitions/Identity",
+ "description": "The identity of the resource."
},
- "maxResourceVolumeMB": {
- "type": "integer",
- "format": "int32",
- "title": "Resource volume size",
- "description": "The resource volume size, in MB, allowed by the virtual machine size.",
- "readOnly": true
+ "location": {
+ "description": "Specifies the location of the resource.",
+ "type": "string"
},
- "memoryGB": {
- "type": "number",
- "format": "double",
- "title": "Memory size",
- "description": "The amount of memory, in GB, supported by the virtual machine size.",
+ "type": {
+ "description": "Specifies the type of the resource.",
+ "type": "string",
"readOnly": true
},
- "lowPriorityCapable": {
- "type": "boolean",
- "title": "Low priority capable",
- "description": "Specifies if the virtual machine size supports low priority VMs.",
- "readOnly": true
+ "tags": {
+ "description": "Contains resource tags defined as key/value pairs.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
},
- "premiumIO": {
- "type": "boolean",
- "title": "Premium IO supported",
- "description": "Specifies if the virtual machine size supports premium IO.",
- "readOnly": true
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The sku of the workspace."
}
- },
- "description": "Describes the properties of a VM size."
+ }
},
- "VirtualMachineSizeListResult": {
+ "ResourceId": {
"properties": {
- "amlCompute": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/VirtualMachineSize"
- },
- "description": "The list of virtual machine sizes supported by AmlCompute."
+ "id": {
+ "type": "string",
+ "description": "The ID of the resource"
}
},
- "description": "The List Virtual Machine size operation response."
+ "required": [
+ "id"
+ ],
+ "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet.",
+ "x-ms-azure-resource": true
},
- "WorkspaceListResult": {
- "description": "The result of a request to list machine learning workspaces.",
+ "ListWorkspaceKeysResult": {
+ "type": "object",
"properties": {
- "value": {
- "description": "The list of machine learning workspaces. Since this list may be incomplete, the nextLink field should be used to request the next list of machine learning workspaces.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/Workspace"
- }
+ "userStorageKey": {
+ "readOnly": true,
+ "type": "string"
},
- "nextLink": {
- "description": "The URI that can be used to request the next list of machine learning workspaces.",
+ "userStorageResourceId": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "appInsightsInstrumentationKey": {
+ "readOnly": true,
"type": "string"
+ },
+ "containerRegistryCredentials": {
+ "readOnly": true,
+ "$ref": "#/definitions/RegistryListCredentialsResult"
}
}
},
- "QuotaBaseProperties": {
+ "RegistryListCredentialsResult": {
+ "type": "object",
"properties": {
- "id": {
- "type": "string",
- "description": "Specifies the resource ID."
- },
- "type": {
- "type": "string",
- "description": "Specifies the resource type."
+ "location": {
+ "readOnly": true,
+ "type": "string"
},
- "limit": {
- "type": "integer",
- "format": "int64",
- "title": "Limit.",
- "description": "The maximum permitted quota of the resource."
+ "username": {
+ "readOnly": true,
+ "type": "string"
},
- "unit": {
- "type": "string",
- "description": "An enum describing the unit of quota measurement.",
- "enum": [
- "Count"
- ],
- "x-ms-enum": {
- "name": "QuotaUnit",
- "modelAsString": true
+ "passwords": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Password"
}
}
- },
- "description": "The properties for Quota update or retrieval."
+ }
},
- "QuotaUpdateParameters": {
+ "Password": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "value": {
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ },
+ "PaginatedDatasetResourcesList": {
+ "type": "object",
+ "description": "Paginated list of Machine Learning dataset objects wrapped in ARM resource envelope.",
"properties": {
"value": {
- "description": "The list for update quota.",
"type": "array",
+ "description": "An array of Machine Learning dataset objects wrapped in ARM resource envelope.",
"items": {
- "$ref": "#/definitions/QuotaBaseProperties"
+ "$ref": "#/definitions/DatasetResource"
}
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "A continuation link (absolute URI) to the next page of results in the list."
}
- },
- "description": "Quota update parameters."
+ }
},
- "UpdateWorkspaceQuotasResult": {
- "properties": {
- "value": {
- "description": "The list of workspace quota update result.",
- "items": {
- "$ref": "#/definitions/UpdateWorkspaceQuotas"
- },
- "readOnly": true,
- "type": "array"
+ "DatasetResource": {
+ "type": "object",
+ "description": "Machine Learning dataset object wrapped into ARM resource envelope.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
},
- "nextLink": {
- "description": "The URI to fetch the next page of workspace quota update result. Call ListNext() with this to fetch the next page of Workspace Quota update result.",
- "readOnly": true,
- "type": "string"
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "Dataset properties",
+ "$ref": "#/definitions/Dataset"
+ }
+ }
}
- },
- "description": "The result of update workspace quota."
+ ]
},
- "UpdateWorkspaceQuotas": {
+ "Dataset": {
+ "type": "object",
+ "description": "Machine Learning dataset object.",
"properties": {
- "id": {
- "readOnly": true,
- "type": "string",
- "description": "Specifies the resource ID."
- },
- "type": {
+ "datasetId": {
"readOnly": true,
"type": "string",
- "description": "Specifies the resource type."
+ "description": "Unique Dataset identifier."
},
- "limit": {
- "type": "integer",
- "format": "int64",
- "title": "Limit.",
- "description": "The maximum permitted quota of the resource."
+ "datasetState": {
+ "type": "object",
+ "$ref": "#/definitions/DatasetState"
},
- "unit": {
- "readOnly": true,
- "type": "string",
- "description": "An enum describing the unit of quota measurement.",
- "enum": [
- "Count"
- ],
- "x-ms-enum": {
- "name": "QuotaUnit",
- "modelAsString": true
+ "latest": {
+ "type": "object",
+ "description": "Last created Dataset definition.",
+ "properties": {
+ "datasetId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Unique Dataset identifier."
+ },
+ "versionId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "An identifier uniquely identifies a definition change."
+ },
+ "datasetDefinitionState": {
+ "type": "object",
+ "$ref": "#/definitions/DatasetState"
+ },
+ "dataflow": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Dataflow Json"
+ },
+ "dataPath": {
+ "type": "object",
+ "description": " Datastore and reference to location of data such as relativePath, Sql Query and etc.",
+ "properties": {
+ "datastoreName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Data store Name"
+ },
+ "relativePath": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Relative path in the data store"
+ },
+ "azureFilePath": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Azure path for Azure Blob or File"
+ },
+ "paths": {
+ "type": "array",
+ "description": "List of files expanded from a file GLOB specified",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "sqlDataPath": {
+ "type": "object",
+ "description": "Sql Query/Table/Stored Procedure details.",
+ "properties": {
+ "sqlTableName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "SQL table name"
+ },
+ "sqlQuery": {
+ "readOnly": true,
+ "type": "string",
+ "description": "SQL query"
+ },
+ "sqlStoredProcedureName": {
+ "readOnly": true,
+ "type": "string",
+ "description": "SQL storedProcedure name"
+ },
+ "queryTimeout": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "SQL query timeout. Unit in seconds."
+ }
+ }
+ },
+ "httpUrl": {
+ "readOnly": true,
+ "type": "string",
+ "description": "HTTP URL."
+ },
+ "additionalProperties": {
+ "description": "Additional Properties.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "partitionFormat": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specify the partition format of path. Defaults to None."
+ },
+ "partitionFormatIgnoreError": {
+ "type": "boolean",
+ "description": "Whether or not to ignore unmatched path.",
+ "readOnly": true
+ }
+ }
+ },
+ "partitionFormatInPath": {
+ "type": "boolean",
+ "description": "Indicates how the source data is partitioned. This is defined to filter on a range of partitioned data before performing actions or materialization.",
+ "readOnly": true
+ },
+ "notes": {
+ "type": "string",
+ "description": "Summary of Definition changes.",
+ "readOnly": true
+ },
+ "etag": {
+ "type": "string",
+ "description": "eTag description",
+ "readOnly": true
+ },
+ "createdTime": {
+ "format": "date-time",
+ "description": "The dataset creation time (UTC).",
+ "type": "string",
+ "readOnly": true
+ },
+ "modifiedTime": {
+ "format": "date-time",
+ "description": "The dataset last modified time (UTC).",
+ "type": "string",
+ "readOnly": true
+ },
+ "createdBy": {
+ "type": "object",
+ "$ref": "#/definitions/UserInfo"
+ },
+ "fileType": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Dataset FileType, specified by user."
+ },
+ "properties": {
+ "description": "Properties stores information like name of time series column for time series dataset.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "savedDatasetId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Indicates the saved dataset this definition is mapping to, populated on Get."
+ },
+ "telemetryInfo": {
+ "description": " Telemetry information about the dataset including information like which service the dataset was created from.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "readOnly": true
+ },
+ "useDescriptionTagsFromDefinition": {
+ "type": "boolean",
+ "description": " Whether to use description and tags from the definition level as opposed to dataset level (old behavior).",
+ "readOnly": true
+ },
+ "description": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Description about the dataset."
+ },
+ "tags": {
+ "description": "Tags associated with the dataset.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "readOnly": true
+ }
}
},
- "status": {
+ "createdTime": {
+ "format": "date-time",
+ "description": "The dataset creation time (UTC).",
"type": "string",
- "readOnly": false,
- "title": "Update Workspace Quota Status.",
- "description": "Status of update workspace quota.",
- "enum": [
- "Undefined",
- "Success",
- "Failure",
- "InvalidQuotaBelowClusterMinimum",
- "InvalidQuotaExceedsSubscriptionLimit",
- "InvalidVMFamilyName",
- "OperationNotSupportedForSku",
- "OperationNotEnabledForRegion"
- ],
- "x-ms-enum": {
- "name": "status",
- "modelAsString": true
- }
- }
- },
- "description": "The properties for update Quota response."
- },
- "ResourceName": {
- "properties": {
- "value": {
- "readOnly": true,
+ "readOnly": true
+ },
+ "modifiedTime": {
+ "format": "date-time",
+ "description": "The dataset last modified time (UTC).",
"type": "string",
- "description": "The name of the resource."
+ "readOnly": true
},
- "localizedValue": {
- "readOnly": true,
+ "etag": {
"type": "string",
- "description": "The localized name of the resource."
- }
- },
- "description": "The Resource Name."
- },
- "ResourceQuota": {
- "properties": {
- "id": {
- "readOnly": true,
+ "description": "eTag description",
+ "readOnly": true
+ },
+ "name": {
"type": "string",
- "description": "Specifies the resource ID."
+ "description": "Unique dataset name",
+ "readOnly": true
},
- "type": {
- "readOnly": true,
+ "description": {
"type": "string",
- "description": "Specifies the resource type."
+ "description": "Description about this dataset version.",
+ "readOnly": true
},
- "name": {
- "$ref": "#/definitions/ResourceName",
- "description": "Name of the resource.",
+ "tags": {
+ "description": "Tags for this dataset version.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
"readOnly": true
},
- "limit": {
- "readOnly": true,
- "type": "integer",
- "format": "int64",
- "title": "Limit.",
- "description": "The maximum permitted quota of the resource."
+ "isVisible": {
+ "type": "boolean",
+ "description": "Flag to hide Dataset in UI",
+ "readOnly": true
},
- "unit": {
- "readOnly": true,
+ "defaultCompute": {
"type": "string",
- "description": "An enum describing the unit of quota measurement.",
- "enum": [
- "Count"
- ],
- "x-ms-enum": {
- "name": "QuotaUnit",
- "modelAsString": true
- }
+ "description": "Name of the default compute to be used for any Dataset actions (such as Profile, Write).",
+ "readOnly": true
+ },
+ "datasetType": {
+ "type": "string",
+ "description": "Dataset Type.",
+ "readOnly": true
}
- },
- "description": "The quota assigned to a resource."
+ }
},
- "ListWorkspaceQuotas": {
+ "DatasetState": {
+ "type": "object",
+ "description": "Dataset state",
"properties": {
- "value": {
- "description": "The list of Workspace Quotas by VM Family",
- "items": {
- "$ref": "#/definitions/ResourceQuota"
- },
- "readOnly": true,
- "type": "array"
+ "state": {
+ "description": "Dataset state",
+ "type": "string"
+ },
+ "deprecatedBy": {
+ "description": "Reference to better Dataset or a Definition",
+ "type": "object",
+ "properties": {
+ "datasetId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Unique Dataset identifier."
+ },
+ "definitionVersion": {
+ "description": "Definition Version",
+ "type": "string"
+ }
+ }
},
- "nextLink": {
- "description": "The URI to fetch the next page of workspace quota information by VM Family. Call ListNext() with this to fetch the next page of Workspace Quota information.",
- "readOnly": true,
- "type": "string"
+ "etag": {
+ "type": "string",
+ "description": "eTag description",
+ "readOnly": true
}
- },
- "description": "The List WorkspaceQuotasByVMFamily operation response."
+ }
},
- "Identity": {
+ "LinkedInfo": {
+ "type": "object",
+ "description": "Info about origin if it is linked.",
"properties": {
- "principalId": {
- "readOnly": true,
- "type": "string",
- "description": "The principal ID of resource identity."
- },
- "tenantId": {
- "readOnly": true,
+ "linkedId": {
"type": "string",
- "description": "The tenant ID of resource."
+ "description": "LinkedId id."
},
- "type": {
+ "linkedResourceName": {
"type": "string",
- "description": "The identity type.",
- "enum": [
- "SystemAssigned",
- "SystemAssigned,UserAssigned",
- "UserAssigned",
- "None"
- ],
- "x-ms-enum": {
- "name": "ResourceIdentityType",
- "modelAsString": false
- }
+ "description": "Linked resource name."
},
- "userAssignedIdentities": {
- "$ref": "#/definitions/UserAssignedIdentities",
- "description": "The user assigned identities associated with the resource."
+ "origin": {
+ "$ref": "#/definitions/Origin"
}
- },
- "description": "Identity for the resource."
+ }
},
- "UserAssignedIdentities": {
- "description": "dictionary containing all the user assigned identities, with resourceId of the UAI as key.",
- "type": "object",
- "additionalProperties": {
- "$ref": "#/definitions/UserAssignedIdentity"
+ "Origin": {
+ "description": "Datastore origin",
+ "enum": [
+ "Synapse"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "Origin",
+ "modelAsString": true
}
},
- "UserAssignedIdentity": {
- "description": "User Assigned Identity",
+ "UserInfo": {
+ "type": "object",
+ "description": "User who created.",
"properties": {
- "principalId": {
- "readOnly": true,
+ "userObjectId": {
"type": "string",
- "description": "The principal ID of the user assigned identity."
+ "description": "A user or service principal's object ID.."
},
- "tenantId": {
- "readOnly": true,
+ "userPuId": {
"type": "string",
- "description": "The tenant ID of the user assigned identity."
+ "description": "A user or service principal's PuID."
},
- "clientId": {
- "readOnly": true,
+ "userIdp": {
"type": "string",
- "description": "The clientId(aka appId) of the user assigned identity."
+ "description": "A user identity provider. Eg live.com"
+ },
+ "userAltSecId": {
+ "type": "string",
+ "description": "A user alternate sec id. This represents the user in a different identity provider system Eg.1:live.com:puid"
+ },
+ "userIss": {
+ "type": "string",
+ "description": "The issuer which issued the token for this user."
+ },
+ "userTenantId": {
+ "type": "string",
+ "description": "A user or service principal's tenant ID."
+ },
+ "userName": {
+ "type": "string",
+ "description": " A user's full name or a service principal's app ID."
}
}
},
- "Resource": {
- "description": "Azure Resource Manager resource envelope.",
- "x-ms-azure-resource": true,
+ "PaginatedDatastoreResourcesList": {
+ "type": "object",
+ "description": "Paginated list of Machine Learning datastore objects wrapped in ARM resource envelope.",
"properties": {
- "id": {
- "description": "Specifies the resource ID.",
+ "value": {
+ "type": "array",
+ "description": "An array of Machine Learning datastore objects wrapped in ARM resource envelope.",
+ "items": {
+ "$ref": "#/definitions/DatastoreResource"
+ }
+ },
+ "nextLink": {
"type": "string",
- "readOnly": true
+ "description": "A continuation link (absolute URI) to the next page of results in the list."
+ }
+ }
+ },
+ "DatastoreResource": {
+ "type": "object",
+ "description": "Machine Learning datastore object wrapped into ARM resource envelope.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
},
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "Datastore properties",
+ "$ref": "#/definitions/Datastore"
+ }
+ }
+ }
+ ]
+ },
+ "Datastore": {
+ "type": "object",
+ "description": "Machine Learning datastore object.",
+ "properties": {
"name": {
- "description": "Specifies the name of the resource.",
"type": "string",
- "readOnly": true
- },
- "identity": {
- "$ref": "#/definitions/Identity",
- "description": "The identity of the resource."
+ "description": "Name of the datastore."
},
- "location": {
- "description": "Specifies the location of the resource.",
- "type": "string"
+ "description": {
+ "type": "string",
+ "description": "Description of the datastore."
},
- "type": {
- "description": "Specifies the type of the resource.",
+ "dataStoreType": {
+ "description": "The datastore type.",
+ "enum": [
+ "AzureBlob",
+ "AzureFile",
+ "AzureDataLake",
+ "AzureSqlDatabase",
+ "AzurePostgreSql",
+ "DBFS",
+ "AzureDataLakeGen2",
+ "AzureMySql"
+ ],
"type": "string",
- "readOnly": true
+ "x-ms-enum": {
+ "name": "DataStoreType",
+ "modelAsString": true
+ }
+ },
+ "hasBeenValidated": {
+ "type": "boolean",
+ "default": false,
+ "description": "A read only property that denotes whether the service datastore has been validated with credentials."
},
"tags": {
- "description": "Contains resource tags defined as key/value pairs.",
+ "description": "Tags for this datastore.",
"type": "object",
"additionalProperties": {
"type": "string"
- }
+ },
+ "readOnly": true
},
- "sku": {
- "$ref": "#/definitions/Sku",
- "description": "The sku of the workspace."
+ "azureStorageSection": {
+ "type": "object",
+ "$ref": "#/definitions/AzureStorageSection"
+ },
+ "azureDataLakeSection": {
+ "type": "object",
+ "$ref": "#/definitions/AzureDataLakeSection"
+ },
+ "azureSqlDatabaseSection": {
+ "type": "object",
+ "$ref": "#/definitions/AzureSqlDatabaseSection"
+ },
+ "azurePostgreSqlSection": {
+ "type": "object",
+ "$ref": "#/definitions/AzurePostgreSqlSection"
+ },
+ "azureMySqlSection": {
+ "type": "object",
+ "$ref": "#/definitions/AzureMySqlSection"
+ },
+ "glusterFsSection": {
+ "type": "object",
+ "$ref": "#/definitions/GlusterFsSection"
+ },
+ "createdBy": {
+ "type": "object",
+ "description": "The User who created the datastore.",
+ "$ref": "#/definitions/UserInfo",
+ "readOnly": true
+ },
+ "modifiedBy": {
+ "type": "object",
+ "description": "The User who modified the datastore.",
+ "$ref": "#/definitions/UserInfo",
+ "readOnly": true
+ },
+ "createdTime": {
+ "type": "string",
+ "description": "The date and time when the datastore was created.",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "modifiedTime": {
+ "type": "string",
+ "description": "The date and time when the datastore was last modified.",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "linkedInfo": {
+ "type": "object",
+ "$ref": "#/definitions/LinkedInfo"
}
}
},
- "ResourceId": {
+ "AzureResourceDatastore": {
+ "type": "object",
+ "description": "Azure resource for datastore.",
"properties": {
- "id": {
+ "subscriptionId": {
"type": "string",
- "description": "The ID of the resource"
+ "description": "Subscription ID."
+ },
+ "resourceGroup": {
+ "type": "string",
+ "description": "Resource Group."
+ },
+ "serviceDataAccessAuthIdentity": {
+ "description": "Indicates which identity to use to authenticate service data access to customer's storage.",
+ "enum": [
+ "None",
+ "WorkspaceSystemAssignedIdentity"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "ServiceDataAccessAuthIdentity",
+ "modelAsString": true
+ }
}
- },
- "required": [
- "id"
- ],
- "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet.",
- "x-ms-azure-resource": true
+ }
},
- "ListWorkspaceKeysResult": {
- "type": "object",
- "properties": {
- "userStorageKey": {
- "readOnly": true,
- "type": "string"
+ "AzureStorageSection": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/AzureResourceDatastore"
},
- "userStorageResourceId": {
- "readOnly": true,
- "type": "string"
+ {
+ "type": "object",
+ "description": "Data specific to azure storage.",
+ "properties": {
+ "accountName": {
+ "type": "string",
+ "description": "Storage Account Name."
+ },
+ "containerName": {
+ "type": "string",
+ "description": "The storage container name."
+ },
+ "endpoint": {
+ "type": "string",
+ "description": "The host of the container."
+ },
+ "protocol": {
+ "type": "string",
+ "description": "The protocol to use. Defaults to https."
+ },
+ "credentialType": {
+ "type": "object",
+ "$ref": "#/definitions/AzureStorageCredentialTypes"
+ },
+ "credential": {
+ "type": "string",
+ "description": "The credential."
+ },
+ "clientCredentials": {
+ "type": "object",
+ "$ref": "#/definitions/ClientCredentials"
+ },
+ "blobCacheTimeout": {
+ "format": "int32",
+ "description": " If this is an \"DataStoreType.AzureBlob\", the length of time (in seconds) to cache files locally after they are accessed (downloaded).",
+ "type": "integer"
+ },
+ "isSas": {
+ "description": "Indicate if we are using SAS token or Account Key (Deprecated).",
+ "type": "boolean"
+ },
+ "accountKey": {
+ "type": "string",
+ "description": " Storage Account Key (Deprecated)."
+ },
+ "sasToken": {
+ "type": "string",
+ "description": " SAS Token for the container (Deprecated)."
+ },
+ "areWorkspaceManagedIdentitiesAllowed": {
+ "description": "Indicate if we are using Workspace ManagedIdentities/MSI token (Deprecated).",
+ "type": "boolean"
+ }
+ }
+ }
+ ]
+ },
+ "AzureDataLakeSection": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/ClientCredentials"
},
- "appInsightsInstrumentationKey": {
- "readOnly": true,
- "type": "string"
+ {
+ "type": "object",
+ "description": "Data Specific to azure data lake.",
+ "properties": {
+ "storeName": {
+ "type": "string",
+ "description": "The Azure Data Lake store name."
+ },
+ "credentialType": {
+ "type": "object",
+ "$ref": "#/definitions/AzureDataLakeCredentialTypes"
+ }
+ }
+ }
+ ]
+ },
+ "AzureSqlDatabaseSection": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/AzureSqlSection"
+ },
+ {
+ "type": "object",
+ "description": "Data specific to azure SQL database."
+ }
+ ]
+ },
+ "AzurePostgreSqlSection": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/AzureSqlSection"
+ },
+ {
+ "type": "object",
+ "description": " Data specific to azure PostgreSQL.",
+ "properties": {
+ "enableSsl": {
+ "type": "boolean",
+ "description": "Indicates SSL requirement of Azure Postgresql server."
+ }
+ }
+ }
+ ]
+ },
+ "AzureMySqlSection": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/AzureSqlSection"
},
- "containerRegistryCredentials": {
- "readOnly": true,
- "$ref": "#/definitions/RegistryListCredentialsResult"
+ {
+ "type": "object",
+ "description": "Data specific to azure MySQL."
}
- }
+ ]
},
- "RegistryListCredentialsResult": {
+ "GlusterFsSection": {
"type": "object",
+ "description": "Data specific to GlusterFS.",
"properties": {
- "location": {
- "readOnly": true,
- "type": "string"
+ "serverAddress": {
+ "type": "string",
+ "description": "The server address of one of the servers that hosts the GlusterFS. Can be either the IP address or server name.",
+ "readOnly": true
},
- "username": {
- "readOnly": true,
- "type": "string"
+ "volumeName": {
+ "type": "string",
+ "description": "The name of the created GlusterFS volume.",
+ "readOnly": true
+ }
+ }
+ },
+ "AzureSqlSection": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/ClientCredentials"
},
- "passwords": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/Password"
+ {
+ "type": "object",
+ "description": "Data specific to Azure SQL.",
+ "properties": {
+ "serverName": {
+ "type": "string",
+ "description": "The Azure SQL server name."
+ },
+ "databaseName": {
+ "type": "string",
+ "description": "The Azure SQL database name."
+ },
+ "endpoint": {
+ "type": "string",
+ "description": "The server host endpoint."
+ },
+ "userId": {
+ "type": "string",
+ "description": "The Azure SQL user id."
+ },
+ "userPassword": {
+ "type": "string",
+ "description": "The Azure SQL user password."
+ },
+ "portNumber": {
+ "type": "string",
+ "description": "/ The Azure SQL port number."
+ },
+ "credentialType": {
+ "type": "object",
+ "$ref": "#/definitions/SqlCredentialTypes"
+ }
}
}
- }
+ ]
},
- "Password": {
- "type": "object",
- "properties": {
- "name": {
- "readOnly": true,
- "type": "string"
+ "ClientCredentials": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/AzureResourceDatastore"
},
- "value": {
- "readOnly": true,
- "type": "string"
+ {
+ "type": "object",
+ "description": "Service principal credential when credential type is \"AzureStorageCredentialTypes.ClientCredentials\".",
+ "properties": {
+ "clientId": {
+ "type": "string",
+ "description": "The Client ID/Application ID"
+ },
+ "tenantId": {
+ "type": "string",
+ "description": "The ID of the tenant the service principal/app belongs to."
+ },
+ "isCertAuth": {
+ "description": " Is it using certificate to authenticate. If false then use client secret.",
+ "type": "boolean"
+ },
+ "certificate": {
+ "type": "string",
+ "description": "The content of the certificate used for authentication."
+ },
+ "thumbprint": {
+ "type": "string",
+ "description": "The thumbprint of the certificate above."
+ },
+ "clientSecret": {
+ "type": "string",
+ "description": "The client secret."
+ },
+ "authorityUrl": {
+ "type": "string",
+ "description": "The authority URL used for authentication."
+ },
+ "resourceUri": {
+ "type": "string",
+ "description": "The resource the service principal/app has access to."
+ }
+ }
}
+ ]
+ },
+ "AzureStorageCredentialTypes": {
+ "description": " The credential type.",
+ "enum": [
+ "None",
+ "Sas",
+ "AccountKey",
+ "ClientCredentials"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AzureStorageCredentialTypes",
+ "modelAsString": true
+ }
+ },
+ "AzureDataLakeCredentialTypes": {
+ "description": "The Azure Data Lake credential type.",
+ "enum": [
+ "None",
+ "ServicePrincipal"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "AzureDataLakeCredentialTypes",
+ "modelAsString": true
+ }
+ },
+ "SqlCredentialTypes": {
+ "description": "Sql Authentication type.",
+ "enum": [
+ "SqlAuthentication",
+ "ServicePrincipal",
+ "None"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "SqlCredentialTypes",
+ "modelAsString": true
}
},
"PaginatedComputeResourcesList": {
@@ -5398,6 +6621,296 @@
}
],
"x-ms-discriminator-value": "Custom"
+ },
+ "DatasetCreateRequest": {
+ "description": "The request for creating dataset.",
+ "type": "object",
+ "properties": {
+ "skipValidation": {
+ "description": "Skip validation that ensures data can be loaded from the dataset before registration.",
+ "default": false,
+ "type": "boolean"
+ },
+ "datasetType": {
+ "description": "Specifies dataset type.",
+ "type": "string",
+ "enum": [
+ "tabular",
+ "file"
+ ],
+ "x-ms-enum": {
+ "name": "DatasetType",
+ "modelAsString": true
+ }
+ },
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "header": {
+ "description": "Header type.",
+ "type": "string",
+ "enum": [
+ "all_files_have_same_headers",
+ "only_first_file_has_headers",
+ "no_headers",
+ "combine_all_files_headers"
+ ],
+ "x-ms-enum": {
+ "name": "Header",
+ "modelAsString": true
+ }
+ },
+ "includePath": {
+ "description": "Boolean to keep path information as column in the dataset. Defaults to False. This is useful when reading multiple files, and want to know which file a particular record originated from, or to keep useful information in file path.",
+ "default": false,
+ "type": "boolean"
+ },
+ "partitionFormat": {
+ "description": "The partition information of each path will be extracted into columns based on the specified format. Format part '{column_name}' creates string column, and '{column_name:yyyy/MM/dd/HH/mm/ss}' creates datetime column, where 'yyyy', 'MM', 'dd', 'HH', 'mm' and 'ss' are used to extract year, month, day, hour, minute and second for the datetime type. The format should start from the position of first partition key until the end of file path. For example, given the path '../USA/2019/01/01/data.parquet' where the partition is by country/region and time, partition_format='/{CountryOrRegion}/{PartitionDate:yyyy/MM/dd}/data.csv' creates a string column 'CountryOrRegion' with the value 'USA' and a datetime column 'PartitionDate' with the value '2019-01-01",
+ "type": "string"
+ },
+ "path": {
+ "type": "object",
+ "properties": {
+ "httpUrl": {
+ "description": "The Http URL.",
+ "type": "string"
+ },
+ "dataPath": {
+ "type": "object",
+ "properties": {
+ "datastoreName": {
+ "description": "The datastore name.",
+ "type": "string"
+ },
+ "relativePath": {
+ "description": "Path within the datastore.",
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "query": {
+ "type": "object",
+ "properties": {
+ "datastoreName": {
+ "description": "The SQL/PostgreSQL/MySQL datastore name.",
+ "type": "string"
+ },
+ "query": {
+ "description": "SQL Quey.",
+ "type": "string"
+ }
+ }
+ },
+ "sourceType": {
+ "description": "Data source type.",
+ "type": "string",
+ "enum": [
+ "delimited_files",
+ "json_lines_files",
+ "parquet_files"
+ ],
+ "x-ms-enum": {
+ "name": "SourceType",
+ "modelAsString": true
+ }
+ },
+ "separator": {
+ "description": "The separator used to split columns for 'delimited_files' sourceType.",
+ "type": "string"
+ }
+ }
+ },
+ "registration": {
+ "type": "object",
+ "properties": {
+ "description": {
+ "description": "The description for the dataset.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the dataset.",
+ "type": "string"
+ },
+ "tags": {
+ "description": "Tags associated with the dataset.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "timeSeries": {
+ "type": "object",
+ "properties": {
+ "fineGrainTimestamp": {
+ "description": " Column name to be used as FineGrainTimestamp",
+ "type": "string"
+ },
+ "coarseGrainTimestamp": {
+ "description": "Column name to be used as CoarseGrainTimestamp. Can only be used if 'fineGrainTimestamp' is specified and cannot be same as 'fineGrainTimestamp'.",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "required": [
+ "datasetType",
+ "parameters",
+ "registration"
+ ]
+ },
+ "DatastoreCreateRequest": {
+ "description": "The request for creating datastore.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the datastore.",
+ "type": "string"
+ },
+ "description": {
+ "description": "The description of the datastore.",
+ "type": "string"
+ },
+ "skipValidation": {
+ "description": "Skip validation that ensures data can be loaded from the dataset before registration.",
+ "type": "boolean"
+ },
+ "includeSecret": {
+ "description": "Include datastore secret in response.",
+ "default": true,
+ "type": "boolean"
+ },
+ "dataStoreType": {
+ "description": "Specifies datastore type.",
+ "type": "string",
+ "enum": [
+ "blob",
+ "adls",
+ "adls-gen2",
+ "dbfs",
+ "file",
+ "mysqldb",
+ "sqldb",
+ "psqldb"
+ ],
+ "x-ms-enum": {
+ "name": "DatastoreTypeArm",
+ "modelAsString": true
+ }
+ },
+ "accountName": {
+ "description": "The name of the storage account.",
+ "type": "string"
+ },
+ "shareName": {
+ "description": "The name of the file share.",
+ "type": "string"
+ },
+ "containerName": {
+ "description": "The name of the azure blob container.",
+ "type": "string"
+ },
+ "accountKey": {
+ "description": "Account Key of storage account.",
+ "type": "string"
+ },
+ "endpoint": {
+ "description": "The endpoint of the server.",
+ "type": "string"
+ },
+ "protocol": {
+ "description": "The protocol to be used",
+ "type": "string"
+ },
+ "sasToken": {
+ "description": "Sas Token of storage account.",
+ "type": "string"
+ },
+ "clientId": {
+ "description": "The service principal's client/application ID.",
+ "type": "string"
+ },
+ "clientSecret": {
+ "description": "The service principal's secret.",
+ "type": "string"
+ },
+ "storeName": {
+ "description": "The ADLS store name.",
+ "type": "string"
+ },
+ "tenantId": {
+ "description": "The service principal Tenant ID.",
+ "type": "string"
+ },
+ "authorityUrl": {
+ "description": "Authority url used to authenticate the user.",
+ "type": "string"
+ },
+ "resourceUrl": {
+ "description": "Determines what operations will be performed.",
+ "type": "string"
+ },
+ "storageAccountSubscriptionId": {
+ "description": "The subscription ID of the storage account. Defaults to selected subscription",
+ "type": "string"
+ },
+ "storageAccountResourceGroup": {
+ "description": "The resource group of the storage account. Defaults to selected resource group",
+ "type": "string"
+ },
+ "adlsSubscriptionId": {
+ "description": "The ID of the subscription the ADLS store belongs to. Defaults to selected subscription.",
+ "type": "string"
+ },
+ "adlsResourceGroup": {
+ "description": "The resource group the ADLS store belongs to. Defaults to selected resource group.",
+ "type": "string"
+ },
+ "fileSystem": {
+ "description": "The file system name of the ADLS Gen2.",
+ "type": "string"
+ },
+ "databaseName": {
+ "description": "The database name.",
+ "type": "string"
+ },
+ "password": {
+ "description": "The password.",
+ "type": "string"
+ },
+ "serverName": {
+ "description": "The SQL/MySQL/PostgreSQL server name",
+ "type": "string"
+ },
+ "userId": {
+ "description": "The user ID.",
+ "type": "string"
+ },
+ "port": {
+ "description": "The port number.",
+ "type": "string"
+ },
+ "enforceSSL": {
+ "description": "This sets the ssl value of the server. Defaults to true if not set.",
+ "default": true,
+ "type": "boolean"
+ },
+ "userName": {
+ "description": "The username of the database user.",
+ "type": "string"
+ },
+ "workspaceSystemAssignedIdentity": {
+ "description": "If set to true, datastore support data access authenticated with Workspace MSI.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "dataStoreType"
+ ]
}
}
}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListSkus.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListSkus.json
new file mode 100644
index 000000000000..0248a5f57df6
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListSkus.json
@@ -0,0 +1,79 @@
+{
+ "parameters": {
+ "api-version": "2020-05-15-preview",
+ "subscriptionId": "{subscription-id}"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "resourceType": "workspaces",
+ "name": "Basic",
+ "tier": "Basic",
+ "locations": [
+ "westus"
+ ],
+ "locationInfo": [
+ {
+ "location": "westus",
+ "zones": [
+ "westus-AZ02",
+ "westus-AZ01"
+ ]
+ }
+ ],
+ "capabilities": [
+ {
+ "name": "automatedml_readhyperdrivesdk",
+ "value": "{\n \"id\": \"automatedml_ readhyperdrivesdk\",\n \"name\": \"Read hyperdrive SDK\",\n \"description\": \"Read only access to Hyperdrive in the SDK\"\n}"
+ },
+ {
+ "name": "workspace_upgradeworkspacesdk",
+ "value": "{\n \"id\": \"workspace_upgradeworkspacesdk\",\n \"name\": \"Upgrade workspace SDK\",\n \"description\": \"Upgrade workspace from Basic to enterprise from the SDK\"\n}"
+ }
+ ],
+ "restrictions": []
+ },
+ {
+ "resourceType": "workspaces",
+ "name": "Enterprise",
+ "tier": "Enterprise",
+ "locations": [
+ "westus"
+ ],
+ "locationInfo": [
+ {
+ "location": "westus",
+ "zones": [
+ "westus-AZ01"
+ ],
+ "zoneDetails": [
+ {
+ "name": [
+ "westus-AZ01"
+ ],
+ "capabilities": [
+ {
+ "name": "automatedml_createeditexperimentssdk",
+ "value": "{\n \"id\": \"automatedml_createeditexperimentssdk\",\n \"name\": \"Create edit experiments SDK\",\n \"description\": \"Create, edit or delete AutoML experiments in the SDK\"\n}"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "capabilities": [
+ {
+ "name": "automatedml_createeditexperimentssdk",
+ "value": "{\n \"id\": \"automatedml_createeditexperimentssdk\",\n \"name\": \"Create edit experiments SDK\",\n \"description\": \"Create, edit or delete AutoML experiments in the SDK\"\n}"
+ }
+ ],
+ "restrictions": []
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListUsages.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListUsages.json
new file mode 100644
index 000000000000..8531e09146e5
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListUsages.json
@@ -0,0 +1,400 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "location": "eastus",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages",
+ "type": "Microsoft.MachineLearningServices/totalCores/usages",
+ "currentValue": 7,
+ "limit": 100,
+ "name": {
+ "localizedValue": "Clusters",
+ "value": "Clusters"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages",
+ "type": "Microsoft.MachineLearningServices/dedicatedCores/usages",
+ "currentValue": 14,
+ "limit": 24,
+ "name": {
+ "localizedValue": "Total Cluster Dedicated Regional vCPUs",
+ "value": "Total Cluster Dedicated Regional vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_D_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": 48,
+ "name": {
+ "localizedValue": "Standard D Family Cluster Dedicated vCPUs",
+ "value": "Standard D Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_DSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 2,
+ "limit": 24,
+ "name": {
+ "value": "Standard DSv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/usages/Standard_DSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/usages",
+ "currentValue": 2,
+ "limit": 24,
+ "name": {
+ "value": "Standard DSv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/computes/demo_cluster1_dsv2/usages/Standard_DSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes/usages",
+ "currentValue": 2,
+ "limit": 24,
+ "name": {
+ "value": "Standard DSv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/computes/demo_cluster2_dsv2/usages/Standard_DSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes/usages",
+ "currentValue": 0,
+ "limit": 24,
+ "name": {
+ "value": "Standard DSv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_Dv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard Dv2 Family Cluster Dedicated vCPUs",
+ "value": "Standard Dv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_FSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": 24,
+ "name": {
+ "value": "Standard FSv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard FSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_NC_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 12,
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs",
+ "value": "Standard NC Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/usages/Standard_NC_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspace/usages",
+ "currentValue": 6,
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs",
+ "value": "Standard NC Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/computes/demo_cluster1_nc/usages/Standard_NC_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspace/computes/usages",
+ "currentValue": 6,
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs",
+ "value": "Standard NC Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/usages/Standard_NC_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/usages",
+ "currentValue": 6,
+ "limit": 24,
+ "name": {
+ "value": "Standard NC Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/computes/demo_cluser1_nc/usages/Standard_NC_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes/usages",
+ "currentValue": 6,
+ "limit": 24,
+ "name": {
+ "value": "Standard NC Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_NCv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": 0,
+ "name": {
+ "localizedValue": "Standard NCv2 Family Cluster Dedicated vCPUs",
+ "value": "Standard NCv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_NCv3_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": 0,
+ "name": {
+ "localizedValue": "Standard NCv3 Family Cluster Dedicated vCPUs",
+ "value": "Standard NCv3 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_ND_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": 0,
+ "name": {
+ "localizedValue": "Standard ND Family Cluster Dedicated vCPUs",
+ "value": "Standard ND Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_NDv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": 0,
+ "name": {
+ "value": "Standard NDv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NDv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_NV_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard NV Family Cluster Dedicated vCPUs",
+ "value": "Standard NV Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages",
+ "type": "Microsoft.MachineLearningServices/lowPriorityCores/usages",
+ "currentValue": 18,
+ "limit": 50,
+ "name": {
+ "localizedValue": "Total Cluster LowPriority Regional vCPUs",
+ "value": "Total Cluster LowPriority Regional vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_D_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "value": "Standard D Family Cluster LowPriority vCPUs",
+ "localizedValue": "Standard D Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_DSv2_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard DSv2 Family Cluster LowPriority vCPUs",
+ "value": "Standard DSv2 Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_Dv2_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard Dv2 Family Cluster LowPriority vCPUs",
+ "value": "Standard Dv2 Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_FSv2_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard FSv2 Family Cluster LowPriority vCPUs",
+ "value": "Standard FSv2 Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_NC_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 18,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster LowPriority vCPUs",
+ "value": "Standard NC Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/usages/Standard_NC_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspace/usages",
+ "currentValue": 6,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster LowPriority vCPUs",
+ "value": "Standard NC Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/computes/demo_cluster1_lowPriority_nc/usages/Standard_NC_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspace/computes/usages",
+ "currentValue": 6,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster LowPriority vCPUs",
+ "value": "Standard NC Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/usages/Standard_NC_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspace/usages",
+ "currentValue": 12,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster LowPriority vCPUs",
+ "value": "Standard NC Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/computes/demo_cluster2_lowPriority_nc/usages/Standard_NC_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspace/computes/usages",
+ "currentValue": 6,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster LowPriority vCPUs",
+ "value": "Standard NC Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/computes/demo_cluster3_lowPriority_nc/usages/Standard_NC_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspace/computes/usages",
+ "currentValue": 6,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster LowPriority vCPUs",
+ "value": "Standard NC Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_NCv2_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NCv2 Family Cluster LowPriority vCPUs",
+ "value": "Standard NCv2 Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_NCv3_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NCv3 Family Cluster LowPriority vCPUs",
+ "value": "Standard NCv3 Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_ND_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard ND Family Cluster LowPriority vCPUs",
+ "value": "Standard ND Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_NDv2_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NDv2 Family Cluster LowPriority vCPUs",
+ "value": "Standard NDv2 Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/Standard_NV_Family_Cluster_LowPriority_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NV Family Cluster LowPriority vCPUs",
+ "value": "Standard NV Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListVMSizesResult.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListVMSizesResult.json
new file mode 100644
index 000000000000..2ddc7f03fa3d
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListVMSizesResult.json
@@ -0,0 +1,348 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "api-version": "2020-05-15-preview",
+ "location": "eastus"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "amlCompute": [
+ {
+ "name": "Standard_D1_v2",
+ "family": "standardDv2Family",
+ "vCPUs": 1,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 51200,
+ "memoryGB": 3.5,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.05,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.12,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.01,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.06,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ }
+ },
+ {
+ "name": "Standard_D2_v2",
+ "family": "standardDv2Family",
+ "vCPUs": 2,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 102400,
+ "memoryGB": 7,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.09,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.23,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.11,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.02,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ }
+ },
+ {
+ "name": "Standard_D11_v2",
+ "family": "standardDv2Family",
+ "vCPUs": 2,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 102400,
+ "memoryGB": 14,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.15,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.1,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.03,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.24,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ }
+ ]
+ }
+ },
+ {
+ "name": "Standard_DS1_v2",
+ "family": "standardDSv2Family",
+ "vCPUs": 1,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 7168,
+ "memoryGB": 3.5,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.05,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.12,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.01,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.06,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ }
+ },
+ {
+ "name": "Standard_F2s_v2",
+ "family": "standardFSv2Family",
+ "vCPUs": 2,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 16384,
+ "memoryGB": 4,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.02,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.08,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.06,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.16,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ }
+ ]
+ }
+ },
+ {
+ "name": "Standard_M32-8ms",
+ "family": "standardMSFamily",
+ "vCPUs": 32,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 1024000,
+ "memoryGB": 875,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 8.43,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.23,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 3.37,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 6.15,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ }
+ },
+ {
+ "name": "Standard_NC6",
+ "family": "standardNCFamily",
+ "vCPUs": 6,
+ "gpus": 1,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 389120,
+ "memoryGB": 56,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.18,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.43,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.9,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.08,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ }
+ ]
+ }
+ },
+ {
+ "name": "Standard_NV6",
+ "family": "standardNVFamily",
+ "vCPUs": 6,
+ "gpus": 1,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 389120,
+ "memoryGB": 56,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 1.28,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.51,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.22,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 1.09,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ }
+ },
+ {
+ "name": "Standard_ND6s",
+ "family": "standardNDSFamily",
+ "vCPUs": 6,
+ "gpus": 1,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 344064,
+ "memoryGB": 112,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 2.07,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.36,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.87,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 2.49,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListWorkspaceFeatures.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListWorkspaceFeatures.json
new file mode 100644
index 000000000000..411004c04e69
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListWorkspaceFeatures.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-05-15-preview",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "workspaceName": "testworkspace"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "automatedml_createeditexperimentsui",
+ "displayName": "Create edit experiments UI",
+ "description": "Create, edit or delete AutoML experiments in the SDK"
+ },
+ {
+ "id": "workspace_upgradeworkspaceui",
+ "displayName": "Upgrade workspace UI",
+ "description": "Upgrade workspace from Basic to enterprise from the UI"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListWorkspaceQuotasByVMFamily.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListWorkspaceQuotasByVMFamily.json
new file mode 100644
index 000000000000..704c580db801
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/ListWorkspaceQuotasByVMFamily.json
@@ -0,0 +1,415 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "location": "eastus",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/Standard_D_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/quotas",
+ "limit": 48,
+ "name": {
+ "localizedValue": "Standard D Family Cluster Dedicated vCPUs",
+ "value": "Standard D Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/Standard_D_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 12,
+ "name": {
+ "value": "Standard D Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard D Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/Standard_D_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 12,
+ "name": {
+ "value": "Standard D Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard D Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/Standard_D_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 24,
+ "name": {
+ "value": "Standard D Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard D Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/Standard_DSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/quota",
+ "limit": 24,
+ "name": {
+ "value": "Standard DSv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/Standard_DSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 24,
+ "name": {
+ "value": "Standard DSv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/Standard_DSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 12,
+ "name": {
+ "value": "Standard DSv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/Standard_DSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 12,
+ "name": {
+ "value": "Standard DSv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/Standard_Dv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/quotas",
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard Dv2 Family Cluster Dedicated vCPUs",
+ "value": "Standard Dv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/Standard_Dv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard Dv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard Dv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/Standard_Dv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 24,
+ "name": {
+ "value": "Standard Dv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard Dv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/Standard_Dv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard Dv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard Dv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/Standard_FSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/quotas",
+ "limit": 24,
+ "name": {
+ "value": "Standard FSv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard FSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/Standard_FSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard FSv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard FSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/Standard_FSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 24,
+ "name": {
+ "value": "Standard FSv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard FSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/Standard_FSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 12,
+ "name": {
+ "value": "Standard FSv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard FSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/Standard_NC_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/quotas",
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs",
+ "value": "Standard NC Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/Standard_NC_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 24,
+ "name": {
+ "value": "Standard NC Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/Standard_NC_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 24,
+ "name": {
+ "value": "Standard NC Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/Standard_NC_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 24,
+ "name": {
+ "value": "Standard NC Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/Standard_NCv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/quotas",
+ "limit": 0,
+ "name": {
+ "localizedValue": "Standard NCv2 Family Cluster Dedicated vCPUs",
+ "value": "Standard NCv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/Standard_NCv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard NCv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NCv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/Standard_NCv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard NCv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NCv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/Standard_NCv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard NCv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NCv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/Standard_NCv3_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/quotas",
+ "limit": 0,
+ "name": {
+ "localizedValue": "Standard NCv3 Family Cluster Dedicated vCPUs",
+ "value": "Standard NCv3 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/Standard_NCv3_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard NCv3 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NCv3 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/Standard_NCv3_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard NCv3 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NCv3 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/Standard_NCv3_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard NCv3 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NCv3 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/Standard_ND_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/quotas",
+ "limit": 0,
+ "name": {
+ "localizedValue": "Standard ND Family Cluster Dedicated vCPUs",
+ "value": "Standard ND Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/Standard_ND_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard ND Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard ND Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/Standard_ND_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard ND Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard ND Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/Standard_ND_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard ND Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard ND Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/Standard_NDv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard NDv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NDv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/Standard_NDv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard NDv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NDv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/Standard_NDv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard NDv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NDv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/Standard_NDv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 0,
+ "name": {
+ "value": "Standard NDv2 Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NDv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/Standard_NV_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/vmFamily/quotas",
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard NV Family Cluster Dedicated vCPUs",
+ "value": "Standard NV Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/Standard_NV_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 24,
+ "name": {
+ "value": "Standard NV Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NV Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/Standard_NV_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 24,
+ "name": {
+ "value": "Standard NV Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NV Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/Standard_NV_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 24,
+ "name": {
+ "value": "Standard NV Family Cluster Dedicated vCPUs",
+ "localizedValue": "Standard NV Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/amlComputeListNodes.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/amlComputeListNodes.json
new file mode 100644
index 000000000000..c292f4502ce9
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/amlComputeListNodes.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "computeType": "AmlCompute",
+ "nodes": [
+ {
+ "nodeId": "tvm-3601533753_1-20170719t162906z",
+ "privateIpAddress": "13.84.190.124",
+ "publicIpAddress": "13.84.190.134",
+ "port": 50000,
+ "nodeState": "running",
+ "runId": "2f378a44-38f2-443a-9f0d-9909d0b47890"
+ },
+ {
+ "nodeId": "tvm-3601533753_2-20170719t162906z",
+ "privateIpAddress": "13.84.190.124",
+ "publicIpAddress": "13.84.190.134",
+ "port": 50001,
+ "nodeState": "idle"
+ }
+ ],
+ "nextLink": "nextLink"
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createBasicAKSCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createBasicAKSCompute.json
new file mode 100644
index 000000000000..93764b087005
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createBasicAKSCompute.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-05-15-preview",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "computeType": "AKS"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "AKS",
+ "provisioningState": "Creating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "AKS",
+ "provisioningState": "Creating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createBasicAmlCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createBasicAmlCompute.json
new file mode 100644
index 000000000000..56ef4ab5977d
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createBasicAmlCompute.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-05-15-preview",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "computeType": "AmlCompute",
+ "properties": {
+ "vmSize": "STANDARD_NC6",
+ "vmPriority": "Dedicated",
+ "osType": "Windows",
+ "virtualMachineImage": {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myImageGallery/images/myImageDefinition/versions/0.0.1"
+ },
+ "isolatedNetwork": false,
+ "scaleSettings": {
+ "maxNodeCount": 1,
+ "minNodeCount": 0,
+ "nodeIdleTimeBeforeScaleDown": "PT5M"
+ },
+ "remoteLoginPortPublicAccess": "NotSpecified",
+ "enableNodePublicIp": true
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "AmlCompute",
+ "provisioningState": "Creating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "AmlCompute",
+ "provisioningState": "Creating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createBasicDataFactoryCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createBasicDataFactoryCompute.json
new file mode 100644
index 000000000000..af899ccebdc5
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createBasicDataFactoryCompute.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-05-15-preview",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "computeType": "DataFactory"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "DataFactory",
+ "provisioningState": "Creating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "DataFactory",
+ "provisioningState": "Creating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createComputeInstance.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createComputeInstance.json
new file mode 100644
index 000000000000..5548500d58c7
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createComputeInstance.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-09-01-preview",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "computeType": "ComputeInstance",
+ "properties": {
+ "vmSize": "STANDARD_NC6",
+ "subnet": "test-subnet-resource-id",
+ "applicationSharingPolicy": "Personal",
+ "sshSettings": {
+ "sshPublicAccess": "Disabled"
+ },
+ "computeInstanceAuthorizationType": "personal",
+ "personalComputeInstanceSettings": {
+ "assignedUser": {
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "tenantId": "00000000-0000-0000-0000-000000000000"
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "ComputeInstance",
+ "provisioningState": "Creating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "ComputeInstance",
+ "provisioningState": "Creating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createComputeInstanceMinimal.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createComputeInstanceMinimal.json
new file mode 100644
index 000000000000..472b0af583df
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createComputeInstanceMinimal.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-09-01-preview",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "computeType": "ComputeInstance",
+ "properties": {
+ "vmSize": "STANDARD_NC6"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "ComputeInstance",
+ "provisioningState": "Creating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "ComputeInstance",
+ "provisioningState": "Creating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createLinkedService.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createLinkedService.json
new file mode 100644
index 000000000000..930701d6f441
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createLinkedService.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "resourceGroup-1",
+ "workspaceName": "workspace-1",
+ "linkName": "link-1",
+ "api-version": "2020-04-01-preview",
+ "parameters": {
+ "name": "link-1",
+ "location": "westus",
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "linkedServiceResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1/providers/Microsoft.Synapse/workspaces/Syn-1"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1/providers/Microsoft.MachineLearningServices/workspaces/workspace-1/linkedServices/link-1",
+ "name": "link-1",
+ "location": "westus",
+ "type": "Microsoft.MachineLearningServices/workspaces/linkedServices",
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "aaaaaaaa-1111-2222-3333-444444444444",
+ "tenantId": "bbbbbbbb-1111-2222-3333-444444444444"
+ },
+ "properties": {
+ "createdTime": "2020-07-28T16:33:05.8246167-07:00",
+ "modifiedTime": "2020-07-28T16:33:06.1050872-07:00",
+ "linkedServiceResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1/providers/Microsoft.Synapse/workspaces/Syn-1",
+ "linkType": "Synapse"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createOrUpdateService.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createOrUpdateService.json
new file mode 100644
index 000000000000..421f33aac3de
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createOrUpdateService.json
@@ -0,0 +1,217 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "api-version": "2020-05-15-preview",
+ "serviceName": "service456",
+ "properties": {
+ "computeType": "ACI",
+ "environmentImageRequest": {
+ "driverProgram": "score.py",
+ "assets": [
+ {
+ "id": null,
+ "mimeType": "application/x-python",
+ "url": "aml://storage/azureml/score.py",
+ "unpack": false
+ }
+ ],
+ "models": [
+ {
+ "name": "sklearn_regression_model.pkl",
+ "url": "aml://storage/azureml/sklearn_regression_model.pkl",
+ "mimeType": "application/x-python"
+ }
+ ],
+ "environment": {
+ "name": "AzureML-Scikit-learn-0.20.3",
+ "version": "3",
+ "python": {
+ "interpreterPath": "python",
+ "userManagedDependencies": false,
+ "condaDependencies": {
+ "channels": [
+ "conda-forge"
+ ],
+ "dependencies": [
+ "python=3.6.2",
+ {
+ "pip": [
+ "azureml-core==1.0.69",
+ "azureml-defaults==1.0.69",
+ "azureml-telemetry==1.0.69",
+ "azureml-train-restclients-hyperdrive==1.0.69",
+ "azureml-train-core==1.0.69",
+ "scikit-learn==0.20.3",
+ "scipy==1.2.1",
+ "numpy==1.16.2",
+ "joblib==0.13.2"
+ ]
+ }
+ ],
+ "name": "azureml_ae1acbe6e1e6aabbad900b53c491a17c"
+ },
+ "baseCondaEnvironment": null
+ },
+ "environmentVariables": {
+ "EXAMPLE_ENV_VAR": "EXAMPLE_VALUE"
+ },
+ "docker": {
+ "baseImage": "mcr.microsoft.com/azureml/base:openmpi3.1.2-ubuntu16.04",
+ "baseDockerfile": null,
+ "baseImageRegistry": {
+ "address": null,
+ "username": null,
+ "password": null
+ }
+ },
+ "spark": {
+ "repositories": [],
+ "packages": [],
+ "precachePackages": true
+ },
+ "inferencingStackVersion": null
+ }
+ },
+ "containerResourceRequirements": {
+ "cpu": 1,
+ "memoryInGB": 1
+ },
+ "location": "eastus2",
+ "authEnabled": true,
+ "appInsightsEnabled": true
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/services/service456",
+ "type": "Microsoft.MachineLearningServices/workspaces/services",
+ "name": "service456",
+ "properties": {
+ "computeType": "ACI",
+ "containerResourceRequirements": {
+ "cpu": 0.1,
+ "memoryInGB": 0.5,
+ "gpu": null,
+ "fpga": null
+ },
+ "scoringUri": "http://ddde8e29-3e3a-42d2-980d-8fb7e005ab81.eastus2.azurecontainer.io/score",
+ "location": "eastus2",
+ "authEnabled": true,
+ "sslEnabled": false,
+ "appInsightsEnabled": true,
+ "dataCollection": {
+ "eventHubEnabled": false,
+ "storageEnabled": false
+ },
+ "sslCertificate": "",
+ "sslKey": "",
+ "cname": null,
+ "publicIp": "52.177.232.98",
+ "publicFqdn": "ddde8e29-3e3a-42d2-980d-8fb7e005ab81.eastus2.azurecontainer.io",
+ "modelConfigMap": {
+ "accountContext": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "accountName": "workspaces123",
+ "workspaceId": "57b243e8-3d24-4427-90e0-8dc47f41c387"
+ },
+ "models": {
+ "sklearn_regression_model1.pkl": {
+ "version": 2,
+ "id": "sklearn_regression_model1.pkl:2",
+ "internalId": "3ab27a5b0d0e48d99f18a5195cc258bc"
+ }
+ },
+ "modelsInfo": {
+ "sklearn_regression_model1.pkl": {
+ "2": {
+ "version": 2,
+ "id": "sklearn_regression_model1.pkl:2",
+ "internalId": "3ab27a5b0d0e48d99f18a5195cc258bc",
+ "dataCollectorStoragePath": "/modeldata/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/testrg123/workspaces123/service123/sklearn_regression_model1.pkl/2/"
+ }
+ }
+ }
+ },
+ "environmentImageRequest": {
+ "driverProgram": "score.py",
+ "assets": [
+ {
+ "id": null,
+ "mimeType": "application/x-python",
+ "url": "aml://artifact/LocalUpload/200518T200218a1a8c0af/score.py",
+ "unpack": false
+ }
+ ],
+ "modelIds": [
+ "sklearn_regression_model1.pkl:2"
+ ],
+ "environment": {
+ "name": "AzureML-Scikit-learn-0.20.3",
+ "version": "3",
+ "python": {
+ "interpreterPath": "python",
+ "userManagedDependencies": false,
+ "condaDependencies": {
+ "channels": [
+ "conda-forge"
+ ],
+ "dependencies": [
+ "python=3.6.2",
+ {
+ "pip": [
+ "azureml-core==1.0.69",
+ "azureml-defaults==1.0.69",
+ "azureml-telemetry==1.0.69",
+ "azureml-train-restclients-hyperdrive==1.0.69",
+ "azureml-train-core==1.0.69",
+ "scikit-learn==0.20.3",
+ "scipy==1.2.1",
+ "numpy==1.16.2",
+ "joblib==0.13.2"
+ ]
+ }
+ ],
+ "name": "azureml_ae1acbe6e1e6aabbad900b53c491a17c"
+ },
+ "baseCondaEnvironment": null
+ },
+ "environmentVariables": {
+ "EXAMPLE_ENV_VAR": "EXAMPLE_VALUE"
+ },
+ "docker": {
+ "baseImage": "mcr.microsoft.com/azureml/base:openmpi3.1.2-ubuntu16.04",
+ "baseDockerfile": null,
+ "baseImageRegistry": {
+ "address": null
+ }
+ },
+ "spark": {
+ "repositories": [],
+ "packages": [],
+ "precachePackages": true
+ },
+ "inferencingStackVersion": null
+ }
+ },
+ "description": null,
+ "kvTags": {},
+ "properties": {
+ "hasInferenceSchema": "False",
+ "hasHttps": "False"
+ },
+ "state": "Transitioning"
+ }
+ }
+ },
+ "201": {
+ "description": "The request was accepted.",
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createWorkspace.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createWorkspace.json
new file mode 100644
index 000000000000..1edd946727e7
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/createWorkspace.json
@@ -0,0 +1,140 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "workspace-1234",
+ "workspaceName": "testworkspace",
+ "api-version": "2020-05-15-preview",
+ "parameters": {
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Basic",
+ "tier": "Basic"
+ },
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "friendlyName": "HelloName",
+ "description": "test description",
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccount",
+ "encryption": {
+ "status": "Enabled",
+ "keyVaultProperties": {
+ "keyVaultArmId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "keyIdentifier": "https://testkv.vault.azure.net/keys/testkey/aabbccddee112233445566778899aabb",
+ "identityClientId": ""
+ }
+ },
+ "hbiWorkspace": false,
+ "sharedPrivateLinkResources": [
+ {
+ "name": "testdbresource",
+ "properties": {
+ "privateLinkResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.DocumentDB/databaseAccounts/testdbresource/privateLinkResources/Sql",
+ "groupId": "Sql",
+ "requestMessage": "Please approve",
+ "status": "Approved"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace",
+ "name": "testworkspace",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "identity": {
+ "principalId": "00000000-1111-2222-3333-444444444444",
+ "tenantId": "00000000-1111-2222-3333-444444444444",
+ "type": "SystemAssigned"
+ },
+ "sku": {
+ "name": "Basic",
+ "tier": "Basic"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccount",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "HelloName",
+ "description": "test description",
+ "encryption": {
+ "status": "Enabled",
+ "keyVaultProperties": {
+ "keyVaultArmId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "keyIdentifier": "https://testkv.vault.azure.net/keys/testkey/aabbccddee112233445566778899aabb",
+ "identityClientId": ""
+ }
+ },
+ "hbiWorkspace": false,
+ "allowPublicAccessWhenBehindVnet": false,
+ "sharedPrivateLinkResources": [
+ {
+ "name": "testdbresource",
+ "properties": {
+ "privateLinkResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.DocumentDB/databaseAccounts/testdbresource/privateLinkResources/Sql",
+ "groupId": "Sql",
+ "requestMessage": "Please approve",
+ "status": "Approved"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace",
+ "name": "testworkspace",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Basic",
+ "tier": "Basic"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccount",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "HelloName",
+ "description": "test description",
+ "encryption": {
+ "status": "Enabled",
+ "keyVaultProperties": {
+ "keyVaultArmId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "keyIdentifier": "https://testkv.vault.azure.net/keys/testkey/aabbccddee112233445566778899aabb",
+ "identityClientId": ""
+ }
+ },
+ "hbiWorkspace": false,
+ "allowPublicAccessWhenBehindVnet": false,
+ "sharedPrivateLinkResources": [
+ {
+ "name": "testdbresource",
+ "properties": {
+ "privateLinkResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.DocumentDB/databaseAccounts/testdbresource/privateLinkResources/Sql",
+ "groupId": "Sql",
+ "requestMessage": "Please approve",
+ "status": "Approved"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteCompute.json
new file mode 100644
index 000000000000..cad967267d66
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteCompute.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-05-15-preview",
+ "underlyingResourceAction": "Delete"
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus...",
+ "Location": "https://management.azure.com/subscriptions/...pathToOperationResult..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteLinkedService.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteLinkedService.json
new file mode 100644
index 000000000000..e6e30e2b4bdd
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteLinkedService.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "resourceGroup-1",
+ "workspaceName": "workspace-1",
+ "linkName": "link-1",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteService.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteService.json
new file mode 100644
index 000000000000..9bb65ac74a3c
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteService.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "serviceName": "service123",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteWorkspace.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteWorkspace.json
new file mode 100644
index 000000000000..3064541e0b2a
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/deleteWorkspace.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "workspace-1234",
+ "workspaceName": "testworkspace",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getAKSCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getAKSCompute.json
new file mode 100644
index 000000000000..e67680830235
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getAKSCompute.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "description": "some compute",
+ "resourceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourcegroups/testrg123/providers/Microsoft.ContainerService/managedClusters/compute123-56826-c9b00420020b2",
+ "computeType": "AKS",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getAmlCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getAmlCompute.json
new file mode 100644
index 000000000000..bcd93f48347a
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getAmlCompute.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus2",
+ "properties": {
+ "description": "some compute",
+ "computeType": "AmlCompute",
+ "createdOn": "2017-09-26T22:28:08.327Z",
+ "provisioningState": "Succeeded",
+ "properties": {
+ "vmSize": "STANDARD_NC6",
+ "vmPriority": "Dedicated",
+ "osType": "Windows",
+ "virtualMachineImage": null,
+ "isolatedNetwork": null,
+ "subnet": "test-subnet-resource-id",
+ "scaleSettings": {
+ "maxNodeCount": 1,
+ "minNodeCount": 0,
+ "nodeIdleTimeBeforeScaleDown": "PT5M"
+ },
+ "remoteLoginPortPublicAccess": "Enabled",
+ "allocationState": "Resizing",
+ "allocationStateTransitionTime": "2017-09-27T22:28:08.998Z",
+ "errors": null,
+ "currentNodeCount": 0,
+ "targetNodeCount": 1,
+ "nodeStateCounts": {
+ "preparingNodeCount": 0,
+ "runningNodeCount": 0,
+ "idleNodeCount": 0,
+ "unusableNodeCount": 0,
+ "leavingNodeCount": 0,
+ "preemptedNodeCount": 0
+ },
+ "enableNodePublicIp": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getComputeInstance.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getComputeInstance.json
new file mode 100644
index 000000000000..567eac6173e2
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getComputeInstance.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-09-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus2",
+ "properties": {
+ "description": "some compute",
+ "computeType": "ComputeInstance",
+ "createdOn": "2017-09-26T22:28:08.327Z",
+ "provisioningState": "Succeeded",
+ "properties": {
+ "vmSize": "STANDARD_NC6",
+ "subnet": "test-subnet-resource-id",
+ "applicationSharingPolicy": "Shared",
+ "sshSettings": {
+ "sshPublicAccess": "Enabled",
+ "adminUserName": "azureuser",
+ "sshPort": 22
+ },
+ "computeInstanceAuthorizationType": "personal",
+ "personalComputeInstanceSettings": {
+ "assignedUser": {
+ "objectId": "00000000-0000-0000-0000-000000000000",
+ "tenantId": "00000000-0000-0000-0000-000000000000"
+ }
+ },
+ "createdBy": {
+ "userName": "foobar@microsoft.com",
+ "userOrgId": "00000000-0000-0000-0000-000000000000",
+ "userId": "00000000-0000-0000-0000-000000000000"
+ },
+ "connectivityEndpoints": {
+ "publicIpAddress": "10.0.0.1",
+ "privateIpAddress": "10.0.0.1"
+ },
+ "applications": [
+ {
+ "displayName": "Jupyter",
+ "endpointUri": "https://compute123.eastus2.azureml.net/jupyter"
+ }
+ ],
+ "errors": null,
+ "state": "Running"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getComputes.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getComputes.json
new file mode 100644
index 000000000000..7bddddd83ca7
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getComputes.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "description": "some compute",
+ "resourceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourcegroups/testrg123/providers/Microsoft.ContainerService/managedClusters/compute123-56826-c9b00420020b2",
+ "computeType": "AKS",
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute1234",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute1234",
+ "location": "eastus",
+ "properties": {
+ "description": "some compute",
+ "resourceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourcegroups/testrg123/providers/Microsoft.ContainerService/managedClusters/compute1234-56826-c9b00420020b2",
+ "computeType": "AKS",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "nextLink": "nextLink"
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getLinkedService.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getLinkedService.json
new file mode 100644
index 000000000000..d2a8c1d213ea
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getLinkedService.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "resourceGroup-1",
+ "workspaceName": "workspace-1",
+ "linkName": "link-1",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1/providers/Microsoft.MachineLearningServices/workspaces/workspace-1/linkedServices/link-1",
+ "name": "link-1",
+ "location": "westus",
+ "type": "Microsoft.MachineLearningServices/workspaces/linkedServices",
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "aaaaaaaa-1111-2222-3333-444444444444",
+ "tenantId": "bbbbbbbb-1111-2222-3333-444444444444"
+ },
+ "properties": {
+ "createdTime": "2020-07-28T16:33:05.8246167-07:00",
+ "modifiedTime": "2020-07-28T16:33:06.1050872-07:00",
+ "linkedServiceResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/linkRg-1/providers/Microsoft.Synapse/workspaces/Syn-1",
+ "linkType": "Synapse"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getService.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getService.json
new file mode 100644
index 000000000000..f4cb175a4050
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getService.json
@@ -0,0 +1,149 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "api-version": "2020-05-15-preview",
+ "serviceName": "service123"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/services/service123",
+ "type": "Microsoft.MachineLearningServices/workspaces/services",
+ "name": "service123",
+ "properties": {
+ "computeType": "AKS",
+ "containerResourceRequirements": {
+ "cpu": 0.1,
+ "memoryInGB": 0.5,
+ "gpu": null,
+ "fpga": null
+ },
+ "maxConcurrentRequestsPerContainer": 1,
+ "maxQueueWaitMs": 500,
+ "computeName": "my-aks-compute",
+ "namespace": "azureml-workspaces123",
+ "numReplicas": 1,
+ "dataCollection": {
+ "eventHubEnabled": false,
+ "storageEnabled": false
+ },
+ "appInsightsEnabled": true,
+ "autoScaler": {
+ "autoscaleEnabled": false,
+ "minReplicas": null,
+ "maxReplicas": null,
+ "targetUtilization": null,
+ "refreshPeriodInSeconds": null
+ },
+ "scoringUri": "http://192.168.1.5:80/api/v1/service/service123/score",
+ "scoringTimeoutMs": null,
+ "livenessProbeRequirements": {
+ "failureThreshold": 3,
+ "successThreshold": 1,
+ "timeoutSeconds": 120,
+ "periodSeconds": 5,
+ "initialDelaySeconds": 310
+ },
+ "authEnabled": true,
+ "aadAuthEnabled": false,
+ "swaggerUri": "http://192.168.1.5/api/v1/service/service123/swagger.json",
+ "modelConfigMap": {
+ "accountContext": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "accountName": "workspaces123",
+ "workspaceId": "57b243e8-3d24-4427-90e0-8dc47f41c387"
+ },
+ "models": {
+ "sklearn_regression_model1.pkl": {
+ "version": 2,
+ "id": "sklearn_regression_model1.pkl:2",
+ "internalId": "3ab27a5b0d0e48d99f18a5195cc258bc"
+ }
+ },
+ "modelsInfo": {
+ "sklearn_regression_model1.pkl": {
+ "2": {
+ "version": 2,
+ "id": "sklearn_regression_model1.pkl:2",
+ "internalId": "3ab27a5b0d0e48d99f18a5195cc258bc",
+ "dataCollectorStoragePath": "/modeldata/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/testrg123/workspaces123/service123/sklearn_regression_model1.pkl/2/"
+ }
+ }
+ }
+ },
+ "environmentImageRequest": {
+ "driverProgram": "score.py",
+ "assets": [
+ {
+ "id": null,
+ "mimeType": "application/x-python",
+ "url": "aml://artifact/LocalUpload/200518T200218a1a8c0af/score.py",
+ "unpack": false
+ }
+ ],
+ "modelIds": [
+ "sklearn_regression_model1.pkl:2"
+ ],
+ "environment": {
+ "name": "AzureML-Scikit-learn-0.20.3",
+ "version": "3",
+ "python": {
+ "interpreterPath": "python",
+ "userManagedDependencies": false,
+ "condaDependencies": {
+ "channels": [
+ "conda-forge"
+ ],
+ "dependencies": [
+ "python=3.6.2",
+ {
+ "pip": [
+ "azureml-core==1.0.69",
+ "azureml-defaults==1.0.69",
+ "azureml-telemetry==1.0.69",
+ "azureml-train-restclients-hyperdrive==1.0.69",
+ "azureml-train-core==1.0.69",
+ "scikit-learn==0.20.3",
+ "scipy==1.2.1",
+ "numpy==1.16.2",
+ "joblib==0.13.2"
+ ]
+ }
+ ],
+ "name": "azureml_ae1acbe6e1e6aabbad900b53c491a17c"
+ },
+ "baseCondaEnvironment": null
+ },
+ "environmentVariables": {
+ "EXAMPLE_ENV_VAR": "EXAMPLE_VALUE"
+ },
+ "docker": {
+ "baseImage": "mcr.microsoft.com/azureml/base:openmpi3.1.2-ubuntu16.04",
+ "baseDockerfile": null,
+ "baseImageRegistry": {
+ "address": null
+ }
+ },
+ "spark": {
+ "repositories": [],
+ "packages": [],
+ "precachePackages": true
+ },
+ "inferencingStackVersion": null
+ }
+ },
+ "description": null,
+ "kvTags": {},
+ "properties": {
+ "hasInferenceSchema": "False",
+ "hasHttps": "False"
+ },
+ "state": "Healthy"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getServices.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getServices.json
new file mode 100644
index 000000000000..0db921d12456
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getServices.json
@@ -0,0 +1,274 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/services/service123",
+ "type": "Microsoft.MachineLearningServices/workspaces/services",
+ "name": "service123",
+ "properties": {
+ "computeType": "AKS",
+ "containerResourceRequirements": {
+ "cpu": 0.1,
+ "memoryInGB": 0.5,
+ "gpu": null,
+ "fpga": null
+ },
+ "maxConcurrentRequestsPerContainer": 1,
+ "maxQueueWaitMs": 500,
+ "computeName": "my-aks-compute",
+ "namespace": "azureml-workspaces123",
+ "numReplicas": 1,
+ "dataCollection": {
+ "eventHubEnabled": false,
+ "storageEnabled": false
+ },
+ "appInsightsEnabled": true,
+ "autoScaler": {
+ "autoscaleEnabled": false,
+ "minReplicas": null,
+ "maxReplicas": null,
+ "targetUtilization": null,
+ "refreshPeriodInSeconds": null
+ },
+ "scoringUri": "http://192.168.1.5:80/api/v1/service/service123/score",
+ "scoringTimeoutMs": null,
+ "livenessProbeRequirements": {
+ "failureThreshold": 3,
+ "successThreshold": 1,
+ "timeoutSeconds": 120,
+ "periodSeconds": 5,
+ "initialDelaySeconds": 310
+ },
+ "authEnabled": true,
+ "aadAuthEnabled": false,
+ "swaggerUri": "http://192.168.1.5/api/v1/service/service123/swagger.json",
+ "modelConfigMap": {
+ "accountContext": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "accountName": "workspaces123",
+ "workspaceId": "57b243e8-3d24-4427-90e0-8dc47f41c387"
+ },
+ "models": {
+ "sklearn_regression_model1.pkl": {
+ "version": 2,
+ "id": "sklearn_regression_model1.pkl:2",
+ "internalId": "3ab27a5b0d0e48d99f18a5195cc258bc"
+ }
+ },
+ "modelsInfo": {
+ "sklearn_regression_model1.pkl": {
+ "2": {
+ "version": 2,
+ "id": "sklearn_regression_model1.pkl:2",
+ "internalId": "3ab27a5b0d0e48d99f18a5195cc258bc",
+ "dataCollectorStoragePath": "/modeldata/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/testrg123/workspaces123/service123/sklearn_regression_model1.pkl/2/"
+ }
+ }
+ }
+ },
+ "environmentImageRequest": {
+ "driverProgram": "score.py",
+ "assets": [
+ {
+ "id": null,
+ "mimeType": "application/x-python",
+ "url": "aml://artifact/LocalUpload/200518T200218a1a8c0af/score.py",
+ "unpack": false
+ }
+ ],
+ "modelIds": [
+ "sklearn_regression_model1.pkl:2"
+ ],
+ "environment": {
+ "name": "AzureML-Scikit-learn-0.20.3",
+ "version": "3",
+ "python": {
+ "interpreterPath": "python",
+ "userManagedDependencies": false,
+ "condaDependencies": {
+ "channels": [
+ "conda-forge"
+ ],
+ "dependencies": [
+ "python=3.6.2",
+ {
+ "pip": [
+ "azureml-core==1.0.69",
+ "azureml-defaults==1.0.69",
+ "azureml-telemetry==1.0.69",
+ "azureml-train-restclients-hyperdrive==1.0.69",
+ "azureml-train-core==1.0.69",
+ "scikit-learn==0.20.3",
+ "scipy==1.2.1",
+ "numpy==1.16.2",
+ "joblib==0.13.2"
+ ]
+ }
+ ],
+ "name": "azureml_ae1acbe6e1e6aabbad900b53c491a17c"
+ },
+ "baseCondaEnvironment": null
+ },
+ "environmentVariables": {
+ "EXAMPLE_ENV_VAR": "EXAMPLE_VALUE"
+ },
+ "docker": {
+ "baseImage": "mcr.microsoft.com/azureml/base:openmpi3.1.2-ubuntu16.04",
+ "baseDockerfile": null,
+ "baseImageRegistry": {
+ "address": null
+ }
+ },
+ "spark": {
+ "repositories": [],
+ "packages": [],
+ "precachePackages": true
+ },
+ "inferencingStackVersion": null
+ }
+ },
+ "description": null,
+ "kvTags": {},
+ "properties": {
+ "hasInferenceSchema": "False",
+ "hasHttps": "False"
+ },
+ "state": "Healthy"
+ }
+ },
+ {
+ "id": "subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/services/service456",
+ "type": "Microsoft.MachineLearningServices/workspaces/services",
+ "name": "service456",
+ "properties": {
+ "computeType": "ACI",
+ "containerResourceRequirements": {
+ "cpu": 0.1,
+ "memoryInGB": 0.5,
+ "gpu": null,
+ "fpga": null
+ },
+ "scoringUri": "http://ddde8e29-3e3a-42d2-980d-8fb7e005ab81.eastus2.azurecontainer.io/score",
+ "location": "eastus2",
+ "authEnabled": true,
+ "sslEnabled": false,
+ "appInsightsEnabled": true,
+ "dataCollection": {
+ "eventHubEnabled": false,
+ "storageEnabled": false
+ },
+ "sslCertificate": "",
+ "sslKey": "",
+ "cname": null,
+ "publicIp": "52.177.232.98",
+ "publicFqdn": "ddde8e29-3e3a-42d2-980d-8fb7e005ab81.eastus2.azurecontainer.io",
+ "modelConfigMap": {
+ "accountContext": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "accountName": "workspaces123",
+ "workspaceId": "57b243e8-3d24-4427-90e0-8dc47f41c387"
+ },
+ "models": {
+ "sklearn_regression_model1.pkl": {
+ "version": 2,
+ "id": "sklearn_regression_model1.pkl:2",
+ "internalId": "3ab27a5b0d0e48d99f18a5195cc258bc"
+ }
+ },
+ "modelsInfo": {
+ "sklearn_regression_model1.pkl": {
+ "2": {
+ "version": 2,
+ "id": "sklearn_regression_model1.pkl:2",
+ "internalId": "3ab27a5b0d0e48d99f18a5195cc258bc",
+ "dataCollectorStoragePath": "/modeldata/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/testrg123/workspaces123/service123/sklearn_regression_model1.pkl/2/"
+ }
+ }
+ }
+ },
+ "environmentImageRequest": {
+ "driverProgram": "score.py",
+ "assets": [
+ {
+ "id": null,
+ "mimeType": "application/x-python",
+ "url": "aml://artifact/LocalUpload/200518T200218a1a8c0af/score.py",
+ "unpack": false
+ }
+ ],
+ "modelIds": [
+ "sklearn_regression_model1.pkl:2"
+ ],
+ "environment": {
+ "name": "AzureML-Scikit-learn-0.20.3",
+ "version": "3",
+ "python": {
+ "interpreterPath": "python",
+ "userManagedDependencies": false,
+ "condaDependencies": {
+ "channels": [
+ "conda-forge"
+ ],
+ "dependencies": [
+ "python=3.6.2",
+ {
+ "pip": [
+ "azureml-core==1.0.69",
+ "azureml-defaults==1.0.69",
+ "azureml-telemetry==1.0.69",
+ "azureml-train-restclients-hyperdrive==1.0.69",
+ "azureml-train-core==1.0.69",
+ "scikit-learn==0.20.3",
+ "scipy==1.2.1",
+ "numpy==1.16.2",
+ "joblib==0.13.2"
+ ]
+ }
+ ],
+ "name": "azureml_ae1acbe6e1e6aabbad900b53c491a17c"
+ },
+ "baseCondaEnvironment": null
+ },
+ "environmentVariables": {
+ "EXAMPLE_ENV_VAR": "EXAMPLE_VALUE"
+ },
+ "docker": {
+ "baseImage": "mcr.microsoft.com/azureml/base:openmpi3.1.2-ubuntu16.04",
+ "baseDockerfile": null,
+ "baseImageRegistry": {
+ "address": null
+ }
+ },
+ "spark": {
+ "repositories": [],
+ "packages": [],
+ "precachePackages": true
+ },
+ "inferencingStackVersion": null
+ }
+ },
+ "description": null,
+ "kvTags": {},
+ "properties": {
+ "hasInferenceSchema": "False",
+ "hasHttps": "False"
+ },
+ "state": "Healthy"
+ }
+ }
+ ],
+ "nextLink": "nextLink"
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getWorkspace.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getWorkspace.json
new file mode 100644
index 000000000000..6e7461be23ca
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getWorkspace.json
@@ -0,0 +1,74 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "workspace-1234",
+ "workspaceName": "testworkspace",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace",
+ "name": "testworkspace",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Enterprise",
+ "tier": "Enterprise"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccount",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "HelloName",
+ "description": "test description",
+ "encryption": {
+ "status": "Enabled",
+ "keyVaultProperties": {
+ "keyVaultArmId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "keyIdentifier": "https://testkv.vault.azure.net/keys/testkey/aabbccddee112233445566778899aabb",
+ "identityClientId": ""
+ }
+ },
+ "hbiWorkspace": false,
+ "serviceProvisionedResourceGroup": "testworkspace_0000111122223333",
+ "privateLinkCount": 0,
+ "allowPublicAccessWhenBehindVnet": false,
+ "imageBuildCompute": "testcompute",
+ "privateEndpointConnections": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/privateEndpointConnections/testprivatelinkconnection",
+ "name": "testprivatelinkconnection",
+ "type": "Microsoft.MachineLearningServices/workspaces/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ],
+ "sharedPrivateLinkResources": [
+ {
+ "name": "testcosmosdbresource",
+ "properties": {
+ "privateLinkResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.DocumentDB/databaseAccounts/testcosmosdbresource/privateLinkResources/Sql",
+ "groupId": "Sql",
+ "requestMessage": "Please approve",
+ "status": "Approved"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getWorkspacesByResourceGroup.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getWorkspacesByResourceGroup.json
new file mode 100644
index 000000000000..8b71299c739d
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getWorkspacesByResourceGroup.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "workspace-1234",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace",
+ "name": "testworkspace",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Basic",
+ "tier": "Basic"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccount",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "HelloName",
+ "description": "test description"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace1",
+ "name": "testworkspace1",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Basic",
+ "tier": "Basic"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistryNew",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkvNew",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccountOld",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "HelloName 1",
+ "description": "test description"
+ }
+ }
+ ],
+ "nextLink": "nextLink"
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getWorkspacesBySubscription.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getWorkspacesBySubscription.json
new file mode 100644
index 000000000000..3032881f12d2
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/getWorkspacesBySubscription.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace",
+ "name": "testworkspace",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Enterprise",
+ "tier": "Enterprise"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccount",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "HelloName",
+ "description": "test description"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-5678/providers/Microsoft.MachineLearningServices/workspaces/testworkspace",
+ "name": "testworkspace",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Enterprise",
+ "tier": "Enterprise"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistryNew",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkvNew",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccountOld",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "HelloName",
+ "description": "test description"
+ }
+ }
+ ],
+ "nextLink": "nextLink"
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listKeysAKSCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listKeysAKSCompute.json
new file mode 100644
index 000000000000..4d0543e95c68
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listKeysAKSCompute.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "computeType": "AKS",
+ "userKubeConfig": "user kube config...",
+ "adminKubeConfig": "admin kube config...",
+ "imagePullSecretName": "the image pull secret name"
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listLinkedServices.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listLinkedServices.json
new file mode 100644
index 000000000000..f231946917ce
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listLinkedServices.json
@@ -0,0 +1,50 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "resourceGroup-1",
+ "workspaceName": "workspace-1",
+ "api-version": "2020-04-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1/providers/Microsoft.MachineLearningServices/workspaces/workspace-1/linkedServices/link-1",
+ "name": "link-1",
+ "location": "westus",
+ "type": "Microsoft.MachineLearningServices/workspaces/linkedServices",
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "aaaaaaaa-1111-2222-3333-444444444444",
+ "tenantId": "bbbbbbbb-1111-2222-3333-444444444444"
+ },
+ "properties": {
+ "createdTime": "2020-07-28T16:33:05.8246167-07:00",
+ "modifiedTime": "2020-07-28T16:33:06.1050872-07:00",
+ "linkedServiceResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/linkRg-1/providers/Microsoft.Synapse/workspaces/Syn-1",
+ "linkType": "Synapse"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1/providers/Microsoft.MachineLearningServices/workspaces/workspace-1/linkedServices/link-2",
+ "name": "link-2",
+ "location": "westus",
+ "type": "Microsoft.MachineLearningServices/workspaces/linkedServices",
+ "identity": {
+ "type": "SystemAssigned",
+ "principalId": "cccccccc-1111-2222-3333-444444444444",
+ "tenantId": "bbbbbbbb-1111-2222-3333-444444444444"
+ },
+ "properties": {
+ "createdTime": "2020-07-29T16:33:05.8246167-07:00",
+ "modifiedTime": "2020-07-29T16:33:06.1050872-07:00",
+ "linkedServiceResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/linkRg-2/providers/Microsoft.Synapse/workspaces/Syn-2",
+ "linkType": "Synapse"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listWorkspaceKeys.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listWorkspaceKeys.json
new file mode 100644
index 000000000000..5aafd35b8f1f
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/listWorkspaceKeys.json
@@ -0,0 +1,31 @@
+{
+ "parameters": {
+ "subscriptionId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "userStorageKey": "r5rKCJ018TLk+bdAi/9YaVzgcQ0nkLsUqGyUN03KsdCFtqG0SjFGPV8+vT1frWqkvBL0bGoPpLc1BlZSSaZmOA==",
+ "userStorageResourceId": "/subscriptions/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/resourceGroups/ragargeastus2euap/providers/Microsoft.Storage/storageAccounts/testdemoworkazashomr",
+ "appInsightsInstrumentationKey": null,
+ "containerRegistryCredentials": {
+ "location": null,
+ "username": "testdemoworkjmjmeykp",
+ "passwords": [
+ {
+ "name": "password",
+ "value": "vBvVhYgAGtUSewVCUv3w95p4/q5Yrsnw"
+ },
+ {
+ "name": "password2",
+ "value": "0KARRQoQHSUq1yViPWg7YFernOS=Ic/t"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/patchAmlCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/patchAmlCompute.json
new file mode 100644
index 000000000000..9896152b5883
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/patchAmlCompute.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-05-15-preview",
+ "parameters": {
+ "properties": {
+ "scaleSettings": {
+ "maxNodeCount": 4,
+ "minNodeCount": 4,
+ "nodeIdleTimeBeforeScaleDown": "PT5M"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus2",
+ "properties": {
+ "description": "some compute",
+ "computeType": "AmlCompute",
+ "provisioningState": "Updating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/restartComputeInstance.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/restartComputeInstance.json
new file mode 100644
index 000000000000..86ffe54a0079
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/restartComputeInstance.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-09-01-preview"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/resyncWorkspaceKeys.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/resyncWorkspaceKeys.json
new file mode 100644
index 000000000000..d292d6494e2e
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/resyncWorkspaceKeys.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "subscriptionId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "api-version": "2020-05-15-preview"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/startComputeInstance.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/startComputeInstance.json
new file mode 100644
index 000000000000..86ffe54a0079
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/startComputeInstance.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-09-01-preview"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/stopComputeInstance.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/stopComputeInstance.json
new file mode 100644
index 000000000000..86ffe54a0079
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/stopComputeInstance.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-09-01-preview"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/updateAKSCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/updateAKSCompute.json
new file mode 100644
index 000000000000..4ede3a3d75f9
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/updateAKSCompute.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-05-15-preview",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "description": "some compute",
+ "resourceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourcegroups/testrg123/providers/Microsoft.ContainerService/managedClusters/compute123-56826-c9b00420020b2",
+ "computeType": "AKS",
+ "properties": {
+ "agentCount": 4
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "description": "some compute",
+ "resourceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourcegroups/testrg123/providers/Microsoft.ContainerService/managedClusters/compute123-56826-c9b00420020b2",
+ "computeType": "AKS",
+ "provisioningState": "Updating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "description": "some compute",
+ "resourceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourcegroups/testrg123/providers/Microsoft.ContainerService/managedClusters/compute123-56826-c9b00420020b2",
+ "computeType": "AKS",
+ "provisioningState": "Updating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/updateAmlCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/updateAmlCompute.json
new file mode 100644
index 000000000000..786175fe9a16
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/updateAmlCompute.json
@@ -0,0 +1,54 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-05-15-preview",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "computeType": "AmlCompute",
+ "description": "some compute",
+ "properties": {
+ "scaleSettings": {
+ "maxNodeCount": 4,
+ "minNodeCount": 4,
+ "nodeIdleTimeBeforeScaleDown": "PT5M"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus2",
+ "properties": {
+ "description": "some compute",
+ "computeType": "AmlCompute",
+ "provisioningState": "Updating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus2",
+ "properties": {
+ "description": "some compute",
+ "computeType": "AmlCompute",
+ "provisioningState": "Updating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/updateQuota.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/updateQuota.json
new file mode 100644
index 000000000000..418097cf9ebb
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/updateQuota.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "location": "eastus",
+ "api-version": "2020-05-15-preview",
+ "parameters": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/Standard_DSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 100,
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/Standard_DSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 200,
+ "unit": "Count"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/Standard_DSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 100,
+ "unit": "Count",
+ "status": "Success"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/Standard_DSv2_Family_Cluster_Dedicated_vCPUs",
+ "type": "Microsoft.MachineLearningServices/workspaces/quotas",
+ "limit": 200,
+ "unit": "Count",
+ "status": "Success"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/updateWorkspace.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/updateWorkspace.json
new file mode 100644
index 000000000000..b2de5e85f874
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/updateWorkspace.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "workspace-1234",
+ "workspaceName": "testworkspace",
+ "api-version": "2020-05-15-preview",
+ "parameters": {
+ "sku": {
+ "name": "Enterprise",
+ "tier": "Enterprise"
+ },
+ "properties": {
+ "friendlyName": "New friendly name",
+ "description": "new description"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace",
+ "name": "testworkspace",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Enterprise",
+ "tier": "Enterprise"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccount",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "New friendly name",
+ "description": "new description"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspaceDeletePrivateEndpointConnection.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspaceDeletePrivateEndpointConnection.json
new file mode 100644
index 000000000000..177f06c4bf79
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspaceDeletePrivateEndpointConnection.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "rg-1234",
+ "workspaceName": "testworkspace",
+ "privateEndpointConnectionName": "{privateEndpointConnectionName}",
+ "api-version": "2020-05-15-preview",
+ "monitor": "true"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspaceGetPrivateEndpointConnection.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspaceGetPrivateEndpointConnection.json
new file mode 100644
index 000000000000..72d0177e2a48
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspaceGetPrivateEndpointConnection.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "rg-1234",
+ "workspaceName": "testworkspace",
+ "privateEndpointConnectionName": "{privateEndpointConnectionName}",
+ "api-version": "2020-05-15-preview",
+ "monitor": "true"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/privateEndpointConnections/{privateEndpointConnectionName}",
+ "name": "{privateEndpointConnectionName}",
+ "type": "Microsoft.MachineLearningServices/workspaces/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspaceListPrivateLinkResources.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspaceListPrivateLinkResources.json
new file mode 100644
index 000000000000..2115b10da341
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspaceListPrivateLinkResources.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "rg-1234",
+ "workspaceName": "testworkspace",
+ "api-version": "2020-05-15-preview",
+ "monitor": "true"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/privateLinkResources/amlworkspace",
+ "name": "amlworkspace",
+ "type": "Microsoft.Storage/workspaces/privateLinkResources",
+ "properties": {
+ "groupId": "amlworkspace",
+ "requiredMembers": [
+ "default"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspacePutPrivateEndpointConnection.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspacePutPrivateEndpointConnection.json
new file mode 100644
index 000000000000..d0189346cf31
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/examples/workspacePutPrivateEndpointConnection.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "rg-1234",
+ "workspaceName": "testworkspace",
+ "privateEndpointConnectionName": "{privateEndpointConnectionName}",
+ "api-version": "2020-05-15-preview",
+ "monitor": "true",
+ "properties": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/privateEndpointConnections/{privateEndpointConnectionName}",
+ "name": "{privateEndpointConnectionName}",
+ "type": "Microsoft.MachineLearningServices/workspaces/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/machineLearningServices.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/machineLearningServices.json
new file mode 100644
index 000000000000..3c283424747c
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-09-01-preview/machineLearningServices.json
@@ -0,0 +1,6022 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Machine Learning Workspaces",
+ "description": "These APIs allow end users to operate on Azure Machine Learning Workspace resources.",
+ "version": "2020-09-01-preview"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.MachineLearningServices/operations": {
+ "get": {
+ "tags": [
+ "Operation"
+ ],
+ "description": "Lists all of the available Azure Machine Learning Workspaces REST API operations.",
+ "operationId": "Operations_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}": {
+ "get": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Gets the properties of the specified machine learning workspace.",
+ "operationId": "Workspaces_Get",
+ "x-ms-examples": {
+ "Get Workspace": {
+ "$ref": "./examples/getWorkspace.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Creates or updates a workspace with the specified parameters.",
+ "operationId": "Workspaces_CreateOrUpdate",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create Workspace": {
+ "$ref": "./examples/createWorkspace.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The parameters for creating or updating a machine learning workspace.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "201": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "202": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Deletes a machine learning workspace.",
+ "operationId": "Workspaces_Delete",
+ "x-ms-examples": {
+ "Delete Workspace": {
+ "$ref": "./examples/deleteWorkspace.json"
+ }
+ },
+ "x-ms-long-running-operation": true,
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "202": {
+ "description": "The request was accepted; the request was well-formed and received properly."
+ },
+ "204": {
+ "description": "The machine learning workspace does not exist in the subscription."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Updates a machine learning workspace with the specified parameters.",
+ "operationId": "Workspaces_Update",
+ "x-ms-examples": {
+ "Update Workspace": {
+ "$ref": "./examples/updateWorkspace.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The parameters for updating a machine learning workspace.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkspaceUpdateParameters"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/features": {
+ "get": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Lists all enabled features for a workspace",
+ "operationId": "WorkspaceFeatures_List",
+ "x-ms-examples": {
+ "List Workspace features": {
+ "$ref": "./examples/ListWorkspaceFeatures.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/ListAmlUserFeatureResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces": {
+ "get": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Lists all the available machine learning workspaces under the specified resource group.",
+ "operationId": "Workspaces_ListByResourceGroup",
+ "x-ms-examples": {
+ "Get Workspaces by Resource Group": {
+ "$ref": "./examples/getWorkspacesByResourceGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PaginationParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/listKeys": {
+ "post": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Lists all the keys associated with this workspace. This includes keys for the storage account, app insights and password for container registry",
+ "operationId": "Workspaces_ListKeys",
+ "x-ms-examples": {
+ "List Workspace Keys": {
+ "$ref": "./examples/listWorkspaceKeys.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/ListWorkspaceKeysResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/resyncKeys": {
+ "post": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Resync all the keys associated with this workspace. This includes keys for the storage account, app insights and password for container registry",
+ "operationId": "Workspaces_ResyncKeys",
+ "x-ms-examples": {
+ "Resync Workspace Keys": {
+ "$ref": "./examples/resyncWorkspaceKeys.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/locations/{location}/usages": {
+ "get": {
+ "tags": [
+ "Usage"
+ ],
+ "operationId": "Usages_List",
+ "description": "Gets the current usage information as well as limits for AML resources for given subscription and location.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location for which resource usage is queried.",
+ "pattern": "^[-\\w\\._]+$"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ListUsagesResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Usages": {
+ "$ref": "./examples/ListUsages.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/locations/{location}/vmSizes": {
+ "get": {
+ "tags": [
+ "VirtualMachineSizes"
+ ],
+ "operationId": "VirtualMachineSizes_List",
+ "description": "Returns supported VM Sizes in a location",
+ "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-examples": {
+ "List VM Sizes": {
+ "$ref": "./examples/ListVMSizesResult.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/locations/{location}/updateQuotas": {
+ "post": {
+ "tags": [
+ "Quota"
+ ],
+ "operationId": "Quotas_Update",
+ "description": "Update quota for each VM family in workspace.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location for update quota is queried.",
+ "pattern": "^[-\\w\\._]+$"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/QuotaUpdateParameters"
+ },
+ "description": "Quota update parameters."
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/UpdateWorkspaceQuotasResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "update quotas": {
+ "$ref": "./examples/updateQuota.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/locations/{location}/Quotas": {
+ "get": {
+ "tags": [
+ "Quota"
+ ],
+ "operationId": "Quotas_List",
+ "description": "Gets the currently assigned Workspace Quotas based on VMFamily.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location for which resource usage is queried.",
+ "pattern": "^[-\\w\\._]+$"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ListWorkspaceQuotas"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List workspace quotas by VMFamily": {
+ "$ref": "./examples/ListWorkspaceQuotasByVMFamily.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/workspaces": {
+ "get": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Lists all the available machine learning workspaces under the specified subscription.",
+ "operationId": "Workspaces_ListBySubscription",
+ "x-ms-examples": {
+ "Get Workspaces by subscription": {
+ "$ref": "./examples/getWorkspacesBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/PaginationParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes": {
+ "get": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "operationId": "MachineLearningCompute_ListByWorkspace",
+ "description": "Gets computes in specified workspace.",
+ "x-ms-examples": {
+ "Get Computes": {
+ "$ref": "./examples/getComputes.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PaginationParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response includes a paginated array of Machine Learning computes and a URI to the next set of results, if any. For the more information the limits of the number of items in a resource group, see https://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/.",
+ "schema": {
+ "$ref": "#/definitions/PaginatedComputeResourcesList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}": {
+ "get": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_Get",
+ "description": "Gets compute definition by its name. Any secrets (storage keys, service credentials, etc) are not returned - use 'keys' nested resource to get them.",
+ "x-ms-examples": {
+ "Get a AKS Compute": {
+ "$ref": "./examples/getAKSCompute.json"
+ },
+ "Get a AML Compute": {
+ "$ref": "./examples/getAmlCompute.json"
+ },
+ "Get an ComputeInstance": {
+ "$ref": "./examples/getComputeInstance.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success.",
+ "schema": {
+ "$ref": "#/definitions/ComputeResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_CreateOrUpdate",
+ "description": "Creates or updates compute. This call will overwrite a compute if it exists. This is a nonrecoverable operation. If your intent is to create a new compute, do a GET first to verify that it does not exist yet.",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create a AML Compute": {
+ "$ref": "./examples/createBasicAmlCompute.json"
+ },
+ "Create an ComputeInstance Compute with minimal inputs": {
+ "$ref": "./examples/createComputeInstanceMinimal.json"
+ },
+ "Create an ComputeInstance Compute": {
+ "$ref": "./examples/createComputeInstance.json"
+ },
+ "Create AKS Compute": {
+ "$ref": "./examples/createBasicAKSCompute.json"
+ },
+ "Create a DataFactory Compute": {
+ "$ref": "./examples/createBasicDataFactoryCompute.json"
+ },
+ "Update a AML Compute": {
+ "$ref": "./examples/updateAmlCompute.json"
+ },
+ "Update a AKS Compute": {
+ "$ref": "./examples/updateAKSCompute.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeDefinitionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Compute creation or update initiated.",
+ "schema": {
+ "$ref": "#/definitions/ComputeResource"
+ }
+ },
+ "201": {
+ "description": "Compute creation or update initiated.",
+ "headers": {
+ "Azure-AsyncOperation": {
+ "description": "URI to poll for asynchronous operation status.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "#/definitions/ComputeResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_Update",
+ "description": "Updates properties of a compute. This call will overwrite a compute if it exists. This is a nonrecoverable operation.",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update a AmlCompute Compute": {
+ "$ref": "./examples/patchAmlCompute.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ClusterUpdateParameters"
+ },
+ "description": "Additional parameters for cluster update."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Compute update initiated.",
+ "schema": {
+ "$ref": "#/definitions/ComputeResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_Delete",
+ "description": "Deletes specified Machine Learning compute.",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete Compute": {
+ "$ref": "./examples/deleteCompute.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/UnderlyingResourceActionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "202": {
+ "description": "Compute deletion initiated.",
+ "headers": {
+ "Azure-AsyncOperation": {
+ "description": "URI to poll for asynchronous operation status.",
+ "type": "string"
+ },
+ "Location": {
+ "description": "URI to poll for asynchronous operation result.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}/listNodes": {
+ "post": {
+ "tags": [
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_ListNodes",
+ "description": "Get the details (e.g IP address, port etc) of all the compute nodes in the compute.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the list of IP addresses.",
+ "schema": {
+ "$ref": "#/definitions/AmlComputeNodesInformation"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get compute nodes information for a compute": {
+ "$ref": "./examples/amlComputeListNodes.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}/listKeys": {
+ "post": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_ListKeys",
+ "description": "Gets secrets related to Machine Learning compute (storage keys, service credentials, etc).",
+ "x-ms-examples": {
+ "List AKS Compute Keys": {
+ "$ref": "./examples/listKeysAKSCompute.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success.",
+ "schema": {
+ "$ref": "#/definitions/ComputeSecrets"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}/start": {
+ "post": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_Start",
+ "description": "Posts a start action to a compute instance",
+ "x-ms-examples": {
+ "Start ComputeInstance Compute": {
+ "$ref": "./examples/startComputeInstance.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}/stop": {
+ "post": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_Stop",
+ "description": "Posts a stop action to a compute instance",
+ "x-ms-examples": {
+ "Stop ComputeInstance Compute": {
+ "$ref": "./examples/stopComputeInstance.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}/restart": {
+ "post": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_Restart",
+ "description": "Posts a restart action to a compute instance",
+ "x-ms-examples": {
+ "Restart ComputeInstance Compute": {
+ "$ref": "./examples/restartComputeInstance.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/workspaces/skus": {
+ "get": {
+ "tags": [
+ "WorkspaceSkus"
+ ],
+ "description": "Lists all skus with associated features",
+ "operationId": "ListSkus",
+ "x-ms-examples": {
+ "List Skus": {
+ "$ref": "./examples/ListSkus.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/SkuListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "WorkspacePrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Get",
+ "description": "Gets the specified private endpoint connection associated with the workspace.",
+ "x-ms-examples": {
+ "WorkspaceGetPrivateEndpointConnection": {
+ "$ref": "./examples/workspaceGetPrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateEndpointConnectionName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "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": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "WorkspacePrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Put",
+ "description": "Update the state of specified private endpoint connection associated with the workspace.",
+ "x-ms-examples": {
+ "WorkspacePutPrivateEndpointConnection": {
+ "$ref": "./examples/workspacePutPrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateEndpointConnectionName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "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"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "WorkspacePrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Delete",
+ "description": "Deletes the specified private endpoint connection associated with the workspace.",
+ "x-ms-examples": {
+ "WorkspaceDeletePrivateEndpointConnection": {
+ "$ref": "./examples/workspaceDeletePrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateEndpointConnectionName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Delete the private endpoint connection successfully."
+ },
+ "204": {
+ "description": "No Content -- The private endpoint connection does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "WorkspacePrivateLinkResources"
+ ],
+ "operationId": "PrivateLinkResources_ListByWorkspace",
+ "description": "Gets the private link resources that need to be created for a workspace.",
+ "x-ms-examples": {
+ "WorkspaceListPrivateLinkResources": {
+ "$ref": "./examples/workspaceListPrivateLinkResources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved private link resources.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResourceListResult"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/linkedServices": {
+ "get": {
+ "tags": [
+ "LinkedServices"
+ ],
+ "x-ms-examples": {
+ "ListLinkedServices": {
+ "$ref": "./examples/listLinkedServices.json"
+ }
+ },
+ "operationId": "LinkedServices_List",
+ "description": "List all linked services under an AML workspace.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the linked services.",
+ "schema": {
+ "$ref": "#/definitions/LinkedServiceList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/linkedServices/{linkName}": {
+ "put": {
+ "tags": [
+ "LinkedServices"
+ ],
+ "operationId": "LinkedServices_Create",
+ "description": "Add a new linked service.",
+ "x-ms-examples": {
+ "CreateLinkedService": {
+ "$ref": "./examples/createLinkedService.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/LinkName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The object for creating or updating a linked service",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/LinkedServiceRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully created the linked service.",
+ "schema": {
+ "$ref": "#/definitions/LinkedServiceResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "LinkedServices"
+ ],
+ "operationId": "LinkedServices_Get",
+ "description": "Get the detail of a linked service.",
+ "x-ms-examples": {
+ "GetLinkedService": {
+ "$ref": "./examples/getLinkedService.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/LinkName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the detail of the linked service.",
+ "schema": {
+ "$ref": "#/definitions/LinkedServiceResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "LinkedServices"
+ ],
+ "operationId": "LinkedServices_Delete",
+ "description": "Delete a linked service.",
+ "x-ms-examples": {
+ "DeleteLinkedService": {
+ "$ref": "./examples/deleteLinkedService.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/LinkName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the linked service."
+ },
+ "204": {
+ "description": "Specific linked service not found."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/services": {
+ "get": {
+ "tags": [
+ "MachineLearningServices"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "operationId": "MachineLearningService_ListByWorkspace",
+ "description": "Gets services in specified workspace.",
+ "x-ms-examples": {
+ "Get Services": {
+ "$ref": "./examples/getServices.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PaginationParameter"
+ },
+ {
+ "$ref": "#/parameters/ModelIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ModelNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WebServiceTagParameter"
+ },
+ {
+ "$ref": "#/parameters/WebServiceTagsParameter"
+ },
+ {
+ "$ref": "#/parameters/WebServicePropertiesParameter"
+ },
+ {
+ "$ref": "#/parameters/WebServiceRunIdParameter"
+ },
+ {
+ "$ref": "#/parameters/WebServiceExpandParameter"
+ },
+ {
+ "$ref": "#/parameters/WebServiceOrderByParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response includes a paginated array of Machine Learning services and a URI to the next set of results, if any. For the more information the limits of the number of items in a resource group, see https://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/.",
+ "schema": {
+ "$ref": "#/definitions/PaginatedServiceList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/services/{serviceName}": {
+ "get": {
+ "tags": [
+ "MachineLearningServices"
+ ],
+ "operationId": "MachineLearningService_Get",
+ "description": "Get a Service by name.",
+ "x-ms-examples": {
+ "Get Service": {
+ "$ref": "./examples/getService.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/WebServiceNameParameter"
+ },
+ {
+ "in": "query",
+ "name": "expand",
+ "description": "Set to True to include Model details.",
+ "type": "boolean",
+ "default": false
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/ServiceResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "MachineLearningServices"
+ ],
+ "operationId": "MachineLearningService_Delete",
+ "description": "Delete a specific Service..",
+ "x-ms-examples": {
+ "Delete Service": {
+ "$ref": "./examples/deleteService.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/WebServiceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The resource exists and was deleted successfully."
+ },
+ "204": {
+ "description": "The resource does not exist and the request was well formed."
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "MachineLearningServices"
+ ],
+ "description": "Creates or updates service. This call will update a service if it exists. This is a nonrecoverable operation. If your intent is to create a new service, do a GET first to verify that it does not exist yet.",
+ "operationId": "MachineLearningService_CreateOrUpdate",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create Or Update service": {
+ "$ref": "./examples/createOrUpdateService.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/WebServiceNameParameter"
+ },
+ {
+ "in": "body",
+ "name": "properties",
+ "description": "The payload that is used to create or update the Service.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CreateServiceRequest"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Service creation or update initiated.",
+ "schema": {
+ "$ref": "#/definitions/ServiceResource"
+ }
+ },
+ "201": {
+ "description": "Service creation or update initiated.",
+ "headers": {
+ "Azure-AsyncOperation": {
+ "description": "URI to poll for asynchronous operation status.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "description": "Azure subscription identifier.",
+ "in": "path",
+ "type": "string",
+ "required": true
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "description": "Name of the resource group in which workspace is located.",
+ "in": "path",
+ "type": "string",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "WorkspaceNameParameter": {
+ "name": "workspaceName",
+ "description": "Name of Azure Machine Learning workspace.",
+ "in": "path",
+ "type": "string",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "ComputeNameParameter": {
+ "name": "computeName",
+ "description": "Name of the Azure Machine Learning compute.",
+ "in": "path",
+ "type": "string",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "AsyncOperationIdParameter": {
+ "name": "asyncOperationId",
+ "description": "Identifier of an asynchronous Azure Machine Learning compute operation.",
+ "in": "path",
+ "type": "string",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "LocationParameter": {
+ "name": "location",
+ "description": "The name of the Azure location/region.",
+ "in": "path",
+ "type": "string",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "APIVersionParameter": {
+ "in": "query",
+ "name": "api-version",
+ "type": "string",
+ "description": "Version of Azure Machine Learning resource provider API.",
+ "required": true
+ },
+ "PaginationParameter": {
+ "in": "query",
+ "name": "$skiptoken",
+ "type": "string",
+ "description": "Continuation token for pagination.",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "ComputeDefinitionParameter": {
+ "in": "body",
+ "name": "parameters",
+ "description": "Payload with Machine Learning compute definition.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ComputeResource"
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "ComputeTypeParameter": {
+ "in": "query",
+ "name": "compute-type",
+ "type": "string",
+ "description": "Type of compute to filter by.",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "UnderlyingResourceActionParameter": {
+ "in": "query",
+ "name": "underlyingResourceAction",
+ "type": "string",
+ "description": "Delete the underlying compute if 'Delete', or detach the underlying compute from workspace if 'Detach'.",
+ "required": true,
+ "enum": [
+ "Delete",
+ "Detach"
+ ],
+ "x-ms-enum": {
+ "name": "UnderlyingResourceAction",
+ "modelAsString": true
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "PrivateEndpointConnectionName": {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint connection associated with the workspace",
+ "x-ms-parameter-location": "method"
+ },
+ "LinkName": {
+ "name": "linkName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Friendly name of the linked workspace",
+ "x-ms-parameter-location": "method"
+ },
+ "ModelIdParameter": {
+ "in": "query",
+ "name": "modelId",
+ "type": "string",
+ "description": "The Model Id.",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "ModelNameParameter": {
+ "in": "query",
+ "name": "modelName",
+ "type": "string",
+ "description": "The Model name.",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "WebServiceNameParameter": {
+ "name": "serviceName",
+ "description": "Name of the Azure Machine Learning service.",
+ "in": "path",
+ "type": "string",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "WebServiceTagParameter": {
+ "in": "query",
+ "name": "tag",
+ "type": "string",
+ "description": "The object tag.",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "WebServiceCountParameter": {
+ "in": "query",
+ "name": "count",
+ "type": "integer",
+ "format": "int32",
+ "description": "The number of items to retrieve in a page.",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "WebServiceTagsParameter": {
+ "in": "query",
+ "name": "tags",
+ "type": "string",
+ "description": "A set of tags with which to filter the returned services. It is a comma separated string of tags key or tags key=value Example: tagKey1,tagKey2,tagKey3=value3 .",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "WebServicePropertiesParameter": {
+ "in": "query",
+ "name": "properties",
+ "type": "string",
+ "description": "A set of properties with which to filter the returned services. It is a comma separated string of properties key and/or properties key=value Example: propKey1,propKey2,propKey3=value3 .",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "WebServiceRunIdParameter": {
+ "in": "query",
+ "name": "runId",
+ "type": "string",
+ "description": "runId for model associated with service.",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "WebServiceExpandParameter": {
+ "in": "query",
+ "name": "expand",
+ "type": "boolean",
+ "description": "Set to True to include Model details.",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "WebServiceOrderByParameter": {
+ "in": "query",
+ "name": "orderby",
+ "type": "string",
+ "description": "The option to order the response.",
+ "required": false,
+ "default": "UpdatedAtDesc",
+ "enum": [
+ "CreatedAtDesc",
+ "CreatedAtAsc",
+ "UpdatedAtDesc",
+ "UpdatedAtAsc"
+ ],
+ "x-ms-enum": {
+ "name": "OrderString",
+ "modelAsString": true
+ },
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "definitions": {
+ "Operation": {
+ "description": "Azure Machine Learning workspace REST API operation",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}",
+ "type": "string"
+ },
+ "display": {
+ "description": "Display name of operation",
+ "properties": {
+ "provider": {
+ "description": "The resource provider name: Microsoft.MachineLearningExperimentation",
+ "type": "string"
+ },
+ "resource": {
+ "description": "The resource on which the operation is performed.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "The operation that users can perform.",
+ "type": "string"
+ },
+ "description": {
+ "description": "The description for the operation.",
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "OperationListResult": {
+ "description": "An array of operations supported by the resource provider.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of AML workspace operations supported by the AML workspace resource provider."
+ }
+ }
+ },
+ "Workspace": {
+ "type": "object",
+ "description": "An object that represents a machine learning workspace.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/WorkspaceProperties",
+ "description": "The properties of the machine learning workspace.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkspaceProperties": {
+ "type": "object",
+ "description": "The properties of a machine learning workspace.",
+ "properties": {
+ "workspaceId": {
+ "description": "The immutable id associated with this workspace.",
+ "type": "string",
+ "readOnly": true
+ },
+ "description": {
+ "description": "The description of this workspace.",
+ "type": "string"
+ },
+ "friendlyName": {
+ "description": "The friendly name for this workspace. This name in mutable",
+ "type": "string"
+ },
+ "creationTime": {
+ "format": "date-time",
+ "description": "The creation time of the machine learning workspace in ISO8601 format.",
+ "type": "string",
+ "readOnly": true
+ },
+ "keyVault": {
+ "description": "ARM id of the key vault associated with this workspace. This cannot be changed once the workspace has been created",
+ "type": "string"
+ },
+ "applicationInsights": {
+ "description": "ARM id of the application insights associated with this workspace. This cannot be changed once the workspace has been created",
+ "type": "string"
+ },
+ "containerRegistry": {
+ "description": "ARM id of the container registry associated with this workspace. This cannot be changed once the workspace has been created",
+ "type": "string"
+ },
+ "storageAccount": {
+ "description": "ARM id of the storage account associated with this workspace. This cannot be changed once the workspace has been created",
+ "type": "string"
+ },
+ "discoveryUrl": {
+ "description": "Url for the discovery service to identify regional endpoints for machine learning experimentation services",
+ "type": "string"
+ },
+ "provisioningState": {
+ "type": "string",
+ "enum": [
+ "Unknown",
+ "Updating",
+ "Creating",
+ "Deleting",
+ "Succeeded",
+ "Failed",
+ "Canceled"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true
+ },
+ "readOnly": true,
+ "description": "The current deployment state of workspace resource. The provisioningState is to indicate states for resource provisioning."
+ },
+ "encryption": {
+ "$ref": "#/definitions/EncryptionProperty",
+ "description": "The encryption settings of Azure ML workspace."
+ },
+ "hbiWorkspace": {
+ "type": "boolean",
+ "description": "The flag to signal HBI data in the workspace and reduce diagnostic data collected by the service",
+ "default": false
+ },
+ "serviceProvisionedResourceGroup": {
+ "type": "string",
+ "description": "The name of the managed resource group created by workspace RP in customer subscription if the workspace is CMK workspace",
+ "readOnly": true
+ },
+ "privateLinkCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Count of private connections in the workspace",
+ "readOnly": true
+ },
+ "imageBuildCompute": {
+ "description": "The compute name for image build",
+ "type": "string"
+ },
+ "allowPublicAccessWhenBehindVnet": {
+ "type": "boolean",
+ "description": "The flag to indicate whether to allow public access when behind VNet.",
+ "default": false
+ },
+ "privateEndpointConnections": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "The list of private endpoint connections in the workspace."
+ },
+ "sharedPrivateLinkResources": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharedPrivateLinkResource"
+ },
+ "description": "The list of shared private link resources in this workspace."
+ }
+ }
+ },
+ "WorkspaceUpdateParameters": {
+ "description": "The parameters for updating a machine learning workspace.",
+ "properties": {
+ "tags": {
+ "description": "The resource tags for the machine learning workspace.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The sku of the workspace."
+ },
+ "properties": {
+ "$ref": "#/definitions/WorkspacePropertiesUpdateParameters",
+ "description": "The properties that the machine learning workspace will be updated with.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkspacePropertiesUpdateParameters": {
+ "description": "The parameters for updating the properties of a machine learning workspace.",
+ "properties": {
+ "description": {
+ "description": "The description of this workspace.",
+ "type": "string"
+ },
+ "friendlyName": {
+ "description": "The friendly name for this workspace.",
+ "type": "string"
+ }
+ }
+ },
+ "AmlUserFeature": {
+ "description": "Features enabled for a workspace",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Specifies the feature ID",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Specifies the feature name ",
+ "type": "string"
+ },
+ "description": {
+ "description": "Describes the feature for user experience",
+ "type": "string"
+ }
+ }
+ },
+ "ListAmlUserFeatureResult": {
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AmlUserFeature"
+ },
+ "description": "The list of AML user facing features."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URI to fetch the next page of AML user features information. Call ListNext() with this to fetch the next page of AML user features information."
+ }
+ },
+ "description": "The List Aml user feature operation response."
+ },
+ "UsageName": {
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the resource."
+ },
+ "localizedValue": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The localized name of the resource."
+ }
+ },
+ "description": "The Usage Names."
+ },
+ "Usage": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource ID."
+ },
+ "amlWorkspaceLocation": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Region of the AML workspace in the id."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource type."
+ },
+ "unit": {
+ "readOnly": true,
+ "type": "string",
+ "description": "An enum describing the unit of usage measurement.",
+ "enum": [
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "UsageUnit",
+ "modelAsString": true
+ }
+ },
+ "currentValue": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The current usage of the resource."
+ },
+ "limit": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The maximum permitted usage of the resource."
+ },
+ "name": {
+ "readOnly": true,
+ "$ref": "#/definitions/UsageName",
+ "description": "The name of the type of usage."
+ }
+ },
+ "description": "Describes AML Resource Usage."
+ },
+ "ListUsagesResult": {
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Usage"
+ },
+ "description": "The list of AML resource usages."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URI to fetch the next page of AML resource usage information. Call ListNext() with this to fetch the next page of AML resource usage information."
+ }
+ },
+ "description": "The List Usages operation response."
+ },
+ "VirtualMachineSize": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "Virtual Machine size name",
+ "description": "The name of the virtual machine size.",
+ "readOnly": true
+ },
+ "family": {
+ "type": "string",
+ "title": "Virtual Machine family name",
+ "description": "The family name of the virtual machine size.",
+ "readOnly": true
+ },
+ "vCPUs": {
+ "type": "integer",
+ "format": "int32",
+ "title": "Number of vPUs",
+ "description": "The number of vCPUs supported by the virtual machine size.",
+ "readOnly": true
+ },
+ "gpus": {
+ "type": "integer",
+ "format": "int32",
+ "title": "Number of gPUs",
+ "description": "The number of gPUs supported by the virtual machine size.",
+ "readOnly": true
+ },
+ "osVhdSizeMB": {
+ "type": "integer",
+ "format": "int32",
+ "title": "OS VHD Disk size",
+ "description": "The OS VHD disk size, in MB, allowed by the virtual machine size.",
+ "readOnly": true
+ },
+ "maxResourceVolumeMB": {
+ "type": "integer",
+ "format": "int32",
+ "title": "Resource volume size",
+ "description": "The resource volume size, in MB, allowed by the virtual machine size.",
+ "readOnly": true
+ },
+ "memoryGB": {
+ "type": "number",
+ "format": "double",
+ "title": "Memory size",
+ "description": "The amount of memory, in GB, supported by the virtual machine size.",
+ "readOnly": true
+ },
+ "lowPriorityCapable": {
+ "type": "boolean",
+ "title": "Low priority capable",
+ "description": "Specifies if the virtual machine size supports low priority VMs.",
+ "readOnly": true
+ },
+ "premiumIO": {
+ "type": "boolean",
+ "title": "Premium IO supported",
+ "description": "Specifies if the virtual machine size supports premium IO.",
+ "readOnly": true
+ },
+ "estimatedVMPrices": {
+ "title": "Estimated VM prices",
+ "description": "The estimated price information for using a VM.",
+ "$ref": "#/definitions/EstimatedVMPrices"
+ }
+ },
+ "description": "Describes the properties of a VM size."
+ },
+ "EstimatedVMPrices": {
+ "properties": {
+ "billingCurrency": {
+ "type": "string",
+ "title": "Billing currency",
+ "description": "Three lettered code specifying the currency of the VM price. Example: USD",
+ "enum": [
+ "USD"
+ ],
+ "x-ms-enum": {
+ "name": "BillingCurrency",
+ "modelAsString": true
+ }
+ },
+ "unitOfMeasure": {
+ "type": "string",
+ "title": "Unit of time measure",
+ "description": "The unit of time measurement for the specified VM price. Example: OneHour",
+ "enum": [
+ "OneHour"
+ ],
+ "x-ms-enum": {
+ "name": "UnitOfMeasure",
+ "modelAsString": true
+ }
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EstimatedVMPrice"
+ },
+ "title": "List of estimated VM prices.",
+ "description": "The list of estimated prices for using a VM of a particular OS type, tier, etc."
+ }
+ },
+ "required": [
+ "billingCurrency",
+ "unitOfMeasure",
+ "values"
+ ],
+ "description": "The estimated price info for using a VM."
+ },
+ "EstimatedVMPrice": {
+ "properties": {
+ "retailPrice": {
+ "type": "number",
+ "format": "double",
+ "title": "Retail price",
+ "description": "The price charged for using the VM."
+ },
+ "osType": {
+ "type": "string",
+ "title": "OS type",
+ "description": "Operating system type used by the VM.",
+ "enum": [
+ "Linux",
+ "Windows"
+ ],
+ "x-ms-enum": {
+ "name": "VMPriceOSType",
+ "modelAsString": true
+ }
+ },
+ "vmTier": {
+ "type": "string",
+ "title": "VM tier",
+ "description": "The type of the VM.",
+ "enum": [
+ "Standard",
+ "LowPriority",
+ "Spot"
+ ],
+ "x-ms-enum": {
+ "name": "VMTier",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "retailPrice",
+ "osType",
+ "vmTier"
+ ],
+ "description": "The estimated price info for using a VM of a particular OS type, tier, etc."
+ },
+ "VirtualMachineSizeListResult": {
+ "properties": {
+ "amlCompute": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineSize"
+ },
+ "description": "The list of virtual machine sizes supported by AmlCompute."
+ }
+ },
+ "description": "The List Virtual Machine size operation response."
+ },
+ "WorkspaceListResult": {
+ "description": "The result of a request to list machine learning workspaces.",
+ "properties": {
+ "value": {
+ "description": "The list of machine learning workspaces. Since this list may be incomplete, the nextLink field should be used to request the next list of machine learning workspaces.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "nextLink": {
+ "description": "The URI that can be used to request the next list of machine learning workspaces.",
+ "type": "string"
+ }
+ }
+ },
+ "QuotaBaseProperties": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Specifies the resource ID."
+ },
+ "type": {
+ "type": "string",
+ "description": "Specifies the resource type."
+ },
+ "limit": {
+ "type": "integer",
+ "format": "int64",
+ "title": "Limit.",
+ "description": "The maximum permitted quota of the resource."
+ },
+ "unit": {
+ "type": "string",
+ "description": "An enum describing the unit of quota measurement.",
+ "enum": [
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "QuotaUnit",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "The properties for Quota update or retrieval."
+ },
+ "QuotaUpdateParameters": {
+ "properties": {
+ "value": {
+ "description": "The list for update quota.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QuotaBaseProperties"
+ }
+ },
+ "location": {
+ "description": "Region of workspace quota to be updated.",
+ "type": "string"
+ }
+ },
+ "description": "Quota update parameters."
+ },
+ "UpdateWorkspaceQuotasResult": {
+ "properties": {
+ "value": {
+ "description": "The list of workspace quota update result.",
+ "items": {
+ "$ref": "#/definitions/UpdateWorkspaceQuotas"
+ },
+ "readOnly": true,
+ "type": "array"
+ },
+ "nextLink": {
+ "description": "The URI to fetch the next page of workspace quota update result. Call ListNext() with this to fetch the next page of Workspace Quota update result.",
+ "readOnly": true,
+ "type": "string"
+ }
+ },
+ "description": "The result of update workspace quota."
+ },
+ "UpdateWorkspaceQuotas": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource ID."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource type."
+ },
+ "limit": {
+ "type": "integer",
+ "format": "int64",
+ "title": "Limit.",
+ "description": "The maximum permitted quota of the resource."
+ },
+ "unit": {
+ "readOnly": true,
+ "type": "string",
+ "description": "An enum describing the unit of quota measurement.",
+ "enum": [
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "QuotaUnit",
+ "modelAsString": true
+ }
+ },
+ "status": {
+ "type": "string",
+ "readOnly": false,
+ "title": "Update Workspace Quota Status.",
+ "description": "Status of update workspace quota.",
+ "enum": [
+ "Undefined",
+ "Success",
+ "Failure",
+ "InvalidQuotaBelowClusterMinimum",
+ "InvalidQuotaExceedsSubscriptionLimit",
+ "InvalidVMFamilyName",
+ "OperationNotSupportedForSku",
+ "OperationNotEnabledForRegion"
+ ],
+ "x-ms-enum": {
+ "name": "status",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "The properties for update Quota response."
+ },
+ "ResourceName": {
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the resource."
+ },
+ "localizedValue": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The localized name of the resource."
+ }
+ },
+ "description": "The Resource Name."
+ },
+ "ResourceQuota": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource ID."
+ },
+ "amlWorkspaceLocation": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Region of the AML workspace in the id."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource type."
+ },
+ "name": {
+ "$ref": "#/definitions/ResourceName",
+ "description": "Name of the resource.",
+ "readOnly": true
+ },
+ "limit": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "title": "Limit.",
+ "description": "The maximum permitted quota of the resource."
+ },
+ "unit": {
+ "readOnly": true,
+ "type": "string",
+ "description": "An enum describing the unit of quota measurement.",
+ "enum": [
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "QuotaUnit",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "The quota assigned to a resource."
+ },
+ "ListWorkspaceQuotas": {
+ "properties": {
+ "value": {
+ "description": "The list of Workspace Quotas by VM Family",
+ "items": {
+ "$ref": "#/definitions/ResourceQuota"
+ },
+ "readOnly": true,
+ "type": "array"
+ },
+ "nextLink": {
+ "description": "The URI to fetch the next page of workspace quota information by VM Family. Call ListNext() with this to fetch the next page of Workspace Quota information.",
+ "readOnly": true,
+ "type": "string"
+ }
+ },
+ "description": "The List WorkspaceQuotasByVMFamily operation response."
+ },
+ "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 identity type.",
+ "enum": [
+ "SystemAssigned",
+ "SystemAssigned,UserAssigned",
+ "UserAssigned",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceIdentityType",
+ "modelAsString": false
+ }
+ },
+ "userAssignedIdentities": {
+ "$ref": "#/definitions/UserAssignedIdentities",
+ "description": "The user assigned identities associated with the resource."
+ }
+ },
+ "description": "Identity for the resource."
+ },
+ "UserAssignedIdentities": {
+ "description": "dictionary containing all the user assigned identities, with resourceId of the UAI as key.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/UserAssignedIdentity"
+ }
+ },
+ "UserAssignedIdentity": {
+ "description": "User Assigned Identity",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal ID of the user assigned identity."
+ },
+ "tenantId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The tenant ID of the user assigned identity."
+ },
+ "clientId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The clientId(aka appId) of the user assigned identity."
+ }
+ }
+ },
+ "Resource": {
+ "description": "Azure Resource Manager resource envelope.",
+ "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
+ },
+ "identity": {
+ "$ref": "#/definitions/Identity",
+ "description": "The identity of the resource."
+ },
+ "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": "The sku of the workspace."
+ }
+ }
+ },
+ "ResourceId": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The ID of the resource"
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet.",
+ "x-ms-azure-resource": true
+ },
+ "ListWorkspaceKeysResult": {
+ "type": "object",
+ "properties": {
+ "userStorageKey": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "userStorageResourceId": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "appInsightsInstrumentationKey": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "containerRegistryCredentials": {
+ "readOnly": true,
+ "$ref": "#/definitions/RegistryListCredentialsResult"
+ }
+ }
+ },
+ "RegistryListCredentialsResult": {
+ "type": "object",
+ "properties": {
+ "location": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "username": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "passwords": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Password"
+ }
+ }
+ }
+ },
+ "Password": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "value": {
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ },
+ "PaginatedComputeResourcesList": {
+ "type": "object",
+ "description": "Paginated list of Machine Learning compute objects wrapped in ARM resource envelope.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "An array of Machine Learning compute objects wrapped in ARM resource envelope.",
+ "items": {
+ "$ref": "#/definitions/ComputeResource"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "A continuation link (absolute URI) to the next page of results in the list."
+ }
+ }
+ },
+ "ComputeResource": {
+ "type": "object",
+ "description": "Machine Learning compute object wrapped into ARM resource envelope.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "Compute properties",
+ "$ref": "#/definitions/Compute"
+ }
+ }
+ }
+ ]
+ },
+ "Compute": {
+ "type": "object",
+ "description": "Machine Learning compute object.",
+ "discriminator": "computeType",
+ "properties": {
+ "computeType": {
+ "description": "The type of compute",
+ "$ref": "#/definitions/ComputeType"
+ },
+ "computeLocation": {
+ "description": "Location for the underlying compute",
+ "type": "string"
+ },
+ "provisioningState": {
+ "type": "string",
+ "description": "The provision state of the cluster. Valid values are Unknown, Updating, Provisioning, Succeeded, and Failed.",
+ "enum": [
+ "Unknown",
+ "Updating",
+ "Creating",
+ "Deleting",
+ "Succeeded",
+ "Failed",
+ "Canceled"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true
+ },
+ "readOnly": true
+ },
+ "description": {
+ "type": "string",
+ "description": "The description of the Machine Learning compute."
+ },
+ "createdOn": {
+ "type": "string",
+ "description": "The date and time when the compute was created.",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "modifiedOn": {
+ "type": "string",
+ "description": "The date and time when the compute was last modified.",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "ARM resource id of the underlying compute"
+ },
+ "provisioningErrors": {
+ "type": "array",
+ "description": "Errors during provisioning",
+ "items": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ },
+ "readOnly": true
+ },
+ "isAttachedCompute": {
+ "type": "boolean",
+ "description": "Indicating whether the compute was provisioned by user and brought from outside if true, or machine learning service provisioned it if false.",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "computeType"
+ ]
+ },
+ "AKS": {
+ "description": "A Machine Learning compute based on AKS.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "type": "object",
+ "description": "AKS properties",
+ "properties": {
+ "clusterFqdn": {
+ "description": "Cluster full qualified domain name",
+ "type": "string"
+ },
+ "systemServices": {
+ "type": "array",
+ "description": "System services",
+ "items": {
+ "$ref": "#/definitions/SystemService"
+ },
+ "readOnly": true
+ },
+ "agentCount": {
+ "description": "Number of agents",
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1
+ },
+ "agentVMSize": {
+ "description": "Agent virtual machine size",
+ "type": "string"
+ },
+ "sslConfiguration": {
+ "description": "SSL configuration",
+ "$ref": "#/definitions/SslConfiguration"
+ },
+ "aksNetworkingConfiguration": {
+ "description": "AKS networking configuration for vnet",
+ "$ref": "#/definitions/AksNetworkingConfiguration"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "AKS"
+ },
+ "AmlCompute": {
+ "description": "An Azure Machine Learning compute.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "type": "object",
+ "description": "AML Compute properties",
+ "properties": {
+ "osType": {
+ "description": "Compute OS Type",
+ "type": "string",
+ "enum": [
+ "Linux",
+ "Windows"
+ ],
+ "x-ms-enum": {
+ "name": "OsType",
+ "modelAsString": true
+ }
+ },
+ "vmSize": {
+ "description": "Virtual Machine Size",
+ "type": "string"
+ },
+ "vmPriority": {
+ "description": "Virtual Machine priority",
+ "type": "string",
+ "enum": [
+ "Dedicated",
+ "LowPriority"
+ ],
+ "x-ms-enum": {
+ "name": "VmPriority",
+ "modelAsString": true
+ }
+ },
+ "virtualMachineImage": {
+ "description": "Virtual Machine image for AML Compute - windows only",
+ "$ref": "#/definitions/VirtualMachineImage"
+ },
+ "isolatedNetwork": {
+ "description": "Network is isolated or not",
+ "type": "boolean"
+ },
+ "scaleSettings": {
+ "description": "Scale settings for AML Compute",
+ "$ref": "#/definitions/ScaleSettings"
+ },
+ "userAccountCredentials": {
+ "title": "User account credentials.",
+ "description": "Credentials for an administrator user account that will be created on each compute node.",
+ "$ref": "#/definitions/UserAccountCredentials"
+ },
+ "subnet": {
+ "title": "Subnet.",
+ "description": "Virtual network subnet resource ID the compute nodes belong to.",
+ "$ref": "#/definitions/ResourceId"
+ },
+ "remoteLoginPortPublicAccess": {
+ "type": "string",
+ "default": "NotSpecified",
+ "title": "Close remote Login Access Port",
+ "description": "State of the public SSH port. Possible values are: Disabled - Indicates that the public ssh port is closed on all nodes of the cluster. Enabled - Indicates that the public ssh port is open on all nodes of the cluster. NotSpecified - Indicates that the public ssh port is closed on all nodes of the cluster if VNet is defined, else is open all public nodes. It can be default only during cluster creation time, after creation it will be either enabled or disabled.",
+ "enum": [
+ "Enabled",
+ "Disabled",
+ "NotSpecified"
+ ],
+ "x-ms-enum": {
+ "name": "remoteLoginPortPublicAccess",
+ "modelAsString": true
+ }
+ },
+ "allocationState": {
+ "type": "string",
+ "readOnly": true,
+ "title": "Allocation state.",
+ "description": "Allocation state of the compute. Possible values are: steady - Indicates that the compute is not resizing. There are no changes to the number of compute nodes in the compute in progress. A compute enters this state when it is created and when no operations are being performed on the compute to change the number of compute nodes. resizing - Indicates that the compute is resizing; that is, compute nodes are being added to or removed from the compute.",
+ "enum": [
+ "Steady",
+ "Resizing"
+ ],
+ "x-ms-enum": {
+ "name": "AllocationState",
+ "modelAsString": true
+ }
+ },
+ "allocationStateTransitionTime": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "title": "Allocation state transition time.",
+ "description": "The time at which the compute entered its current allocation state."
+ },
+ "errors": {
+ "readOnly": true,
+ "title": "Errors.",
+ "description": "Collection of errors encountered by various compute nodes during node setup.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ },
+ "currentNodeCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "title": "Current node count.",
+ "description": "The number of compute nodes currently assigned to the compute."
+ },
+ "targetNodeCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "title": "Target node count.",
+ "description": "The target number of compute nodes for the compute. If the allocationState is resizing, this property denotes the target node count for the ongoing resize operation. If the allocationState is steady, this property denotes the target node count for the previous resize operation."
+ },
+ "nodeStateCounts": {
+ "title": "Node state counts.",
+ "description": "Counts of various node states on the compute.",
+ "readOnly": true,
+ "$ref": "#/definitions/NodeStateCounts"
+ },
+ "enableNodePublicIp": {
+ "type": "boolean",
+ "default": true,
+ "title": "Enable node public IP.",
+ "description": "Enable or disable node public IP address provisioning. Possible values are: Possible values are: true - Indicates that the compute nodes will have public IPs provisioned. false - Indicates that the compute nodes will have a private endpoint and no public IPs."
+ }
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "AmlCompute"
+ },
+ "ComputeInstance": {
+ "description": "An Azure Machine Learning compute instance.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "Compute Instance properties",
+ "type": "object",
+ "properties": {
+ "vmSize": {
+ "description": "Virtual Machine Size",
+ "type": "string"
+ },
+ "subnet": {
+ "title": "Subnet.",
+ "description": "Virtual network subnet resource ID the compute nodes belong to.",
+ "$ref": "#/definitions/ResourceId"
+ },
+ "applicationSharingPolicy": {
+ "type": "string",
+ "default": "Shared",
+ "title": "Sharing policy for applications on this compute instance",
+ "description": "Policy for sharing applications on this compute instance among users of parent workspace. If Personal, only the creator can access applications on this compute instance. When Shared, any workspace user can access applications on this instance depending on his/her assigned role.",
+ "enum": [
+ "Personal",
+ "Shared"
+ ],
+ "x-ms-enum": {
+ "name": "applicationSharingPolicy",
+ "modelAsString": true
+ }
+ },
+ "sshSettings": {
+ "description": "Specifies policy and settings for SSH access.",
+ "$ref": "#/definitions/ComputeInstanceSshSettings"
+ },
+ "connectivityEndpoints": {
+ "readOnly": true,
+ "description": "Describes all connectivity endpoints available for this ComputeInstance.",
+ "$ref": "#/definitions/ComputeInstanceConnectivityEndpoints"
+ },
+ "applications": {
+ "type": "array",
+ "readOnly": true,
+ "description": "Describes available applications and their endpoints on this ComputeInstance.",
+ "items": {
+ "$ref": "#/definitions/ComputeInstanceApplication"
+ }
+ },
+ "createdBy": {
+ "readOnly": true,
+ "description": "Describes information on user who created this ComputeInstance.",
+ "$ref": "#/definitions/ComputeInstanceCreatedBy"
+ },
+ "errors": {
+ "readOnly": true,
+ "title": "Errors.",
+ "description": "Collection of errors encountered on this ComputeInstance.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ },
+ "state": {
+ "description": "The current state of this ComputeInstance.",
+ "$ref": "#/definitions/ComputeInstanceState",
+ "readOnly": true
+ },
+ "computeInstanceAuthorizationType": {
+ "type": "string",
+ "title": "Compute Instance Authorization type.",
+ "description": "The Compute Instance Authorization type. Available values are personal (default).",
+ "default": "personal",
+ "enum": [
+ "personal"
+ ],
+ "x-ms-enum": {
+ "name": "ComputeInstanceAuthorizationType",
+ "modelAsString": true
+ }
+ },
+ "personalComputeInstanceSettings": {
+ "title": "Personal Compute Instance settings.",
+ "description": "Settings for a personal compute instance.",
+ "$ref": "#/definitions/PersonalComputeInstanceSettings"
+ },
+ "lastOperation": {
+ "description": "The last operation on ComputeInstance.",
+ "$ref": "#/definitions/ComputeInstanceLastOperation",
+ "readOnly": true
+ }
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "ComputeInstance"
+ },
+ "VirtualMachine": {
+ "description": "A Machine Learning compute based on Azure Virtual Machines.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "type": "object",
+ "properties": {
+ "virtualMachineSize": {
+ "description": "Virtual Machine size",
+ "type": "string"
+ },
+ "sshPort": {
+ "description": "Port open for ssh connections.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "address": {
+ "description": "Public IP address of the virtual machine.",
+ "type": "string"
+ },
+ "administratorAccount": {
+ "description": "Admin credentials for virtual machine",
+ "$ref": "#/definitions/VirtualMachineSshCredentials"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "VirtualMachine"
+ },
+ "HDInsight": {
+ "description": "A HDInsight compute.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "type": "object",
+ "properties": {
+ "sshPort": {
+ "description": "Port open for ssh connections on the master node of the cluster.",
+ "type": "integer",
+ "format": "int32"
+ },
+ "address": {
+ "description": "Public IP address of the master node of the cluster.",
+ "type": "string"
+ },
+ "administratorAccount": {
+ "description": "Admin credentials for master node of the cluster",
+ "$ref": "#/definitions/VirtualMachineSshCredentials"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "HDInsight"
+ },
+ "DataFactory": {
+ "description": "A DataFactory compute.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ }
+ ],
+ "x-ms-discriminator-value": "DataFactory"
+ },
+ "Databricks": {
+ "description": "A DataFactory compute.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "type": "object",
+ "properties": {
+ "databricksAccessToken": {
+ "description": "Databricks access token",
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "Databricks"
+ },
+ "DataLakeAnalytics": {
+ "description": "A DataLakeAnalytics compute.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "type": "object",
+ "properties": {
+ "dataLakeStoreAccountName": {
+ "description": "DataLake Store Account Name",
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "DataLakeAnalytics"
+ },
+ "ServicePrincipalCredentials": {
+ "type": "object",
+ "description": "Service principal credentials.",
+ "properties": {
+ "clientId": {
+ "description": "Client Id",
+ "type": "string"
+ },
+ "clientSecret": {
+ "description": "Client secret",
+ "type": "string"
+ }
+ },
+ "required": [
+ "clientId",
+ "clientSecret"
+ ]
+ },
+ "SystemService": {
+ "type": "object",
+ "description": "A system service running on a compute.",
+ "properties": {
+ "systemServiceType": {
+ "description": "The type of this system service.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "publicIpAddress": {
+ "type": "string",
+ "description": "Public IP address",
+ "readOnly": true
+ },
+ "version": {
+ "description": "The version for this type.",
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ },
+ "SslConfiguration": {
+ "type": "object",
+ "description": "The ssl configuration for scoring",
+ "properties": {
+ "status": {
+ "description": "Enable or disable ssl for scoring",
+ "type": "string",
+ "enum": [
+ "Disabled",
+ "Enabled"
+ ]
+ },
+ "cert": {
+ "description": "Cert data",
+ "type": "string"
+ },
+ "key": {
+ "description": "Key data",
+ "type": "string"
+ },
+ "cname": {
+ "description": "CNAME of the cert",
+ "type": "string"
+ }
+ }
+ },
+ "AksNetworkingConfiguration": {
+ "type": "object",
+ "description": "Advance configuration for AKS networking",
+ "properties": {
+ "subnetId": {
+ "description": "Virtual network subnet resource ID the compute nodes belong to",
+ "type": "string"
+ },
+ "serviceCidr": {
+ "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$",
+ "description": "A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges.",
+ "type": "string"
+ },
+ "dnsServiceIP": {
+ "pattern": "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$",
+ "description": "An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr.",
+ "type": "string"
+ },
+ "dockerBridgeCidr": {
+ "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$",
+ "description": "A CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP ranges or the Kubernetes service address range.",
+ "type": "string"
+ }
+ }
+ },
+ "UserAccountCredentials": {
+ "properties": {
+ "adminUserName": {
+ "type": "string",
+ "title": "User name.",
+ "description": "Name of the administrator user account which can be used to SSH to nodes."
+ },
+ "adminUserSshPublicKey": {
+ "type": "string",
+ "title": "SSH public key.",
+ "description": "SSH public key of the administrator user account."
+ },
+ "adminUserPassword": {
+ "type": "string",
+ "title": "Password.",
+ "description": "Password of the administrator user account."
+ }
+ },
+ "required": [
+ "adminUserName"
+ ],
+ "description": "Settings for user account that gets created on each on the nodes of a compute."
+ },
+ "ScaleSettings": {
+ "type": "object",
+ "description": "scale settings for AML Compute",
+ "properties": {
+ "maxNodeCount": {
+ "description": "Max number of nodes to use",
+ "type": "integer",
+ "format": "int32"
+ },
+ "minNodeCount": {
+ "description": "Min number of nodes to use",
+ "type": "integer",
+ "format": "int32",
+ "default": 0
+ },
+ "nodeIdleTimeBeforeScaleDown": {
+ "type": "string",
+ "format": "duration",
+ "description": "Node Idle Time before scaling down amlCompute. This string needs to be in the RFC Format."
+ }
+ },
+ "required": [
+ "maxNodeCount"
+ ]
+ },
+ "VirtualMachineImage": {
+ "type": "object",
+ "description": "Virtual Machine image for Windows AML Compute",
+ "properties": {
+ "id": {
+ "description": "Virtual Machine image path",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id"
+ ]
+ },
+ "NodeStateCounts": {
+ "properties": {
+ "idleNodeCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "title": "Idle node count.",
+ "description": "Number of compute nodes in idle state."
+ },
+ "runningNodeCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "title": "Running node count.",
+ "description": "Number of compute nodes which are running jobs."
+ },
+ "preparingNodeCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "title": "Preparing node count.",
+ "description": "Number of compute nodes which are being prepared."
+ },
+ "unusableNodeCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "title": "Unusable node count.",
+ "description": "Number of compute nodes which are in unusable state."
+ },
+ "leavingNodeCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "title": "Leaving node count.",
+ "description": "Number of compute nodes which are leaving the amlCompute."
+ },
+ "preemptedNodeCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "title": "Preempted node count.",
+ "description": "Number of compute nodes which are in preempted state."
+ }
+ },
+ "description": "Counts of various compute node states on the amlCompute."
+ },
+ "ClusterUpdateProperties": {
+ "properties": {
+ "scaleSettings": {
+ "$ref": "#/definitions/ScaleSettings",
+ "title": "Scale settings.",
+ "description": "Desired scale settings for the amlCompute."
+ }
+ },
+ "description": "The properties of a amlCompute that need to be updated."
+ },
+ "ClusterUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ClusterUpdateProperties",
+ "description": "The properties of the amlCompute."
+ }
+ },
+ "description": "AmlCompute update parameters."
+ },
+ "ComputeNodesInformation": {
+ "type": "object",
+ "description": "Compute nodes information related to a Machine Learning compute. Might differ for every type of compute.",
+ "discriminator": "computeType",
+ "properties": {
+ "computeType": {
+ "description": "The type of compute",
+ "$ref": "#/definitions/ComputeType"
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The continuation token."
+ }
+ },
+ "required": [
+ "computeType"
+ ]
+ },
+ "AmlComputeNodesInformation": {
+ "description": "Compute node information related to a AmlCompute.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ComputeNodesInformation"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "nodes": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AmlComputeNodeInformation"
+ },
+ "description": "The collection of returned AmlCompute nodes details."
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "AmlCompute"
+ },
+ "AmlComputeNodeInformation": {
+ "description": "Compute node information related to a AmlCompute.",
+ "properties": {
+ "nodeId": {
+ "readOnly": true,
+ "type": "string",
+ "title": "Node ID.",
+ "description": "ID of the compute node."
+ },
+ "privateIpAddress": {
+ "readOnly": true,
+ "type": "string",
+ "title": "Private IP address.",
+ "description": "Private IP address of the compute node."
+ },
+ "publicIpAddress": {
+ "readOnly": true,
+ "type": "string",
+ "title": "Public IP address.",
+ "description": "Public IP address of the compute node."
+ },
+ "port": {
+ "readOnly": true,
+ "type": "number",
+ "format": "int32",
+ "title": "Port.",
+ "description": "SSH port number of the node."
+ },
+ "nodeState": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "preparing",
+ "unusable",
+ "leaving",
+ "preempted"
+ ],
+ "description": "State of the compute node. Values are idle, running, preparing, unusable, leaving and preempted.",
+ "x-ms-enum": {
+ "name": "nodeState",
+ "modelAsString": true
+ }
+ },
+ "runId": {
+ "readOnly": true,
+ "type": "string",
+ "title": "Run ID.",
+ "description": "ID of the Experiment running on the node, if any else null."
+ }
+ },
+ "x-ms-discriminator-value": "AmlCompute"
+ },
+ "VirtualMachineSshCredentials": {
+ "type": "object",
+ "description": "Admin credentials for virtual machine",
+ "properties": {
+ "username": {
+ "description": "Username of admin account",
+ "type": "string"
+ },
+ "password": {
+ "description": "Password of admin account",
+ "type": "string"
+ },
+ "publicKeyData": {
+ "description": "Public key data",
+ "type": "string"
+ },
+ "privateKeyData": {
+ "description": "Private key data",
+ "type": "string"
+ }
+ }
+ },
+ "ComputeSecrets": {
+ "type": "object",
+ "description": "Secrets related to a Machine Learning compute. Might differ for every type of compute.",
+ "discriminator": "computeType",
+ "properties": {
+ "computeType": {
+ "description": "The type of compute",
+ "$ref": "#/definitions/ComputeType"
+ }
+ },
+ "required": [
+ "computeType"
+ ]
+ },
+ "AksComputeSecrets": {
+ "description": "Secrets related to a Machine Learning compute based on AKS.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ComputeSecrets"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "userKubeConfig": {
+ "type": "string",
+ "description": "Content of kubeconfig file that can be used to connect to the Kubernetes cluster."
+ },
+ "adminKubeConfig": {
+ "type": "string",
+ "description": "Content of kubeconfig file that can be used to connect to the Kubernetes cluster."
+ },
+ "imagePullSecretName": {
+ "type": "string",
+ "description": "Image registry pull secret."
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "AKS"
+ },
+ "VirtualMachineSecrets": {
+ "description": "Secrets related to a Machine Learning compute based on AKS.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ComputeSecrets"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "administratorAccount": {
+ "description": "Admin credentials for virtual machine.",
+ "$ref": "#/definitions/VirtualMachineSshCredentials"
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "VirtualMachine"
+ },
+ "DatabricksComputeSecrets": {
+ "description": "Secrets related to a Machine Learning compute based on Databricks.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ComputeSecrets"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "databricksAccessToken": {
+ "description": "access token for databricks account.",
+ "type": "string"
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "Databricks"
+ },
+ "ComputeType": {
+ "type": "string",
+ "description": "The type of compute",
+ "enum": [
+ "AKS",
+ "AmlCompute",
+ "ComputeInstance",
+ "DataFactory",
+ "VirtualMachine",
+ "HDInsight",
+ "Databricks",
+ "DataLakeAnalytics"
+ ],
+ "x-ms-enum": {
+ "name": "ComputeType",
+ "modelAsString": true
+ }
+ },
+ "MachineLearningServiceError": {
+ "type": "object",
+ "description": "Wrapper for error response to follow ARM guidelines.",
+ "properties": {
+ "error": {
+ "description": "The error response.",
+ "$ref": "#/definitions/ErrorResponse",
+ "readOnly": true
+ }
+ }
+ },
+ "ErrorResponse": {
+ "type": "object",
+ "description": "Error response information.",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Error code.",
+ "readOnly": true
+ },
+ "message": {
+ "type": "string",
+ "description": "Error message.",
+ "readOnly": true
+ },
+ "details": {
+ "type": "array",
+ "description": "An array of error detail objects.",
+ "items": {
+ "$ref": "#/definitions/ErrorDetail"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "ErrorDetail": {
+ "type": "object",
+ "description": "Error detail information.",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Error message."
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ]
+ },
+ "SKUCapability": {
+ "description": "Features/user capabilities associated with the sku",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Capability/Feature ID",
+ "type": "string"
+ },
+ "value": {
+ "description": "Details about the feature/capability",
+ "type": "string"
+ }
+ }
+ },
+ "ResourceSkuLocationInfo": {
+ "properties": {
+ "location": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Location of the SKU"
+ },
+ "zones": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of availability zones where the SKU is supported."
+ },
+ "zoneDetails": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceSkuZoneDetails"
+ },
+ "description": "Details of capabilities available to a SKU in specific zones."
+ }
+ }
+ },
+ "ResourceSkuZoneDetails": {
+ "properties": {
+ "name": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "type": "string"
+ },
+ "description": "The set of zones that the SKU is available in with the specified capabilities."
+ },
+ "capabilities": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/SKUCapability"
+ },
+ "description": "A list of capabilities that are available for the SKU in the specified list of zones."
+ }
+ },
+ "description": "Describes The zonal capabilities of a SKU."
+ },
+ "WorkspaceSku": {
+ "description": "Describes Workspace Sku details and features",
+ "type": "object",
+ "properties": {
+ "locations": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The set of locations that the SKU is available. This will be supported and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.)."
+ },
+ "locationInfo": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/ResourceSkuLocationInfo"
+ },
+ "description": "A list of locations and availability zones in those locations where the SKU is available."
+ },
+ "tier": {
+ "description": "Sku Tier like Basic or Enterprise",
+ "type": "string",
+ "readOnly": true
+ },
+ "resourceType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true
+ },
+ "capabilities": {
+ "description": "List of features/user capabilities associated with the sku",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SKUCapability"
+ },
+ "readOnly": true
+ },
+ "restrictions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Restriction"
+ },
+ "description": "The restrictions because of which SKU cannot be used. This is empty if there are no restrictions."
+ }
+ }
+ },
+ "Restriction": {
+ "properties": {
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The type of restrictions. As of now only possible value for this is location."
+ },
+ "values": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted."
+ },
+ "reasonCode": {
+ "type": "string",
+ "enum": [
+ "NotSpecified",
+ "NotAvailableForRegion",
+ "NotAvailableForSubscription"
+ ],
+ "x-ms-enum": {
+ "name": "ReasonCode",
+ "modelAsString": true
+ },
+ "description": "The reason for the restriction."
+ }
+ },
+ "description": "The restriction because of which SKU cannot be used."
+ },
+ "SkuListResult": {
+ "description": "List of skus with features",
+ "type": "object",
+ "properties": {
+ "value": {
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/WorkspaceSku"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of Workspace Skus. Call ListNext() with this URI to fetch the next page of Workspace Skus"
+ }
+ }
+ },
+ "Sku": {
+ "description": "Sku of the resource",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the sku",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Tier of the sku like Basic or Enterprise",
+ "type": "string"
+ }
+ }
+ },
+ "PrivateEndpointConnection": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "x-ms-client-flatten": true,
+ "description": "Resource properties."
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/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."
+ },
+ "PrivateEndpoint": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The ARM identifier for Private Endpoint"
+ }
+ },
+ "description": "The Private Endpoint resource."
+ },
+ "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",
+ "Disconnected",
+ "Timeout"
+ ],
+ "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
+ }
+ },
+ "PrivateLinkResourceListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "Array of private link resources",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ }
+ }
+ },
+ "description": "A list of private link resources"
+ },
+ "PrivateLinkResource": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateLinkResourceProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/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."
+ },
+ "SharedPrivateLinkResource": {
+ "properties": {
+ "name": {
+ "description": "Unique name of the private link.",
+ "type": "string"
+ },
+ "properties": {
+ "$ref": "#/definitions/SharedPrivateLinkResourceProperty",
+ "x-ms-client-flatten": true,
+ "description": "Resource properties."
+ }
+ }
+ },
+ "SharedPrivateLinkResourceProperty": {
+ "properties": {
+ "privateLinkResourceId": {
+ "description": "The resource id that private link links to.",
+ "type": "string"
+ },
+ "groupId": {
+ "description": "The private link resource group id.",
+ "type": "string"
+ },
+ "requestMessage": {
+ "description": "Request message.",
+ "type": "string"
+ },
+ "status": {
+ "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus",
+ "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service."
+ }
+ },
+ "description": "Properties of a shared private link resource."
+ },
+ "EncryptionProperty": {
+ "properties": {
+ "status": {
+ "description": "Indicates whether or not the encryption is enabled for the workspace.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "EncryptionStatus",
+ "modelAsString": true
+ }
+ },
+ "keyVaultProperties": {
+ "$ref": "#/definitions/KeyVaultProperties",
+ "description": "Customer Key vault properties."
+ }
+ },
+ "required": [
+ "status",
+ "keyVaultProperties"
+ ],
+ "type": "object"
+ },
+ "KeyVaultProperties": {
+ "properties": {
+ "keyVaultArmId": {
+ "description": "The ArmId of the keyVault where the customer owned encryption key is present.",
+ "type": "string"
+ },
+ "keyIdentifier": {
+ "description": "Key vault uri to access the encryption key.",
+ "type": "string"
+ },
+ "identityClientId": {
+ "description": "For future use - The client id of the identity which will be used to access key vault.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "keyIdentifier",
+ "keyVaultArmId"
+ ],
+ "type": "object"
+ },
+ "LinkedServiceResponse": {
+ "description": "Linked service.",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "ResourceId of the link of the linked service.",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Friendly name of the linked service.",
+ "readOnly": true
+ },
+ "type": {
+ "type": "string",
+ "description": "Resource type of linked service.",
+ "readOnly": true
+ },
+ "location": {
+ "description": "location of the linked service.",
+ "type": "string"
+ },
+ "identity": {
+ "$ref": "#/definitions/Identity"
+ },
+ "properties": {
+ "$ref": "#/definitions/LinkedServiceProps"
+ }
+ }
+ },
+ "LinkedServiceRequest": {
+ "type": "object",
+ "description": "object used for creating linked service.",
+ "properties": {
+ "name": {
+ "description": "Friendly name of the linked service",
+ "type": "string"
+ },
+ "location": {
+ "description": "location of the linked service.",
+ "type": "string"
+ },
+ "identity": {
+ "$ref": "#/definitions/Identity"
+ },
+ "properties": {
+ "$ref": "#/definitions/LinkedServiceProps"
+ }
+ }
+ },
+ "LinkedServiceProps": {
+ "type": "object",
+ "description": "LinkedService specific properties.",
+ "required": [
+ "linkedServiceResourceId"
+ ],
+ "properties": {
+ "linkedServiceResourceId": {
+ "description": "ResourceId of the link target of the linked service.",
+ "type": "string"
+ },
+ "linkType": {
+ "description": "Type of the link target.",
+ "type": "string",
+ "enum": [
+ "Synapse"
+ ],
+ "x-ms-enum": {
+ "name": "LinkedServiceLinkType",
+ "modelAsString": false
+ }
+ },
+ "createdTime": {
+ "format": "date-time",
+ "description": "The creation time of the linked service.",
+ "type": "string"
+ },
+ "modifiedTime": {
+ "format": "date-time",
+ "description": "The last modified time of the linked service.",
+ "type": "string"
+ }
+ }
+ },
+ "LinkedServiceList": {
+ "type": "object",
+ "description": "List response of linked service.",
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "description": "Array of linked service.",
+ "items": {
+ "$ref": "#/definitions/LinkedServiceResponse"
+ }
+ }
+ }
+ },
+ "ServiceResource": {
+ "type": "object",
+ "description": "Machine Learning service object wrapped into ARM resource envelope.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "Service properties",
+ "$ref": "#/definitions/ServiceResponseBase"
+ }
+ }
+ }
+ ]
+ },
+ "ServiceResponseBase": {
+ "description": "The base service response. The correct inherited response based on computeType will be returned (ex. ACIServiceResponse)",
+ "required": [
+ "computeType"
+ ],
+ "type": "object",
+ "properties": {
+ "description": {
+ "description": "The service description.",
+ "type": "string"
+ },
+ "kvTags": {
+ "description": "The service tag dictionary. Tags are mutable.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "properties": {
+ "description": "The service property dictionary. Properties are immutable.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "state": {
+ "description": "The current state of the service.",
+ "enum": [
+ "Transitioning",
+ "Healthy",
+ "Unhealthy",
+ "Failed",
+ "Unschedulable"
+ ],
+ "type": "string",
+ "example": "Healthy",
+ "x-ms-enum": {
+ "name": "WebServiceState",
+ "modelAsString": true
+ },
+ "readOnly": true
+ },
+ "error": {
+ "description": "The error details.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ ],
+ "readOnly": true
+ },
+ "computeType": {
+ "description": "The compute environment type for the service.",
+ "enum": [
+ "ACI",
+ "AKS"
+ ],
+ "type": "string",
+ "example": "AKS",
+ "x-ms-enum": {
+ "name": "ComputeEnvironmentType",
+ "modelAsString": true
+ }
+ },
+ "deploymentType": {
+ "description": "The deployment type for the service.",
+ "enum": [
+ "GRPCRealtimeEndpoint",
+ "HttpRealtimeEndpoint",
+ "Batch"
+ ],
+ "type": "string",
+ "example": "HttpRealtimeEndpoint",
+ "x-ms-enum": {
+ "name": "DeploymentType",
+ "modelAsString": true
+ }
+ }
+ },
+ "discriminator": "computeType"
+ },
+ "PaginatedServiceList": {
+ "type": "object",
+ "description": "Paginated list of Machine Learning service objects wrapped in ARM resource envelope.",
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "description": "An array of Machine Learning compute objects wrapped in ARM resource envelope.",
+ "items": {
+ "$ref": "#/definitions/ServiceResource"
+ }
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "A continuation link (absolute URI) to the next page of results in the list."
+ }
+ }
+ },
+ "ACIServiceResponse": {
+ "description": "The response for an ACI service.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceResponseBase"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "containerResourceRequirements": {
+ "description": "The container resource requirements.",
+ "$ref": "#/definitions/ContainerResourceRequirements"
+ },
+ "scoringUri": {
+ "description": "The Uri for sending scoring requests.",
+ "type": "string",
+ "readOnly": true
+ },
+ "location": {
+ "description": "The name of the Azure location/region.",
+ "type": "string"
+ },
+ "authEnabled": {
+ "description": "Whether or not authentication is enabled on the service.",
+ "type": "boolean"
+ },
+ "sslEnabled": {
+ "description": "Whether or not SSL is enabled.",
+ "type": "boolean"
+ },
+ "appInsightsEnabled": {
+ "description": "Whether or not Application Insights is enabled.",
+ "type": "boolean"
+ },
+ "dataCollection": {
+ "description": "Details of the data collection options specified.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ModelDataCollection"
+ }
+ ]
+ },
+ "sslCertificate": {
+ "description": "The public SSL certificate in PEM format to use if SSL is enabled.",
+ "type": "string"
+ },
+ "sslKey": {
+ "description": "The public SSL key in PEM format for the certificate.",
+ "type": "string"
+ },
+ "cname": {
+ "description": "The CName for the service.",
+ "type": "string"
+ },
+ "publicIp": {
+ "description": "The public IP address for the service.",
+ "type": "string"
+ },
+ "publicFqdn": {
+ "description": "The public Fqdn for the service.",
+ "type": "string"
+ },
+ "swaggerUri": {
+ "description": "The Uri for sending swagger requests.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modelConfigMap": {
+ "description": "Details on the models and configurations.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "readOnly": true
+ },
+ "models": {
+ "description": "The list of models.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Model"
+ }
+ },
+ "environmentImageRequest": {
+ "description": "The Environment, models and assets used for inferencing.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EnvironmentImageResponse"
+ }
+ ]
+ },
+ "vnetConfiguration": {
+ "description": "The virtual network configuration.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/VnetConfiguration"
+ }
+ ]
+ },
+ "encryptionProperties": {
+ "description": "The encryption properties.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EncryptionProperties"
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "ACI"
+ },
+ "ContainerResourceRequirements": {
+ "description": "The resource requirements for the container (cpu and memory).",
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "format": "double",
+ "description": "The number of CPU cores on the container.",
+ "type": "number",
+ "example": 4
+ },
+ "memoryInGB": {
+ "format": "double",
+ "description": "The amount of memory on the container in GB.",
+ "type": "number",
+ "example": 64
+ },
+ "gpu": {
+ "format": "int32",
+ "description": "The number of GPU cores in the container.",
+ "type": "integer"
+ },
+ "fpga": {
+ "format": "int32",
+ "description": "The number of FPGA PCIE devices exposed to the container. Must be multiple of 2.",
+ "type": "integer"
+ }
+ }
+ },
+ "ModelDataCollection": {
+ "description": "The Model data collection properties.",
+ "type": "object",
+ "properties": {
+ "eventHubEnabled": {
+ "description": "Option for enabling/disabling Event Hub.",
+ "type": "boolean"
+ },
+ "storageEnabled": {
+ "description": "Option for enabling/disabling storage.",
+ "type": "boolean"
+ }
+ }
+ },
+ "VnetConfiguration": {
+ "type": "object",
+ "properties": {
+ "vnetName": {
+ "description": "The name of the virtual network.",
+ "type": "string"
+ },
+ "subnetName": {
+ "description": "The name of the virtual network subnet.",
+ "type": "string"
+ }
+ }
+ },
+ "EncryptionProperties": {
+ "type": "object",
+ "properties": {
+ "vaultBaseUrl": {
+ "description": "vault base Url",
+ "type": "string"
+ },
+ "keyName": {
+ "description": "Encryption Key name",
+ "type": "string"
+ },
+ "keyVersion": {
+ "description": "Encryption Key Version",
+ "type": "string"
+ }
+ },
+ "required": [
+ "vaultBaseUrl",
+ "keyName",
+ "keyVersion"
+ ]
+ },
+ "Model": {
+ "description": "An Azure Machine Learning Model.",
+ "required": [
+ "mimeType",
+ "name",
+ "url"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The Model Id.",
+ "type": "string",
+ "example": "sklearn_mnist:1"
+ },
+ "name": {
+ "description": "The Model name.",
+ "type": "string",
+ "example": "sklearn_mnist"
+ },
+ "framework": {
+ "description": "The Model framework.",
+ "type": "string"
+ },
+ "frameworkVersion": {
+ "description": "The Model framework version.",
+ "type": "string"
+ },
+ "version": {
+ "format": "int64",
+ "description": "The Model version assigned by Model Management Service.",
+ "type": "integer",
+ "example": 1
+ },
+ "datasets": {
+ "description": "The list of datasets associated with the model.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DatasetReference"
+ }
+ },
+ "url": {
+ "description": "The URL of the Model. Usually a SAS URL.",
+ "type": "string"
+ },
+ "mimeType": {
+ "description": "The MIME type of Model content. For more details about MIME type, please open https://www.iana.org/assignments/media-types/media-types.xhtml",
+ "type": "string"
+ },
+ "description": {
+ "description": "The Model description text.",
+ "type": "string",
+ "example": "A mnist model, first version."
+ },
+ "createdTime": {
+ "format": "date-time",
+ "description": "The Model creation time (UTC).",
+ "type": "string"
+ },
+ "modifiedTime": {
+ "format": "date-time",
+ "description": "The Model last modified time (UTC).",
+ "type": "string"
+ },
+ "unpack": {
+ "description": "Indicates whether we need to unpack the Model during docker Image creation.",
+ "type": "boolean"
+ },
+ "parentModelId": {
+ "description": "The Parent Model Id.",
+ "type": "string",
+ "example": "sklearn_mnist_root:1"
+ },
+ "runId": {
+ "description": "The RunId that created this model.",
+ "type": "string"
+ },
+ "experimentName": {
+ "description": "The name of the experiment where this model was created.",
+ "type": "string"
+ },
+ "kvTags": {
+ "description": "The Model tag dictionary. Items are mutable.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "properties": {
+ "description": "The Model property dictionary. Properties are immutable.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "derivedModelIds": {
+ "description": "Models derived from this model",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "sampleInputData": {
+ "description": "Sample Input Data for the Model. A reference to a dataset in the workspace in the format aml://dataset/{datasetId}",
+ "type": "string"
+ },
+ "sampleOutputData": {
+ "description": "Sample Output Data for the Model. A reference to a dataset in the workspace in the format aml://dataset/{datasetId}",
+ "type": "string"
+ },
+ "resourceRequirements": {
+ "description": "Resource requirements for the model",
+ "$ref": "#/definitions/ContainerResourceRequirements"
+ }
+ }
+ },
+ "EnvironmentImageRequest": {
+ "description": "Request to create a Docker image based on Environment.",
+ "type": "object",
+ "properties": {
+ "driverProgram": {
+ "description": "The name of the driver file.",
+ "type": "string"
+ },
+ "assets": {
+ "description": "The list of assets.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageAsset"
+ }
+ },
+ "modelIds": {
+ "description": "The list of model Ids.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "models": {
+ "description": "The list of models.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Model"
+ }
+ },
+ "environment": {
+ "description": "The details of the AZURE ML environment.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ModelEnvironmentDefinition"
+ }
+ ]
+ },
+ "environmentReference": {
+ "description": "The unique identifying details of the AZURE ML environment.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EnvironmentReference"
+ }
+ ]
+ }
+ }
+ },
+ "EnvironmentImageResponse": {
+ "description": "Request to create a Docker image based on Environment.",
+ "type": "object",
+ "properties": {
+ "driverProgram": {
+ "description": "The name of the driver file.",
+ "type": "string"
+ },
+ "assets": {
+ "description": "The list of assets.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageAsset"
+ }
+ },
+ "modelIds": {
+ "description": "The list of model Ids.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "models": {
+ "description": "The list of models.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Model"
+ }
+ },
+ "environment": {
+ "description": "The details of the AZURE ML environment.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ModelEnvironmentDefinitionResponse"
+ }
+ ]
+ },
+ "environmentReference": {
+ "description": "The unique identifying details of the AZURE ML environment.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EnvironmentReference"
+ }
+ ]
+ }
+ }
+ },
+ "ImageAsset": {
+ "description": "An Image asset.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The Asset Id.",
+ "type": "string"
+ },
+ "mimeType": {
+ "description": "The mime type.",
+ "type": "string"
+ },
+ "url": {
+ "description": "The Url of the Asset.",
+ "type": "string"
+ },
+ "unpack": {
+ "description": "Whether the Asset is unpacked.",
+ "type": "boolean"
+ }
+ }
+ },
+ "ModelEnvironmentDefinition": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the environment.",
+ "type": "string",
+ "example": "mydevenvironment"
+ },
+ "version": {
+ "description": "The environment version.",
+ "type": "string",
+ "example": "1"
+ },
+ "python": {
+ "description": "Settings for a Python environment.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ModelPythonSection"
+ }
+ ]
+ },
+ "environmentVariables": {
+ "description": "Definition of environment variables to be defined in the environment.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "docker": {
+ "description": "The definition of a Docker container.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ModelDockerSection"
+ }
+ ]
+ },
+ "spark": {
+ "description": "The configuration for a Spark environment.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ModelSparkSection"
+ }
+ ]
+ },
+ "r": {
+ "description": "Settings for a R environment.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/RSection"
+ }
+ ]
+ },
+ "inferencingStackVersion": {
+ "description": "The inferencing stack version added to the image. To avoid adding an inferencing stack, do not set this value. Valid values: \"latest\".",
+ "type": "string",
+ "example": "latest"
+ }
+ }
+ },
+ "ModelEnvironmentDefinitionResponse": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the environment.",
+ "type": "string",
+ "example": "mydevenvironment"
+ },
+ "version": {
+ "description": "The environment version.",
+ "type": "string",
+ "example": "1"
+ },
+ "python": {
+ "description": "Settings for a Python environment.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ModelPythonSection"
+ }
+ ]
+ },
+ "environmentVariables": {
+ "description": "Definition of environment variables to be defined in the environment.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "docker": {
+ "description": "The definition of a Docker container.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ModelDockerSectionResponse"
+ }
+ ]
+ },
+ "spark": {
+ "description": "The configuration for a Spark environment.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ModelSparkSection"
+ }
+ ]
+ },
+ "r": {
+ "description": "Settings for a R environment.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/RSectionResponse"
+ }
+ ]
+ },
+ "inferencingStackVersion": {
+ "description": "The inferencing stack version added to the image. To avoid adding an inferencing stack, do not set this value. Valid values: \"latest\".",
+ "type": "string",
+ "example": "latest"
+ }
+ }
+ },
+ "EnvironmentReference": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the environment.",
+ "type": "string"
+ },
+ "version": {
+ "description": "Version of the environment.",
+ "type": "string"
+ }
+ }
+ },
+ "ModelPythonSection": {
+ "type": "object",
+ "properties": {
+ "interpreterPath": {
+ "description": "The python interpreter path to use if an environment build is not required. The path specified gets used to call the user script.",
+ "type": "string"
+ },
+ "userManagedDependencies": {
+ "description": "True means that AzureML reuses an existing python environment; False means that AzureML will create a python environment based on the Conda dependencies specification.",
+ "type": "boolean"
+ },
+ "condaDependencies": {
+ "description": "A JObject containing Conda dependencies.",
+ "type": "object"
+ },
+ "baseCondaEnvironment": {
+ "type": "string"
+ }
+ }
+ },
+ "ContainerRegistry": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "x-ms-secret": true
+ },
+ "password": {
+ "type": "string",
+ "x-ms-secret": true
+ }
+ }
+ },
+ "ContainerRegistryResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ }
+ }
+ },
+ "ModelDockerSection": {
+ "type": "object",
+ "properties": {
+ "baseImage": {
+ "description": "Base image used for Docker-based runs. Mutually exclusive with BaseDockerfile.",
+ "type": "string",
+ "example": "ubuntu:latest"
+ },
+ "baseDockerfile": {
+ "description": "Base Dockerfile used for Docker-based runs. Mutually exclusive with BaseImage.",
+ "type": "string",
+ "example": "FROM ubuntu:latest\r\nRUN echo \"Hello world!\""
+ },
+ "baseImageRegistry": {
+ "description": "Image registry that contains the base image.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ContainerRegistry"
+ }
+ ]
+ }
+ }
+ },
+ "ModelDockerSectionResponse": {
+ "type": "object",
+ "properties": {
+ "baseImage": {
+ "description": "Base image used for Docker-based runs. Mutually exclusive with BaseDockerfile.",
+ "type": "string",
+ "example": "ubuntu:latest"
+ },
+ "baseDockerfile": {
+ "description": "Base Dockerfile used for Docker-based runs. Mutually exclusive with BaseImage.",
+ "type": "string",
+ "example": "FROM ubuntu:latest\r\nRUN echo \"Hello world!\""
+ },
+ "baseImageRegistry": {
+ "description": "Image registry that contains the base image.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ContainerRegistryResponse"
+ }
+ ]
+ }
+ }
+ },
+ "SparkMavenPackage": {
+ "type": "object",
+ "properties": {
+ "group": {
+ "type": "string"
+ },
+ "artifact": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ }
+ }
+ },
+ "ModelSparkSection": {
+ "type": "object",
+ "properties": {
+ "repositories": {
+ "description": "The list of spark repositories.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "packages": {
+ "description": "The Spark packages to use.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SparkMavenPackage"
+ }
+ },
+ "precachePackages": {
+ "description": "Whether to precache the packages.",
+ "type": "boolean"
+ }
+ }
+ },
+ "RCranPackage": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The package name.",
+ "type": "string"
+ },
+ "repository": {
+ "description": "The repository name.",
+ "type": "string"
+ }
+ }
+ },
+ "RGitHubPackage": {
+ "type": "object",
+ "properties": {
+ "repository": {
+ "description": "Repository address in the format username/repo[/subdir][@ref|#pull].",
+ "type": "string"
+ },
+ "authToken": {
+ "description": "Personal access token to install from a private repo",
+ "type": "string",
+ "x-ms-secret": true
+ }
+ }
+ },
+ "RGitHubPackageResponse": {
+ "type": "object",
+ "properties": {
+ "repository": {
+ "description": "Repository address in the format username/repo[/subdir][@ref|#pull].",
+ "type": "string"
+ }
+ }
+ },
+ "RSection": {
+ "type": "object",
+ "properties": {
+ "rVersion": {
+ "description": "The version of R to be installed",
+ "type": "string"
+ },
+ "userManaged": {
+ "description": "Indicates whether the environment is managed by user or by AzureML.",
+ "type": "boolean"
+ },
+ "rscriptPath": {
+ "description": "The Rscript path to use if an environment build is not required.\r\nThe path specified gets used to call the user script.",
+ "type": "string"
+ },
+ "snapshotDate": {
+ "description": "Date of MRAN snapshot to use in YYYY-MM-DD format, e.g. \"2019-04-17\"",
+ "type": "string"
+ },
+ "cranPackages": {
+ "description": "The CRAN packages to use.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RCranPackage"
+ }
+ },
+ "gitHubPackages": {
+ "description": "The packages directly from GitHub.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RGitHubPackage"
+ }
+ },
+ "customUrlPackages": {
+ "description": "The packages from custom urls.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "bioConductorPackages": {
+ "description": "The packages from Bioconductor.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "RSectionResponse": {
+ "type": "object",
+ "properties": {
+ "rVersion": {
+ "description": "The version of R to be installed",
+ "type": "string"
+ },
+ "userManaged": {
+ "description": "Indicates whether the environment is managed by user or by AzureML.",
+ "type": "boolean"
+ },
+ "rscriptPath": {
+ "description": "The Rscript path to use if an environment build is not required.\r\nThe path specified gets used to call the user script.",
+ "type": "string"
+ },
+ "snapshotDate": {
+ "description": "Date of MRAN snapshot to use in YYYY-MM-DD format, e.g. \"2019-04-17\"",
+ "type": "string"
+ },
+ "cranPackages": {
+ "description": "The CRAN packages to use.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RCranPackage"
+ }
+ },
+ "gitHubPackages": {
+ "description": "The packages directly from GitHub.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RGitHubPackageResponse"
+ }
+ },
+ "customUrlPackages": {
+ "description": "The packages from custom urls.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "bioConductorPackages": {
+ "description": "The packages from Bioconductor.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "DatasetReference": {
+ "description": "The dataset reference object.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name of the dataset reference.",
+ "type": "string"
+ },
+ "id": {
+ "description": "The id of the dataset reference.",
+ "type": "string"
+ }
+ }
+ },
+ "AKSVariantResponse": {
+ "description": "The response for an AKS variant.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ServiceResponseBase"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "isDefault": {
+ "description": "Is this the default variant.",
+ "type": "boolean"
+ },
+ "trafficPercentile": {
+ "format": "float",
+ "description": "The amount of traffic variant receives.",
+ "type": "number",
+ "example": 100
+ },
+ "type": {
+ "description": "The type of the variant.",
+ "enum": [
+ "Control",
+ "Treatment"
+ ],
+ "type": "string",
+ "example": "Control",
+ "x-ms-enum": {
+ "name": "VariantType",
+ "modelAsString": true
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "Custom"
+ },
+ "AutoScaler": {
+ "description": "The Auto Scaler properties.",
+ "type": "object",
+ "properties": {
+ "autoscaleEnabled": {
+ "description": "Option to enable/disable auto scaling.",
+ "type": "boolean"
+ },
+ "minReplicas": {
+ "format": "int32",
+ "description": "The minimum number of replicas to scale down to.",
+ "type": "integer",
+ "example": 1
+ },
+ "maxReplicas": {
+ "format": "int32",
+ "description": "The maximum number of replicas in the cluster.",
+ "type": "integer",
+ "example": 3
+ },
+ "targetUtilization": {
+ "format": "int32",
+ "description": "The target utilization percentage to use for determining whether to scale the cluster.",
+ "type": "integer",
+ "example": 70
+ },
+ "refreshPeriodInSeconds": {
+ "format": "int32",
+ "description": "The amount of seconds to wait between auto scale updates.",
+ "type": "integer",
+ "example": 120
+ }
+ }
+ },
+ "AKSReplicaStatus": {
+ "type": "object",
+ "properties": {
+ "desiredReplicas": {
+ "format": "int32",
+ "description": "The desired number of replicas.",
+ "type": "integer",
+ "example": 2
+ },
+ "updatedReplicas": {
+ "format": "int32",
+ "description": "The number of updated replicas.",
+ "type": "integer",
+ "example": 1
+ },
+ "availableReplicas": {
+ "format": "int32",
+ "description": "The number of available replicas.",
+ "type": "integer",
+ "example": 1
+ },
+ "error": {
+ "description": "The error details.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ErrorResponse"
+ }
+ ]
+ }
+ }
+ },
+ "LivenessProbeRequirements": {
+ "description": "The liveness probe requirements.",
+ "type": "object",
+ "properties": {
+ "failureThreshold": {
+ "format": "int32",
+ "description": "The number of failures to allow before returning an unhealthy status.",
+ "type": "integer"
+ },
+ "successThreshold": {
+ "format": "int32",
+ "description": "The number of successful probes before returning a healthy status.",
+ "type": "integer"
+ },
+ "timeoutSeconds": {
+ "format": "int32",
+ "description": "The probe timeout in seconds.",
+ "type": "integer"
+ },
+ "periodSeconds": {
+ "format": "int32",
+ "description": "The length of time between probes in seconds.",
+ "type": "integer"
+ },
+ "initialDelaySeconds": {
+ "format": "int32",
+ "description": "The delay before the first probe in seconds.",
+ "type": "integer"
+ }
+ }
+ },
+ "AKSServiceResponse": {
+ "description": "The response for an AKS service.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/AKSVariantResponse"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "models": {
+ "description": "The list of models.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Model"
+ }
+ },
+ "containerResourceRequirements": {
+ "description": "The container resource requirements.",
+ "$ref": "#/definitions/ContainerResourceRequirements"
+ },
+ "maxConcurrentRequestsPerContainer": {
+ "format": "int32",
+ "description": "The maximum number of concurrent requests per container.",
+ "type": "integer",
+ "example": 100
+ },
+ "maxQueueWaitMs": {
+ "format": "int32",
+ "description": "Maximum time a request will wait in the queue (in milliseconds). After this time, the service will return 503 (Service Unavailable)",
+ "type": "integer",
+ "example": 250
+ },
+ "computeName": {
+ "description": "The name of the compute resource.",
+ "type": "string"
+ },
+ "namespace": {
+ "description": "The Kubernetes namespace of the deployment.",
+ "type": "string",
+ "example": "default"
+ },
+ "numReplicas": {
+ "format": "int32",
+ "description": "The number of replicas on the cluster.",
+ "type": "integer",
+ "example": 1
+ },
+ "dataCollection": {
+ "description": "Details of the data collection options specified.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ModelDataCollection"
+ }
+ ]
+ },
+ "appInsightsEnabled": {
+ "description": "Whether or not Application Insights is enabled.",
+ "type": "boolean"
+ },
+ "autoScaler": {
+ "description": "The auto scaler properties.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/AutoScaler"
+ }
+ ]
+ },
+ "scoringUri": {
+ "description": "The Uri for sending scoring requests.",
+ "type": "string",
+ "readOnly": true
+ },
+ "deploymentStatus": {
+ "description": "The deployment status.",
+ "readOnly": true,
+ "allOf": [
+ {
+ "$ref": "#/definitions/AKSReplicaStatus"
+ }
+ ]
+ },
+ "scoringTimeoutMs": {
+ "format": "int32",
+ "description": "The scoring timeout in milliseconds.",
+ "type": "integer",
+ "example": 100
+ },
+ "livenessProbeRequirements": {
+ "description": "The liveness probe requirements.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/LivenessProbeRequirements"
+ }
+ ]
+ },
+ "authEnabled": {
+ "description": "Whether or not authentication is enabled.",
+ "type": "boolean"
+ },
+ "aadAuthEnabled": {
+ "description": "Whether or not AAD authentication is enabled.",
+ "type": "boolean"
+ },
+ "swaggerUri": {
+ "description": "The Uri for sending swagger requests.",
+ "type": "string",
+ "readOnly": true
+ },
+ "modelConfigMap": {
+ "description": "Details on the models and configurations.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ },
+ "readOnly": true
+ },
+ "environmentImageRequest": {
+ "description": "The Environment, models and assets used for inferencing.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EnvironmentImageResponse"
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "AKS"
+ },
+ "AuthKeys": {
+ "type": "object",
+ "properties": {
+ "primaryKey": {
+ "description": "The primary key.",
+ "type": "string"
+ },
+ "secondaryKey": {
+ "description": "The secondary key.",
+ "type": "string"
+ }
+ }
+ },
+ "CreateServiceRequest": {
+ "description": "The base class for creating a service.",
+ "required": [
+ "computeType"
+ ],
+ "type": "object",
+ "properties": {
+ "description": {
+ "description": "The description of the service.",
+ "type": "string"
+ },
+ "kvTags": {
+ "description": "The service tag dictionary. Tags are mutable.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "properties": {
+ "description": "The service properties dictionary. Properties are immutable.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "keys": {
+ "description": "The authentication keys.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/AuthKeys"
+ }
+ ]
+ },
+ "computeType": {
+ "description": "The compute environment type for the service.",
+ "enum": [
+ "ACI",
+ "AKS"
+ ],
+ "type": "string",
+ "example": "AKS",
+ "x-ms-enum": {
+ "name": "ComputeEnvironmentType",
+ "modelAsString": true
+ }
+ },
+ "environmentImageRequest": {
+ "description": "The Environment, models and assets needed for inferencing.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EnvironmentImageRequest"
+ }
+ ]
+ },
+ "location": {
+ "description": "The name of the Azure location/region.",
+ "type": "string"
+ }
+ },
+ "discriminator": "computeType"
+ },
+ "ACIServiceCreateRequest": {
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CreateServiceRequest"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "containerResourceRequirements": {
+ "description": "The container resource requirements.",
+ "$ref": "#/definitions/ContainerResourceRequirements"
+ },
+ "authEnabled": {
+ "description": "Whether or not authentication is enabled on the service.",
+ "default": false,
+ "type": "boolean"
+ },
+ "sslEnabled": {
+ "description": "Whether or not SSL is enabled.",
+ "default": false,
+ "type": "boolean"
+ },
+ "appInsightsEnabled": {
+ "description": "Whether or not Application Insights is enabled.",
+ "default": false,
+ "type": "boolean"
+ },
+ "dataCollection": {
+ "description": "Details of the data collection options specified.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ModelDataCollection"
+ }
+ ]
+ },
+ "sslCertificate": {
+ "description": "The public SSL certificate in PEM format to use if SSL is enabled.",
+ "type": "string"
+ },
+ "sslKey": {
+ "description": "The public SSL key in PEM format for the certificate.",
+ "type": "string"
+ },
+ "cname": {
+ "description": "The CName for the service.",
+ "type": "string"
+ },
+ "dnsNameLabel": {
+ "description": "The Dns label for the service.",
+ "type": "string"
+ },
+ "vnetConfiguration": {
+ "description": "The virtual network configuration.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/VnetConfiguration"
+ }
+ ]
+ },
+ "encryptionProperties": {
+ "description": "The encryption properties.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/EncryptionProperties"
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "ACI"
+ },
+ "AKSServiceCreateRequest": {
+ "description": "The request to create an AKS service.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CreateEndpointVariantRequest"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "numReplicas": {
+ "format": "int32",
+ "description": "The number of replicas on the cluster.",
+ "type": "integer",
+ "example": 1
+ },
+ "dataCollection": {
+ "description": "Details of the data collection options specified.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ModelDataCollection"
+ }
+ ]
+ },
+ "computeName": {
+ "description": "The name of the compute resource.",
+ "type": "string"
+ },
+ "appInsightsEnabled": {
+ "description": "Whether or not Application Insights is enabled.",
+ "type": "boolean"
+ },
+ "autoScaler": {
+ "description": "The auto scaler properties.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/AutoScaler"
+ }
+ ]
+ },
+ "containerResourceRequirements": {
+ "description": "The container resource requirements.",
+ "$ref": "#/definitions/ContainerResourceRequirements"
+ },
+ "maxConcurrentRequestsPerContainer": {
+ "format": "int32",
+ "description": "The maximum number of concurrent requests per container.",
+ "type": "integer",
+ "example": 100
+ },
+ "maxQueueWaitMs": {
+ "format": "int32",
+ "description": "Maximum time a request will wait in the queue (in milliseconds). After this time, the service will return 503 (Service Unavailable)",
+ "type": "integer",
+ "example": 250
+ },
+ "namespace": {
+ "description": "Kubernetes namespace for the service.",
+ "type": "string",
+ "example": "default"
+ },
+ "scoringTimeoutMs": {
+ "format": "int32",
+ "description": "The scoring timeout in milliseconds.",
+ "type": "integer",
+ "example": 100
+ },
+ "authEnabled": {
+ "description": "Whether or not authentication is enabled.",
+ "type": "boolean"
+ },
+ "livenessProbeRequirements": {
+ "description": "The liveness probe requirements.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/LivenessProbeRequirements"
+ }
+ ]
+ },
+ "aadAuthEnabled": {
+ "description": "Whether or not AAD authentication is enabled.",
+ "type": "boolean"
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "AKS"
+ },
+ "CreateEndpointVariantRequest": {
+ "description": "The Variant properties.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "#/definitions/CreateServiceRequest"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "isDefault": {
+ "description": "Is this the default variant.",
+ "type": "boolean"
+ },
+ "trafficPercentile": {
+ "format": "float",
+ "description": "The amount of traffic variant receives.",
+ "type": "number",
+ "example": 100
+ },
+ "type": {
+ "description": "The type of the variant.",
+ "enum": [
+ "Control",
+ "Treatment"
+ ],
+ "type": "string",
+ "example": "Control",
+ "x-ms-enum": {
+ "name": "VariantType",
+ "modelAsString": true
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "Custom"
+ },
+ "ComputeInstanceSshSettings": {
+ "type": "object",
+ "description": "Specifies policy and settings for SSH access.",
+ "properties": {
+ "sshPublicAccess": {
+ "type": "string",
+ "default": "Disabled",
+ "title": "Access policy for SSH",
+ "description": "State of the public SSH port. Possible values are: Disabled - Indicates that the public ssh port is closed on this instance. Enabled - Indicates that the public ssh port is open and accessible according to the VNet/subnet policy if applicable.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "sshPublicAccess",
+ "modelAsString": true
+ }
+ },
+ "adminUserName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Describes the admin user name."
+ },
+ "sshPort": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "description": "Describes the port for connecting through SSH."
+ },
+ "adminPublicKey": {
+ "type": "string",
+ "description": "Specifies the SSH rsa public key file as a string. Use \"ssh-keygen -t rsa -b 2048\" to generate your SSH key pairs."
+ }
+ }
+ },
+ "ComputeInstanceState": {
+ "type": "string",
+ "description": "Current state of an ComputeInstance.",
+ "enum": [
+ "Creating",
+ "CreateFailed",
+ "Deleting",
+ "Running",
+ "Restarting",
+ "JobRunning",
+ "SettingUp",
+ "SetupFailed",
+ "Starting",
+ "Stopped",
+ "Stopping",
+ "UserSettingUp",
+ "UserSetupFailed",
+ "Unknown",
+ "Unusable"
+ ],
+ "x-ms-enum": {
+ "name": "ComputeInstanceState",
+ "modelAsString": true
+ }
+ },
+ "ComputeInstanceLastOperation": {
+ "type": "object",
+ "description": "The last operation on ComputeInstance.",
+ "properties": {
+ "operationName": {
+ "type": "string",
+ "description": "Name of the last operation.",
+ "enum": [
+ "Create",
+ "Start",
+ "Stop",
+ "Restart",
+ "Reimage",
+ "Delete"
+ ],
+ "x-ms-enum": {
+ "name": "OperationName",
+ "modelAsString": true
+ }
+ },
+ "operationTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Time of the last operation."
+ },
+ "operationStatus": {
+ "type": "string",
+ "description": "Operation status.",
+ "enum": [
+ "InProgress",
+ "Succeeded",
+ "CreateFailed",
+ "StartFailed",
+ "StopFailed",
+ "RestartFailed",
+ "ReimageFailed",
+ "DeleteFailed"
+ ],
+ "x-ms-enum": {
+ "name": "OperationStatus",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "ComputeInstanceApplication": {
+ "type": "object",
+ "description": "Defines an Aml Instance application and its connectivity endpoint URI.",
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Name of the ComputeInstance application."
+ },
+ "endpointUri": {
+ "type": "string",
+ "description": "Application' endpoint URI."
+ }
+ }
+ },
+ "ComputeInstanceConnectivityEndpoints": {
+ "type": "object",
+ "readOnly": true,
+ "description": "Defines all connectivity endpoints and properties for an ComputeInstance.",
+ "properties": {
+ "publicIpAddress": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Public IP Address of this ComputeInstance."
+ },
+ "privateIpAddress": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Private IP Address of this ComputeInstance (local to the VNET in which the compute instance is deployed)."
+ }
+ }
+ },
+ "ComputeInstanceCreatedBy": {
+ "type": "object",
+ "readOnly": true,
+ "description": "Describes information on user who created this ComputeInstance.",
+ "properties": {
+ "userName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Name of the user."
+ },
+ "userOrgId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Uniquely identifies user' Azure Active Directory organization."
+ },
+ "userId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Uniquely identifies the user within his/her organization."
+ }
+ }
+ },
+ "PersonalComputeInstanceSettings": {
+ "type": "object",
+ "properties": {
+ "assignedUser": {
+ "$ref": "#/definitions/AssignedUser",
+ "title": "Assigned User.",
+ "description": "A user explicitly assigned to a personal compute instance."
+ }
+ },
+ "description": "Settings for a personal compute instance."
+ },
+ "AssignedUser": {
+ "type": "object",
+ "description": "A user that can be assigned to a compute instance.",
+ "properties": {
+ "objectId": {
+ "type": "string",
+ "description": "User’s AAD Object Id."
+ },
+ "tenantId": {
+ "type": "string",
+ "description": "User’s AAD Tenant Id."
+ }
+ },
+ "required": [
+ "objectId",
+ "tenantId"
+ ]
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/ListSkus.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/ListSkus.json
index 7f3f77cc768a..f3d57d4a6891 100644
--- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/ListSkus.json
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/ListSkus.json
@@ -9,67 +9,35 @@
"value": [
{
"resourceType": "workspaces",
- "name": "Basic",
- "tier": "Basic",
- "locations": [
- "westus"
- ],
- "locationInfo": [
+ "skus": [
{
- "location": "westus",
- "zones": [
- "westus-AZ02",
- "westus-AZ01"
- ]
- }
- ],
- "capabilities": [
- {
- "name": "automatedml_readhyperdrivesdk",
- "value": "{\n \"id\": \"automatedml_ readhyperdrivesdk\",\n \"name\": \"Read hyperdrive SDK\",\n \"description\": \"Read only access to Hyperdrive in the SDK\"\n}"
- },
- {
- "name": "workspace_upgradeworkspacesdk",
- "value": "{\n \"id\": \"workspace_upgradeworkspacesdk\",\n \"name\": \"Upgrade workspace SDK\",\n \"description\": \"Upgrade workspace from Basic to enterprise from the SDK\"\n}"
- }
- ],
- "restrictions": []
- },
- {
- "resourceType": "workspaces",
- "name": "Enterprise",
- "tier": "Enterprise",
- "locations": [
- "westus"
- ],
- "locationInfo": [
- {
- "location": "westus",
- "zones": [
- "westus-AZ01"
+ "name": "Basic",
+ "tier": "Basic",
+ "locations": [
+ "westus"
],
- "zoneDetails": [
+ "locationInfo": [
{
- "name": [
+ "location": "westus",
+ "zones": [
+ "westus-AZ02",
"westus-AZ01"
- ],
- "capabilities": [
- {
- "name": "automatedml_createeditexperimentssdk",
- "value": "{\n \"id\": \"automatedml_createeditexperimentssdk\",\n \"name\": \"Create edit experiments SDK\",\n \"description\": \"Create, edit or delete AutoML experiments in the SDK\"\n}"
- }
]
}
- ]
- }
- ],
- "capabilities": [
- {
- "name": "automatedml_createeditexperimentssdk",
- "value": "{\n \"id\": \"automatedml_createeditexperimentssdk\",\n \"name\": \"Create edit experiments SDK\",\n \"description\": \"Create, edit or delete AutoML experiments in the SDK\"\n}"
+ ],
+ "capabilities": [
+ {
+ "name": "automatedml_readhyperdrivesdk",
+ "value": "{\n \"id\": \"automatedml_ readhyperdrivesdk\",\n \"name\": \"Read hyperdrive SDK\",\n \"description\": \"Read only access to Hyperdrive in the SDK\"\n}"
+ },
+ {
+ "name": "workspace_upgradeworkspacesdk",
+ "value": "{\n \"id\": \"workspace_upgradeworkspacesdk\",\n \"name\": \"Upgrade workspace SDK\",\n \"description\": \"Upgrade workspace from Basic to enterprise from the SDK\"\n}"
+ }
+ ],
+ "restrictions": []
}
- ],
- "restrictions": []
+ ]
}
],
"nextLink": null
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/createBasicAmlCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/createBasicAmlCompute.json
index f9420e79b013..88894b353429 100644
--- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/createBasicAmlCompute.json
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/createBasicAmlCompute.json
@@ -21,7 +21,7 @@
}
},
"identity": {
- "type": "SystemAssigned, UserAssigned",
+ "type": "SystemAssigned,UserAssigned",
"userAssignedIdentities": {
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name": {}
}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/getAmlCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/getAmlCompute.json
index 692799eaac79..e432876e24d6 100644
--- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/getAmlCompute.json
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/getAmlCompute.json
@@ -46,7 +46,7 @@
"identity": {
"principalId": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
- "type": "SystemAssigned, UserAssigned",
+ "type": "SystemAssigned,UserAssigned",
"userAssignedIdentities": {
"/subscriptions/f9d7ebed-adbd-4cb4-b973-aaf82c136138/resourcegroups/myResourceGroup1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity2": {
"clientId": "00000000-0000-0000-0000-000000000000",
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/updateAmlCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/updateAmlCompute.json
index 98d7470237bf..a5c4ed1fed2d 100644
--- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/updateAmlCompute.json
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/updateAmlCompute.json
@@ -18,7 +18,7 @@
}
},
"identity": {
- "type": "SystemAssigned, UserAssigned",
+ "type": "SystemAssigned,UserAssigned",
"userAssignedIdentities": {
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name": {}
}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/workspaceDeletePrivateEndpointConnection.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/workspaceDeletePrivateEndpointConnection.json
index d6cddc4a0c2c..b493ea44b56e 100644
--- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/workspaceDeletePrivateEndpointConnection.json
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/examples/workspaceDeletePrivateEndpointConnection.json
@@ -9,6 +9,7 @@
},
"responses": {
"200": {},
+ "202": {},
"204": {}
}
}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/machineLearningServices.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/machineLearningServices.json
index 03cb6e43b145..9641d26adc27 100644
--- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/machineLearningServices.json
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-06-01/machineLearningServices.json
@@ -1344,7 +1344,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "#/definitions/ErrorResponse"
+ "$ref": "#/definitions/MachineLearningServiceError"
}
}
}
@@ -1396,7 +1396,7 @@
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "#/definitions/ErrorResponse"
+ "$ref": "#/definitions/MachineLearningServiceError"
}
}
}
@@ -1407,6 +1407,7 @@
],
"operationId": "PrivateEndpointConnections_Delete",
"description": "Deletes the specified private endpoint connection associated with the workspace.",
+ "x-ms-long-running-operation": true,
"x-ms-examples": {
"WorkspaceDeletePrivateEndpointConnection": {
"$ref": "./examples/workspaceDeletePrivateEndpointConnection.json"
@@ -1433,13 +1434,16 @@
"200": {
"description": "OK -- Delete the private endpoint connection successfully."
},
+ "202": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
"204": {
"description": "No Content -- The private endpoint connection does not exist."
},
"default": {
"description": "Error response describing why the operation failed.",
"schema": {
- "$ref": "#/definitions/ErrorResponse"
+ "$ref": "#/definitions/MachineLearningServiceError"
}
}
}
@@ -2395,7 +2399,7 @@
"enum": [
"SystemAssigned",
"UserAssigned",
- "SystemAssigned, UserAssigned",
+ "SystemAssigned,UserAssigned",
"None"
],
"x-ms-enum": {
@@ -3533,6 +3537,24 @@
"description": "Describes The zonal capabilities of a SKU."
},
"WorkspaceSku": {
+ "type": "object",
+ "description": "AML workspace sku information",
+ "properties": {
+ "resourceType": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "skus": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SkuSettings"
+ },
+ "description": "The list of workspace sku settings"
+ }
+ }
+ },
+ "SkuSettings": {
"description": "Describes Workspace Sku details and features",
"type": "object",
"properties": {
@@ -3646,19 +3668,31 @@
}
},
"PrivateEndpointConnection": {
+ "x-ms-azure-resource": true,
+ "description": "The Private Endpoint Connection resource.",
+ "type": "object",
"properties": {
+ "id": {
+ "type": "string",
+ "description": "ResourceId of the private endpoint connection.",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Friendly name of the private endpoint connection.",
+ "readOnly": true
+ },
+ "type": {
+ "type": "string",
+ "description": "Resource type of private endpoint connection.",
+ "readOnly": true
+ },
"properties": {
"$ref": "#/definitions/PrivateEndpointConnectionProperties",
"x-ms-client-flatten": true,
"description": "Resource properties."
}
- },
- "allOf": [
- {
- "$ref": "#/definitions/Resource"
- }
- ],
- "description": "The Private Endpoint Connection resource."
+ }
},
"PrivateEndpointConnectionProperties": {
"properties": {
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListSkus.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListSkus.json
new file mode 100644
index 000000000000..68c9bc406ba0
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListSkus.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01",
+ "subscriptionId": "{subscription-id}"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "resourceType": "workspaces",
+ "skus": [
+ {
+ "name": "Basic",
+ "tier": "Basic",
+ "locations": [
+ "westus"
+ ],
+ "locationInfo": [
+ {
+ "location": "westus",
+ "zones": [
+ "westus-AZ02",
+ "westus-AZ01"
+ ]
+ }
+ ],
+ "capabilities": [
+ {
+ "name": "automatedml_readhyperdrivesdk",
+ "value": "{\n \"id\": \"automatedml_ readhyperdrivesdk\",\n \"name\": \"Read hyperdrive SDK\",\n \"description\": \"Read only access to Hyperdrive in the SDK\"\n}"
+ },
+ {
+ "name": "workspace_upgradeworkspacesdk",
+ "value": "{\n \"id\": \"workspace_upgradeworkspacesdk\",\n \"name\": \"Upgrade workspace SDK\",\n \"description\": \"Upgrade workspace from Basic to enterprise from the SDK\"\n}"
+ }
+ ],
+ "restrictions": []
+ }
+ ]
+ }
+ ],
+ "nextLink": null
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListUsages.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListUsages.json
new file mode 100644
index 000000000000..d80eb7c6976f
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListUsages.json
@@ -0,0 +1,400 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "location": "eastus",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000",
+ "type": "Microsoft.MachineLearningServices/totalCores/usages",
+ "currentValue": 7,
+ "limit": 100,
+ "name": {
+ "localizedValue": "Total Cluster vCPUs",
+ "value": "TotalCores"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000",
+ "type": "Microsoft.MachineLearningServices/totalDedicatedCores/usages",
+ "currentValue": 14,
+ "limit": 24,
+ "name": {
+ "localizedValue": "Total Cluster Dedicated Regional vCPUs",
+ "value": "TotalDedicatedCores"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardDFamily",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/usages",
+ "currentValue": 0,
+ "limit": 48,
+ "name": {
+ "localizedValue": "Standard D Family Cluster Dedicated vCPUs",
+ "value": "StandardDFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardDSv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/usages",
+ "currentValue": 2,
+ "limit": 24,
+ "name": {
+ "value": "StandardDSv2Family",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/usages/StandardDSv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/usages",
+ "currentValue": 2,
+ "limit": 24,
+ "name": {
+ "value": "StandardDSv2Family",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/computes/demo_cluster1_dsv2/usages/StandardDSv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes/dedicatedCores/usages",
+ "currentValue": 2,
+ "limit": 24,
+ "name": {
+ "value": "StandardDSv2Family",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/computes/demo_cluster2_dsv2/usages/StandardDSv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes/dedicatedCores/usages",
+ "currentValue": 0,
+ "limit": 24,
+ "name": {
+ "value": "StandardDSv2Family",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardDv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/usages",
+ "currentValue": 0,
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard Dv2 Family Cluster Dedicated vCPUs",
+ "value": "StandardDv2Family"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardFSv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/usages",
+ "currentValue": 0,
+ "limit": 24,
+ "name": {
+ "value": "StandardFSv2Family",
+ "localizedValue": "Standard FSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/usages",
+ "currentValue": 12,
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs",
+ "value": "StandardNCFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/usages/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/workspace/dedicatedCores/usages",
+ "currentValue": 6,
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs",
+ "value": "StandardNCFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/computes/demo_cluster1_nc/usages/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/workspace/computes/dedicatedCores/usages",
+ "currentValue": 6,
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs",
+ "value": "StandardNCFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/usages/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/usages",
+ "currentValue": 6,
+ "limit": 24,
+ "name": {
+ "value": "StandardNCFamily",
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/computes/demo_cluser1_nc/usages/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes/dedicatedCores/usages",
+ "currentValue": 6,
+ "limit": 24,
+ "name": {
+ "value": "StandardNCFamily",
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardNCv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/usages",
+ "currentValue": 0,
+ "limit": 0,
+ "name": {
+ "localizedValue": "Standard NCv2 Family Cluster Dedicated vCPUs",
+ "value": "StandardNCv2Family"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardNCv3Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/usages",
+ "currentValue": 0,
+ "limit": 0,
+ "name": {
+ "localizedValue": "Standard NCv3 Family Cluster Dedicated vCPUs",
+ "value": "StandardNCv3Family"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardNDFamily",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/usages",
+ "currentValue": 0,
+ "limit": 0,
+ "name": {
+ "localizedValue": "Standard ND Family Cluster Dedicated vCPUs",
+ "value": "StandardNDFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardNDv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/usages",
+ "currentValue": 0,
+ "limit": 0,
+ "name": {
+ "value": "StandardNDv2Family",
+ "localizedValue": "Standard NDv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardNVFamily",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/usages",
+ "currentValue": 0,
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard NV Family Cluster Dedicated vCPUs",
+ "value": "StandardNVFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000",
+ "type": "Microsoft.MachineLearningServices/totalLowPriorityCores/usages",
+ "currentValue": 18,
+ "limit": 50,
+ "name": {
+ "localizedValue": "Total Cluster LowPriority Regional vCPUs",
+ "value": "TotalLowPriorityCores"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardDFamily",
+ "type": "Microsoft.MachineLearningServices/vmFamily/lowPriorityCores/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "value": "StandardDFamily",
+ "localizedValue": "Standard D Family Cluster LowPriority vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardDSv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/lowPriorityCores/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard DSv2 Family Cluster LowPriority vCPUs",
+ "value": "StandardDSv2Family"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardDv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/lowPriorityCores/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard Dv2 Family Cluster LowPriority vCPUs",
+ "value": "StandardDv2Family"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardFSv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/lowPriorityCores/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard FSv2 Family Cluster LowPriority vCPUs",
+ "value": "StandardFSv2Family"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/vmFamily/lowPriorityCores/usages",
+ "currentValue": 18,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster LowPriority vCPUs",
+ "value": "StandardNCFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/usages/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/workspace/lowPriorityCores/usages",
+ "currentValue": 6,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster LowPriority vCPUs",
+ "value": "StandardNCFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/computes/demo_cluster1_lowPriority_nc/usages/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/workspace/computes/lowPriorityCores/usages",
+ "currentValue": 6,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster LowPriority vCPUs",
+ "value": "StandardNCFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/usages/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/workspace/lowPriorityCores/usages",
+ "currentValue": 12,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster LowPriority vCPUs",
+ "value": "StandardNCFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/computes/demo_cluster2_lowPriority_nc/usages/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/workspace/computes/lowPriorityCores/usages",
+ "currentValue": 6,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster LowPriority vCPUs",
+ "value": "StandardNCFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/computes/demo_cluster3_lowPriority_nc/usages/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/workspace/computes/lowPriorityCores/usages",
+ "currentValue": 6,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster LowPriority vCPUs",
+ "value": "StandardNCFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardNCv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/lowPriorityCores/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NCv2 Family Cluster LowPriority vCPUs",
+ "value": "StandardNCv2Family"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardNCv3Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/lowPriorityCores/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NCv3 Family Cluster LowPriority vCPUs",
+ "value": "StandardNCv3Family"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardNDFamily",
+ "type": "Microsoft.MachineLearningServices/vmFamily/lowPriorityCores/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard ND Family Cluster LowPriority vCPUs",
+ "value": "StandardNDFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardNDv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/lowPriorityCores/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NDv2 Family Cluster LowPriority vCPUs",
+ "value": "StandardNDv2Family"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/usages/StandardNVFamily",
+ "type": "Microsoft.MachineLearningServices/vmFamily/lowPriorityCores/usages",
+ "currentValue": 0,
+ "limit": -1,
+ "name": {
+ "localizedValue": "Standard NV Family Cluster LowPriority vCPUs",
+ "value": "StandardNVFamily"
+ },
+ "unit": "Count"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListVMSizesResult.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListVMSizesResult.json
new file mode 100644
index 000000000000..5f75351b5b27
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListVMSizesResult.json
@@ -0,0 +1,2967 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "api-version": "2020-08-01",
+ "location": "eastus",
+ "computeType": "AmlCompute",
+ "recommended": false
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "amlCompute": [
+ {
+ "name": "Standard_D1_v2",
+ "family": "standardDv2Family",
+ "vCPUs": 1,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 51200,
+ "memoryGB": 3.5,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.01,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.05,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.06,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.12,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute"
+ ]
+ },
+ {
+ "name": "Standard_D2_v2",
+ "family": "standardDv2Family",
+ "vCPUs": 2,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 102400,
+ "memoryGB": 7,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.11,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.23,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.02,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.09,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_D3_v2",
+ "family": "standardDv2Family",
+ "vCPUs": 4,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 204800,
+ "memoryGB": 14,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.05,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.47,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.23,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.19,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_D4_v2",
+ "family": "standardDv2Family",
+ "vCPUs": 8,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 409600,
+ "memoryGB": 28,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.94,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.46,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.09,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.37,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_D11_v2",
+ "family": "standardDv2Family",
+ "vCPUs": 2,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 102400,
+ "memoryGB": 14,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.24,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.03,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.1,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.15,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_D12_v2",
+ "family": "standardDv2Family",
+ "vCPUs": 4,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 204800,
+ "memoryGB": 28,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.19,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.06,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.49,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.3,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_D13_v2",
+ "family": "standardDv2Family",
+ "vCPUs": 8,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 409600,
+ "memoryGB": 56,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.6,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.97,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.39,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.12,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_D14_v2",
+ "family": "standardDv2Family",
+ "vCPUs": 16,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 819200,
+ "memoryGB": 112,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 1.94,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.2,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.78,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.24,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_D15_v2",
+ "family": "standardDv2Family",
+ "vCPUs": 20,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 1024000,
+ "memoryGB": 140,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.97,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 2.43,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.5,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.3,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_DS1_v2",
+ "family": "standardDSv2Family",
+ "vCPUs": 1,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 7168,
+ "memoryGB": 3.5,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.01,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.05,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.06,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.12,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_DS2_v2",
+ "family": "standardDSv2Family",
+ "vCPUs": 2,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 14336,
+ "memoryGB": 7,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.11,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.23,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.02,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.09,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_DS3_v2",
+ "family": "standardDSv2Family",
+ "vCPUs": 4,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 28672,
+ "memoryGB": 14,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.05,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.47,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.23,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.19,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_DS4_v2",
+ "family": "standardDSv2Family",
+ "vCPUs": 8,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 57344,
+ "memoryGB": 28,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.94,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.46,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.09,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.37,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_DS5_v2",
+ "family": "standardDSv2Family",
+ "vCPUs": 16,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 114688,
+ "memoryGB": 56,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.75,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.92,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.87,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.18,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_DS11_v2",
+ "family": "standardDSv2Family",
+ "vCPUs": 2,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 28672,
+ "memoryGB": 14,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.24,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.03,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.1,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.15,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_DS12_v2",
+ "family": "standardDSv2Family",
+ "vCPUs": 4,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 57344,
+ "memoryGB": 28,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.19,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.06,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.49,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.3,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_DS13_v2",
+ "family": "standardDSv2Family",
+ "vCPUs": 8,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 114688,
+ "memoryGB": 56,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.6,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.97,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.39,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.12,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_DS14_v2",
+ "family": "standardDSv2Family",
+ "vCPUs": 16,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 229376,
+ "memoryGB": 112,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 1.94,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.2,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.78,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.24,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_DS15_v2",
+ "family": "standardDSv2Family",
+ "vCPUs": 20,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 286720,
+ "memoryGB": 140,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.97,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 2.43,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.5,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.3,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_F2s_v2",
+ "family": "standardFSv2Family",
+ "vCPUs": 2,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 16384,
+ "memoryGB": 4,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.16,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.02,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.08,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.06,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_F4s_v2",
+ "family": "standardFSv2Family",
+ "vCPUs": 4,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 32768,
+ "memoryGB": 8,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.13,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.33,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.17,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.03,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_F8s_v2",
+ "family": "standardFSv2Family",
+ "vCPUs": 8,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 65536,
+ "memoryGB": 16,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.07,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.65,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.26,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.34,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_F16s_v2",
+ "family": "standardFSv2Family",
+ "vCPUs": 16,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 131072,
+ "memoryGB": 32,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.52,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.68,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.3,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.14,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_F32s_v2",
+ "family": "standardFSv2Family",
+ "vCPUs": 32,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 262144,
+ "memoryGB": 64,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 1.35,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.04,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 2.6,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.27,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_F64s_v2",
+ "family": "standardFSv2Family",
+ "vCPUs": 64,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 524288,
+ "memoryGB": 128,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 5.21,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 2.71,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 2.08,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.54,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_F72s_v2",
+ "family": "standardFSv2Family",
+ "vCPUs": 72,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 589824,
+ "memoryGB": 144,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 5.86,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 3.04,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.61,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 2.34,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_NC6s_v3",
+ "family": "standardNCSv3Family",
+ "vCPUs": 6,
+ "gpus": 1,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 344064,
+ "memoryGB": 112,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.61,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 1.34,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 3.06,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 3.34,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_NC12s_v3",
+ "family": "standardNCSv3Family",
+ "vCPUs": 12,
+ "gpus": 2,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 688128,
+ "memoryGB": 224,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 2.67,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 1.22,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 6.68,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 6.12,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_NC24rs_v3",
+ "family": "standardNCSv3Family",
+ "vCPUs": 24,
+ "gpus": 4,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 1376256,
+ "memoryGB": 448,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 5.83,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 2.69,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 14.59,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 13.46,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_NC24s_v3",
+ "family": "standardNCSv3Family",
+ "vCPUs": 24,
+ "gpus": 4,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 1376256,
+ "memoryGB": 448,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 13.36,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 5.35,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 2.45,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 12.24,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_D1",
+ "family": "standardDFamily",
+ "vCPUs": 1,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 51200,
+ "memoryGB": 3.5,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.01,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.05,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.13,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.07,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute"
+ ]
+ },
+ {
+ "name": "Standard_D2",
+ "family": "standardDFamily",
+ "vCPUs": 2,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 102400,
+ "memoryGB": 7,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.13,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.1,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.03,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.26,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_D3",
+ "family": "standardDFamily",
+ "vCPUs": 4,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 204800,
+ "memoryGB": 14,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.05,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.52,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.27,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.21,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_D4",
+ "family": "standardDFamily",
+ "vCPUs": 8,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 409600,
+ "memoryGB": 28,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.42,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.54,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.11,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 1.04,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_D11",
+ "family": "standardDFamily",
+ "vCPUs": 2,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 102400,
+ "memoryGB": 14,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.1,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.03,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.17,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.24,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_D12",
+ "family": "standardDFamily",
+ "vCPUs": 4,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 204800,
+ "memoryGB": 28,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.35,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.49,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.19,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.07,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_D13",
+ "family": "standardDFamily",
+ "vCPUs": 8,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 409600,
+ "memoryGB": 56,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.97,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.39,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.69,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.14,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_D14",
+ "family": "standardDFamily",
+ "vCPUs": 16,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 819200,
+ "memoryGB": 112,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 1.94,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.78,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.28,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 1.39,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_NV6",
+ "family": "standardNVFamily",
+ "vCPUs": 6,
+ "gpus": 1,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 389120,
+ "memoryGB": 56,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 1.41,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.24,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 1.2,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.56,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_NV12",
+ "family": "standardNVFamily",
+ "vCPUs": 12,
+ "gpus": 2,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 696320,
+ "memoryGB": 112,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 2.82,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.13,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.48,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 2.4,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_NV24",
+ "family": "standardNVFamily",
+ "vCPUs": 24,
+ "gpus": 4,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 1474560,
+ "memoryGB": 224,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 5.64,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 2.26,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 4.81,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.96,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_NC6",
+ "family": "standardNCFamily",
+ "vCPUs": 6,
+ "gpus": 1,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 389120,
+ "memoryGB": 56,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.9,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.43,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 1.08,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.18,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_NC12",
+ "family": "standardNCFamily",
+ "vCPUs": 12,
+ "gpus": 2,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 696320,
+ "memoryGB": 112,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.36,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.87,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 1.8,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 2.17,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_NC24",
+ "family": "standardNCFamily",
+ "vCPUs": 24,
+ "gpus": 4,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 1474560,
+ "memoryGB": 224,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 4.34,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.72,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 3.6,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.73,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_NC24r",
+ "family": "standardNCFamily",
+ "vCPUs": 24,
+ "gpus": 4,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 1474560,
+ "memoryGB": 224,
+ "lowPriorityCapable": true,
+ "premiumIO": false,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 3.96,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.79,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 4.77,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.91,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M8-2ms",
+ "family": "standardMSFamily",
+ "vCPUs": 8,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 256000,
+ "memoryGB": 218.75,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 2.11,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.31,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 1.54,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.84,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M8-4ms",
+ "family": "standardMSFamily",
+ "vCPUs": 8,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 256000,
+ "memoryGB": 218.75,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 2.11,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.31,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 1.54,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.84,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M8ms",
+ "family": "standardMSFamily",
+ "vCPUs": 8,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 256000,
+ "memoryGB": 218.75,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 2.11,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.31,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 1.54,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.84,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M16-4ms",
+ "family": "standardMSFamily",
+ "vCPUs": 16,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 512000,
+ "memoryGB": 437.5,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 4.21,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.69,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.61,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 3.07,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M16-8ms",
+ "family": "standardMSFamily",
+ "vCPUs": 16,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 512000,
+ "memoryGB": 437.5,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 4.21,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.69,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.61,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 3.07,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M16ms",
+ "family": "standardMSFamily",
+ "vCPUs": 16,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 512000,
+ "memoryGB": 437.5,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 4.21,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.69,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.61,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 3.07,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M32-8ms",
+ "family": "standardMSFamily",
+ "vCPUs": 32,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 1024000,
+ "memoryGB": 875,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 3.37,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 8.43,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 6.15,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.23,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M32-16ms",
+ "family": "standardMSFamily",
+ "vCPUs": 32,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 1024000,
+ "memoryGB": 875,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 3.37,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 8.43,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 6.15,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.23,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M32ls",
+ "family": "standardMSFamily",
+ "vCPUs": 32,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 1024000,
+ "memoryGB": 256,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 2.87,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.16,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.57,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 4.34,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M32ms",
+ "family": "standardMSFamily",
+ "vCPUs": 32,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 1024000,
+ "memoryGB": 875,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 3.37,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 8.43,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 6.15,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.23,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M32ts",
+ "family": "standardMSFamily",
+ "vCPUs": 32,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 1024000,
+ "memoryGB": 192,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.54,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 2.71,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 4.18,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.13,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M64-16ms",
+ "family": "standardMSFamily",
+ "vCPUs": 64,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 2048000,
+ "memoryGB": 1750,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 10.34,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 14.64,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 2.07,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 5.86,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M64-32ms",
+ "family": "standardMSFamily",
+ "vCPUs": 64,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 2048000,
+ "memoryGB": 1750,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 10.34,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 14.64,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 2.07,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 5.86,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M64ls",
+ "family": "standardMSFamily",
+ "vCPUs": 64,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 2048000,
+ "memoryGB": 512,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 5.42,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 8.36,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.08,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 2.26,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M64ms",
+ "family": "standardMSFamily",
+ "vCPUs": 64,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 2048000,
+ "memoryGB": 1750,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 10.34,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 14.64,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 2.07,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 5.86,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M64s",
+ "family": "standardMSFamily",
+ "vCPUs": 64,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 2048000,
+ "memoryGB": 1000,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 9.61,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.33,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 3.84,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 6.67,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M128-32ms",
+ "family": "standardMSFamily",
+ "vCPUs": 128,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 4096000,
+ "memoryGB": 3800,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 35.81,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 14.33,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 5.34,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 26.69,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M128-64ms",
+ "family": "standardMSFamily",
+ "vCPUs": 128,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 4096000,
+ "memoryGB": 3800,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 35.81,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 14.33,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 5.34,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 26.69,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M128ms",
+ "family": "standardMSFamily",
+ "vCPUs": 128,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 4096000,
+ "memoryGB": 3800,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 35.81,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 14.33,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 5.34,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 26.69,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M128s",
+ "family": "standardMSFamily",
+ "vCPUs": 128,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 4096000,
+ "memoryGB": 2000,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 13.34,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 7.69,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 19.23,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 2.67,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M64",
+ "family": "standardMSFamily",
+ "vCPUs": 64,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 8192000,
+ "memoryGB": 1000,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 9.61,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.33,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 3.84,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 6.67,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M64m",
+ "family": "standardMSFamily",
+ "vCPUs": 64,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 8192000,
+ "memoryGB": 1750,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 10.34,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 14.64,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 2.07,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 5.86,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M128",
+ "family": "standardMSFamily",
+ "vCPUs": 128,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 16384000,
+ "memoryGB": 2000,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 13.34,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 7.69,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 19.23,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 2.67,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_M128m",
+ "family": "standardMSFamily",
+ "vCPUs": 128,
+ "gpus": 0,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 16384000,
+ "memoryGB": 3800,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 35.81,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 14.33,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 5.34,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 26.69,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_NV12s_v3",
+ "family": "standardNVSv3Family",
+ "vCPUs": 12,
+ "gpus": 1,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 344064,
+ "memoryGB": 112,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 0.23,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.68,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 1.69,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.14,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_NV24s_v3",
+ "family": "standardNVSv3Family",
+ "vCPUs": 24,
+ "gpus": 2,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 688128,
+ "memoryGB": 224,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 3.38,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 1.35,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 0.46,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 2.28,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ },
+ {
+ "name": "Standard_NV48s_v3",
+ "family": "standardNVSv3Family",
+ "vCPUs": 48,
+ "gpus": 4,
+ "osVhdSizeMB": 1047552,
+ "maxResourceVolumeMB": 1376256,
+ "memoryGB": 448,
+ "lowPriorityCapable": true,
+ "premiumIO": true,
+ "estimatedVMPrices": {
+ "billingCurrency": "USD",
+ "unitOfMeasure": "OneHour",
+ "values": [
+ {
+ "retailPrice": 2.71,
+ "osType": "Windows",
+ "vmTier": "LowPriority"
+ },
+ {
+ "retailPrice": 4.56,
+ "osType": "Linux",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 6.77,
+ "osType": "Windows",
+ "vmTier": "Standard"
+ },
+ {
+ "retailPrice": 0.91,
+ "osType": "Linux",
+ "vmTier": "LowPriority"
+ }
+ ]
+ },
+ "supportedComputeTypes": [
+ "AmlCompute",
+ "ComputeInstance"
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListWorkspaceFeatures.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListWorkspaceFeatures.json
new file mode 100644
index 000000000000..3bfa574c5d31
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListWorkspaceFeatures.json
@@ -0,0 +1,26 @@
+{
+ "parameters": {
+ "api-version": "2020-08-01",
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "resourceGroupName": "myResourceGroup",
+ "workspaceName": "testworkspace"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "automatedml_createeditexperimentsui",
+ "displayName": "Create edit experiments UI",
+ "description": "Create, edit or delete AutoML experiments in the SDK"
+ },
+ {
+ "id": "workspace_upgradeworkspaceui",
+ "displayName": "Upgrade workspace UI",
+ "description": "Upgrade workspace from Basic to enterprise from the UI"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListWorkspaceQuotasByVMFamily.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListWorkspaceQuotasByVMFamily.json
new file mode 100644
index 000000000000..65dfe2971854
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/ListWorkspaceQuotasByVMFamily.json
@@ -0,0 +1,415 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "location": "eastus",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/StandardDFamily",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/quotas",
+ "limit": 48,
+ "name": {
+ "localizedValue": "Standard D Family Cluster Dedicated vCPUs",
+ "value": "StandardDFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/StandardDFamily",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 12,
+ "name": {
+ "value": "StandardDFamily",
+ "localizedValue": "Standard D Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/StandardDFamily",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 12,
+ "name": {
+ "value": "StandardDFamily",
+ "localizedValue": "Standard D Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/StandardDFamily",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "value": "StandardDFamily",
+ "localizedValue": "Standard D Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/StandardDSv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "value": "StandardDSv2Family",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/StandardDSv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "value": "StandardDSv2Family",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/StandardDSv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 12,
+ "name": {
+ "value": "StandardDSv2Family",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/StandardDSv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 12,
+ "name": {
+ "value": "StandardDSv2Family",
+ "localizedValue": "Standard DSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/StandardDv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard Dv2 Family Cluster Dedicated vCPUs",
+ "value": "StandardDv2Family"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/StandardDv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardDv2Family",
+ "localizedValue": "Standard Dv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/StandardDv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "value": "StandardDv2Family",
+ "localizedValue": "Standard Dv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/StandardDv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardDv2Family",
+ "localizedValue": "Standard Dv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/StandardFSv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "value": "StandardFSv2Family",
+ "localizedValue": "Standard FSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/StandardFSv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardFSv2Family",
+ "localizedValue": "Standard FSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/StandardFSv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "value": "StandardFSv2Family",
+ "localizedValue": "Standard FSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/StandardFSv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 12,
+ "name": {
+ "value": "StandardFSv2Family",
+ "localizedValue": "Standard FSv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs",
+ "value": "StandardNCFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "value": "StandardNCFamily",
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "value": "StandardNCFamily",
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/StandardNCFamily",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "value": "StandardNCFamily",
+ "localizedValue": "Standard NC Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/StandardNCv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "localizedValue": "Standard NCv2 Family Cluster Dedicated vCPUs",
+ "value": "StandardNCv2Family"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/StandardNCv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardNCv2Family",
+ "localizedValue": "Standard NCv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/StandardNCv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardNCv2Family",
+ "localizedValue": "Standard NCv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/StandardNCv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardNCv2Family",
+ "localizedValue": "Standard NCv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/StandardNCv3Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "localizedValue": "Standard NCv3 Family Cluster Dedicated vCPUs",
+ "value": "StandardNCv3Family"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/StandardNCv3Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardNCv3Family",
+ "localizedValue": "Standard NCv3 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/StandardNCv3Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardNCv3Family",
+ "localizedValue": "Standard NCv3 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/StandardNCv3Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardNCv3Family",
+ "localizedValue": "Standard NCv3 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/StandardNDFamily",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "localizedValue": "Standard ND Family Cluster Dedicated vCPUs",
+ "value": "StandardNDFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/StandardNDFamily",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardNDFamily",
+ "localizedValue": "Standard ND Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/StandardNDFamily",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardNDFamily",
+ "localizedValue": "Standard ND Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/StandardNDFamily",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardNDFamily",
+ "localizedValue": "Standard ND Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/StandardNDv2Family",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardNDv2Family",
+ "localizedValue": "Standard NDv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/StandardNDv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardNDv2Family",
+ "localizedValue": "Standard NDv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/StandardNDv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardNDv2Family",
+ "localizedValue": "Standard NDv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/StandardNDv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 0,
+ "name": {
+ "value": "StandardNDv2Family",
+ "localizedValue": "Standard NDv2 Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/quotas/StandardNVFamily",
+ "type": "Microsoft.MachineLearningServices/vmFamily/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "localizedValue": "Standard NV Family Cluster Dedicated vCPUs",
+ "value": "StandardNVFamily"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/StandardNVFamily",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "value": "StandardNVFamily",
+ "localizedValue": "Standard NV Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/StandardNVFamily",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "value": "StandardNVFamily",
+ "localizedValue": "Standard NV Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace3/quotas/StandardNVFamily",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 24,
+ "name": {
+ "value": "StandardNVFamily",
+ "localizedValue": "Standard NV Family Cluster Dedicated vCPUs"
+ },
+ "unit": "Count"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/amlComputeListNodes.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/amlComputeListNodes.json
new file mode 100644
index 000000000000..f374bc7d54d1
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/amlComputeListNodes.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "computeType": "AmlCompute",
+ "nodes": [
+ {
+ "nodeId": "tvm-3601533753_1-20170719t162906z",
+ "privateIpAddress": "13.84.190.124",
+ "publicIpAddress": "13.84.190.134",
+ "port": 50000,
+ "nodeState": "running",
+ "runId": "2f378a44-38f2-443a-9f0d-9909d0b47890"
+ },
+ {
+ "nodeId": "tvm-3601533753_2-20170719t162906z",
+ "privateIpAddress": "13.84.190.124",
+ "publicIpAddress": "13.84.190.134",
+ "port": 50001,
+ "nodeState": "idle"
+ }
+ ],
+ "nextLink": "nextLink"
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createBasicAKSCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createBasicAKSCompute.json
new file mode 100644
index 000000000000..02d29ca9db8d
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createBasicAKSCompute.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "computeType": "AKS"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "AKS",
+ "provisioningState": "Creating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "AKS",
+ "provisioningState": "Creating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createBasicAmlCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createBasicAmlCompute.json
new file mode 100644
index 000000000000..0991c02b03cc
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createBasicAmlCompute.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "computeType": "AmlCompute",
+ "properties": {
+ "vmSize": "STANDARD_NC6",
+ "vmPriority": "Dedicated",
+ "scaleSettings": {
+ "maxNodeCount": 1,
+ "minNodeCount": 0,
+ "nodeIdleTimeBeforeScaleDown": "PT5M"
+ },
+ "remoteLoginPortPublicAccess": "NotSpecified"
+ }
+ },
+ "identity": {
+ "type": "SystemAssigned,UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name": {}
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "AmlCompute",
+ "provisioningState": "Creating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "AmlCompute",
+ "provisioningState": "Creating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createBasicDataFactoryCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createBasicDataFactoryCompute.json
new file mode 100644
index 000000000000..9f5f2ad84111
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createBasicDataFactoryCompute.json
@@ -0,0 +1,44 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "computeType": "DataFactory"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "DataFactory",
+ "provisioningState": "Creating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "DataFactory",
+ "provisioningState": "Creating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createComputeInstance.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createComputeInstance.json
new file mode 100644
index 000000000000..d9cfe507570c
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createComputeInstance.json
@@ -0,0 +1,52 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "computeType": "ComputeInstance",
+ "properties": {
+ "vmSize": "STANDARD_NC6",
+ "subnet": "test-subnet-resource-id",
+ "applicationSharingPolicy": "Personal",
+ "sshSettings": {
+ "sshPublicAccess": "Disabled"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "ComputeInstance",
+ "provisioningState": "Creating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "ComputeInstance",
+ "provisioningState": "Creating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createComputeInstanceMinimal.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createComputeInstanceMinimal.json
new file mode 100644
index 000000000000..233290e1fc86
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createComputeInstanceMinimal.json
@@ -0,0 +1,47 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "computeType": "ComputeInstance",
+ "properties": {
+ "vmSize": "STANDARD_NC6"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "ComputeInstance",
+ "provisioningState": "Creating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "computeType": "ComputeInstance",
+ "provisioningState": "Creating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createWorkspace.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createWorkspace.json
new file mode 100644
index 000000000000..d2d30a73a0c7
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createWorkspace.json
@@ -0,0 +1,148 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "workspace-1234",
+ "workspaceName": "testworkspace",
+ "api-version": "2020-08-01",
+ "parameters": {
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Basic",
+ "tier": "Basic"
+ },
+ "properties": {
+ "friendlyName": "HelloName",
+ "description": "test description",
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccount",
+ "encryption": {
+ "status": "Enabled",
+ "keyVaultProperties": {
+ "keyVaultArmId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "keyIdentifier": "https://testkv.vault.azure.net/keys/testkey/aabbccddee112233445566778899aabb",
+ "identityClientId": ""
+ }
+ },
+ "hbiWorkspace": false,
+ "sharedPrivateLinkResources": [
+ {
+ "name": "testdbresource",
+ "properties": {
+ "privateLinkResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.DocumentDB/databaseAccounts/testdbresource/privateLinkResources/Sql",
+ "groupId": "Sql",
+ "requestMessage": "Please approve",
+ "status": "Approved"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace",
+ "name": "testworkspace",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Basic",
+ "tier": "Basic"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccount",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "HelloName",
+ "description": "test description",
+ "encryption": {
+ "status": "Enabled",
+ "keyVaultProperties": {
+ "keyVaultArmId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "keyIdentifier": "https://testkv.vault.azure.net/keys/testkey/aabbccddee112233445566778899aabb",
+ "identityClientId": ""
+ }
+ },
+ "hbiWorkspace": false,
+ "allowPublicAccessWhenBehindVnet": false,
+ "sharedPrivateLinkResources": [
+ {
+ "name": "testdbresource",
+ "properties": {
+ "privateLinkResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.DocumentDB/databaseAccounts/testdbresource/privateLinkResources/Sql",
+ "groupId": "Sql",
+ "requestMessage": "Please approve",
+ "status": "Approved"
+ }
+ }
+ ],
+ "notebookInfo": {
+ "resourceId": "aabbccddee112233445566778899",
+ "fqdn": "testnotebook.notebooks.azure.com",
+ "notebookPreparationError": {
+ "statusCode": 500,
+ "errorMessage": "general error"
+ }
+ }
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace",
+ "name": "testworkspace",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Basic",
+ "tier": "Basic"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccount",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "HelloName",
+ "description": "test description",
+ "encryption": {
+ "status": "Enabled",
+ "keyVaultProperties": {
+ "keyVaultArmId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "keyIdentifier": "https://testkv.vault.azure.net/keys/testkey/aabbccddee112233445566778899aabb",
+ "identityClientId": ""
+ }
+ },
+ "hbiWorkspace": false,
+ "allowPublicAccessWhenBehindVnet": false,
+ "sharedPrivateLinkResources": [
+ {
+ "name": "testdbresource",
+ "properties": {
+ "privateLinkResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.DocumentDB/databaseAccounts/testdbresource/privateLinkResources/Sql",
+ "groupId": "Sql",
+ "requestMessage": "Please approve",
+ "status": "Approved"
+ }
+ }
+ ],
+ "notebookInfo": {
+ "resourceId": "aabbccddee112233445566778899",
+ "fqdn": "testnotebook.notebooks.azure.com",
+ "notebookPreparationError": {
+ "statusCode": 500,
+ "errorMessage": "general error"
+ }
+ }
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createWorkspaceConnection.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createWorkspaceConnection.json
new file mode 100644
index 000000000000..c8bf904f1972
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/createWorkspaceConnection.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "resourceGroup-1",
+ "workspaceName": "workspace-1",
+ "connectionName": "connection-1",
+ "api-version": "2020-08-01",
+ "parameters": {
+ "name": "connection-1",
+ "properties": {
+ "category": "ACR",
+ "target": "www.facebook.com",
+ "authType": "PAT",
+ "value": "secrets"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1/providers/Microsoft.MachineLearningServices/workspaces/workspace-1/connections/connection-1",
+ "name": "connection-1",
+ "type": "Microsoft.MachineLearningServices/workspaces/connections",
+ "properties": {
+ "category": "ACR",
+ "target": "www.facebook.com",
+ "authType": "PAT",
+ "value": "secrets"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/deleteCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/deleteCompute.json
new file mode 100644
index 000000000000..5a481990bf03
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/deleteCompute.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01",
+ "underlyingResourceAction": "Delete"
+ },
+ "responses": {
+ "200": {},
+ "202": {
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus...",
+ "Location": "https://management.azure.com/subscriptions/...pathToOperationResult..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/deleteWorkspace.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/deleteWorkspace.json
new file mode 100644
index 000000000000..505f38872657
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/deleteWorkspace.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "workspace-1234",
+ "workspaceName": "testworkspace",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/deleteWorkspaceConnection.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/deleteWorkspaceConnection.json
new file mode 100644
index 000000000000..05f9fbc2129e
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/deleteWorkspaceConnection.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "resourceGroup-1",
+ "workspaceName": "workspace-1",
+ "connectionName": "connection-1",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {},
+ "204": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getAKSCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getAKSCompute.json
new file mode 100644
index 000000000000..8a71fe8b46ed
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getAKSCompute.json
@@ -0,0 +1,25 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "description": "some compute",
+ "resourceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourcegroups/testrg123/providers/Microsoft.ContainerService/managedClusters/compute123-56826-c9b00420020b2",
+ "computeType": "AKS",
+ "provisioningState": "Succeeded"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getAmlCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getAmlCompute.json
new file mode 100644
index 000000000000..f13d21320db8
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getAmlCompute.json
@@ -0,0 +1,60 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus2",
+ "properties": {
+ "description": "some compute",
+ "computeType": "AmlCompute",
+ "createdOn": "2017-09-26T22:28:08.327Z",
+ "provisioningState": "Succeeded",
+ "properties": {
+ "vmSize": "STANDARD_NC6",
+ "vmPriority": "Dedicated",
+ "subnet": "test-subnet-resource-id",
+ "scaleSettings": {
+ "maxNodeCount": 1,
+ "minNodeCount": 0,
+ "nodeIdleTimeBeforeScaleDown": "PT5M"
+ },
+ "remoteLoginPortPublicAccess": "Enabled",
+ "allocationState": "Resizing",
+ "allocationStateTransitionTime": "2017-09-27T22:28:08.998Z",
+ "errors": null,
+ "currentNodeCount": 0,
+ "targetNodeCount": 1,
+ "nodeStateCounts": {
+ "preparingNodeCount": 0,
+ "runningNodeCount": 0,
+ "idleNodeCount": 0,
+ "unusableNodeCount": 0,
+ "leavingNodeCount": 0,
+ "preemptedNodeCount": 0
+ }
+ }
+ },
+ "identity": {
+ "principalId": "00000000-0000-0000-0000-000000000000",
+ "tenantId": "00000000-0000-0000-0000-000000000000",
+ "type": "SystemAssigned,UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/f9d7ebed-adbd-4cb4-b973-aaf82c136138/resourcegroups/myResourceGroup1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity2": {
+ "clientId": "00000000-0000-0000-0000-000000000000",
+ "principalId": "00000000-0000-0000-0000-000000000000"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getComputeInstance.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getComputeInstance.json
new file mode 100644
index 000000000000..fbefecae9dbe
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getComputeInstance.json
@@ -0,0 +1,57 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus2",
+ "properties": {
+ "description": "some compute",
+ "computeType": "ComputeInstance",
+ "createdOn": "2017-09-26T22:28:08.327Z",
+ "provisioningState": "Succeeded",
+ "properties": {
+ "vmSize": "STANDARD_NC6",
+ "subnet": "test-subnet-resource-id",
+ "applicationSharingPolicy": "Shared",
+ "sshSettings": {
+ "sshPublicAccess": "Enabled",
+ "adminUserName": "azureuser",
+ "sshPort": 22
+ },
+ "createdBy": {
+ "userName": "foobar@microsoft.com",
+ "userOrgId": "00000000-0000-0000-0000-000000000000",
+ "userId": "00000000-0000-0000-0000-000000000000"
+ },
+ "connectivityEndpoints": {
+ "publicIpAddress": "10.0.0.1",
+ "privateIpAddress": "10.0.0.1"
+ },
+ "applications": [
+ {
+ "displayName": "Jupyter",
+ "endpointUri": "https://compute123.eastus2.azureml.net/jupyter"
+ }
+ ],
+ "errors": null,
+ "state": "Running",
+ "lastOperation": {
+ "operationName": "Start",
+ "operationTime": "2020-06-30T19:35:52.548+00:00",
+ "operationStatus": "Succeeded"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getComputes.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getComputes.json
new file mode 100644
index 000000000000..e9276c17109a
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getComputes.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "description": "some compute",
+ "resourceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourcegroups/testrg123/providers/Microsoft.ContainerService/managedClusters/compute123-56826-c9b00420020b2",
+ "computeType": "AKS",
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute1234",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute1234",
+ "location": "eastus",
+ "properties": {
+ "description": "some compute",
+ "resourceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourcegroups/testrg123/providers/Microsoft.ContainerService/managedClusters/compute1234-56826-c9b00420020b2",
+ "computeType": "AKS",
+ "provisioningState": "Succeeded"
+ }
+ }
+ ],
+ "nextLink": "nextLink"
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getWorkspace.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getWorkspace.json
new file mode 100644
index 000000000000..9c7e73d54ecd
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getWorkspace.json
@@ -0,0 +1,82 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "workspace-1234",
+ "workspaceName": "testworkspace",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace",
+ "name": "testworkspace",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Enterprise",
+ "tier": "Enterprise"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccount",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "HelloName",
+ "description": "test description",
+ "encryption": {
+ "status": "Enabled",
+ "keyVaultProperties": {
+ "keyVaultArmId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "keyIdentifier": "https://testkv.vault.azure.net/keys/testkey/aabbccddee112233445566778899aabb",
+ "identityClientId": ""
+ }
+ },
+ "hbiWorkspace": false,
+ "serviceProvisionedResourceGroup": "testworkspace_0000111122223333",
+ "privateLinkCount": 0,
+ "allowPublicAccessWhenBehindVnet": false,
+ "imageBuildCompute": "testcompute",
+ "privateEndpointConnections": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/privateEndpointConnections/testprivatelinkconnection",
+ "name": "testprivatelinkconnection",
+ "type": "Microsoft.MachineLearningServices/workspaces/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ ],
+ "sharedPrivateLinkResources": [
+ {
+ "name": "testcosmosdbresource",
+ "properties": {
+ "privateLinkResourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.DocumentDB/databaseAccounts/testcosmosdbresource/privateLinkResources/Sql",
+ "groupId": "Sql",
+ "requestMessage": "Please approve",
+ "status": "Approved"
+ }
+ }
+ ],
+ "notebookInfo": {
+ "resourceId": "aabbccddee112233445566778899",
+ "fqdn": "testnotebook.notebooks.azure.com",
+ "notebookPreparationError": {
+ "statusCode": 500,
+ "errorMessage": "general error"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getWorkspaceConnection.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getWorkspaceConnection.json
new file mode 100644
index 000000000000..48e5b84194c1
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getWorkspaceConnection.json
@@ -0,0 +1,24 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "resourceGroup-1",
+ "workspaceName": "workspace-1",
+ "connectionName": "connection-1",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1/providers/Microsoft.MachineLearningServices/workspaces/workspace-1/connections/connection-1",
+ "name": "connection-1",
+ "type": "Microsoft.MachineLearningServices/workspaces/connections",
+ "properties": {
+ "category": "ACR",
+ "target": "www.facebook.com",
+ "authType": "PAT",
+ "value": "secrets"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getWorkspacesByResourceGroup.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getWorkspacesByResourceGroup.json
new file mode 100644
index 000000000000..af19522dabf7
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getWorkspacesByResourceGroup.json
@@ -0,0 +1,56 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "workspace-1234",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace",
+ "name": "testworkspace",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Basic",
+ "tier": "Basic"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccount",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "HelloName",
+ "description": "test description"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace1",
+ "name": "testworkspace1",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Basic",
+ "tier": "Basic"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistryNew",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkvNew",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccountOld",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "HelloName 1",
+ "description": "test description"
+ }
+ }
+ ],
+ "nextLink": "nextLink"
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getWorkspacesBySubscription.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getWorkspacesBySubscription.json
new file mode 100644
index 000000000000..5e55843647c0
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/getWorkspacesBySubscription.json
@@ -0,0 +1,55 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace",
+ "name": "testworkspace",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Enterprise",
+ "tier": "Enterprise"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccount",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "HelloName",
+ "description": "test description"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-5678/providers/Microsoft.MachineLearningServices/workspaces/testworkspace",
+ "name": "testworkspace",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Enterprise",
+ "tier": "Enterprise"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistryNew",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkvNew",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccountOld",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "HelloName",
+ "description": "test description"
+ }
+ }
+ ],
+ "nextLink": "nextLink"
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/listKeysAKSCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/listKeysAKSCompute.json
new file mode 100644
index 000000000000..42b2d8c921fd
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/listKeysAKSCompute.json
@@ -0,0 +1,19 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "computeType": "AKS",
+ "userKubeConfig": "user kube config...",
+ "adminKubeConfig": "admin kube config...",
+ "imagePullSecretName": "the image pull secret name"
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/listWorkspaceConnections.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/listWorkspaceConnections.json
new file mode 100644
index 000000000000..1a060568ec01
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/listWorkspaceConnections.json
@@ -0,0 +1,40 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "resourceGroup-1",
+ "workspaceName": "workspace-1",
+ "api-version": "2020-08-01",
+ "target": "www.facebook.com",
+ "category": "ACR"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1/providers/Microsoft.MachineLearningServices/workspaces/workspace-1/linkedWorkspaces/connection-1",
+ "name": "connection-1",
+ "type": "Microsoft.MachineLearningServices/workspaces/connections",
+ "properties": {
+ "category": "ACR",
+ "target": "www.facebook.com",
+ "authType": "PAT",
+ "value": "secrets"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroup-1/providers/Microsoft.MachineLearningServices/workspaces/workspace-1/linkedWorkspaces/connection-2",
+ "name": "connection-2",
+ "type": "Microsoft.MachineLearningServices/workspaces/connections",
+ "properties": {
+ "category": "ACR",
+ "target": "www.facebook.com",
+ "authType": "PAT",
+ "value": "secrets"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/listWorkspaceKeys.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/listWorkspaceKeys.json
new file mode 100644
index 000000000000..df2129dfc2d4
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/listWorkspaceKeys.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "userStorageKey": "r5rKCJ018TLk+bdAi/9YaVzgcQ0nkLsUqGyUN03KsdCFtqG0SjFGPV8+vT1frWqkvBL0bGoPpLc1BlZSSaZmOA==",
+ "userStorageResourceId": "/subscriptions/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/resourceGroups/ragargeastus2euap/providers/Microsoft.Storage/storageAccounts/testdemoworkazashomr",
+ "appInsightsInstrumentationKey": null,
+ "containerRegistryCredentials": {
+ "location": null,
+ "username": "testdemoworkjmjmeykp",
+ "passwords": [
+ {
+ "name": "password",
+ "value": "vBvVhYgAGtUSewVCUv3w95p4/q5Yrsnw"
+ },
+ {
+ "name": "password2",
+ "value": "0KARRQoQHSUq1yViPWg7YFernOS=Ic/t"
+ }
+ ]
+ },
+ "notebookAccessKeys": {
+ "primaryAccessKey": "vBvVhYgAGtUSewVCUv3w95p4/q5Yrsnw",
+ "secondaryAccessKey": "0KARRQoQHSUq1yViPWg7YFernOS"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/patchAmlCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/patchAmlCompute.json
new file mode 100644
index 000000000000..08bed85226c5
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/patchAmlCompute.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01",
+ "parameters": {
+ "properties": {
+ "scaleSettings": {
+ "maxNodeCount": 4,
+ "minNodeCount": 4,
+ "nodeIdleTimeBeforeScaleDown": "PT5M"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus2",
+ "properties": {
+ "description": "some compute",
+ "computeType": "AmlCompute",
+ "provisioningState": "Updating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/restartComputeInstance.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/restartComputeInstance.json
new file mode 100644
index 000000000000..ab010e7ea19a
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/restartComputeInstance.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/resyncWorkspaceKeys.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/resyncWorkspaceKeys.json
new file mode 100644
index 000000000000..779ba3892481
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/resyncWorkspaceKeys.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "subscriptionId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/startComputeInstance.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/startComputeInstance.json
new file mode 100644
index 000000000000..ab010e7ea19a
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/startComputeInstance.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/stopComputeInstance.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/stopComputeInstance.json
new file mode 100644
index 000000000000..ab010e7ea19a
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/stopComputeInstance.json
@@ -0,0 +1,12 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/updateAKSCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/updateAKSCompute.json
new file mode 100644
index 000000000000..37f50e1e99df
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/updateAKSCompute.json
@@ -0,0 +1,53 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "description": "some compute",
+ "resourceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourcegroups/testrg123/providers/Microsoft.ContainerService/managedClusters/compute123-56826-c9b00420020b2",
+ "computeType": "AKS",
+ "properties": {
+ "agentCount": 4
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "description": "some compute",
+ "resourceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourcegroups/testrg123/providers/Microsoft.ContainerService/managedClusters/compute123-56826-c9b00420020b2",
+ "computeType": "AKS",
+ "provisioningState": "Updating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus",
+ "properties": {
+ "description": "some compute",
+ "resourceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourcegroups/testrg123/providers/Microsoft.ContainerService/managedClusters/compute123-56826-c9b00420020b2",
+ "computeType": "AKS",
+ "provisioningState": "Updating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/updateAmlCompute.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/updateAmlCompute.json
new file mode 100644
index 000000000000..602a15002225
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/updateAmlCompute.json
@@ -0,0 +1,59 @@
+{
+ "parameters": {
+ "subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "computeName": "compute123",
+ "api-version": "2020-08-01",
+ "parameters": {
+ "location": "eastus",
+ "properties": {
+ "computeType": "AmlCompute",
+ "properties": {
+ "scaleSettings": {
+ "maxNodeCount": 1,
+ "minNodeCount": 0,
+ "nodeIdleTimeBeforeScaleDown": "PT5M"
+ }
+ }
+ },
+ "identity": {
+ "type": "SystemAssigned,UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name": {}
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus2",
+ "properties": {
+ "description": "some compute",
+ "computeType": "AmlCompute",
+ "provisioningState": "Updating"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.MachineLearningServices/workspaces/workspaces123/computes/compute123",
+ "type": "Microsoft.MachineLearningServices/workspaces/computes",
+ "name": "compute123",
+ "location": "eastus2",
+ "properties": {
+ "description": "some compute",
+ "computeType": "AmlCompute",
+ "provisioningState": "Updating"
+ }
+ },
+ "headers": {
+ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..."
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/updateQuota.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/updateQuota.json
new file mode 100644
index 000000000000..9ea10592ce67
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/updateQuota.json
@@ -0,0 +1,45 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-0000-0000-0000-000000000000",
+ "location": "eastus",
+ "api-version": "2020-08-01",
+ "parameters": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/StandardDSv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 100,
+ "unit": "Count"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/StandardDSv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 200,
+ "unit": "Count"
+ }
+ ]
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace1/quotas/StandardDSv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 100,
+ "unit": "Count",
+ "status": "Success"
+ },
+ {
+ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace2/quotas/StandardDSv2Family",
+ "type": "Microsoft.MachineLearningServices/workspaces/dedicatedCores/quotas",
+ "limit": 200,
+ "unit": "Count",
+ "status": "Success"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/updateWorkspace.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/updateWorkspace.json
new file mode 100644
index 000000000000..092a4e0a43ad
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/updateWorkspace.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "workspace-1234",
+ "workspaceName": "testworkspace",
+ "api-version": "2020-08-01",
+ "parameters": {
+ "sku": {
+ "name": "Enterprise",
+ "tier": "Enterprise"
+ },
+ "properties": {
+ "friendlyName": "New friendly name",
+ "description": "new description"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace",
+ "name": "testworkspace",
+ "type": "Microsoft.MachineLearningServices/workspaces",
+ "location": "eastus2euap",
+ "sku": {
+ "name": "Enterprise",
+ "tier": "Enterprise"
+ },
+ "properties": {
+ "containerRegistry": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.ContainerRegistry/registries/testRegistry",
+ "keyVault": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/Microsoft.KeyVault/vaults/testkv",
+ "applicationInsights": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/workspace-1234/providers/microsoft.insights/components/testinsights",
+ "storageAccount": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/accountcrud-1234/providers/Microsoft.Storage/storageAccounts/testStorageAccount",
+ "discoveryUrl": "http://example.com",
+ "creationTime": "2017-03-01T23:14:37.0707808Z",
+ "friendlyName": "New friendly name",
+ "description": "new description"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspaceDeletePrivateEndpointConnection.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspaceDeletePrivateEndpointConnection.json
new file mode 100644
index 000000000000..fe4f5097e5cc
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspaceDeletePrivateEndpointConnection.json
@@ -0,0 +1,15 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "rg-1234",
+ "workspaceName": "testworkspace",
+ "privateEndpointConnectionName": "{privateEndpointConnectionName}",
+ "api-version": "2020-08-01",
+ "monitor": "true"
+ },
+ "responses": {
+ "200": {},
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspaceGetPrivateEndpointConnection.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspaceGetPrivateEndpointConnection.json
new file mode 100644
index 000000000000..043658626c5c
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspaceGetPrivateEndpointConnection.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "rg-1234",
+ "workspaceName": "testworkspace",
+ "privateEndpointConnectionName": "{privateEndpointConnectionName}",
+ "api-version": "2020-08-01",
+ "monitor": "true"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/privateEndpointConnections/{privateEndpointConnectionName}",
+ "name": "{privateEndpointConnectionName}",
+ "type": "Microsoft.MachineLearningServices/workspaces/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspaceListPrivateLinkResources.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspaceListPrivateLinkResources.json
new file mode 100644
index 000000000000..9ddb75df7ac7
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspaceListPrivateLinkResources.json
@@ -0,0 +1,28 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "rg-1234",
+ "workspaceName": "testworkspace",
+ "api-version": "2020-08-01",
+ "monitor": "true"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/privateLinkResources/amlworkspace",
+ "name": "amlworkspace",
+ "type": "Microsoft.Storage/workspaces/privateLinkResources",
+ "properties": {
+ "groupId": "amlworkspace",
+ "requiredMembers": [
+ "default"
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspacePrepareNotebook.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspacePrepareNotebook.json
new file mode 100644
index 000000000000..e84272ff58ee
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspacePrepareNotebook.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "subscriptionId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
+ "resourceGroupName": "testrg123",
+ "workspaceName": "workspaces123",
+ "api-version": "2020-08-01"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "resourceId": "aabbccddee112233445566778899",
+ "fqdn": "testnotebook.notebooks.azure.com",
+ "notebookPreparationError": {
+ "statusCode": 500,
+ "errorMessage": "general error"
+ }
+ }
+ },
+ "202": {}
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspacePutPrivateEndpointConnection.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspacePutPrivateEndpointConnection.json
new file mode 100644
index 000000000000..7f8c6715d47c
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/examples/workspacePutPrivateEndpointConnection.json
@@ -0,0 +1,38 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "resourceGroupName": "rg-1234",
+ "workspaceName": "testworkspace",
+ "privateEndpointConnectionName": "{privateEndpointConnectionName}",
+ "api-version": "2020-08-01",
+ "monitor": "true",
+ "properties": {
+ "properties": {
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.MachineLearningServices/workspaces/testworkspace/privateEndpointConnections/{privateEndpointConnectionName}",
+ "name": "{privateEndpointConnectionName}",
+ "type": "Microsoft.MachineLearningServices/workspaces/privateEndpointConnections",
+ "properties": {
+ "provisioningState": "Succeeded",
+ "privateEndpoint": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.Network/privateEndpoints/petest01"
+ },
+ "privateLinkServiceConnectionState": {
+ "status": "Approved",
+ "description": "Auto-Approved",
+ "actionsRequired": "None"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/machineLearningServices.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/machineLearningServices.json
new file mode 100644
index 000000000000..8e05c90bac12
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2020-08-01/machineLearningServices.json
@@ -0,0 +1,4265 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Machine Learning Workspaces",
+ "description": "These APIs allow end users to operate on Azure Machine Learning Workspace resources.",
+ "version": "2020-08-01"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ],
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "flow": "implicit",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "paths": {
+ "/providers/Microsoft.MachineLearningServices/operations": {
+ "get": {
+ "tags": [
+ "Operation"
+ ],
+ "description": "Lists all of the available Azure Machine Learning Workspaces REST API operations.",
+ "operationId": "Operations_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/OperationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": null
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}": {
+ "get": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Gets the properties of the specified machine learning workspace.",
+ "operationId": "Workspaces_Get",
+ "x-ms-examples": {
+ "Get Workspace": {
+ "$ref": "./examples/getWorkspace.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Creates or updates a workspace with the specified parameters.",
+ "operationId": "Workspaces_CreateOrUpdate",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create Workspace": {
+ "$ref": "./examples/createWorkspace.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The parameters for creating or updating a machine learning workspace.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "201": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "202": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Deletes a machine learning workspace.",
+ "operationId": "Workspaces_Delete",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete Workspace": {
+ "$ref": "./examples/deleteWorkspace.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "202": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "204": {
+ "description": "The machine learning workspace does not exist in the subscription."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Updates a machine learning workspace with the specified parameters.",
+ "operationId": "Workspaces_Update",
+ "x-ms-examples": {
+ "Update Workspace": {
+ "$ref": "./examples/updateWorkspace.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The parameters for updating a machine learning workspace.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkspaceUpdateParameters"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/features": {
+ "get": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Lists all enabled features for a workspace",
+ "operationId": "WorkspaceFeatures_List",
+ "x-ms-examples": {
+ "List Workspace features": {
+ "$ref": "./examples/ListWorkspaceFeatures.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/ListAmlUserFeatureResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/prepareNotebook": {
+ "post": {
+ "tags": [
+ "ProxyOperations"
+ ],
+ "operationId": "Notebooks_Prepare",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Prepare Notebook": {
+ "$ref": "./examples/workspacePrepareNotebook.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/NotebookResourceInfo"
+ }
+ },
+ "202": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces": {
+ "get": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Lists all the available machine learning workspaces under the specified resource group.",
+ "operationId": "Workspaces_ListByResourceGroup",
+ "x-ms-examples": {
+ "Get Workspaces by Resource Group": {
+ "$ref": "./examples/getWorkspacesByResourceGroup.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PaginationParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/listKeys": {
+ "post": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Lists all the keys associated with this workspace. This includes keys for the storage account, app insights and password for container registry",
+ "operationId": "Workspaces_ListKeys",
+ "x-ms-examples": {
+ "List Workspace Keys": {
+ "$ref": "./examples/listWorkspaceKeys.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/ListWorkspaceKeysResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/resyncKeys": {
+ "post": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Resync all the keys associated with this workspace. This includes keys for the storage account, app insights and password for container registry",
+ "operationId": "Workspaces_ResyncKeys",
+ "x-ms-examples": {
+ "Resync Workspace Keys": {
+ "$ref": "./examples/resyncWorkspaceKeys.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/locations/{location}/usages": {
+ "get": {
+ "tags": [
+ "Usage"
+ ],
+ "operationId": "Usages_List",
+ "description": "Gets the current usage information as well as limits for AML resources for given subscription and location.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location for which resource usage is queried.",
+ "pattern": "^[-\\w\\._]+$"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ListUsagesResult"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List Usages": {
+ "$ref": "./examples/ListUsages.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/locations/{location}/vmSizes": {
+ "get": {
+ "tags": [
+ "VirtualMachineSizes"
+ ],
+ "operationId": "VirtualMachineSizes_List",
+ "description": "Returns supported VM Sizes in a location",
+ "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"
+ },
+ {
+ "$ref": "#/parameters/ComputeTypeParameter"
+ },
+ {
+ "$ref": "#/parameters/RecommendedParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/VirtualMachineSizeListResult"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "List VM Sizes": {
+ "$ref": "./examples/ListVMSizesResult.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/locations/{location}/updateQuotas": {
+ "post": {
+ "tags": [
+ "Quota"
+ ],
+ "operationId": "Quotas_Update",
+ "description": "Update quota for each VM family in workspace.",
+ "parameters": [
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location for update quota is queried.",
+ "pattern": "^[-\\w\\._]+$"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/QuotaUpdateParameters"
+ },
+ "description": "Quota update parameters."
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful.",
+ "schema": {
+ "$ref": "#/definitions/UpdateWorkspaceQuotasResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "update quotas": {
+ "$ref": "./examples/updateQuota.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/locations/{location}/Quotas": {
+ "get": {
+ "tags": [
+ "Quota"
+ ],
+ "operationId": "Quotas_List",
+ "description": "Gets the currently assigned Workspace Quotas based on VMFamily.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "name": "location",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The location for which resource usage is queried.",
+ "pattern": "^[-\\w\\._]+$"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/ListWorkspaceQuotas"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "List workspace quotas by VMFamily": {
+ "$ref": "./examples/ListWorkspaceQuotasByVMFamily.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/workspaces": {
+ "get": {
+ "tags": [
+ "Workspaces"
+ ],
+ "description": "Lists all the available machine learning workspaces under the specified subscription.",
+ "operationId": "Workspaces_ListBySubscription",
+ "x-ms-examples": {
+ "Get Workspaces by subscription": {
+ "$ref": "./examples/getWorkspacesBySubscription.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/PaginationParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/connections": {
+ "get": {
+ "tags": [
+ "WorkspaceConnections"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "ListWorkspaceConnections": {
+ "$ref": "./examples/listWorkspaceConnections.json"
+ }
+ },
+ "operationId": "WorkspaceConnections_List",
+ "description": "List all connections under a AML workspace.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/TargetParameter"
+ },
+ {
+ "$ref": "#/parameters/CategoryParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response includes a paginated array of Workspace connections and a URI to the next set of results, if any. For the more information the limits of the number of items in a resource group, see https://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/.",
+ "schema": {
+ "$ref": "#/definitions/PaginatedWorkspaceConnectionsList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/connections/{connectionName}": {
+ "put": {
+ "tags": [
+ "WorkspaceConnections"
+ ],
+ "operationId": "WorkspaceConnections_Create",
+ "description": "Add a new workspace connection.",
+ "x-ms-examples": {
+ "CreateWorkspaceConnection": {
+ "$ref": "./examples/createWorkspaceConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConnectionName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "description": "The object for creating or updating a new workspace connection",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/WorkspaceConnectionDto"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully created the workspace connection.",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "WorkspaceConnections"
+ ],
+ "operationId": "WorkspaceConnections_Get",
+ "description": "Get the detail of a workspace connection.",
+ "x-ms-examples": {
+ "GetWorkspaceConnection": {
+ "$ref": "./examples/getWorkspaceConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConnectionName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved the detail of the linked workspace.",
+ "schema": {
+ "$ref": "#/definitions/WorkspaceConnection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "WorkspaceConnections"
+ ],
+ "operationId": "WorkspaceConnections_Delete",
+ "description": "Delete a workspace connection.",
+ "x-ms-examples": {
+ "DeleteWorkspaceConnection": {
+ "$ref": "./examples/deleteWorkspaceConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ConnectionName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully deleted the workspace connection."
+ },
+ "204": {
+ "description": "Specific workspace connection not found."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes": {
+ "get": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "operationId": "MachineLearningCompute_ListByWorkspace",
+ "description": "Gets computes in specified workspace.",
+ "x-ms-examples": {
+ "Get Computes": {
+ "$ref": "./examples/getComputes.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/PaginationParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The response includes a paginated array of Machine Learning computes and a URI to the next set of results, if any. For the more information the limits of the number of items in a resource group, see https://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/.",
+ "schema": {
+ "$ref": "#/definitions/PaginatedComputeResourcesList"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}": {
+ "get": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_Get",
+ "description": "Gets compute definition by its name. Any secrets (storage keys, service credentials, etc) are not returned - use 'keys' nested resource to get them.",
+ "x-ms-examples": {
+ "Get a AKS Compute": {
+ "$ref": "./examples/getAKSCompute.json"
+ },
+ "Get a AML Compute": {
+ "$ref": "./examples/getAmlCompute.json"
+ },
+ "Get a ComputeInstance": {
+ "$ref": "./examples/getComputeInstance.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success.",
+ "schema": {
+ "$ref": "#/definitions/ComputeResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_CreateOrUpdate",
+ "description": "Creates or updates compute. This call will overwrite a compute if it exists. This is a nonrecoverable operation. If your intent is to create a new compute, do a GET first to verify that it does not exist yet.",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Create a AML Compute": {
+ "$ref": "./examples/createBasicAmlCompute.json"
+ },
+ "Create a ComputeInstance Compute with minimal inputs": {
+ "$ref": "./examples/createComputeInstanceMinimal.json"
+ },
+ "Create a ComputeInstance Compute": {
+ "$ref": "./examples/createComputeInstance.json"
+ },
+ "Create AKS Compute": {
+ "$ref": "./examples/createBasicAKSCompute.json"
+ },
+ "Create a DataFactory Compute": {
+ "$ref": "./examples/createBasicDataFactoryCompute.json"
+ },
+ "Update a AML Compute": {
+ "$ref": "./examples/updateAmlCompute.json"
+ },
+ "Update a AKS Compute": {
+ "$ref": "./examples/updateAKSCompute.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeDefinitionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Compute creation or update initiated.",
+ "schema": {
+ "$ref": "#/definitions/ComputeResource"
+ }
+ },
+ "201": {
+ "description": "Compute creation or update initiated.",
+ "headers": {
+ "Azure-AsyncOperation": {
+ "description": "URI to poll for asynchronous operation status.",
+ "type": "string"
+ }
+ },
+ "schema": {
+ "$ref": "#/definitions/ComputeResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_Update",
+ "description": "Updates properties of a compute. This call will overwrite a compute if it exists. This is a nonrecoverable operation.",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Update a AmlCompute Compute": {
+ "$ref": "./examples/patchAmlCompute.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "name": "parameters",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ClusterUpdateParameters"
+ },
+ "description": "Additional parameters for cluster update."
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Compute update initiated.",
+ "schema": {
+ "$ref": "#/definitions/ComputeResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_Delete",
+ "description": "Deletes specified Machine Learning compute.",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "Delete Compute": {
+ "$ref": "./examples/deleteCompute.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/UnderlyingResourceActionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "202": {
+ "description": "Compute deletion initiated.",
+ "headers": {
+ "Azure-AsyncOperation": {
+ "description": "URI to poll for asynchronous operation status.",
+ "type": "string"
+ },
+ "Location": {
+ "description": "URI to poll for asynchronous operation result.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the request failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}/listNodes": {
+ "post": {
+ "tags": [
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_ListNodes",
+ "description": "Get the details (e.g IP address, port etc) of all the compute nodes in the compute.",
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The operation was successful. The response contains the list of IP addresses.",
+ "schema": {
+ "$ref": "#/definitions/AmlComputeNodesInformation"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "Get compute nodes information for a compute": {
+ "$ref": "./examples/amlComputeListNodes.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}/listKeys": {
+ "post": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_ListKeys",
+ "description": "Gets secrets related to Machine Learning compute (storage keys, service credentials, etc).",
+ "x-ms-examples": {
+ "List AKS Compute Keys": {
+ "$ref": "./examples/listKeysAKSCompute.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success.",
+ "schema": {
+ "$ref": "#/definitions/ComputeSecrets"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/workspaces/skus": {
+ "get": {
+ "tags": [
+ "WorkspaceSkus"
+ ],
+ "description": "Lists all skus with associated features",
+ "operationId": "ListSkus",
+ "x-ms-examples": {
+ "List Skus": {
+ "$ref": "./examples/ListSkus.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The request was successful; the request was well-formed and received properly.",
+ "schema": {
+ "$ref": "#/definitions/SkuListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}": {
+ "get": {
+ "tags": [
+ "WorkspacePrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Get",
+ "description": "Gets the specified private endpoint connection associated with the workspace.",
+ "x-ms-examples": {
+ "WorkspaceGetPrivateEndpointConnection": {
+ "$ref": "./examples/workspaceGetPrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateEndpointConnectionName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "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": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "WorkspacePrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Put",
+ "description": "Update the state of specified private endpoint connection associated with the workspace.",
+ "x-ms-examples": {
+ "WorkspacePutPrivateEndpointConnection": {
+ "$ref": "./examples/workspacePutPrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateEndpointConnectionName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ },
+ {
+ "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"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "WorkspacePrivateEndpointConnections"
+ ],
+ "operationId": "PrivateEndpointConnections_Delete",
+ "description": "Deletes the specified private endpoint connection associated with the workspace.",
+ "x-ms-long-running-operation": true,
+ "x-ms-examples": {
+ "WorkspaceDeletePrivateEndpointConnection": {
+ "$ref": "./examples/workspaceDeletePrivateEndpointConnection.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/PrivateEndpointConnectionName"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK -- Delete the private endpoint connection successfully."
+ },
+ "202": {
+ "description": "The request was successful; the request was well-formed and received properly."
+ },
+ "204": {
+ "description": "No Content -- The private endpoint connection does not exist."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/privateLinkResources": {
+ "get": {
+ "tags": [
+ "WorkspacePrivateLinkResources"
+ ],
+ "operationId": "PrivateLinkResources_ListByWorkspace",
+ "description": "Gets the private link resources that need to be created for a workspace.",
+ "x-ms-examples": {
+ "WorkspaceListPrivateLinkResources": {
+ "$ref": "./examples/workspaceListPrivateLinkResources.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully retrieved private link resources.",
+ "schema": {
+ "$ref": "#/definitions/PrivateLinkResourceListResult"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}/start": {
+ "post": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_Start",
+ "description": "Posts a start action to a compute instance",
+ "x-ms-examples": {
+ "Start ComputeInstance Compute": {
+ "$ref": "./examples/startComputeInstance.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}/stop": {
+ "post": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_Stop",
+ "description": "Posts a stop action to a compute instance",
+ "x-ms-examples": {
+ "Stop ComputeInstance Compute": {
+ "$ref": "./examples/stopComputeInstance.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}/restart": {
+ "post": {
+ "tags": [
+ "OperationalizationClusters",
+ "MachineLearningComputes"
+ ],
+ "operationId": "MachineLearningCompute_Restart",
+ "description": "Posts a restart action to a compute instance",
+ "x-ms-examples": {
+ "Restart ComputeInstance Compute": {
+ "$ref": "./examples/restartComputeInstance.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/ResourceGroupNameParameter"
+ },
+ {
+ "$ref": "#/parameters/WorkspaceNameParameter"
+ },
+ {
+ "$ref": "#/parameters/ComputeNameParameter"
+ },
+ {
+ "$ref": "#/parameters/APIVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "SubscriptionIdParameter": {
+ "name": "subscriptionId",
+ "description": "Azure subscription identifier.",
+ "in": "path",
+ "type": "string",
+ "required": true
+ },
+ "ResourceGroupNameParameter": {
+ "name": "resourceGroupName",
+ "description": "Name of the resource group in which workspace is located.",
+ "in": "path",
+ "type": "string",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "WorkspaceNameParameter": {
+ "name": "workspaceName",
+ "description": "Name of Azure Machine Learning workspace.",
+ "in": "path",
+ "type": "string",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "ComputeNameParameter": {
+ "name": "computeName",
+ "description": "Name of the Azure Machine Learning compute.",
+ "in": "path",
+ "type": "string",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "AsyncOperationIdParameter": {
+ "name": "asyncOperationId",
+ "description": "Identifier of an asynchronous Azure Machine Learning compute operation.",
+ "in": "path",
+ "type": "string",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "LocationParameter": {
+ "name": "location",
+ "description": "The name of the Azure location/region.",
+ "in": "path",
+ "type": "string",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "APIVersionParameter": {
+ "in": "query",
+ "name": "api-version",
+ "type": "string",
+ "description": "Version of Azure Machine Learning resource provider API.",
+ "required": true
+ },
+ "PaginationParameter": {
+ "in": "query",
+ "name": "$skiptoken",
+ "type": "string",
+ "description": "Continuation token for pagination.",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "ComputeDefinitionParameter": {
+ "in": "body",
+ "name": "parameters",
+ "description": "Payload with Machine Learning compute definition.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ComputeResource"
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "ComputeTypeParameter": {
+ "in": "query",
+ "name": "compute-type",
+ "type": "string",
+ "description": "Type of compute to filter by.",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "UnderlyingResourceActionParameter": {
+ "in": "query",
+ "name": "underlyingResourceAction",
+ "type": "string",
+ "description": "Delete the underlying compute if 'Delete', or detach the underlying compute from workspace if 'Detach'.",
+ "required": true,
+ "enum": [
+ "Delete",
+ "Detach"
+ ],
+ "x-ms-enum": {
+ "name": "UnderlyingResourceAction",
+ "modelAsString": true
+ },
+ "x-ms-parameter-location": "method"
+ },
+ "PrivateEndpointConnectionName": {
+ "name": "privateEndpointConnectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "The name of the private endpoint connection associated with the workspace",
+ "x-ms-parameter-location": "method"
+ },
+ "ConnectionName": {
+ "name": "connectionName",
+ "in": "path",
+ "required": true,
+ "type": "string",
+ "description": "Friendly name of the workspace connection",
+ "x-ms-parameter-location": "method"
+ },
+ "TargetParameter": {
+ "in": "query",
+ "name": "target",
+ "type": "string",
+ "description": "Target of the workspace connection.",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "CategoryParameter": {
+ "in": "query",
+ "name": "category",
+ "type": "string",
+ "description": "Category of the workspace connection.",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "RecommendedParameter": {
+ "in": "query",
+ "name": "recommended",
+ "type": "boolean",
+ "description": "Specifies whether to return recommended vm sizes or all vm sizes",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "definitions": {
+ "Operation": {
+ "description": "Azure Machine Learning workspace REST API operation",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}",
+ "type": "string"
+ },
+ "display": {
+ "description": "Display name of operation",
+ "properties": {
+ "provider": {
+ "description": "The resource provider name: Microsoft.MachineLearningExperimentation",
+ "type": "string"
+ },
+ "resource": {
+ "description": "The resource on which the operation is performed.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "The operation that users can perform.",
+ "type": "string"
+ },
+ "description": {
+ "description": "The description for the operation.",
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "NotebookListCredentialsResult": {
+ "type": "object",
+ "properties": {
+ "primaryAccessKey": {
+ "type": "string"
+ },
+ "secondaryAccessKey": {
+ "type": "string"
+ }
+ }
+ },
+ "NotebookResourceInfo": {
+ "type": "object",
+ "properties": {
+ "fqdn": {
+ "type": "string"
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "the data plane resourceId that used to initialize notebook component"
+ },
+ "notebookPreparationError": {
+ "$ref": "#/definitions/NotebookPreparationError",
+ "description": "The error that occurs when preparing notebook."
+ }
+ }
+ },
+ "NotebookPreparationError": {
+ "type": "object",
+ "properties": {
+ "errorMessage": {
+ "type": "string"
+ },
+ "statusCode": {
+ "format": "int32",
+ "type": "integer"
+ }
+ }
+ },
+ "OperationListResult": {
+ "description": "An array of operations supported by the resource provider.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Operation"
+ },
+ "description": "List of AML workspace operations supported by the AML workspace resource provider."
+ }
+ }
+ },
+ "Workspace": {
+ "type": "object",
+ "description": "An object that represents a machine learning workspace.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/WorkspaceProperties",
+ "description": "The properties of the machine learning workspace.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkspaceProperties": {
+ "type": "object",
+ "description": "The properties of a machine learning workspace.",
+ "properties": {
+ "workspaceId": {
+ "description": "The immutable id associated with this workspace.",
+ "type": "string",
+ "readOnly": true
+ },
+ "description": {
+ "description": "The description of this workspace.",
+ "type": "string"
+ },
+ "friendlyName": {
+ "description": "The friendly name for this workspace. This name in mutable",
+ "type": "string"
+ },
+ "creationTime": {
+ "format": "date-time",
+ "description": "The creation time of the machine learning workspace in ISO8601 format.",
+ "type": "string",
+ "readOnly": true
+ },
+ "keyVault": {
+ "description": "ARM id of the key vault associated with this workspace. This cannot be changed once the workspace has been created",
+ "type": "string"
+ },
+ "applicationInsights": {
+ "description": "ARM id of the application insights associated with this workspace. This cannot be changed once the workspace has been created",
+ "type": "string"
+ },
+ "containerRegistry": {
+ "description": "ARM id of the container registry associated with this workspace. This cannot be changed once the workspace has been created",
+ "type": "string"
+ },
+ "storageAccount": {
+ "description": "ARM id of the storage account associated with this workspace. This cannot be changed once the workspace has been created",
+ "type": "string"
+ },
+ "discoveryUrl": {
+ "description": "Url for the discovery service to identify regional endpoints for machine learning experimentation services",
+ "type": "string"
+ },
+ "provisioningState": {
+ "type": "string",
+ "enum": [
+ "Unknown",
+ "Updating",
+ "Creating",
+ "Deleting",
+ "Succeeded",
+ "Failed",
+ "Canceled"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true
+ },
+ "readOnly": true,
+ "description": "The current deployment state of workspace resource. The provisioningState is to indicate states for resource provisioning."
+ },
+ "encryption": {
+ "$ref": "#/definitions/EncryptionProperty",
+ "description": "The encryption settings of Azure ML workspace."
+ },
+ "hbiWorkspace": {
+ "type": "boolean",
+ "description": "The flag to signal HBI data in the workspace and reduce diagnostic data collected by the service",
+ "default": false
+ },
+ "serviceProvisionedResourceGroup": {
+ "type": "string",
+ "description": "The name of the managed resource group created by workspace RP in customer subscription if the workspace is CMK workspace",
+ "readOnly": true
+ },
+ "privateLinkCount": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Count of private connections in the workspace",
+ "readOnly": true
+ },
+ "imageBuildCompute": {
+ "description": "The compute name for image build",
+ "type": "string"
+ },
+ "allowPublicAccessWhenBehindVnet": {
+ "type": "boolean",
+ "description": "The flag to indicate whether to allow public access when behind VNet.",
+ "default": false
+ },
+ "privateEndpointConnections": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PrivateEndpointConnection"
+ },
+ "description": "The list of private endpoint connections in the workspace."
+ },
+ "sharedPrivateLinkResources": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SharedPrivateLinkResource"
+ },
+ "description": "The list of shared private link resources in this workspace."
+ },
+ "notebookInfo": {
+ "readOnly": true,
+ "$ref": "#/definitions/NotebookResourceInfo",
+ "description": "The notebook info of Azure ML workspace."
+ }
+ }
+ },
+ "WorkspaceUpdateParameters": {
+ "description": "The parameters for updating a machine learning workspace.",
+ "properties": {
+ "tags": {
+ "description": "The resource tags for the machine learning workspace.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "sku": {
+ "$ref": "#/definitions/Sku",
+ "description": "The sku of the workspace."
+ },
+ "properties": {
+ "$ref": "#/definitions/WorkspacePropertiesUpdateParameters",
+ "description": "The properties that the machine learning workspace will be updated with.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkspacePropertiesUpdateParameters": {
+ "description": "The parameters for updating the properties of a machine learning workspace.",
+ "properties": {
+ "description": {
+ "description": "The description of this workspace.",
+ "type": "string"
+ },
+ "friendlyName": {
+ "description": "The friendly name for this workspace.",
+ "type": "string"
+ }
+ }
+ },
+ "AmlUserFeature": {
+ "description": "Features enabled for a workspace",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Specifies the feature ID",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "Specifies the feature name ",
+ "type": "string"
+ },
+ "description": {
+ "description": "Describes the feature for user experience",
+ "type": "string"
+ }
+ }
+ },
+ "ListAmlUserFeatureResult": {
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AmlUserFeature"
+ },
+ "description": "The list of AML user facing features."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URI to fetch the next page of AML user features information. Call ListNext() with this to fetch the next page of AML user features information."
+ }
+ },
+ "description": "The List Aml user feature operation response."
+ },
+ "UsageName": {
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the resource."
+ },
+ "localizedValue": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The localized name of the resource."
+ }
+ },
+ "description": "The Usage Names."
+ },
+ "Usage": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource ID."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource type."
+ },
+ "unit": {
+ "readOnly": true,
+ "type": "string",
+ "description": "An enum describing the unit of usage measurement.",
+ "enum": [
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "UsageUnit",
+ "modelAsString": true
+ }
+ },
+ "currentValue": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The current usage of the resource."
+ },
+ "limit": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "description": "The maximum permitted usage of the resource."
+ },
+ "name": {
+ "readOnly": true,
+ "$ref": "#/definitions/UsageName",
+ "description": "The name of the type of usage."
+ }
+ },
+ "description": "Describes AML Resource Usage."
+ },
+ "ListUsagesResult": {
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Usage"
+ },
+ "description": "The list of AML resource usages."
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The URI to fetch the next page of AML resource usage information. Call ListNext() with this to fetch the next page of AML resource usage information."
+ }
+ },
+ "description": "The List Usages operation response."
+ },
+ "VirtualMachineSize": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "title": "Virtual Machine size name",
+ "description": "The name of the virtual machine size.",
+ "readOnly": true
+ },
+ "family": {
+ "type": "string",
+ "title": "Virtual Machine family name",
+ "description": "The family name of the virtual machine size.",
+ "readOnly": true
+ },
+ "vCPUs": {
+ "type": "integer",
+ "format": "int32",
+ "title": "Number of vPUs",
+ "description": "The number of vCPUs supported by the virtual machine size.",
+ "readOnly": true
+ },
+ "gpus": {
+ "type": "integer",
+ "format": "int32",
+ "title": "Number of gPUs",
+ "description": "The number of gPUs supported by the virtual machine size.",
+ "readOnly": true
+ },
+ "osVhdSizeMB": {
+ "type": "integer",
+ "format": "int32",
+ "title": "OS VHD Disk size",
+ "description": "The OS VHD disk size, in MB, allowed by the virtual machine size.",
+ "readOnly": true
+ },
+ "maxResourceVolumeMB": {
+ "type": "integer",
+ "format": "int32",
+ "title": "Resource volume size",
+ "description": "The resource volume size, in MB, allowed by the virtual machine size.",
+ "readOnly": true
+ },
+ "memoryGB": {
+ "type": "number",
+ "format": "double",
+ "title": "Memory size",
+ "description": "The amount of memory, in GB, supported by the virtual machine size.",
+ "readOnly": true
+ },
+ "lowPriorityCapable": {
+ "type": "boolean",
+ "title": "Low priority capable",
+ "description": "Specifies if the virtual machine size supports low priority VMs.",
+ "readOnly": true
+ },
+ "premiumIO": {
+ "type": "boolean",
+ "title": "Premium IO supported",
+ "description": "Specifies if the virtual machine size supports premium IO.",
+ "readOnly": true
+ },
+ "estimatedVMPrices": {
+ "title": "Estimated VM prices",
+ "description": "The estimated price information for using a VM.",
+ "$ref": "#/definitions/EstimatedVMPrices"
+ },
+ "supportedComputeTypes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "Supported Compute Types",
+ "description": "Specifies the compute types supported by the virtual machine size."
+ }
+ },
+ "description": "Describes the properties of a VM size."
+ },
+ "EstimatedVMPrices": {
+ "properties": {
+ "billingCurrency": {
+ "type": "string",
+ "title": "Billing currency",
+ "description": "Three lettered code specifying the currency of the VM price. Example: USD",
+ "enum": [
+ "USD"
+ ],
+ "x-ms-enum": {
+ "name": "BillingCurrency",
+ "modelAsString": true
+ }
+ },
+ "unitOfMeasure": {
+ "type": "string",
+ "title": "Unit of time measure",
+ "description": "The unit of time measurement for the specified VM price. Example: OneHour",
+ "enum": [
+ "OneHour"
+ ],
+ "x-ms-enum": {
+ "name": "UnitOfMeasure",
+ "modelAsString": true
+ }
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EstimatedVMPrice"
+ },
+ "title": "List of estimated VM prices.",
+ "description": "The list of estimated prices for using a VM of a particular OS type, tier, etc."
+ }
+ },
+ "required": [
+ "billingCurrency",
+ "unitOfMeasure",
+ "values"
+ ],
+ "description": "The estimated price info for using a VM."
+ },
+ "EstimatedVMPrice": {
+ "properties": {
+ "retailPrice": {
+ "type": "number",
+ "format": "double",
+ "title": "Retail price",
+ "description": "The price charged for using the VM."
+ },
+ "osType": {
+ "type": "string",
+ "title": "OS type",
+ "description": "Operating system type used by the VM.",
+ "enum": [
+ "Linux",
+ "Windows"
+ ],
+ "x-ms-enum": {
+ "name": "VMPriceOSType",
+ "modelAsString": true
+ }
+ },
+ "vmTier": {
+ "type": "string",
+ "title": "VM tier",
+ "description": "The type of the VM.",
+ "enum": [
+ "Standard",
+ "LowPriority",
+ "Spot"
+ ],
+ "x-ms-enum": {
+ "name": "VMTier",
+ "modelAsString": true
+ }
+ }
+ },
+ "required": [
+ "retailPrice",
+ "osType",
+ "vmTier"
+ ],
+ "description": "The estimated price info for using a VM of a particular OS type, tier, etc."
+ },
+ "VirtualMachineSizeListResult": {
+ "properties": {
+ "amlCompute": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VirtualMachineSize"
+ },
+ "description": "The list of virtual machine sizes supported by AmlCompute."
+ }
+ },
+ "description": "The List Virtual Machine size operation response."
+ },
+ "WorkspaceListResult": {
+ "description": "The result of a request to list machine learning workspaces.",
+ "properties": {
+ "value": {
+ "description": "The list of machine learning workspaces. Since this list may be incomplete, the nextLink field should be used to request the next list of machine learning workspaces.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Workspace"
+ }
+ },
+ "nextLink": {
+ "description": "The URI that can be used to request the next list of machine learning workspaces.",
+ "type": "string"
+ }
+ }
+ },
+ "QuotaBaseProperties": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Specifies the resource ID."
+ },
+ "type": {
+ "type": "string",
+ "description": "Specifies the resource type."
+ },
+ "limit": {
+ "type": "integer",
+ "format": "int64",
+ "title": "Limit.",
+ "description": "The maximum permitted quota of the resource."
+ },
+ "unit": {
+ "type": "string",
+ "description": "An enum describing the unit of quota measurement.",
+ "enum": [
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "QuotaUnit",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "The properties for Quota update or retrieval."
+ },
+ "QuotaUpdateParameters": {
+ "properties": {
+ "value": {
+ "description": "The list for update quota.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/QuotaBaseProperties"
+ }
+ }
+ },
+ "description": "Quota update parameters."
+ },
+ "UpdateWorkspaceQuotasResult": {
+ "properties": {
+ "value": {
+ "description": "The list of workspace quota update result.",
+ "items": {
+ "$ref": "#/definitions/UpdateWorkspaceQuotas"
+ },
+ "readOnly": true,
+ "type": "array"
+ },
+ "nextLink": {
+ "description": "The URI to fetch the next page of workspace quota update result. Call ListNext() with this to fetch the next page of Workspace Quota update result.",
+ "readOnly": true,
+ "type": "string"
+ }
+ },
+ "description": "The result of update workspace quota."
+ },
+ "UpdateWorkspaceQuotas": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource ID."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource type."
+ },
+ "limit": {
+ "type": "integer",
+ "format": "int64",
+ "title": "Limit.",
+ "description": "The maximum permitted quota of the resource."
+ },
+ "unit": {
+ "readOnly": true,
+ "type": "string",
+ "description": "An enum describing the unit of quota measurement.",
+ "enum": [
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "QuotaUnit",
+ "modelAsString": true
+ }
+ },
+ "status": {
+ "type": "string",
+ "readOnly": false,
+ "title": "Update Workspace Quota Status.",
+ "description": "Status of update workspace quota.",
+ "enum": [
+ "Undefined",
+ "Success",
+ "Failure",
+ "InvalidQuotaBelowClusterMinimum",
+ "InvalidQuotaExceedsSubscriptionLimit",
+ "InvalidVMFamilyName",
+ "OperationNotSupportedForSku",
+ "OperationNotEnabledForRegion"
+ ],
+ "x-ms-enum": {
+ "name": "status",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "The properties for update Quota response."
+ },
+ "ResourceName": {
+ "properties": {
+ "value": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The name of the resource."
+ },
+ "localizedValue": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The localized name of the resource."
+ }
+ },
+ "description": "The Resource Name."
+ },
+ "ResourceQuota": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource ID."
+ },
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Specifies the resource type."
+ },
+ "name": {
+ "$ref": "#/definitions/ResourceName",
+ "description": "Name of the resource.",
+ "readOnly": true
+ },
+ "limit": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int64",
+ "title": "Limit.",
+ "description": "The maximum permitted quota of the resource."
+ },
+ "unit": {
+ "readOnly": true,
+ "type": "string",
+ "description": "An enum describing the unit of quota measurement.",
+ "enum": [
+ "Count"
+ ],
+ "x-ms-enum": {
+ "name": "QuotaUnit",
+ "modelAsString": true
+ }
+ }
+ },
+ "description": "The quota assigned to a resource."
+ },
+ "ListWorkspaceQuotas": {
+ "properties": {
+ "value": {
+ "description": "The list of Workspace Quotas by VM Family",
+ "items": {
+ "$ref": "#/definitions/ResourceQuota"
+ },
+ "readOnly": true,
+ "type": "array"
+ },
+ "nextLink": {
+ "description": "The URI to fetch the next page of workspace quota information by VM Family. Call ListNext() with this to fetch the next page of Workspace Quota information.",
+ "readOnly": true,
+ "type": "string"
+ }
+ },
+ "description": "The List WorkspaceQuotasByVMFamily operation response."
+ },
+ "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 identity type.",
+ "enum": [
+ "SystemAssigned",
+ "UserAssigned",
+ "SystemAssigned,UserAssigned",
+ "None"
+ ],
+ "x-ms-enum": {
+ "name": "ResourceIdentityType",
+ "modelAsString": false
+ }
+ },
+ "userAssignedIdentities": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object",
+ "properties": {
+ "principalId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The principal id of user assigned identity."
+ },
+ "clientId": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The client id of user assigned identity."
+ }
+ }
+ },
+ "description": "The list of user identities associated with resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'."
+ }
+ },
+ "description": "Identity for the resource.",
+ "required": [
+ "type"
+ ]
+ },
+ "Resource": {
+ "description": "Azure Resource Manager resource envelope.",
+ "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
+ },
+ "identity": {
+ "$ref": "#/definitions/Identity",
+ "description": "The identity of the resource."
+ },
+ "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": "The sku of the workspace."
+ }
+ }
+ },
+ "ResourceId": {
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The ID of the resource"
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet.",
+ "x-ms-azure-resource": true
+ },
+ "ListWorkspaceKeysResult": {
+ "type": "object",
+ "properties": {
+ "userStorageKey": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "userStorageResourceId": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "appInsightsInstrumentationKey": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "containerRegistryCredentials": {
+ "readOnly": true,
+ "$ref": "#/definitions/RegistryListCredentialsResult"
+ },
+ "notebookAccessKeys": {
+ "$ref": "#/definitions/NotebookListCredentialsResult"
+ }
+ }
+ },
+ "RegistryListCredentialsResult": {
+ "type": "object",
+ "properties": {
+ "location": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "username": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "passwords": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Password"
+ }
+ }
+ }
+ },
+ "Password": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "value": {
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ },
+ "PaginatedComputeResourcesList": {
+ "type": "object",
+ "description": "Paginated list of Machine Learning compute objects wrapped in ARM resource envelope.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "An array of Machine Learning compute objects wrapped in ARM resource envelope.",
+ "items": {
+ "$ref": "#/definitions/ComputeResource"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "A continuation link (absolute URI) to the next page of results in the list."
+ }
+ }
+ },
+ "ComputeResource": {
+ "type": "object",
+ "description": "Machine Learning compute object wrapped into ARM resource envelope.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Resource"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "Compute properties",
+ "$ref": "#/definitions/Compute"
+ }
+ }
+ }
+ ]
+ },
+ "Compute": {
+ "type": "object",
+ "description": "Machine Learning compute object.",
+ "discriminator": "computeType",
+ "properties": {
+ "computeType": {
+ "description": "The type of compute",
+ "$ref": "#/definitions/ComputeType"
+ },
+ "computeLocation": {
+ "description": "Location for the underlying compute",
+ "type": "string"
+ },
+ "provisioningState": {
+ "type": "string",
+ "description": "The provision state of the cluster. Valid values are Unknown, Updating, Provisioning, Succeeded, and Failed.",
+ "enum": [
+ "Unknown",
+ "Updating",
+ "Creating",
+ "Deleting",
+ "Succeeded",
+ "Failed",
+ "Canceled"
+ ],
+ "x-ms-enum": {
+ "name": "ProvisioningState",
+ "modelAsString": true
+ },
+ "readOnly": true
+ },
+ "description": {
+ "type": "string",
+ "description": "The description of the Machine Learning compute."
+ },
+ "createdOn": {
+ "type": "string",
+ "description": "The date and time when the compute was created.",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "modifiedOn": {
+ "type": "string",
+ "description": "The date and time when the compute was last modified.",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "ARM resource id of the underlying compute"
+ },
+ "provisioningErrors": {
+ "type": "array",
+ "description": "Errors during provisioning",
+ "items": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ },
+ "readOnly": true
+ },
+ "isAttachedCompute": {
+ "type": "boolean",
+ "description": "Indicating whether the compute was provisioned by user and brought from outside if true, or machine learning service provisioned it if false.",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "computeType"
+ ]
+ },
+ "AKS": {
+ "description": "A Machine Learning compute based on AKS.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "type": "object",
+ "description": "AKS properties",
+ "properties": {
+ "clusterFqdn": {
+ "description": "Cluster full qualified domain name",
+ "type": "string"
+ },
+ "systemServices": {
+ "type": "array",
+ "description": "System services",
+ "items": {
+ "$ref": "#/definitions/SystemService"
+ },
+ "readOnly": true
+ },
+ "agentCount": {
+ "description": "Number of agents",
+ "type": "integer",
+ "minimum": 1
+ },
+ "agentVMSize": {
+ "description": "Agent virtual machine size",
+ "type": "string"
+ },
+ "sslConfiguration": {
+ "description": "SSL configuration",
+ "$ref": "#/definitions/SslConfiguration"
+ },
+ "aksNetworkingConfiguration": {
+ "description": "AKS networking configuration for vnet",
+ "$ref": "#/definitions/AksNetworkingConfiguration"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "AKS"
+ },
+ "AmlCompute": {
+ "description": "An Azure Machine Learning compute.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "AML Compute properties",
+ "type": "object",
+ "properties": {
+ "vmSize": {
+ "description": "Virtual Machine Size",
+ "type": "string"
+ },
+ "vmPriority": {
+ "description": "Virtual Machine priority",
+ "type": "string",
+ "enum": [
+ "Dedicated",
+ "LowPriority"
+ ],
+ "x-ms-enum": {
+ "name": "VmPriority",
+ "modelAsString": true
+ }
+ },
+ "scaleSettings": {
+ "description": "Scale settings for AML Compute",
+ "$ref": "#/definitions/ScaleSettings"
+ },
+ "userAccountCredentials": {
+ "title": "User account credentials.",
+ "description": "Credentials for an administrator user account that will be created on each compute node.",
+ "$ref": "#/definitions/UserAccountCredentials"
+ },
+ "subnet": {
+ "title": "Subnet.",
+ "description": "Virtual network subnet resource ID the compute nodes belong to.",
+ "$ref": "#/definitions/ResourceId"
+ },
+ "remoteLoginPortPublicAccess": {
+ "type": "string",
+ "default": "NotSpecified",
+ "title": "Close remote Login Access Port",
+ "description": "State of the public SSH port. Possible values are: Disabled - Indicates that the public ssh port is closed on all nodes of the cluster. Enabled - Indicates that the public ssh port is open on all nodes of the cluster. NotSpecified - Indicates that the public ssh port is closed on all nodes of the cluster if VNet is defined, else is open all public nodes. It can be default only during cluster creation time, after creation it will be either enabled or disabled.",
+ "enum": [
+ "Enabled",
+ "Disabled",
+ "NotSpecified"
+ ],
+ "x-ms-enum": {
+ "name": "remoteLoginPortPublicAccess",
+ "modelAsString": true
+ }
+ },
+ "allocationState": {
+ "type": "string",
+ "readOnly": true,
+ "title": "Allocation state.",
+ "description": "Allocation state of the compute. Possible values are: steady - Indicates that the compute is not resizing. There are no changes to the number of compute nodes in the compute in progress. A compute enters this state when it is created and when no operations are being performed on the compute to change the number of compute nodes. resizing - Indicates that the compute is resizing; that is, compute nodes are being added to or removed from the compute.",
+ "enum": [
+ "Steady",
+ "Resizing"
+ ],
+ "x-ms-enum": {
+ "name": "AllocationState",
+ "modelAsString": true
+ }
+ },
+ "allocationStateTransitionTime": {
+ "type": "string",
+ "readOnly": true,
+ "format": "date-time",
+ "title": "Allocation state transition time.",
+ "description": "The time at which the compute entered its current allocation state."
+ },
+ "errors": {
+ "readOnly": true,
+ "title": "Errors.",
+ "description": "Collection of errors encountered by various compute nodes during node setup.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ },
+ "currentNodeCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "title": "Current node count.",
+ "description": "The number of compute nodes currently assigned to the compute."
+ },
+ "targetNodeCount": {
+ "type": "integer",
+ "readOnly": true,
+ "format": "int32",
+ "title": "Target node count.",
+ "description": "The target number of compute nodes for the compute. If the allocationState is resizing, this property denotes the target node count for the ongoing resize operation. If the allocationState is steady, this property denotes the target node count for the previous resize operation."
+ },
+ "nodeStateCounts": {
+ "title": "Node state counts.",
+ "description": "Counts of various node states on the compute.",
+ "readOnly": true,
+ "$ref": "#/definitions/NodeStateCounts"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "AmlCompute"
+ },
+ "ComputeInstance": {
+ "description": "An Azure Machine Learning compute instance.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "description": "Compute Instance properties",
+ "type": "object",
+ "properties": {
+ "vmSize": {
+ "description": "Virtual Machine Size",
+ "type": "string"
+ },
+ "subnet": {
+ "title": "Subnet.",
+ "description": "Virtual network subnet resource ID the compute nodes belong to.",
+ "$ref": "#/definitions/ResourceId"
+ },
+ "applicationSharingPolicy": {
+ "type": "string",
+ "default": "Shared",
+ "title": "Sharing policy for applications on this compute instance",
+ "description": "Policy for sharing applications on this compute instance among users of parent workspace. If Personal, only the creator can access applications on this compute instance. When Shared, any workspace user can access applications on this instance depending on his/her assigned role.",
+ "enum": [
+ "Personal",
+ "Shared"
+ ],
+ "x-ms-enum": {
+ "name": "applicationSharingPolicy",
+ "modelAsString": true
+ }
+ },
+ "sshSettings": {
+ "description": "Specifies policy and settings for SSH access.",
+ "$ref": "#/definitions/ComputeInstanceSshSettings"
+ },
+ "connectivityEndpoints": {
+ "readOnly": true,
+ "description": "Describes all connectivity endpoints available for this ComputeInstance.",
+ "$ref": "#/definitions/ComputeInstanceConnectivityEndpoints"
+ },
+ "applications": {
+ "type": "array",
+ "readOnly": true,
+ "description": "Describes available applications and their endpoints on this ComputeInstance.",
+ "items": {
+ "$ref": "#/definitions/ComputeInstanceApplication"
+ }
+ },
+ "createdBy": {
+ "readOnly": true,
+ "description": "Describes information on user who created this ComputeInstance.",
+ "$ref": "#/definitions/ComputeInstanceCreatedBy"
+ },
+ "errors": {
+ "readOnly": true,
+ "title": "Errors.",
+ "description": "Collection of errors encountered on this ComputeInstance.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineLearningServiceError"
+ }
+ },
+ "state": {
+ "description": "The current state of this ComputeInstance.",
+ "$ref": "#/definitions/ComputeInstanceState",
+ "readOnly": true
+ },
+ "lastOperation": {
+ "description": "The last operation on ComputeInstance.",
+ "$ref": "#/definitions/ComputeInstanceLastOperation",
+ "readOnly": true
+ }
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "ComputeInstance"
+ },
+ "VirtualMachine": {
+ "description": "A Machine Learning compute based on Azure Virtual Machines.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "type": "object",
+ "properties": {
+ "virtualMachineSize": {
+ "description": "Virtual Machine size",
+ "type": "string"
+ },
+ "sshPort": {
+ "description": "Port open for ssh connections.",
+ "type": "integer"
+ },
+ "address": {
+ "description": "Public IP address of the virtual machine.",
+ "type": "string"
+ },
+ "administratorAccount": {
+ "description": "Admin credentials for virtual machine",
+ "$ref": "#/definitions/VirtualMachineSshCredentials"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "VirtualMachine"
+ },
+ "HDInsight": {
+ "description": "A HDInsight compute.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "type": "object",
+ "properties": {
+ "sshPort": {
+ "description": "Port open for ssh connections on the master node of the cluster.",
+ "type": "integer"
+ },
+ "address": {
+ "description": "Public IP address of the master node of the cluster.",
+ "type": "string"
+ },
+ "administratorAccount": {
+ "description": "Admin credentials for master node of the cluster",
+ "$ref": "#/definitions/VirtualMachineSshCredentials"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "HDInsight"
+ },
+ "DataFactory": {
+ "description": "A DataFactory compute.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ }
+ ],
+ "x-ms-discriminator-value": "DataFactory"
+ },
+ "Databricks": {
+ "description": "A DataFactory compute.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "type": "object",
+ "properties": {
+ "databricksAccessToken": {
+ "description": "Databricks access token",
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "Databricks"
+ },
+ "DataLakeAnalytics": {
+ "description": "A DataLakeAnalytics compute.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/Compute"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "type": "object",
+ "properties": {
+ "dataLakeStoreAccountName": {
+ "description": "DataLake Store Account Name",
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "DataLakeAnalytics"
+ },
+ "ServicePrincipalCredentials": {
+ "type": "object",
+ "description": "Service principal credentials.",
+ "properties": {
+ "clientId": {
+ "description": "Client Id",
+ "type": "string"
+ },
+ "clientSecret": {
+ "description": "Client secret",
+ "type": "string"
+ }
+ },
+ "required": [
+ "clientId",
+ "clientSecret"
+ ]
+ },
+ "SystemService": {
+ "type": "object",
+ "description": "A system service running on a compute.",
+ "properties": {
+ "systemServiceType": {
+ "description": "The type of this system service.",
+ "readOnly": true,
+ "type": "string"
+ },
+ "publicIpAddress": {
+ "type": "string",
+ "description": "Public IP address",
+ "readOnly": true
+ },
+ "version": {
+ "description": "The version for this type.",
+ "readOnly": true,
+ "type": "string"
+ }
+ }
+ },
+ "SslConfiguration": {
+ "type": "object",
+ "description": "The ssl configuration for scoring",
+ "properties": {
+ "status": {
+ "description": "Enable or disable ssl for scoring",
+ "type": "string",
+ "enum": [
+ "Disabled",
+ "Enabled"
+ ]
+ },
+ "cert": {
+ "description": "Cert data",
+ "type": "string"
+ },
+ "key": {
+ "description": "Key data",
+ "type": "string"
+ },
+ "cname": {
+ "description": "CNAME of the cert",
+ "type": "string"
+ }
+ }
+ },
+ "AksNetworkingConfiguration": {
+ "type": "object",
+ "description": "Advance configuration for AKS networking",
+ "properties": {
+ "subnetId": {
+ "description": "Virtual network subnet resource ID the compute nodes belong to",
+ "type": "string"
+ },
+ "serviceCidr": {
+ "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$",
+ "description": "A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges.",
+ "type": "string"
+ },
+ "dnsServiceIP": {
+ "pattern": "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$",
+ "description": "An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr.",
+ "type": "string"
+ },
+ "dockerBridgeCidr": {
+ "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$",
+ "description": "A CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP ranges or the Kubernetes service address range.",
+ "type": "string"
+ }
+ }
+ },
+ "UserAccountCredentials": {
+ "properties": {
+ "adminUserName": {
+ "type": "string",
+ "title": "User name.",
+ "description": "Name of the administrator user account which can be used to SSH to nodes."
+ },
+ "adminUserSshPublicKey": {
+ "type": "string",
+ "title": "SSH public key.",
+ "description": "SSH public key of the administrator user account."
+ },
+ "adminUserPassword": {
+ "type": "string",
+ "title": "Password.",
+ "description": "Password of the administrator user account."
+ }
+ },
+ "required": [
+ "adminUserName"
+ ],
+ "description": "Settings for user account that gets created on each on the nodes of a compute."
+ },
+ "ScaleSettings": {
+ "type": "object",
+ "description": "scale settings for AML Compute",
+ "properties": {
+ "maxNodeCount": {
+ "description": "Max number of nodes to use",
+ "type": "integer"
+ },
+ "minNodeCount": {
+ "description": "Min number of nodes to use",
+ "type": "integer",
+ "default": 0
+ },
+ "nodeIdleTimeBeforeScaleDown": {
+ "type": "string",
+ "format": "duration",
+ "description": "Node Idle Time before scaling down amlCompute"
+ }
+ },
+ "required": [
+ "maxNodeCount"
+ ]
+ },
+ "NodeStateCounts": {
+ "properties": {
+ "idleNodeCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "title": "Idle node count.",
+ "description": "Number of compute nodes in idle state."
+ },
+ "runningNodeCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "title": "Running node count.",
+ "description": "Number of compute nodes which are running jobs."
+ },
+ "preparingNodeCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "title": "Preparing node count.",
+ "description": "Number of compute nodes which are being prepared."
+ },
+ "unusableNodeCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "title": "Unusable node count.",
+ "description": "Number of compute nodes which are in unusable state."
+ },
+ "leavingNodeCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "title": "Leaving node count.",
+ "description": "Number of compute nodes which are leaving the amlCompute."
+ },
+ "preemptedNodeCount": {
+ "readOnly": true,
+ "type": "integer",
+ "format": "int32",
+ "title": "Preempted node count.",
+ "description": "Number of compute nodes which are in preempted state."
+ }
+ },
+ "description": "Counts of various compute node states on the amlCompute."
+ },
+ "ClusterUpdateProperties": {
+ "properties": {
+ "scaleSettings": {
+ "$ref": "#/definitions/ScaleSettings",
+ "title": "Scale settings.",
+ "description": "Desired scale settings for the amlCompute."
+ }
+ },
+ "description": "The properties of a amlCompute that need to be updated."
+ },
+ "ClusterUpdateParameters": {
+ "properties": {
+ "properties": {
+ "x-ms-client-flatten": true,
+ "$ref": "#/definitions/ClusterUpdateProperties",
+ "description": "The properties of the amlCompute."
+ }
+ },
+ "description": "AmlCompute update parameters."
+ },
+ "ComputeNodesInformation": {
+ "type": "object",
+ "description": "Compute nodes information related to a Machine Learning compute. Might differ for every type of compute.",
+ "discriminator": "computeType",
+ "properties": {
+ "computeType": {
+ "description": "The type of compute",
+ "$ref": "#/definitions/ComputeType"
+ },
+ "nextLink": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The continuation token."
+ }
+ },
+ "required": [
+ "computeType"
+ ]
+ },
+ "AmlComputeNodesInformation": {
+ "description": "Compute node information related to a AmlCompute.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ComputeNodesInformation"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "nodes": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AmlComputeNodeInformation"
+ },
+ "description": "The collection of returned AmlCompute nodes details."
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "AmlCompute"
+ },
+ "AmlComputeNodeInformation": {
+ "description": "Compute node information related to a AmlCompute.",
+ "properties": {
+ "nodeId": {
+ "readOnly": true,
+ "type": "string",
+ "title": "Node ID.",
+ "description": "ID of the compute node."
+ },
+ "privateIpAddress": {
+ "readOnly": true,
+ "type": "string",
+ "title": "Private IP address.",
+ "description": "Private IP address of the compute node."
+ },
+ "publicIpAddress": {
+ "readOnly": true,
+ "type": "string",
+ "title": "Public IP address.",
+ "description": "Public IP address of the compute node."
+ },
+ "port": {
+ "readOnly": true,
+ "type": "number",
+ "format": "int32",
+ "title": "Port.",
+ "description": "SSH port number of the node."
+ },
+ "nodeState": {
+ "readOnly": true,
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "preparing",
+ "unusable",
+ "leaving",
+ "preempted"
+ ],
+ "description": "State of the compute node. Values are idle, running, preparing, unusable, leaving and preempted.",
+ "x-ms-enum": {
+ "name": "nodeState",
+ "modelAsString": true
+ }
+ },
+ "runId": {
+ "readOnly": true,
+ "type": "string",
+ "title": "Run ID.",
+ "description": "ID of the Experiment running on the node, if any else null."
+ }
+ },
+ "x-ms-discriminator-value": "AmlCompute"
+ },
+ "VirtualMachineSshCredentials": {
+ "type": "object",
+ "description": "Admin credentials for virtual machine",
+ "properties": {
+ "username": {
+ "description": "Username of admin account",
+ "type": "string"
+ },
+ "password": {
+ "description": "Password of admin account",
+ "type": "string"
+ },
+ "publicKeyData": {
+ "description": "Public key data",
+ "type": "string"
+ },
+ "privateKeyData": {
+ "description": "Private key data",
+ "type": "string"
+ }
+ }
+ },
+ "ComputeSecrets": {
+ "type": "object",
+ "description": "Secrets related to a Machine Learning compute. Might differ for every type of compute.",
+ "discriminator": "computeType",
+ "properties": {
+ "computeType": {
+ "description": "The type of compute",
+ "$ref": "#/definitions/ComputeType"
+ }
+ },
+ "required": [
+ "computeType"
+ ]
+ },
+ "AksComputeSecrets": {
+ "description": "Secrets related to a Machine Learning compute based on AKS.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ComputeSecrets"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "userKubeConfig": {
+ "type": "string",
+ "description": "Content of kubeconfig file that can be used to connect to the Kubernetes cluster."
+ },
+ "adminKubeConfig": {
+ "type": "string",
+ "description": "Content of kubeconfig file that can be used to connect to the Kubernetes cluster."
+ },
+ "imagePullSecretName": {
+ "type": "string",
+ "description": "Image registry pull secret."
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "AKS"
+ },
+ "VirtualMachineSecrets": {
+ "description": "Secrets related to a Machine Learning compute based on AKS.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ComputeSecrets"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "administratorAccount": {
+ "description": "Admin credentials for virtual machine.",
+ "$ref": "#/definitions/VirtualMachineSshCredentials"
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "VirtualMachine"
+ },
+ "DatabricksComputeSecrets": {
+ "description": "Secrets related to a Machine Learning compute based on Databricks.",
+ "allOf": [
+ {
+ "$ref": "#/definitions/ComputeSecrets"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "databricksAccessToken": {
+ "description": "access token for databricks account.",
+ "type": "string"
+ }
+ }
+ }
+ ],
+ "x-ms-discriminator-value": "Databricks"
+ },
+ "ComputeType": {
+ "type": "string",
+ "description": "The type of compute",
+ "enum": [
+ "AKS",
+ "AmlCompute",
+ "ComputeInstance",
+ "DataFactory",
+ "VirtualMachine",
+ "HDInsight",
+ "Databricks",
+ "DataLakeAnalytics"
+ ],
+ "x-ms-enum": {
+ "name": "ComputeType",
+ "modelAsString": true
+ }
+ },
+ "MachineLearningServiceError": {
+ "type": "object",
+ "description": "Wrapper for error response to follow ARM guidelines.",
+ "properties": {
+ "error": {
+ "description": "The error response.",
+ "$ref": "#/definitions/ErrorResponse",
+ "readOnly": true
+ }
+ }
+ },
+ "ErrorResponse": {
+ "type": "object",
+ "description": "Error response information.",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Error code.",
+ "readOnly": true
+ },
+ "message": {
+ "type": "string",
+ "description": "Error message.",
+ "readOnly": true
+ },
+ "details": {
+ "type": "array",
+ "description": "An array of error detail objects.",
+ "items": {
+ "$ref": "#/definitions/ErrorDetail"
+ },
+ "readOnly": true
+ }
+ }
+ },
+ "ErrorDetail": {
+ "type": "object",
+ "description": "Error detail information.",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Error code."
+ },
+ "message": {
+ "type": "string",
+ "description": "Error message."
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ]
+ },
+ "SKUCapability": {
+ "description": "Features/user capabilities associated with the sku",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Capability/Feature ID",
+ "type": "string"
+ },
+ "value": {
+ "description": "Details about the feature/capability",
+ "type": "string"
+ }
+ }
+ },
+ "ResourceSkuLocationInfo": {
+ "properties": {
+ "location": {
+ "readOnly": true,
+ "type": "string",
+ "description": "Location of the SKU"
+ },
+ "zones": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of availability zones where the SKU is supported."
+ },
+ "zoneDetails": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceSkuZoneDetails"
+ },
+ "description": "Details of capabilities available to a SKU in specific zones."
+ }
+ }
+ },
+ "ResourceSkuZoneDetails": {
+ "properties": {
+ "name": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "type": "string"
+ },
+ "description": "The set of zones that the SKU is available in with the specified capabilities."
+ },
+ "capabilities": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/SKUCapability"
+ },
+ "description": "A list of capabilities that are available for the SKU in the specified list of zones."
+ }
+ },
+ "description": "Describes The zonal capabilities of a SKU."
+ },
+ "WorkspaceSku": {
+ "type": "object",
+ "description": "AML workspace sku information",
+ "properties": {
+ "resourceType": {
+ "readOnly": true,
+ "type": "string"
+ },
+ "skus": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SkuSettings"
+ },
+ "description": "The list of workspace sku settings"
+ }
+ }
+ },
+ "SkuSettings": {
+ "description": "Describes Workspace Sku details and features",
+ "type": "object",
+ "properties": {
+ "locations": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The set of locations that the SKU is available. This will be supported and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.)."
+ },
+ "locationInfo": {
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/ResourceSkuLocationInfo"
+ },
+ "description": "A list of locations and availability zones in those locations where the SKU is available."
+ },
+ "tier": {
+ "description": "Sku Tier like Basic or Enterprise",
+ "type": "string",
+ "readOnly": true
+ },
+ "resourceType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "readOnly": true
+ },
+ "capabilities": {
+ "description": "List of features/user capabilities associated with the sku",
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SKUCapability"
+ },
+ "readOnly": true
+ },
+ "restrictions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Restriction"
+ },
+ "description": "The restrictions because of which SKU cannot be used. This is empty if there are no restrictions."
+ }
+ }
+ },
+ "Restriction": {
+ "properties": {
+ "type": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The type of restrictions. As of now only possible value for this is location."
+ },
+ "values": {
+ "readOnly": true,
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted."
+ },
+ "reasonCode": {
+ "type": "string",
+ "enum": [
+ "NotSpecified",
+ "NotAvailableForRegion",
+ "NotAvailableForSubscription"
+ ],
+ "x-ms-enum": {
+ "name": "ReasonCode",
+ "modelAsString": true
+ },
+ "description": "The reason for the restriction."
+ }
+ },
+ "description": "The restriction because of which SKU cannot be used."
+ },
+ "SkuListResult": {
+ "description": "List of skus with features",
+ "type": "object",
+ "properties": {
+ "value": {
+ "uniqueItems": false,
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/WorkspaceSku"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URI to fetch the next page of Workspace Skus. Call ListNext() with this URI to fetch the next page of Workspace Skus"
+ }
+ }
+ },
+ "Sku": {
+ "description": "Sku of the resource",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of the sku",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Tier of the sku like Basic or Enterprise",
+ "type": "string"
+ }
+ }
+ },
+ "PrivateEndpointConnection": {
+ "x-ms-azure-resource": true,
+ "description": "The Private Endpoint Connection resource.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "ResourceId of the private endpoint connection.",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Friendly name of the private endpoint connection.",
+ "readOnly": true
+ },
+ "type": {
+ "type": "string",
+ "description": "Resource type of private endpoint connection.",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/PrivateEndpointConnectionProperties",
+ "x-ms-client-flatten": true,
+ "description": "Resource properties."
+ }
+ }
+ },
+ "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."
+ },
+ "PrivateEndpoint": {
+ "properties": {
+ "id": {
+ "readOnly": true,
+ "type": "string",
+ "description": "The ARM identifier for Private Endpoint"
+ }
+ },
+ "description": "The Private Endpoint resource."
+ },
+ "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",
+ "Disconnected",
+ "Timeout"
+ ],
+ "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
+ }
+ },
+ "PrivateLinkResourceListResult": {
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "Array of private link resources",
+ "items": {
+ "$ref": "#/definitions/PrivateLinkResource"
+ }
+ }
+ },
+ "description": "A list of private link resources"
+ },
+ "PrivateLinkResource": {
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PrivateLinkResourceProperties",
+ "description": "Resource properties.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "allOf": [
+ {
+ "$ref": "#/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."
+ },
+ "SharedPrivateLinkResource": {
+ "properties": {
+ "name": {
+ "description": "Unique name of the private link.",
+ "type": "string"
+ },
+ "properties": {
+ "$ref": "#/definitions/SharedPrivateLinkResourceProperty",
+ "x-ms-client-flatten": true,
+ "description": "Resource properties."
+ }
+ }
+ },
+ "SharedPrivateLinkResourceProperty": {
+ "properties": {
+ "privateLinkResourceId": {
+ "description": "The resource id that private link links to.",
+ "type": "string"
+ },
+ "groupId": {
+ "description": "The private link resource group id.",
+ "type": "string"
+ },
+ "requestMessage": {
+ "description": "Request message.",
+ "type": "string"
+ },
+ "status": {
+ "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus",
+ "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service."
+ }
+ },
+ "description": "Properties of a shared private link resource."
+ },
+ "EncryptionProperty": {
+ "properties": {
+ "status": {
+ "description": "Indicates whether or not the encryption is enabled for the workspace.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "EncryptionStatus",
+ "modelAsString": true
+ }
+ },
+ "keyVaultProperties": {
+ "$ref": "#/definitions/KeyVaultProperties",
+ "description": "Customer Key vault properties."
+ }
+ },
+ "required": [
+ "status",
+ "keyVaultProperties"
+ ],
+ "type": "object"
+ },
+ "KeyVaultProperties": {
+ "properties": {
+ "keyVaultArmId": {
+ "description": "The ArmId of the keyVault where the customer owned encryption key is present.",
+ "type": "string"
+ },
+ "keyIdentifier": {
+ "description": "Key vault uri to access the encryption key.",
+ "type": "string"
+ },
+ "identityClientId": {
+ "description": "For future use - The client id of the identity which will be used to access key vault.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "keyIdentifier",
+ "keyVaultArmId"
+ ],
+ "type": "object"
+ },
+ "PaginatedWorkspaceConnectionsList": {
+ "type": "object",
+ "description": "Paginated list of Workspace connection objects.",
+ "properties": {
+ "value": {
+ "type": "array",
+ "description": "An array of Workspace connection objects.",
+ "items": {
+ "$ref": "#/definitions/WorkspaceConnection"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "A continuation link (absolute URI) to the next page of results in the list."
+ }
+ }
+ },
+ "WorkspaceConnection": {
+ "x-ms-azure-resource": true,
+ "description": "Workspace connection.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "ResourceId of the workspace connection.",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Friendly name of the workspace connection.",
+ "readOnly": true
+ },
+ "type": {
+ "type": "string",
+ "description": "Resource type of workspace connection.",
+ "readOnly": true
+ },
+ "properties": {
+ "type": "object",
+ "description": "Properties of workspace connection.",
+ "$ref": "#/definitions/WorkspaceConnectionProps",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkspaceConnectionDto": {
+ "type": "object",
+ "description": "object used for creating workspace connection.",
+ "properties": {
+ "name": {
+ "description": "Friendly name of the workspace connection",
+ "type": "string"
+ },
+ "properties": {
+ "type": "object",
+ "description": "Properties of workspace connection.",
+ "$ref": "#/definitions/WorkspaceConnectionProps",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "WorkspaceConnectionProps": {
+ "type": "object",
+ "description": "Workspace Connection specific properties.",
+ "properties": {
+ "category": {
+ "description": "Category of the workspace connection.",
+ "type": "string"
+ },
+ "target": {
+ "description": "Target of the workspace connection.",
+ "type": "string"
+ },
+ "authType": {
+ "description": "Authorization type of the workspace connection.",
+ "type": "string"
+ },
+ "value": {
+ "description": "Value details of the workspace connection.",
+ "type": "string"
+ }
+ }
+ },
+ "ComputeInstanceSshSettings": {
+ "type": "object",
+ "description": "Specifies policy and settings for SSH access.",
+ "properties": {
+ "sshPublicAccess": {
+ "type": "string",
+ "default": "Disabled",
+ "title": "Access policy for SSH",
+ "description": "State of the public SSH port. Possible values are: Disabled - Indicates that the public ssh port is closed on this instance. Enabled - Indicates that the public ssh port is open and accessible according to the VNet/subnet policy if applicable.",
+ "enum": [
+ "Enabled",
+ "Disabled"
+ ],
+ "x-ms-enum": {
+ "name": "sshPublicAccess",
+ "modelAsString": true
+ }
+ },
+ "adminUserName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Describes the admin user name."
+ },
+ "sshPort": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "description": "Describes the port for connecting through SSH."
+ },
+ "adminPublicKey": {
+ "type": "string",
+ "description": "Specifies the SSH rsa public key file as a string. Use \"ssh-keygen -t rsa -b 2048\" to generate your SSH key pairs."
+ }
+ }
+ },
+ "ComputeInstanceState": {
+ "type": "string",
+ "description": "Current state of a ComputeInstance.",
+ "enum": [
+ "Creating",
+ "CreateFailed",
+ "Deleting",
+ "Running",
+ "Restarting",
+ "JobRunning",
+ "SettingUp",
+ "SetupFailed",
+ "Starting",
+ "Stopped",
+ "Stopping",
+ "UserSettingUp",
+ "UserSetupFailed",
+ "Unknown",
+ "Unusable"
+ ],
+ "x-ms-enum": {
+ "name": "ComputeInstanceState",
+ "modelAsString": true
+ }
+ },
+ "ComputeInstanceLastOperation": {
+ "type": "object",
+ "description": "The last operation on ComputeInstance.",
+ "properties": {
+ "operationName": {
+ "type": "string",
+ "description": "Name of the last operation.",
+ "enum": [
+ "Create",
+ "Start",
+ "Stop",
+ "Restart",
+ "Reimage",
+ "Delete"
+ ],
+ "x-ms-enum": {
+ "name": "OperationName",
+ "modelAsString": true
+ }
+ },
+ "operationTime": {
+ "type": "string",
+ "format": "date-time",
+ "description": "Time of the last operation."
+ },
+ "operationStatus": {
+ "type": "string",
+ "description": "Operation status.",
+ "enum": [
+ "InProgress",
+ "Succeeded",
+ "CreateFailed",
+ "StartFailed",
+ "StopFailed",
+ "RestartFailed",
+ "ReimageFailed",
+ "DeleteFailed"
+ ],
+ "x-ms-enum": {
+ "name": "OperationStatus",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "ComputeInstanceApplication": {
+ "type": "object",
+ "description": "Defines an Aml Instance application and its connectivity endpoint URI.",
+ "properties": {
+ "displayName": {
+ "type": "string",
+ "description": "Name of the ComputeInstance application."
+ },
+ "endpointUri": {
+ "type": "string",
+ "description": "Application' endpoint URI."
+ }
+ }
+ },
+ "ComputeInstanceConnectivityEndpoints": {
+ "type": "object",
+ "readOnly": true,
+ "description": "Defines all connectivity endpoints and properties for a ComputeInstance.",
+ "properties": {
+ "publicIpAddress": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Public IP Address of this ComputeInstance."
+ },
+ "privateIpAddress": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Private IP Address of this ComputeInstance (local to the VNET in which the compute instance is deployed)."
+ }
+ }
+ },
+ "ComputeInstanceCreatedBy": {
+ "type": "object",
+ "readOnly": true,
+ "description": "Describes information on user who created this ComputeInstance.",
+ "properties": {
+ "userName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Name of the user."
+ },
+ "userOrgId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Uniquely identifies user' Azure Active Directory organization."
+ },
+ "userId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Uniquely identifies the user within his/her organization."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/machinelearningservices/resource-manager/readme.azureresourceschema.md b/specification/machinelearningservices/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..0a9ab416c8d0
--- /dev/null
+++ b/specification/machinelearningservices/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,180 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-machinelearningservices-2020-09-01-preview
+ - tag: schema-machinelearningservices-2020-06-01
+ - tag: schema-machinelearningservices-2020-05-15-preview
+ - tag: schema-machinelearningservices-2020-05-01-preview
+ - tag: schema-machinelearningservices-2020-04-01-preview
+ - tag: schema-machinelearningservices-2020-04-01
+ - tag: schema-machinelearningservices-2020-03-01
+ - tag: schema-machinelearningservices-2020-02-18-preview
+ - tag: schema-machinelearningservices-2020-01-01
+ - tag: schema-machinelearningservices-2019-11-01
+ - tag: schema-machinelearningservices-2019-06-01
+ - tag: schema-machinelearningservices-2019-05-01
+ - tag: schema-machinelearningservices-2018-11-19
+ - tag: schema-machinelearningservices-2018-03-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-machinelearningservices-2020-09-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningservices-2020-09-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningServices/preview/2020-09-01-preview/machineLearningServices.json
+
+```
+
+### Tag: schema-machinelearningservices-2020-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningservices-2020-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningServices/stable/2020-06-01/machineLearningServices.json
+
+```
+
+### Tag: schema-machinelearningservices-2020-05-15-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningservices-2020-05-15-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningServices/preview/2020-05-15-preview/machineLearningServices.json
+
+```
+
+### Tag: schema-machinelearningservices-2020-05-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningservices-2020-05-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningServices/preview/2020-05-01-preview/machineLearningServices.json
+
+```
+
+### Tag: schema-machinelearningservices-2020-04-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningservices-2020-04-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningServices/preview/2020-04-01-preview/machineLearningServices.json
+
+```
+
+### Tag: schema-machinelearningservices-2020-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningservices-2020-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningServices/stable/2020-04-01/machineLearningServices.json
+
+```
+
+### Tag: schema-machinelearningservices-2020-03-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningservices-2020-03-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningServices/stable/2020-03-01/machineLearningServices.json
+
+```
+
+### Tag: schema-machinelearningservices-2020-02-18-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningservices-2020-02-18-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningServices/preview/2020-02-18-preview/machineLearningServices.json
+
+```
+
+### Tag: schema-machinelearningservices-2020-01-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningservices-2020-01-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningServices/stable/2020-01-01/machineLearningServices.json
+
+```
+
+### Tag: schema-machinelearningservices-2019-11-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningservices-2019-11-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningServices/stable/2019-11-01/machineLearningServices.json
+
+```
+
+### Tag: schema-machinelearningservices-2019-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningservices-2019-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningServices/stable/2019-06-01/machineLearningServices.json
+
+```
+
+### Tag: schema-machinelearningservices-2019-05-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningservices-2019-05-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningServices/stable/2019-05-01/machineLearningServices.json
+
+```
+
+### Tag: schema-machinelearningservices-2018-11-19 and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningservices-2018-11-19' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningServices/stable/2018-11-19/machineLearningServices.json
+
+```
+
+### Tag: schema-machinelearningservices-2018-03-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-machinelearningservices-2018-03-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.MachineLearningServices/preview/2018-03-01-preview/machineLearningServices.json
+
+```
diff --git a/specification/machinelearningservices/resource-manager/readme.md b/specification/machinelearningservices/resource-manager/readme.md
index 966eb3408a19..4870058be3a7 100644
--- a/specification/machinelearningservices/resource-manager/readme.md
+++ b/specification/machinelearningservices/resource-manager/readme.md
@@ -26,7 +26,16 @@ These are the global settings for the Machine Learning Services API.
``` yaml
openapi-type: arm
-tag: package-2020-06-01
+tag: package-2020-08-01
+```
+
+### Tag: package-2020-08-01
+
+These settings apply only when `--tag=package-2020-08` is specified on the command line.
+
+```yaml $(tag) == 'package-2020-08-01'
+input-file:
+ - Microsoft.MachineLearningServices/stable/2020-08-01/machineLearningServices.json
```
### Tag: package-2020-06-01
@@ -110,6 +119,15 @@ input-file:
- Microsoft.MachineLearningServices/stable/2018-11-19/machineLearningServices.json
```
+### Tag: package-2020-09-01-preview
+
+These settings apply only when `--tag=package-2020-09-01-preview` is specified on the command line.
+
+``` yaml $(tag) == 'package-2020-09-01-preview'
+input-file:
+- Microsoft.MachineLearningServices/preview/2020-09-01-preview/machineLearningServices.json
+```
+
### Tag: package-2020-05-01-preview
These settings apply only when `--tag=package-2020-05-01-preview` is specified on the command line.
@@ -163,6 +181,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
- repo: azure-cli-extensions
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js machinelearningservices/resource-manager
```
## C#
@@ -201,6 +222,7 @@ output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-machinelearning/ser
``` yaml $(java) && $(multiapi)
batch:
+ - tag: package-2020-08-01
- tag: package-2020-06-01
- tag: package-2020-04-01
- tag: package-2020-03-01
@@ -209,11 +231,25 @@ batch:
- tag: package-2019-06-01
- tag: package-2019-05-01
- tag: package-2018-11-19
+ - tag: package-2020-09-01-preview
- tag: package-2020-05-01-preview
- tag: package-2020-04-01-preview
- tag: package-2020-02-18-preview
- tag: package-2018-03-preview
```
+### Tag: package-2020-08-01 and java
+
+These settings apply only when `--tag=package-2020-08-01 --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2020-08-01' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.machinelearningservices.v2020_08_01
+ output-folder: $(azure-libraries-for-java-folder)/sdk/machinelearningservices/mgmt-v2020_08_01
+regenerate-manager: true
+generate-interface: true
+```
+
### Tag: package-2020-06-01 and java
These settings apply only when `--tag=package-2020-06-01 --java` is specified on the command line.
@@ -318,6 +354,19 @@ regenerate-manager: true
generate-interface: true
```
+### Tag: package-2020-09-01-preview and java
+
+These settings apply only when `--tag=package-2020-09-01-preview --java` is specified on the command line.
+Please also specify `--azure-libraries-for-java=`.
+
+``` yaml $(tag) == 'package-2020-09-01-preview' && $(java) && $(multiapi)
+java:
+ namespace: com.microsoft.azure.management.machinelearningservices.v2020_09_01_preview
+ output-folder: $(azure-libraries-for-java-folder)/sdk/machinelearningservices/mgmt-v2020_09_01_preview
+regenerate-manager: true
+generate-interface: true
+```
+
### Tag: package-2020-05-01-preview and java
These settings apply only when `--tag=package-2020-05-01-preview --java` is specified on the command line.
@@ -357,38 +406,7 @@ regenerate-manager: true
generate-interface: true
```
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.MachineLearningServices/stable/2020-06-01/machineLearningServices.json
- - $(this-folder)/Microsoft.MachineLearningServices/preview/2020-05-15-preview/machineLearningServices.json
- - $(this-folder)/Microsoft.MachineLearningServices/stable/2020-04-01/machineLearningServices.json
- - $(this-folder)/Microsoft.MachineLearningServices/stable/2020-03-01/machineLearningServices.json
- - $(this-folder)/Microsoft.MachineLearningServices/stable/2020-01-01/machineLearningServices.json
- - $(this-folder)/Microsoft.MachineLearningServices/stable/2019-11-01/machineLearningServices.json
- - $(this-folder)/Microsoft.MachineLearningServices/stable/2019-06-01/machineLearningServices.json
- - $(this-folder)/Microsoft.MachineLearningServices/stable/2019-05-01/machineLearningServices.json
- - $(this-folder)/Microsoft.MachineLearningServices/stable/2018-11-19/machineLearningServices.json
- - $(this-folder)/Microsoft.MachineLearningServices/preview/2020-05-01-preview/machineLearningServices.json
- - $(this-folder)/Microsoft.MachineLearningServices/preview/2020-04-01-preview/machineLearningServices.json
- - $(this-folder)/Microsoft.MachineLearningServices/preview/2020-02-18-preview/machineLearningServices.json
- - $(this-folder)/Microsoft.MachineLearningServices/preview/2018-03-01-preview/machineLearningServices.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
diff --git a/specification/maintenance/resource-manager/readme.az.md b/specification/maintenance/resource-manager/readme.az.md
new file mode 100644
index 000000000000..e59604efaca9
--- /dev/null
+++ b/specification/maintenance/resource-manager/readme.az.md
@@ -0,0 +1,31 @@
+## AZ
+
+These settings apply only when `--az` is specified on the command line.
+
+``` yaml $(az)
+az:
+ extensions: maintenance
+ namespace: azure.mgmt.maintenance
+ package-name: azure-mgmt-maintenance
+az-output-folder: $(azure-cli-extension-folder)/src/maintenance
+python-sdk-output-folder: "$(az-output-folder)/azext_maintenance/vendored_sdks/maintenance"
+
+directive:
+ - where:
+ group: maintenance apply-update
+ set:
+ group: maintenance applyupdate
+ - where:
+ group: maintenance maintenance-configuration
+ set:
+ group: maintenance configuration
+ - where:
+ group: maintenance configuration-assignment
+ set:
+ group: maintenance assignment
+ - where:
+ group: maintenance public-maintenance-configuration
+ set:
+ group: maintenance public-configuration
+
+```
diff --git a/specification/maintenance/resource-manager/readme.azureresourceschema.md b/specification/maintenance/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..ca97bf10f738
--- /dev/null
+++ b/specification/maintenance/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,48 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-maintenance-2020-07-01-preview
+ - tag: schema-maintenance-2020-04-01
+ - tag: schema-maintenance-2018-06-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-maintenance-2020-07-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-maintenance-2020-07-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Maintenance/preview/2020-07-01-preview/Maintenance.json
+
+```
+
+### Tag: schema-maintenance-2020-04-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-maintenance-2020-04-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Maintenance/stable/2020-04-01/Maintenance.json
+
+```
+
+### Tag: schema-maintenance-2018-06-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-maintenance-2018-06-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Maintenance/preview/2018-06-01-preview/Maintenance.json
+
+```
diff --git a/specification/maintenance/resource-manager/readme.cli.md b/specification/maintenance/resource-manager/readme.cli.md
index 574aa55ff2e4..0327c7451143 100644
--- a/specification/maintenance/resource-manager/readme.cli.md
+++ b/specification/maintenance/resource-manager/readme.cli.md
@@ -6,23 +6,4 @@ These settings apply only when `--cli` is specified on the command line.
cli:
namespace: azure.mgmt.maintenance
flatten-all: true
- test-scenario:
- - name: MaintenanceConfigurations_CreateOrUpdateForResource
- - name: ApplyUpdates_CreateOrUpdate
- - name: ConfigurationAssignments_CreateOrUpdate
- - name: ApplyUpdates_CreateOrUpdateParent
- - name: ConfigurationAssignments_CreateOrUpdateParent
- - name: ApplyUpdates_GetParent
- - name: ConfigurationAssignments_ListParent
- - name: Updates_ListParent
- - name: ApplyUpdates_Get
- - name: ConfigurationAssignments_List
- - name: Updates_List
- - name: MaintenanceConfigurations_GetForResource
- - name: MaintenanceConfigurations_List
- - name: Operations_List
- - name: MaintenanceConfigurations_UpdateForResource
- - name: ConfigurationAssignments_DeleteParent
- - name: ConfigurationAssignments_Delete
- - name: MaintenanceConfigurations_DeleteForResource
```
diff --git a/specification/maintenance/resource-manager/readme.md b/specification/maintenance/resource-manager/readme.md
index 611010338510..b1646525c92b 100644
--- a/specification/maintenance/resource-manager/readme.md
+++ b/specification/maintenance/resource-manager/readme.md
@@ -25,6 +25,8 @@ To see additional help and options, run:
These are the global settings for the Azure Maintenance API.
``` yaml
+title: MaintenanceClient
+description: Maintenance Client
openapi-type: arm
tag: package-preview-2020-07
```
@@ -71,6 +73,9 @@ swagger-to-sdk:
- repo: azure-libraries-for-java
- repo: azure-sdk-for-go
- repo: azure-sdk-for-node
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js maintenance/resource-manager
```
## C#
@@ -90,33 +95,7 @@ csharp:
## Python
-These settings apply only when `--python` is specified on the command line.
-Please also specify `--python-sdks-folder=`.
-Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
-
-``` yaml $(python)
-python-mode: create
-python:
- azure-arm: true
- license-header: MICROSOFT_MIT_NO_VERSION
- payload-flattening-threshold: 2
- namespace: azure.mgmt.maintenance
- package-name: azure-mgmt-maintenance
- package-version: 1.1.0
- clear-output-folder: true
-```
-
-``` yaml $(python) && $(python-mode) == 'update'
-python:
- no-namespace-folders: true
- output-folder: $(python-sdks-folder)/maintenance/azure-mgmt-maintenance/azure/mgmt/maintenance
-```
-
-``` yaml $(python) && $(python-mode) == 'create'
-python:
- basic-setup-py: true
- output-folder: $(python-sdks-folder)/maintenance/azure-mgmt-maintenance
-```
+See configuration in [readme.python.md](./readme.python.md)
## Go
@@ -126,28 +105,7 @@ See configuration in [readme.go.md](./readme.go.md)
See configuration in [readme.java.md](./readme.java.md)
-## Multi-API/Profile support for AutoRest v3 generators
+## AzureResourceSchema
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-This block is updated by an automatic script. Edits may be lost!
-
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.Maintenance/preview/2020-07-01-preview/Maintenance.json
- - $(this-folder)/Microsoft.Maintenance/stable/2020-04-01/Maintenance.json
- - $(this-folder)/Microsoft.Maintenance/preview/2018-06-01-preview/Maintenance.json
-
-```
-
-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/maintenance/resource-manager/readme.python.md b/specification/maintenance/resource-manager/readme.python.md
new file mode 100644
index 000000000000..a7b9757057ea
--- /dev/null
+++ b/specification/maintenance/resource-manager/readme.python.md
@@ -0,0 +1,29 @@
+## Python
+
+These settings apply only when `--python` is specified on the command line.
+Please also specify `--python-sdks-folder=`.
+Use `--python-mode=update` if you already have a setup.py and just want to update the code itself.
+
+``` yaml $(python)
+python-mode: create
+python:
+ azure-arm: true
+ license-header: MICROSOFT_MIT_NO_VERSION
+ payload-flattening-threshold: 2
+ namespace: azure.mgmt.maintenance
+ package-name: azure-mgmt-maintenance
+ package-version: 1.1.0
+ clear-output-folder: true
+```
+
+``` yaml $(python) && $(python-mode) == 'update'
+python:
+ no-namespace-folders: true
+ output-folder: $(python-sdks-folder)/maintenance/azure-mgmt-maintenance/azure/mgmt/maintenance
+```
+
+``` yaml $(python) && $(python-mode) == 'create'
+python:
+ basic-setup-py: true
+ output-folder: $(python-sdks-folder)/maintenance/azure-mgmt-maintenance
+```
\ No newline at end of file
diff --git a/specification/managednetwork/resource-manager/readme.azureresourceschema.md b/specification/managednetwork/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..2a4dc2aa6f21
--- /dev/null
+++ b/specification/managednetwork/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,24 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-managednetwork-2019-06-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-managednetwork-2019-06-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-managednetwork-2019-06-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ManagedNetwork/preview/2019-06-01-preview/managedNetwork.json
+
+```
diff --git a/specification/managednetwork/resource-manager/readme.md b/specification/managednetwork/resource-manager/readme.md
index d728435d48d2..c7aba395d3be 100644
--- a/specification/managednetwork/resource-manager/readme.md
+++ b/specification/managednetwork/resource-manager/readme.md
@@ -54,6 +54,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-js
- repo: azure-sdk-for-node
- repo: azure-sdk-for-ruby
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js managednetwork/resource-manager
```
## C#
@@ -73,25 +76,7 @@ csharp:
See configuration in [readme.cli.md](./readme.cli.md)
-## Multi-API/Profile support for AutoRest v3 generators
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
+## AzureResourceSchema
-This block is updated by an automatic script. Edits may be lost!
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.ManagedNetwork/preview/2019-06-01-preview/managedNetwork.json
-
-```
-
-If there are files that should not be in the `all-api-versions` set,
-uncomment the `exclude-file` section below and add the file paths.
-
-``` yaml $(tag) == 'all-api-versions'
-#exclude-file:
-# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json
-```
diff --git a/specification/managedservices/resource-manager/readme.azureresourceschema.md b/specification/managedservices/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..2c60bbe0f4c2
--- /dev/null
+++ b/specification/managedservices/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,72 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-managedservices-2020-02-01-preview
+ - tag: schema-managedservices-2019-09-01
+ - tag: schema-managedservices-2019-06-01
+ - tag: schema-managedservices-2019-04-01-preview
+ - tag: schema-managedservices-2018-06-01-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-managedservices-2020-02-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-managedservices-2020-02-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ManagedServices/preview/2020-02-01-preview/managedservices.json
+
+```
+
+### Tag: schema-managedservices-2019-09-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-managedservices-2019-09-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ManagedServices/stable/2019-09-01/managedservices.json
+
+```
+
+### Tag: schema-managedservices-2019-06-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-managedservices-2019-06-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ManagedServices/stable/2019-06-01/managedservices.json
+
+```
+
+### Tag: schema-managedservices-2019-04-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-managedservices-2019-04-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ManagedServices/preview/2019-04-01-preview/managedservices.json
+
+```
+
+### Tag: schema-managedservices-2018-06-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-managedservices-2018-06-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.ManagedServices/preview/2018-06-01-preview/managedservices.json
+
+```
diff --git a/specification/managedservices/resource-manager/readme.md b/specification/managedservices/resource-manager/readme.md
index 5273c2568abc..2f2b6ced062b 100644
--- a/specification/managedservices/resource-manager/readme.md
+++ b/specification/managedservices/resource-manager/readme.md
@@ -94,6 +94,9 @@ swagger-to-sdk:
- repo: azure-sdk-for-ruby
after_scripts:
- bundle install && rake arm:regen_all_profiles['azure_mgmt_billing']
+ - repo: azure-resource-manager-schemas
+ after_scripts:
+ - node sdkauto_afterscript.js managedservices/resource-manager
```
## C#
@@ -114,30 +117,7 @@ csharp:
See configuration in [readme.go.md](./readme.go.md)
-## Multi-API/Profile support for AutoRest v3 generators
-
-AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files.
-
-This block is updated by an automatic script. Edits may be lost!
+## AzureResourceSchema
-``` yaml $(tag) == 'all-api-versions' /* autogenerated */
-# include the azure profile definitions from the standard location
-require: $(this-folder)/../../../profiles/readme.md
-
-# all the input files across all versions
-input-file:
- - $(this-folder)/Microsoft.ManagedServices/preview/2020-02-01-preview/managedservices.json
- - $(this-folder)/Microsoft.ManagedServices/stable/2019-09-01/managedservices.json
- - $(this-folder)/Microsoft.ManagedServices/stable/2019-06-01/managedservices.json
- - $(this-folder)/Microsoft.ManagedServices/preview/2019-04-01-preview/managedservices.json
- - $(this-folder)/Microsoft.ManagedServices/preview/2018-06-01-preview/managedservices.json
+See configuration in [readme.azureresourceschema.md](./readme.azureresourceschema.md)
-```
-
-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/managementgroups/resource-manager/readme.azureresourceschema.md b/specification/managementgroups/resource-manager/readme.azureresourceschema.md
new file mode 100644
index 000000000000..5361de218b69
--- /dev/null
+++ b/specification/managementgroups/resource-manager/readme.azureresourceschema.md
@@ -0,0 +1,96 @@
+## AzureResourceSchema
+
+These settings apply only when `--azureresourceschema` is specified on the command line.
+
+### AzureResourceSchema multi-api
+
+``` yaml $(azureresourceschema) && $(multiapi)
+batch:
+ - tag: schema-management-2020-05-01
+ - tag: schema-management-2020-02-01
+ - tag: schema-management-2019-11-01
+ - tag: schema-management-2018-03-01-preview
+ - tag: schema-management-2018-01-01-preview
+ - tag: schema-management-2017-11-01-preview
+ - tag: schema-management-2017-08-31-preview
+
+```
+
+Please also specify `--azureresourceschema-folder=`.
+
+### Tag: schema-management-2020-05-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-management-2020-05-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Management/stable/2020-05-01/management.json
+
+```
+
+### Tag: schema-management-2020-02-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-management-2020-02-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Management/stable/2020-02-01/management.json
+
+```
+
+### Tag: schema-management-2019-11-01 and azureresourceschema
+
+``` yaml $(tag) == 'schema-management-2019-11-01' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Management/stable/2019-11-01/management.json
+
+```
+
+### Tag: schema-management-2018-03-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-management-2018-03-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Management/preview/2018-03-01-preview/management.json
+
+```
+
+### Tag: schema-management-2018-01-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-management-2018-01-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Management/preview/2018-01-01-preview/management.json
+
+```
+
+### Tag: schema-management-2017-11-01-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-management-2017-11-01-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Management/preview/2017-11-01-preview/management.json
+
+```
+
+### Tag: schema-management-2017-08-31-preview and azureresourceschema
+
+``` yaml $(tag) == 'schema-management-2017-08-31-preview' && $(azureresourceschema)
+output-folder: $(azureresourceschema-folder)/schemas
+
+# all the input files in this apiVersion
+input-file:
+ - Microsoft.Management/preview/2017-08-31-preview/management.json
+
+```
diff --git a/specification/managementgroups/resource-manager/readme.go.md b/specification/managementgroups/resource-manager/readme.go.md
index 2d5f15e265e6..43c0be9f163f 100644
--- a/specification/managementgroups/resource-manager/readme.go.md
+++ b/specification/managementgroups/resource-manager/readme.go.md
@@ -27,7 +27,7 @@ These settings apply only when `--tag=package-2020-05 --go` is specified on the
Please also specify `--go-sdk-folder=